手机访问 | 设为首页 | 加入收藏 | 网站地图

当前位置:电脑中国 > 网络 > 通信协议 >

TCP/IP详解:协议(TCP)

2016-11-02 10:52|来源:未知 |作者:dnzg |点击:

@本系列文章是在阅读TCP/IP协议:详解的过程中,根据稳重内容,对重要知识点做的总结,不包含个人观点,插图均来自书中。

第17章:TCP:传输控制协议

T C P提供一种面向连接的、可靠的字节流服务。T C P连接中,仅有两方进行彼此通信。广播和多播不能用于 T C P。 如果必要, T C P将对收到的数据进行重新排序,将收到的数据以正确的顺序交给应用层。 T C P对字节流的内容不作任何解释。 T C P不知道传输的数据字节流是二进制数据,还是A S C I I字符、E B C D I C字符或者其他类型数据。对字节流的解释由 T C P连接双方的应用层

解释。 可靠传输、超时重发、流量控制 TCP首部

 

这里写图片描述

 

 

这里写图片描述

 

一个 I P地址和一个端口号也称为一个插口( s o c k e t) 序号用来标识从 T C P发端向T C P收端发送的数据字节流,它表示在这个报文段中的的第一个数据字节. 当建立一个新的连接时, S Y N标志变1。序号字段包含由这个主机选择的该连接的初始序号I S N(Initial Sequence Number)。该主机要发送数据的第一个字节序号为这个 I S N加1,因为S Y N标志消耗了一个序号.F I N标志也要占用一个序号 A C K标志为 1时确认序号字段才有效,发送A C K无需任何代价.一旦一个连接建立起来,确认序号字段总是被设置, A C K标志也总是被设置为1。 T C P可以表述为一个没有选择确认或否认的滑动窗口协议 4位首部长度给出首部中 32 bit字的数目,因此T C P最多有6 0字节的首部。 标志比特多个可同时被设置为 1

 

这里写图片描述
窗口大小用来进行TCP的流量控制, 只有当U R G标志置1时紧急指针才有效。紧急指针是一个正的偏移量,和序号字段中的值相加表示紧急数据最后一个字节的序号。 最常见的可选字段是最长报文大小,又称为 MSS (Maximum Segment Size)。每个连接方通常都在通信的第一个报文段(为建立连接而设置 S Y N标志的那个段)中指明这个选项。它指明本端所能接收的最大长度的报文段。 在一个连接建立和一个连接终止时,双方交换的报文段仅有 T C P首部。如果一方没有数据要发送,也使用没有任何数据的首部来确认收到的数据。

 

第18章:TCP连接的建立与终止

三次握手与四次握手

 

这里写图片描述
连接建立的超时

 

现第一次超时时间在 5 . 5 9秒~ 5 . 9 3秒之间变化。然而,第二次超时时间则总是 2 4 . 0 0秒

定时计数器大约每隔 500 ms减1,但在第1个500 ms内是可变的,当滴答计数器为 0时,6秒的定时器便会超时(见图 1 8 - 7),这个定时器会在以后的 2 4秒(4 8个滴答)重新复位。之后的下一个定时器将更接近 2 4秒,因为当T C P的500 ms定时器被内核调用时,它就会被修改一次。

 

这里写图片描述
最大报文段长度(MSS)

 

当一个连接建立时,连接的双方都要通告各自的 M S S,这个I P数据报通常是 4 0字节长:2 0字节的T C P首部和2 0字节的I P首部。MSS默认值 5 3 6字节。 TCP的半关闭 TCP的状态变迁

 

这里写图片描述

 

TCP连接正常建立和终止

 

这里写图片描述
2MSL等待状态

 

每个具体 T C P实现必须选择一个报文段最大生存时间M S L(Maximum Segment Lifetime)。它是任何报文段被丢弃前在网络内的最长时间。我们知道这个时间是有限的,因为 T C P报文段以I P数据报在网络内传输,而 I P数据报则有限制其生存时间的T T L字段。

当 T C P执行一个主动关闭,并发回最后一个 A C K,该连接必须在 T I M E _ WA I T状态停留的时间为 2倍的M S L。这样可让 T C P再次发送最后的A C K以防这个A C K丢失(另一端超时并重发最后的 F I N)。

在连接处于 2 M S L等待时,任何迟到的报文段将被丢弃。因为处于 2 M S L等待的、由该插口对(socket pair)定义的连接在这段时间内不能被再用 平静时间

指出T C P在重启动后的 M S L秒内不能建立任何连接。这就称

为平静时间 (quiet time),但大多数主机重启动的时间都比MSL秒要长(表明此情况不必专门强调)。 复位报文段

T C P首部中的 R S T比特是用于“复位”的。一般说来,无论何时一个报文段发往基准的连接( referenced connection)出现错误, T C P都会发出一个复位报文段 检测半打开

T C P的处理原则是接收方以复位作为应答。 同时打开

 

这里写图片描述

 

T C P是特意设计为了可以处理同时打开,对于同时打开它仅建立一条连接而不是两条连接(其他的协议族,最突出的是 O S I运输层,在这种情况下将建立两条连接而不是一条连接)  同时关闭

 

这里写图片描述
TCP 选项

 

新的R F C,主要是 RFC 1323 [Jacobson, Braden和Borman 1992],定义了新的 T C P选项,这些选项的大多数只在最新的 T C P实现中才能见到。

 

这里写图片描述
TCP 服务器的设计

 

TCP服务器端口号 限定的本地IP地址 限定的远端IP地址 呼入连接请求队列

正等待连接请求的一端有一个固定长度的连接队列,该队列中的连接已被T C P接受(即三次握手已经完成),但还没有被应用层所接受。注意区分 T C P接受一个连接是将其放入这个队列,而应用层接受连接是将其从该队列中移出。

第19章:TCP的交互数据流

如果按照分组数量计算,约有一半的 T C P报文段包含成块数据(如 F T P、电子邮件和 U s e n e t新闻),另一半则包含交互数据(如Te l n e t和R l o g i n)。如果按字节计算,则成块数据与交互数据的比例约为 9 0 %和1 0 %。这是因为成块数据的报文段基本上都是满长度( f u l l - s i z e d)的(通常为 5 1 2字节的用户数据),而交互数据则小得多(上述研究表明 Te l n e t和R l o g i n分组中通常约 9 0 %左右的用户数据小于 1 0个字节)。 通常每一个交互按键都会产生一个数据分组,也就是说,每次从客户传到服务器的是一个字节的按键(而不是每次一行)。比如R l o g i n需要远程系统(服务器)回显我们(客户)键入的字符

 

这里写图片描述

 

我们一般可以将报文段 2和显示3进行合并 — 按键确认与按键回显一起发送 经受时延的确认

(责任编辑:dnzg)