zoukankan      html  css  js  c++  java
  • 计算机网络TCP“三次握手”

    终于有时间写这篇文章了,最近真的比较忙!

    TCP协议  三次握手

      引言:我们知道,TCP是面向连接的协议(相较于UDP无连接的协议),会在传送数据之前先在 发送端 & 接收端 之间建立一条连接,所以实现了可靠传输。而运输链接是用来传送TCP报文的。TCP运输连接的建立,是面向连接的通信协议传送数据之前必需的一个步骤。

     一次传输涉及到三个步骤:

    • 建立连接(本篇所涉及)
    • 传送数据
    • 释放连接

      在建立连接时,有趣的“三次握手”就粉墨登场了。

      所谓三次握手,其实是发送端&接收端在传送数据之前的 一次握手,发送了三次报文而已。下面具体说明连接建立(握手)的过程。

      Notice:发送端以及接收端 通常指 客户端和它所请求的服务器,书上一般是这样写的,但这里我还是采用 发送端&接收端 来叙述。

      在传送之初,发送端进程(应用层) 先创建传输控制块(Transmission Control Block, TCB)。当要向某端发送数据(TCP报文段)时:

    发送端:--------------------1

      发出连接请求报文段(规定不能携带数据,但要消耗序号,以便识别应答报文段)先将报文段首部的 同步位SYN = 1, 并选择一个初始序号 seq = x, 发出此报文段(发送端口&目的端口等也要设置好),进入 SYN-SENT(同步请求已发送)状态。

    接收端:(此前一直处于Liscen 侦听状态,就像服务器一样)----------------------2

      收到连接请求报文段后,若同意连接(就像服务器允许访问,不允许就返回错误码),向发送端 发送确认连接报文段:同样 同步位SYN = 1,确认位 ACK = 1(表明确认报文段有效/这是有效回答报文段), 同样需要选择报文序号 seq = y, 应答号ack = x+1(表明是对序号x的请求报文段的确认应答),向原发送端发出此报文段(端口要绑定好),进入SYN-RCVD(同步接受)状态。

    发送端:--------------------3

      收到确认连接报文段后,再次向接收端给出确认(Why?后续文章会解释):已经达到了同步,于是此报文段就不再需要SYN,直接 确认ACK = 1 seq = x+1ack = y+1,发送报文段。发送端进入ESTABLISHED(运输连接已建立)状态。

    接收端

      收到发送端的确认后,进入ESTABLISHED(运输连接已建立)状态。(未发送报文,不算在内)

      传送数据......

      释放连接......(后面文章)。

      其实,在我看来,“三次握手”即“三报文握手”,就像是 表白 一样。下面是有趣的理解:

    “三次握手”------表白版

    男生:---------------------1

      “小姐姐, 我喜欢你, 你喜欢我吗?”  SYN=1, seq=x                进入表白发送完成状态

    漂亮姐姐: --------------2

      (如果同意)“啊!是吗!我也喜欢你呢!”  SYN=1, ACK=1, seq=y, ack=x+1   进入表白接受状态

    男生:---------------------3

      “那小姐姐以后就是我的啦!” ACK=1, seq=x+1, ack=y+1            进入恋爱状态

    漂亮姐姐:进入恋爱状态。

  • 相关阅读:
    Chandy-Lamport_algorithm
    3 differences between Savepoints and Checkpoints in Apache Flink
    列数 行数 表数 限制
    数据收集、传输、元数据管理、作业流调度、海量数据查询引擎、数据可视化
    分析云负载均衡产品
    端口被占用通过域名的处理 把www.domain.com均衡到本机不同的端口 反向代理 隐藏端口 Nginx做非80端口转发 搭建nginx反向代理用做内网域名转发 location 规则
    JSON Web Token
    查看开启端口的应用
    If the parts of an organization (e.g., teams, departments, or subdivisions) do not closely reflect the essential parts of the product, or if the relationship between organizations do not reflect the r
    微服务架构的理论基础
  • 原文地址:https://www.cnblogs.com/yocichen/p/9937590.html
Copyright © 2011-2022 走看看