美文网首页
TCP连接与释放的具体细节

TCP连接与释放的具体细节

作者: 王韩峰 | 来源:发表于2017-03-15 17:28 被阅读80次

五层网络模型:
1.应用层
2.传输层
3.网络层
4.数据链路层
5.物理层
TCP属于传输层协议。

建立连接:

TCP建立连接的过程是需要进行三次握手的确认才可以确定连接。TCP是因特网中的传输层协议,使用三次握手协议建立连接。当主动方发出SYN连接请求后,等待对方回答TCP的三次握手TCP的三次握手
SYN+ACK[1],并最终对对方的 SYN 执行 ACK 确认。这种建立连接的方法可以防止产生错误的连接。

在计算机网络中有著名的红军蓝军问题,当处于不同位置的两军准备同时向敌军发起进攻时,红军与蓝军之间需要取得事先的联系和沟通。红军首先向蓝军发出信息,但是红军不能确定蓝军是否接收到消息,需要得到蓝军的确认,否则贸然出击会导致战争失败。

可以看到,上述问题会永无休止的进行下去,没有终点。但是实际应用中绝不允许这样进行下去。所以,需要取一个性价比最高的握手次数。

谢希仁版《计算机网络》中的例子是这样的,“已失效的连接请求报文段”的产生在这样一种情况下:client发出的第一个连接请求报文段并没有丢失,而是在某个网络结点长时间的滞留了,以致延误到连接释放以后的某个时间才到达server。本来这是一个早已失效的报文段。但server收到此失效的连接请求报文段后,就误认为是client再次发出的一个新的连接请求。于是就向client发出确认报文段,同意建立连接。假设不采用“三次握手”,那么只要server发出确认,新的连接就建立了。由于现在client并没有发出建立连接的请求,因此不会理睬server的确认,也不会向server发送ack包。(注:此时因为client没有发起建立连接请求,所以client处于CLOSED状态,接受到任何包都会丢弃,谢希仁举的例子就是这种场景。但是如果服务器发送对这个延误的旧连接报文的确认的同时,客户端调用connect函数发起了连接,就会使客户端进入SYN_SEND状态,当服务器那个对延误旧连接报文的确认传到客户端时,因为客户端已经处于SYN_SEND状态,所以就会使客户端进入ESTABLISHED状态,此时服务器端反而丢弃了这个重复的通过connect函数发送的SYN包,见第三个图。而连接建立之后,发送包由于SEQ是以被丢弃的SYN包的序号为准,而服务器接收序号是以那个延误旧连接SYN报文序号为准,导致服务器丢弃后续发送的数据包)但server却以为新的运输连接已经建立,并一直等待client发来数据。这样,server的很多资源就白白浪费掉了。采用“三次握手”的办法可以防止上述现象发生。例如刚才那种情况,client不会向server的确认发出确认。server由于收不到确认,就知道client并没有要求建立连接。

相关文章

  • TCP连接与释放的具体细节

    五层网络模型:1.应用层2.传输层3.网络层4.数据链路层5.物理层TCP属于传输层协议。 建立连接: TCP建立...

  • TCP/IP协议--TCP三次握手建立连接

    TCP连接 TCP是面向连接的协议,它基于传输连接来传送TCP报文段 TCP传输连接的建立和释放是每一次面向连接的...

  • TCP三次握手四次挥手详解

    TCP的运输连接管理 TCP是面向连接的协议。运输连接是用来传送TCP报文的。TCP运输连接的建立和释放是每一次面...

  • TCP连接的建立与释放

    一、TCP连接的建立 TCP 是面向连接的,在传输 TCP 报文段之前先要创建连接,发起连接的一方被称为客户端,而...

  • 🌐 TCP连接的建立与释放

    计算机网络分层结构: 7层OSI参考模型(法定标准) 4层TCP/IP参考模型(事实标准) 标准化工作 计算机网络...

  • TCP、IP、DNS协议

    目录 •IP 协议• TCP 协议 及 TCP协议的连接与释放(三次握手,四次挥手)•DNS协议• 各种协议与Ht...

  • 理解TCP和UDP

    一、TCP端口 二、TCP报文结构 三、TCP连接的建立和释放 TCP的整个交互过程可总结为:先建立连接、然后传输...

  • 简述TCP连接的建立与释放(三次握手、四次挥手)

    在介绍TCP连接的建立与释放之前,先回顾一下相关知识。 TCP是面向连接的运输层协议,它提供可靠交付的、全双工的、...

  • 【网络】TCP的连接建立

    TCP是面向连接的协议。运输连接是用来传送TCP报文的。TCP运输连接的建立和释放是每一次连接通信过程中必不可少的...

  • UDP

    UDP 和 TCP 的不同 TCP 在传送数据之前必须先建立连接,数据传送结束后要释放连接。 TCP 不提供广播或...

网友评论

      本文标题:TCP连接与释放的具体细节

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