建立TCP连接时需要三次握手,而关闭TCP连接一般需要4次握手。由于某种原因,TCP可能会出现半关闭连接和半打开连接这两种情况,这两种情况的描述是______。

admin2012-08-19  47

问题 建立TCP连接时需要三次握手,而关闭TCP连接一般需要4次握手。由于某种原因,TCP可能会出现半关闭连接和半打开连接这两种情况,这两种情况的描述是______。

选项 A、半关闭连接和半打开连接概念相同,是同一现象的两种说法
B、半关闭连接是一端已经接收了一个FIN,另一端正在等待数据或FIN的连接;半打开连接是一端崩溃而另一端还不知道的情况
C、半打开连接是一端已经接收了一个FIN,另一端正在等待数据或FIN的连接;半关闭连接是一端崩溃而另一端还不知道的情况
D、半关闭连接是一端已经接收了一个FIN,另一端正在等待数据或FIN的连接;半打开连接是一端已经发送了SYN,另一端正在等待ACK的连接

答案B

解析  本题考查对TCP连接的建立过程和TCP连接的关闭过程的理解。
   1.TCP连接的建立
   TCP协议是面向连接的协议,提供可靠的、全双工的、面向字节流的、端到端的服务。TCP连接是在无连接的IP协议上建立的。
   TCP连接建立:TCP的连接建立过程又称为TCP三次握手。首先发送方主机向接收方主机发起一个建立连接的同步(SYN)请求;接收方主机在收到这个请求后向发送方主机回复一个同步/确认(SYN/ACK)应答;发送方主机收到此包后再向接收方主机发送一个确认(ACK),此时TCP连接成功建立。
   2.TCP建立连接过程
   TCP会话通过三次握手来初始化。三次握手的目标是使数据段的发送和接收同步。同时也向对方主机表明其一次可接收的数据量(窗口大小),并建立逻辑连接。这三次握手的过程可以简述如下:
   ·源主机发送一个同步标志位(SYN)置1的TCP数据段。此段中同时标明初始
   序号(Initial Sequence Number,ISN)。ISN是一个随时间变化的随机值。
   ·目标主机发回确认数据段,此段中的同步标志位(SYN)同样被置1,且确认标志位(ACK)也置1,同时在确认序号字段表明目标主机期待收到源主机下一个数据段的序号(即表明前一个数据段已收到并且没有错误)。此外,此段中还包含目标主机的段初始序号。
   ·源主机再回送一个数据段,同样带有递增的发送序号和确认序号。至此为止,TCP会话的三次握手完成。接下来,源主机和目标主机可以互相收发数据。整个过程如下图所示。

TCP建立连接的三次握手过程
   3.TCP释放连接过程
   建立一个连接需要三次握手,而终止一个连接要经过四次握手。这由TCP的半关闭(half-close)造成的。既然一个TCP连接是全双工(即数据在两个方向上能同时传递),因此每个方向必须单独地进行关闭。
   TCP连接的释放需要进行四次握手,步骤是:
   ·源主机发送一个释放连接标志位(FIN)为1的数据段发出结束会话请求。
   ·目的主机收到一个FIN,它必须通知应用层对端已经终止了那个方向的数据传送,同时向源主机发回一个确认,并将应答信号(ACK)设置为收到序号加1,这样就终止了这个方向的传输。
   ·目的主机此时依然可以向源主机发送数据,数据发送结束后,目的主机也发出一个FIN置1的报文,请求终止本方向的连接。
   ·源主机收到FIN,再回送一个数据段,带有递增的确认序号。
   TCP释放连接的四次握手过程
   4.半打开连接和半关闭连接的概念
   TCP连接经三次握手建立后,如果一方已经关闭或异常终止连接而另一方却还不知道,我们称这样的TCP连接为半打开(half-open)连接。任何一端的主机异常都可能导致发生这种情况。只要不打算在半打开连接上传输数据,仍处于连接状态的一方就不会检测另一方已经出现异常。TCP的Keepalive定时器用于发现并结束半打开连接。
   TCP连接建立后,TCP提供了双向的数据通路。TCP提供了其中一端结束它的发送后还能接收来自另一端数据的能力,这称为半关闭。半关闭是TCP连接关闭过程中完成了前半部分的状态,这时只关闭了一个方向上的数据通道,另一个方向上仍然能够继续数据传输。
转载请注明原文地址:https://jikaoti.com/ti/xB67FFFM
0

最新回复(0)