TCP三次握手(通俗易懂)
---TCP连接要解决的三个问题
TCP的连接建立主要解决以下三个问题:
1--使TCP双方能够知道对方的存在
2--使TCP双方能够协商一些参数(如最大窗口值,是否使用窗口扩大选项和时间戳选项以及服务质量)
3--使TCP双方能够对运输实体资源(如缓存大小,连接表中的项目等)进行分配。
---图解TCP三次握手
图中
SYN:同步序列编号(Synchronize Sequence Numbers)。是TCP/IP建立连接时使用的握手信号
同步位SYN=1,表明这是一个TCP连接请求报文段)。
seq=x(sequence number 表示的是我方(发送方)这边,这个packet的数据部分的第一位应该在整个data stream,作为TCP客户进程选择的初始字号,(
注意:TCP规定的SYN被设置为1的报文段不能携带数据,但要消耗一个序号)。
第一个ACK=1
seq=y
ack=x+1(acknowledge number 表示的是期望的对方(接收方)的下一次sequence number是多少
第二个ACK=
seq=x+1(我给你发500+1台三星)
ack=y+1(但你得给我发50+1台汽车)
四--能否只有两次握手?
答案肯定是不能。看下图
红线部分为一个迟到的连接请求,并且重传计时器结束了他还没有到达,于是发生重传(黑线)。
若只有两次握手,当迟到的到达后,接收方收到了,然后就按规矩建立连接,安排专人(资源)去等待发送方发送数据。但是发送方已经重传过了,他并不知道这个迟到的请求到达了(他也以为重传过了就不会再有重复请求到达),于是接收方就这样傻傻的等待。
三次握手能防止已失效的连接请求报文段突然又传到TCP服务器,导致错误,浪费资源。
练习题:
posted on 2021-01-08 22:36 Love&Share 阅读(2735) 评论(1) 编辑 收藏 举报