面试之网络总结

网络相关的知识点比较多,也比较细。如果提及的话,需要对其细节有较为深入的理解才能自如回答。

TCP/IP协议族和ISO的OSI七层体系的区别?
待添加

TCP与UDP的区别?
TCP是有连接的字节流协议,UDP是无连接的数据报协议。因为发送数据之前需要建立连接,而UDP不需要建立连接,所以TCP是可靠的而UDP是不可靠的。TCP为了保持尽最大可能交付数据,采取的功能包括确认、超时重传、流量控制、拥塞控制等机制。

TCP头部、UDP头部、IP头部的数据有哪些,各自占多少字节?
TCP头部包括原端口、目的端口、序列号、确认号、标志位、窗口大小等字段,总共20字节。UDP头部包括源端口、目的端口等字段,总共8字节。IP头部包括源IP、目的IP、标志、片偏移等字段,总共20字节。具体参考:IP、TCP、UDP首部详解

TCP建立连接的三次握手的过程?
三次握手开始时,客户端处于CLOSE状态,服务端处于LISTEN状态。客户端发送(第一次)SYN报文后进入SYN_SEND状态,服务端收到SYN报文后,返回SYN+ACK报文(第二次),然后进行SYN_RECV状态。客户端收到SYN+ACK报文后,返回ACK报文(第三次),进入ESTABLISHED状态,服务端收到ACK报文,也进入ESTABLISHED状态。连接建立。

为什么TCP建立连接需要三次握手?
三次握手是建立连接、知晓双方发送、接受功能完整的最小次数。
相当于A和B打电话,电话接通之后,A先说:我是A,你听得到我吗? B回答:我是B,我听得到你,你听得到我吗?A最后回答:我也听得到你。

TCP关闭连接的四次挥手的过程?
任意一方都可以主动发起关闭连接,通常是客户端发起关闭。
关闭连接之前,双方都处于ESTABLISHED状态。客户端发送FIN报文,进入FIN_WAIT_1状态,服务端收到FIN报文,返回ACK报文,进入CLOSE_WAIT状态。客户端收到ACK报文,进入FIN_WAIT_2状态。TCP是全双工服务,客户端服务端都是可以发送数据的。这相当于只是关闭了客户端发送数据功能,服务端依旧可以发送数据。当服务端的数据也无数据需要发送,就需要关闭它的发送功能,服务端发送FIN报文,进入LAST_ACK状态。客户端收到FIN报文,返回ACK报文,进入TIME_WAIT状态,经过2MSL时间后,进入CLOSE状态。服务器收到ACK报文后,进入CLOSE状态。

为什么TCP建立连接只需要三次握手,关闭连接却需要四次挥手?
三次握手的第二次,即服务端发送SYN+ACK报文,实际效果是将ACK报文和SYN报文合二为一。
关闭连接需要四次,是因为TCP的全双工性质。关闭一方写,不影响另一边继续写,两边写是不会相互影响的。关闭一方需要发送FIN报文和返回ACK报文,另一方同样需要,因此关闭连接是四次挥手。

关闭连接时,客户端处于TIME_WAIT状态时,为什么需要等待2MSL时间后才能关闭?
保证全双工的TCP连接正确关闭,同时保证当前连接中迷走报文不会影响到下一个连接。
客户端在TIME_WAIT状态保持2MSL时间,如果服务端未收到客户端发送的ACK报文。在超时后服务端会重新发送FIN报文,客户端依旧处于TIME_WAIT状态,可以对其再次回复ACK报文。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值