本篇内容介绍了“如何理解TCP/IP三次握手和四次挥手”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
tcp/ip架构:OSI七层模型、TCP/IP四层模型、五层体系结构
TCP协议是面向连接的、可靠的协议,效率低(字节流)
UDP协议是面向无连接,不可靠的协议,效率高(报文)
三次握手操作:
客户端先发送一个建立连接的报文给服务端(SYN=1,seq=x(随机序号))
服务端收到请求后,向客户端回传消息(SYN=1,seq=y,ACK=1,ack=x+1)
客户端收到应答后,最后通知服务端(ACK=1,ack=y+1)此时建立连接成功
为什么不是两次握手
第三次握手是让客户端确认服务端返回的响应是否是正确,如果不正确则不建立连接
如果在第二次握手的时候就建立了连接,不能避免因为网络延迟造成不必要的服务器开销,每次过来消息都会建立一个新的连接
客户端发送一个断开连接的报文给服务端(FIN=1,seq=x(增长序号))
服务端收到请求后,可能手头还有数据没处理完,所以先回复确认消息给客户端(ACK=1,ack=x+1)
服务端处理完数据后,通知客户端断开连接(FIN=1,seq=y)此时服务端停止发送数据,保持接收
客户端收到响应后通知服务端(ACK=1,ack=y+1)客户端等待2MSL后关闭,此时断开连接
为什么不是三次挥手?
释放连接时,服务端是很被动的,突然接到客户端释放连接的请求不能立马释放,而是先返回确
认报文,等数据处理完再返回释放连接的响应,对比三次握手,服务器在响应时多了一步操作
为什么要等待2MSL?
MSL是一段TCP报文在传输过程中的最大生存期,服务器端在1MSL内没有收到客户端发出的确认报文会再次向客户端发出同意关闭请求
客户端等待2MSL再关闭,在此期间没有收到服务端的请求,说明服务端已经正常关闭
应用数据被分割成TCP认为最适合发送的数据块。
超时重传:当TCP发出一个段后,它启动一个定时器,等待目的端确认收到这个报文段。如果不能及时收到一个确认,将重发这个报文段。
TCP给发送的每一个包进行编号,接收方对数据包进行排序,把有序数据传送给应用层。
校验和:TCP将保持它首部和数据的检验和。这是一个端到端的检验和,目的是检测数据在传输过程中的任何变化。如果收到段的检验和有差错,TCP将丢弃这个报文段和不确认收到此报文段。
TCP的接收端会丢弃重复的数据。
流量控制:TCP连接的每一方都有固定大小的缓冲空间,TCP的接收端只允许发送端发送接收端缓冲区能接纳的我数据。当接收方来不及处理发送方的数据,能提示发送方降低发送的速率,防止包丢失。TCP使用的流量控制协议是可变大小的滑动窗口协议。
拥塞控制:当网络拥塞时,减少数据的发送。
“如何理解TCP/IP三次握手和四次挥手”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。