首页 > 试题广场 >

通过TCP协议建立连接的两方,如果一方突然发生故障(比如断电

[不定项选择题]
通过TCP协议建立连接的两方,如果一方突然发生故障(比如断电)断开了连接,那么一下说法错误的是()?
  • TCP协议会自动检测连接是否断开,经过一段时间后另外一段会收到TCP连接断开的通知
  • 如果设置了TCP_KEEPALIVE,那么对端能够马上收到断开的信息
  • 可以自己实现心跳检测的方法来确定对方是不是已经断开连接
  • 另外一方能够马上知道连接已经断开
TCP连接不能自动差别断连的现象; 所以A选项错误
TCP中KEEPALIVE机制是默认不打开的,需要通过setsockopt将SOL_SOCKET.SO_KEEPALIVE设置为1则是打开,打开后会定时向连接对方发送ACK包(linux下默认是7200s 即2小时发生一次发送一次握手信息),如果在发送ACK包后对方不回应才能检测道对方的断开信息,所以B错误;
Heartbeat机制是客户端每个一段时间向服务器发送数据包,来通知服务端该客户端保持连接。所以C正确
综合AB,D是错误的
发表于 2017-12-12 05:30:16 回复(0)
一方断电,已经发不出信号了(A错),要想知道断开连接,只能是另一方发送试探信号,超过约定时间收不到反馈或连续若干次收不到反馈,才能判断连接断开,所以BD能够立刻判断连接断开是不正确的
编辑于 2018-08-20 06:33:35 回复(0)
TCP不能自动检测对端断开连接,故AD说法错误;TCP中的keep-alive机制需要通过setsockopt()将SOL_SOCKET.SO_KEEPALIVE置为1后开启,开启后会定时向对端发送ACK包,故B说法错误;C相当于定时向对端发送心跳包,故C说法正确,选ABD。
编辑于 2018-12-02 18:33:28 回复(0)
哪个把计算机网络搞到C里面的
发表于 2020-04-13 20:35:00 回复(0)
求解答
发表于 2017-10-23 11:26:06 回复(0)
C
发表于 2017-09-11 00:40:22 回复(0)