标签:height ref 数据 端口 href book 报文 全双工 三次握手
TCP是一个面向连接的协议。无论哪一方向另一方发送数据之前,都必须先在双方之间建立一条连接。
SYN
段指明客户打算连接的服务器的端口,以及初始序号( ISN
,在这个例子中为1415531521)。这个 SYN
段为报文段1。SYN
报文段(报文段2)作为应答。同时,将确认序号设置为客户的 ISN
加1以对客户的 SYN
报文段进行确认。一个 SYN
将占用一个序号。ISN
加1以对服务器的 SYN
报文段进行确认(报文段3)。这三个报文段完成连接的建立。这个过程也称为 三次握手(three-way handshake)。
建立一个连接需要三次握手,而终止一个连接要经过4次握手。这由TCP的半关闭(halfclose)造成的。既然一个TCP连接是全双工(即数据在两个方向上能同时传递),因此每个方向必须单独地进行关闭。这原则就是当一方完成它的数据发送任务后就能发送一个FIN
来终止这个方向连接。当一端收到一个 FIN
,它必须通知应用层另一端已经终止了那个方向的数据传送。发送 FIN
通常是应用层进行关闭的结果。
当服务器收到这个 FIN
,它发回一个 ACK
,确认序号为收到的序号加1(报文段5)。和SYN一样,一个 FIN
将占用一个序号。同时TCP服务器还向应用程序(即丢弃服务器)传送一个文件结束符。接着这个服务器程序就关闭它的连接,导致它的TCP端发送一个 FIN
(报文段6),客户必须发回一个确认,并将确认序号设置为收到序号加1(报文段7)。
1.TCP/IP详解 卷1:协议 - 第18章 TCP连接的建立与终止
标签:height ref 数据 端口 href book 报文 全双工 三次握手
原文地址:https://www.cnblogs.com/maxzuo/p/13773650.html