一--导读
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中所在的位置相当于导读中的“500台三星”),作为TCP客户进程选择的初始字号,(
注意:TCP规定的SYN被设置为1的报文段不能携带数据,但要消耗一个序号)。(也就是韩国总统没有说到500,但是他说了一句话)
第一个ACK=1(相当于导读中的“小文啊,收到你的消息了”)。
seq=y (相当于导读中的50辆汽车)
ack=x+1(acknowledge number 表示的是期望的对方(接收方)的下一次sequence number是多少 相当于导读中的500+1)。
第二个ACK=1(相当于导读中的“安倍兄,你的消息我已收到”)
seq=x+1(我给你发500+1台三星)
ack=y+1(但你得给我发50+1台汽车)
四--能否只有两次握手?
答案肯定是不能。看下图
红线部分为一个迟到的连接请求,并且重传计时器结束了他还没有到达,于是发生重传(黑线)。
若只有两次握手,当迟到的到达后,接收方收到了,然后就按规矩建立连接,安排专人(资源)去等待发送方发送数据。但是发送方已经重传过了,他并不知道这个迟到的请求到达了(他也以为重传过了就不会再有重复请求到达),于是接收方就这样傻傻的等待。
三次握手能防止已失效的连接请求报文段突然又传到TCP服务器,导致错误,浪费资源。
练习题:
标签:重传,--,握手,导读,通俗易懂,TCP,连接 From: https://blog.51cto.com/u_15810109/5719131