《TCP/IP详解 卷1:协议》 第十八章 TCP连接的建立与终止

在第1行中,字段1 4 1 5 5 3 1 5 2 1 : 1 4 1 5 5 3 1 5 2 1 ( 0 )表示分组的序号是 1 4 1 5 5 3 1 5 2 1,而报文段中
数据字节数为 0。 t c p d u m p显示这个字段的格式是开始的序号、一个冒号、隐含的结尾序号
及圆括号内的数据字节数。显示序号和隐含结尾序号的优点是便于了解数据字节数大于 0时的
隐含结尾序号。这个字段只有在满足条件( 1)报文段中至少包含一个数据字节;或者( 2)
S Y N、 F I N或R S T被设置为1时才显示。图1 8 - 1中的第1、 2、 4和6行是因为标志比特被置为 1而
显示这个字段的,在这个例子中通信双方没有交换任何数据。

ISN随时间而变化,这样选择序号的目的在于防止在网络中被延迟的分组在以后又被传送,而导致某个连接的一方对它作错误的解释。

连接建立超时后会隔指定的时间后重新发送SYN,多次尝试后会放弃连接。

MSS选项只能出现在SYN报文段中

MSS让主机限制另一端发送数据报的长度。加上主机也能控制它发送数据报的长度,这将使以较小MTU连接到一个网络上的主机避免分段。当 TCP发送一个 SYN时它能将MSS值设置为外出接口上的 MTU长度减去固定的IP首部和TCP首部长度。如果两端的主机都连接到以太网上,那需不需要分段还要看中间网络的MTU。

如果应用程序不调用close(套接字的引用数减去1,不一定会四次挥手)而调用shutdown(一定会四次挥手),且第2个参数值为1,则插口的API支持半关闭。然而,大多数的应用程序通过调用close终止两个方向的连接。

接收半关闭的一方仍能发送数据。发起半关闭的一方仍能回复ACK报文段。

连接
报文段最大生存时间MSL(Maximum Segment Lifetime):当TCP执行一个主动关闭,并发回最后一个ACK,该连接必须在TIME _ WAIT状态停留的时间为2倍的MSL。这样可让TCP再次发送最后的ACK以防这个ACK丢失(另一端超时并重发最后的FIN)。

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

当服务端执行主动关闭之后进入TIME_WAIT后,他的端口就暂时不能用了。如果新替身的ISN大于前替身的最大序号,则可能可以连续重用。

TCP在重启动后的MSL秒内不能建立任何连接。这就称为平静时间(quiet time)。目的是防止处于TIME_WAIT的连接在主机断开后恢复连接,然后将迟到的报文段当成新的连接来接受。

如果服务器的应用层没有决定进行关闭,客户端可能在FIN_WAIT_2状态无限等待。如果执行主动关闭的应用层将进行全关闭,而不是半关闭来说明它还想接收数据,就设置一个定时器。如果这个连接空闲1 0分钟7 5秒, T C P将进入C L O S E D状态。

复位报文段:
1. 到不存在的端口的连接请求;
2. 异常终止一个连接;
3. 检测半打开连接(如果一方已经关闭或异常终止连接而另一方却还不知道,我们将这样的 TCP连接称为半打开(H a l f - O p e n)的。):半打开连接的另一个常见原因是当服务器主机突然掉电而不是正常的结束服务应用程序后再关机,服务器主机重启后,从客户向服务器发送另一行字符。由于服务器的TCP已经重新启动,它将丢失复位前连接的所有信息,因此它不知道数据报文段中提到的连接。TCP的处理原则是接收方以复位作为应答。

同时打开(两个应用程序同时彼此执行主动打开的情况是可能的,尽管发生的可能性极小):一个同时打开的连接需要交换 4个报文段,比正常的三次握手多一个。

同时关闭:
同时关闭

TCP选项:
TCP选项

T C P服务器无法使客户进程的主动打开失效。当一个新的客户连接传递给服务器的应用程序时, T C P的三次握手就结束了,客户的主动打开已经完全成功。如果服务器的应用程序此时看到客户的 I P地址和端口号,并决定是否为该客户进行服务,服务器所能做的就是关闭连接(发送 F I N),或者复位连接(发送 R S T)。无论哪种情况,客户进程都认为一切正常,因为它的主动打开已经完成,并且已经向服务器程序发送过请求。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值