校招刷题群
高效刷题 迎战校招
校招精选试题
近年面笔经面经群内分享
Java刷题群 前端刷题群 产品运营群
首页 > UI专业知识 > 色彩
题目

下面关于TCP的描述,错误的是()

A.TCP是一种面向连接的协议,给用户进程提供可靠的全双工的字节流

B.TCP客户端和服务器之间建立连接需要经过3次握手

C.只要有一方主动关闭连接后,这个TCP连接就结束了

D.TCP在传输数据过程中必须保持着连接,这个连接会给通信过程增加开销

解答

正确答案是 C

http连接分为:建立连接,即tcp三次握手
                    发送请求信息
                    发送响应信息

                    关闭连接(tcp四次握手);下面讲此过程:

                    在TCP断开的过程中会有四个状态变化过程,如下所示:在连接撤销过程中,有如下过程: 1.HOST1上的应用程序关闭己方的连接导致TCP发送一个FIN消息给HOST2。 2.HOST2发送一个确认消息给HOST1,并且HOST2把FIN作为EOF递交给HOST2上的应用程序。 3.一段时间过后,HOST2上的应用程序关闭它那边的连接,引发一个FIN消息给HOST1。 4.HOST1给HOST2发送一个确认消息,然后HOST2关闭连接并释放资源,然而,HOST1却没有关闭连接,而是进入了TIME_WAIT状态,并为两个最大段生存时间(2MSL)保留在此状态.

为什么需要TIME_WAIT? 1.因为在第四步的时候,HOST1发送的ACK可能丢失并导致HOST2重新发送FIN消息,TIME_WAIT维护连接状态.
如果执行主动关闭的一方HOST1 不进入到TIME_WAIT状态就关闭连接那会发生什么呢?当重传的FIN消息到达时,因为TCP已经不再有连接的信息了,所以就用RST(重新启动)消息应答,导致HOST2进入错误的状态而不是有序终止状态,如果发送最后ACK消息的一方处于TIME_WAIT状态并仍然记录着连接的信息,它就可以正确的响应对等方HOST2的FIN消息了. 2.TIME_WAIT为连接中”离群的段”提供从网络中消失的时间.
考虑一下,如果延迟或者重传段在连接关闭后到达时会发生什么呢?通常情况下,因为TCP仅仅丢弃该数据并响应RST消息,所以这不会造成任何问题。当RST消息到达发出延时段的主机时,因为该主机也没有记录连接的任何信息,所以它也丢弃该段。然而,如果两个相同主机之间又建立了一个具有相同端口号的新连接,那么离群的段就可能被看成是新连接的,如果离群的段中数据的任何序列号恰恰在新连接的当前接收窗口中,数据就会被重新接收,其结果就是破坏新连接。

C 4条回复 评论
书为

这题有够坑的,老是错

发表于 2021-09-08 21:50:00
0 0
小小小可乐

TCP是一种面向连接的协议,给用户进程提供可靠的全双工的字节流,字节流,UPD是面向报文

发表于 2018-10-15 11:16:36
0 0
企鹅哥哥

全双工通信必须保证通信双方都确认对方已经结束 所以要用四次挥手

发表于 2018-10-15 11:16:12
0 0
大葫芦

三次握手,四次挥手

发表于 2018-10-15 11:16:02
0 0