HOME 首页
SERVICE 服务产品
XINMEITI 新媒体代运营
CASE 服务案例
NEWS 热点资讯
ABOUT 关于我们
CONTACT 联系我们
创意岭
让品牌有温度、有情感
专注品牌策划15年

    TCP连接(tcp连接三次握手)

    发布时间:2023-03-19 10:40:32     稿源: 创意岭    阅读: 102        问大家

    大家好!今天让创意岭的小编来大家介绍下关于TCP连接的问题,以下是小编对此问题的归纳整理,让我们一起来看看吧。

    开始之前先推荐一个非常厉害的Ai人工智能工具,一键生成原创文章、方案、文案、工作计划、工作报告、论文、代码、作文、做题和对话答疑等等

    只需要输入关键词,就能返回你想要的内容,越精准,写出的就越详细,有微信小程序端、在线网页版、PC客户端

    官网:https://ai.de1919.com

    本文目录:

    TCP连接(tcp连接三次握手)

    一、如何使用 TCP 连接进行通信

    首先是建立可靠的数据管道

    TCP 为 HTTP 提供了一条可靠的比特传输管道,从 TCP 连接一端填入的字节会从另一端以原有的顺序、正确地传输。

    然后在管道中传输 TCP 流

    TCP 的数据是通过名为 IP 分组的小数据块来发送的。

    HTTP 在传输一条报文时,会以流的形式将报文数据的内容通过一条打开的 TCP 连接按序传输,TCP 收到数据后,会将数据流砍成被称为段的小数据块,并将段封装在 IP 分组中,通过网络进行传输。

    最后关闭 TCP 连接

    在客户端和服务器端之间完成传输交互后,请求发起方,比如浏览器会关闭该 TCP 连接。

    二、tcp长连接保持多久

    tcp长连接保持两个小时。根据查询相关公开信息显示,tcp长连接在接通之后,会在一定的时间内保持连接,默认时间为两个小时。两个小时之后,如果服务器没有收到一个响应,它就会判定客户主机已经关闭,tcp会终止连接。

    三、TCP的连接建立——三报文握手

    三报文握手(three way handshake)以前都称为三次握手,其实这是一次握手过程中交换中交换了三个报文,而并不是进行了三次握手。handshake使用的是单数并不是复数,表明只是一次握手。

    1.SYN_SENT

    SYN_SENT表示请求连接,当你要访问其它的计算机的服务时首先要发个 同步信号 给该端口,此时状态为SYN_SENT,如果连接成功了就变为 ESTABLISHED ,此时SYN_SENT状态非常短暂。

    2.ACK

    ACK (Acknowledgement)即是确认字符,在数据通信中,接收站发给发送站的一种传输类 控制字符 。表示发来的数据已确认接收无误。

    3.SYN_RCVD(同步收到)

    4.ESTAB_LISHED(已建立连接)

    5.传输控制模块TCB

    传输控制模块TCB(Transmission Control Block)存储了每一个连接中的一些重要信息。

    一开始,B的PCP服务器进程先创建 传输控制模块TCB ,准备接受客户进程的连接请求。然后服务器进程就处于 LISTEN (收听)状态,等待客户的连接请求。

    1.SYN=1,seq=x

    A的TCP客户进程也是首先创建 传输控制模块TCB ,然后,在打算建立TCP连接时,向B发出请求报文段,这时首部中的同步位 SYN=1 ,同时选择一个初始序号 seq=x 。即 SYN=1,seq=x 。TCP规定,SYN报文段(即SYN=1的报文段)不能携带数据,但要 消耗一个序号 。这时,TCP客户进程进入 SYN_SENT (同步已发送)状态。

    2.SYN=1,ACK=1,seq=y,ack=x+1

    B收到连接请求报文段后,如同意建立连接,则向A发送确认。在确认报文段中应把SYN位和ACK位都置1,确认号是 ack=x+1 ,同时也为自己选择一个初始号 seq=y 。即 SYN=1,ACK=1,seq=y,ack=x+1

    请注意:这个报文段也不能携带数据,但同时 要消耗一个序号 。这时TCP服务器进程进入 SYN_RCVD (同步收到)状态。

    3.ACK=1,seq=x+1,ack=y+1

    TCP客户进程收到B的确认后,还要向B给出确认。确认报文段的ACK置1,确认号 ack=y+1 ,而自己的序号 seq=x+1 。即 ACK=1,seq=x+1,ack=y+1 TCP的标准规定,ACK报文段可以携带数据。但 如果不携带数据则不消耗序号 ,在这中情况下,下一个数据报文段仍然是 seq=x+1 。这时。TCP连接已经建立,A进入 ESTAB_LISHED (已建立连接)状态。

    4 .当B收到A的确认后,也进入 ESTAB_LISHED 状态。

    四、理解tcp链接

    一般都说TCP 是长连接 ,但这个连接是 真实存在的吗。不是的。

    这个连接只是操作系统维护的一个状态机。通过两台计算机直接通过报文交互来改变这个状态值。并不是正真的有真实的链路存在。

    每次两台机器直接的通信 中间通过的节点可能都是不一样的,是动态选择的。

    所以 ,

    服务器端 TCP 连接的数量 受到内存大小的影响,每建立一个连接都要分配一块内存区域来维护这个‘连接’。

    以上就是关于TCP连接相关问题的回答。希望能帮到你,如有更多相关问题,您也可以联系我们的客服进行咨询,客服也会为您讲解更多精彩的知识和内容。


    推荐阅读:

    itchat文件传输助手(文件传输助手app)

    scratch怎么复制(scratch怎么复制代码)

    替代itchat(替代效应)

    广东温泉小镇民宿景观设计(广东温泉小镇民宿景观设计理念)

    日照喜来登酒店景观设计(日照喜来登酒店照片)