网络面试题你只要知道这12题就够了

本篇文章精选了12个网络方面最具代表性的面试题
一、谈一谈你对TCP/IP四层模型,OSI七层模型的理解?为了增强通用性和兼容性,计算机网络都被设计成层次机构,每一层都遵守一定的规则 。
因此有了OSI这样一个抽象的网络通信参考模型,按照这个标准使计算机网络系统可以互相连接 。
物理层:通过网线、光缆等这种物理方式将电脑连接起来 。传递的数据是比特流,0101010100 。
数据链路层: 首先,把比特流封装成数据帧的格式,对0、1进行分组 。电脑连接起来之后,数据都经过网卡来传输,而网卡上定义了全世界唯一的MAC地址 。然后再通过广播的形式向局域网内所有电脑发送数据,再根据数据中MAC地址和自身对比判断是否是发给自己的 。
网络层:广播的形式太低效,为了区分哪些MAC地址属于同一个子网,网络层定义了IP和子网掩码,通过对IP和子网掩码进行与运算就知道是否是同一个子网,再通过路由器和交换机进行传输 。IP协议属于网络层的协议 。
传输层:有了网络层的MAC+IP地址之后,为了确定数据包是从哪个进程发送过来的,就需要端口号,通过端口来建立通信,比如TCP和UDP属于这一层的协议 。
会话层:负责建立和断开连接
表示层:为了使得数据能够被其他的计算机理解,再次将数据转换成另外一种格式,比如文字、视频、图片等 。
应用层:最高层,面对用户,提供计算机网络与最终呈现给用户的界面

网络面试题你只要知道这12题就够了

文章插图
 
TCP/IP则是四层的结构,相当于是对OSI模型的简化 。
数据链路层,也有称作网络访问层、网络接口层 。他包含了OSI模型的物理层和数据链路层,把电脑连接起来 。
网络层,也叫做IP层,处理IP数据包的传输、路由,建立主机间的通信 。
传输层,就是为两台主机设备提供端到端的通信 。
应用层,包含OSI的会话层、表示层和应用层,提供了一些常用的协议规范,比如FTP、SMPT、HTTP等 。
【网络面试题你只要知道这12题就够了】总结下来,就是物理层通过物理手段把电脑连接起来,数据链路层则对比特流的数据进行分组,网络层来建立主机到主机的通信,传输层建立端口到端口的通信,应用层最终负责建立连接,数据格式转换,最终呈现给用户 。
 
二、说说TCP 3次握手的过程?建立连接前server端需要监听端口,所以初始状态是LISTEN 。
client端建立连接,发送一个SYN同步包,发送之后状态变成SYN_SENT
server端收到SYN之后,同意建立连接,返回一个ACK响应,同时也会给client发送一个SYN包,发送完成之后状态变为SYN_RCVD
client端收到server的ACK之后,状态变为ESTABLISHED,返回ACK给server端 。server收到之后状态也变为ESTABLISHED,连接建立完成 。
网络面试题你只要知道这12题就够了

文章插图
 
三、为什么要3次?2次,4次不行吗?因为TCP是双工传输模式,不区分客户端和服务端,连接的建立是双向的过程 。
如果只有两次,无法做到双向连接的建立,从建立连接server回复的SYN和ACK合并成一次可以看出来,他也不需要4次 。
挥手为什么要四次?因为挥手的ACK和FIN不能同时发送,因为数据发送的截止时间不同 。
 
四、那么四次挥手的过程呢?client端向server发送FIN包,进入FIN_WAIT_1状态,这代表client端已经没有数据要发送了
server端收到之后,返回一个ACK,进入CLOSE_WAIT等待关闭的状态,因为server端可能还有没有发送完成的数据
等到server端数据都发送完毕之后,server端就向client发送FIN,进入LAST_ACK状态
client收到ACK之后,进入TIME_WAIT的状态,同时回复ACK,server收到之后直接进入CLOSED状态,连接关闭 。但是client要等待2MSL(报文最大生存时间)的时间,才会进入CLOSED状态 。
网络面试题你只要知道这12题就够了

文章插图
 
领取音视频开发资料包:音视频流媒体高级开发
FFmpegWebRTCRTMPRTSPHLSRTP播放器
网络面试题你只要知道这12题就够了

文章插图
企鹅君羊994289133领取资料

网络面试题你只要知道这12题就够了

文章插图
企鹅君羊994289133领取资料
五、为什么要等待2MSL的时间才关闭?为了保证连接的可靠关闭 。如果server没有收到最后一个ACK,那么就会重发FIN 。


推荐阅读