美文网首页
TCP面试高频考点

TCP面试高频考点

作者: dwade06 | 来源:发表于2020-02-25 19:45 被阅读0次

    TCP知识
    为什么建立连接是三次握手,而关闭连接却是四次挥手呢?
    这是因为服务端在LISTEN状态下,收到建立连接请求的SYN报文后,把ACK和SYN放在一个报文里发送给客户端。而关闭连接时,当收到对方的FIN报文时,仅仅表示对方不再发送数据了但是还能接收数据,我们也未必全部数据都发送给对方了,所以我们不可以立即close,也可以发送一些数据给对方后,再发送FIN报文给对方来表示同意现在关闭连接,因此,我们的ACK和FIN一般都会分开发送。

    为什么需要TIME_WAIT
    TIMEWAIT状态也称为2MSL等待状态。
    1)为实现TCP这种全双工(full-duplex)连接的可靠释放
    这样可让TCP再次发送最后的ACK以防这个ACK丢失(另一端超时并重发最后的FIN)。这种2MSL等待的另一个结果是这个TCP连接在2MSL等待期间,定义这个连接的插口(客户的IP地址和端口号,服务器的IP地址和端口号)不能再被使用。这个连接只能在2MSL结束后才能再被使用。
    2)为使旧的数据包在网络因过期而消失
    每个具体TCP实现必须选择一个报文段最大生存时间MSL(Maximum Segment Lifetime)。它是任何报文段被丢弃前在网络内的最长时间。

    其它有时间再补充。。。

    相关文章

      网友评论

          本文标题:TCP面试高频考点

          本文链接:https://www.haomeiwen.com/subject/nlgfchtx.html