计算机基础面试(计算机网络)

1、OSI七层模型

       ●OSI(Open System Interconnection,开放系统互连),7层网络模型被称为开放式系统互联参考模型。

       ●把网络从逻辑上分为7层,每一层都有相关、相对应的物理设备。

       ●OSI七层网络模型最主要的功能——帮助不同类型的主机实现数据传输。

计算机基础面试(计算机网络)_第1张图片

   第一层(物理层):是以0 1的二进制数据进行发送到网络其他设备中。

   第二层(数据链路层):实现网络互联,连接到不同的主机,不同的主机之间还要进行数据传输。

   第三层(网络层):网络地址IP使用,通过路由器传送到对应的地方。

   第四层(传输层):TCP/UDP协议,都是属于操作系统。

   第五层(会话层):通信管理,负责建立和断开通信连接。

   第六层(表示层):主要是应用程序的沟通,包括FTP文件传输协议等。

   七层模型在落地时,第五层和第六层实现不了,它既复杂又不实用;所以,一般是按照TCP/IP的五层模型进行讲解。

2、TCP/IP五层模型

计算机基础面试(计算机网络)_第2张图片

   ●物理层:负责光/电信号的传递方式。物理层的能力决定了最大传输速率、传输距离、抗干扰性等. 集线器(Hub)工作在物理层。

   ●数据链路层: 负责设备之间的数据帧的传送和识别。

   ●网络层:负责地址管理和路由选择. 例如在IP协议中, 通过IP地址来标识一台主机, 并通过路由表的方式规划出两台主机之间的数据传输的线路(路由)

   ●传输层:负责两台主机之间的数据传输,确保数据可靠的从源主机发送到目标主机。

   ●应用层: 负责应用程序间沟通,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等. 我们的网络编程主要就是针对应用层

3、阐述一下IP地址、MAC地址、Port端口号?

        IP地址:为互联网中的每一个网络和每一台主机分配一个逻辑地址,来和物理地址进行区分。在网络中唯一标识一台主机,使用“点分十进制”来表示IP地址。

       MAC地址:标识数据链路层中相连的节点,硬件设备找主机是通过MAC地址来找的。

       Port端口号:端口号是传输层协议的内容,是用来标识一个进程,告诉操作系统,当前的这个数据要交给哪一个进程来处理。

       其中MAC地址与IP地址的区别是:

计算机基础面试(计算机网络)_第3张图片

 4、计算机网络中的各种协议?

          计算机基础面试(计算机网络)_第4张图片

 5、TCP三次握手与四次挥手?

      总而言之,三次握手是处在建立连接;四次挥手是处在断开连接。

                                 计算机基础面试(计算机网络)_第5张图片

  三次握手(客户端向服务端,请求建立连接):

        第一次握手:从客户端发送SYN到服务端,证明客户端发送能力没有问题。

        第二次握手:服务端将SYN+ACK返回到客户端,这一次证明服务端的接收能力没有问题,同时也证明服务端的发送能力没有问题。

       第三次握手:客户端接收到信号后,返回到服务端。这一次握手,证明客户端的接收能力没有问题。

     计算机基础面试(计算机网络)_第6张图片

 四次挥手(客户端向服务端请求断开连接):

        第一次挥手:客户端向服务端发送FIN包,表示要关闭连接,自己进入终止等待1状态。

        第二次挥手:服务端接收到FIN包后,向客户端发送ACK包,表示自己进入了等待关闭状态、而客户端进入终止等待2状态。

        第三次挥手:等待服务端发送完最后一波数据之后,发送一包FIN包,表示服务端进入最终确认状态。

        第四次挥手:客户端收到FIN包之后,回复ACK包,此时客户端进入超时等待状态,经过超时时间之后关闭连接。而服务端收到ACK包之后,立即关闭连接。

四次挥手和三次握手,在本质上,是为了保证在不可靠的网络链路中,进行可靠的连接断开确认。

  第四次挥手中,为什么客户端需要等待超时时间?

       答:这是为了保证对方已收到ACK包,因为假设客户端发送完最后一包ACK包后就释放了连接,一旦ACK包在网络中丢失,服务端将一直停留在最后确认状态。如果客户端发送最后一包ACK包后,等待一段时间,这时服务端因为没有收到ACK包,会重发FIN包,客户端会响应这个fin包,重发ACK包并刷新超时时间。

 6、TCP和UDP的区别?

   传输控制协议(TCP,Transmission Control Protocol)、用户数据报协议(UDP,User Datagram Protocol)

   ●TCP面向连接,通过三次握手建立连接,四次挥手接除连接;  UDP是无连接的,即发送数据不需要建立连接。因此UDP传输效率较高,但是数据发送成功率不能保证。

   ●TCP是一对一的两点服务; 而UDP是支持一对一、一对多、多对多的交互通信。  

   ●TCP是可靠交付数据的; UDP不能保证可靠性。

   ●TCP的头部开销大; UDP的头部开销大

   ●TCP是面向字节流的; 而UDP是面向报文的。

   ●TCP会产生粘包问题;  UDP会产生丢包问题。

7、在浏览器中输入URL(如www.baidu.com)到显示页面经历了哪些过程,涉及到了哪些协议呢?

    ●浏览器首先要将URL解析为IP地址,解析域名就要用到DNS协议。

    ●得到IP地址之后,浏览器就要与服务器建立一个http连接,因此要用到http协议。 如果采用了https的话,还会使用https协议先对http数据进行加密。

    ●http生成一个get请求报文,将该报文传给TCP层处理,所以用到了TCP协议。

    ●TCP的数据包然后会发送给IP层,用到IP协议。IP层通过路由选路,一跳一跳发送到目的地址。当然在一个网段内的寻址是通过以太网协议实现(也可以是其他物理层协议,比如PPP,SLIP),以太网协议需要直到目的IP地址的物理地址,有需要ARP协议。

你可能感兴趣的:(工作,面试,java)