TCP传输层协议 特性

客户A和服务器B都处于建立连接的状态,此时客户A主动与服务器B发出断开连接的请求: 第一步:客户A会发送一个序号为Seq=u的报文给服务器B,此时控制位中的断开位FIN=1,即请求与服务器B断开连接。(PS:此时客户A处于等待断开连接的状态,服务器B的数据传送未结束)

第二步:服务器B需要先将数据传输全部传输结束才能同意断开连接,服务器B会进行下面两步操作:

2.2 服务器B会回复一个报文序号为v的报文给客户A(Seq=1)

需要客户A能回复一个报文序号为u+1的报文给服务器B(确认号ack-u+1)

此时服务器B与客户A仍处于建立连接的状态所以控制位的确认位ACK=1

2.3 服务器B同意了客户A的断开连接请求:服务器B会回复一个同意断开连接的报文:

服务器B发出的报文的序号为w(Seq=w)

需要客户A回复一个报文序号为u+1的报文给服务器B(Ack=u+1)

此时的控制位中,断开位FIN=1,确认位ACK=1(2个控制位表示同意断开连接)

第三步:客户A接收完服务器传输的数据后,收到了服务器B的同意断开连接请求,这个时候客户A会发送一个确认报文给服务器B:

按照服务器B要求,客户A回复了一个报文序号为u+1的报文给服务器B(Seq=u+1)

控制位中确认位为1(ACK=1)

需要服务器B回复客户A一个报文序号为w+1的报文给客户A(此时客户A与服务器相当于完全断开连接,所以客户A最后发送的报文将会被服务器B拒收,服务器B将不再回复客户A)

Original: https://www.cnblogs.com/fengxia6/p/16661795.html
Author: 风夏呀
Title: TCP传输层协议 特性

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/577792/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 【Example】C++ 模板概念讲解及编译避坑

    C++ 不同于 Java,它没有标准的 Object 类型。也就意味着 C++ 并不存在完整的泛型编程概念。 为什么不存在完整的泛型编程概念,放到最后一个例子讲,先讲 &#8220…

    Linux 2023年6月13日
    092
  • Django Model 如何返回空的 QuerySet

    >>> from django.contrib.auth.models import User >>> User.objects.none() …

    Linux 2023年6月7日
    094
  • 一道诡异的考试题

    题目: 给定$a$张黑牌,$b$白牌,甲,乙两人按以下顺序抽牌: 甲抽一张,乙抽一张,然后弃去一张,然后重复以上过程。 先抽到黑牌者胜,求甲和乙获胜的概率$mod 10045358…

    Linux 2023年6月6日
    093
  • [20210917]ssh: error while loading shared libraries: libcrypto.so.1.0.0.txt

    [20210917]ssh: error while loading shared libraries: libcrypto.so.1.0.0.txt –//以后写一些…

    Linux 2023年5月27日
    0137
  • 十一、服务介绍及端口

    服务管理简介服务器的作用主要是什么?主要是通过网络来提供服务,比如apache提供一个web服务,mysql提供一个数据库服务,dns提供一个域名解析服务,ftp提供一个文件服务器…

    Linux 2023年6月7日
    0112
  • 四、vi/vim编辑器

    vi/vim 模式命令模式编辑模式末行模式home键 行首end键 行尾命令模式切换到编辑模式a 当前字符后输入A 当前行行尾输入i 当前字符前输入I 当前行行首输入o 当前行下一…

    Linux 2023年6月7日
    0113
  • Jmeter 使用Json提取请求数据-2

    在接口测试中有一个这样的场景:业务接口需要用到登录token;下个接口需要用到前个接口返回值作为参数,该怎么实现? 首先先看下登录、业务接口,本文用的jmeter版本为5.4.1 …

    Linux 2023年6月8日
    0106
  • [ Skill ] load 函数优化,识别相对路径

    在 cds.lib 文件中定义库的路径,为了规范管理库的定义,经常这样做: $ tree . |– cds.lib ——————- cat –> …

    Linux 2023年6月7日
    0104
  • 嵌入式软件架构设计-程序分层

    1 前言 在嵌入式MCU软件开发过程中,程序分层设计也是重中之重,关系到整个软件开发过程中的协同开发,降低系统软件的复杂度(复杂问题分解)和依赖关系、同时有利于标准化,便于管理各层…

    Linux 2023年6月7日
    0150
  • 解决requests.exceptions.SSLError:HTTPSConnectionPool

    解决requests.exceptions.SSLError:HTTPSConnectionPool 方案一 只要安装一下几个requests依赖包就可以解决此问题 pip ins…

    Linux 2023年6月14日
    098
  • 怎么用vscode创建工程

    以下内容为本人的学习笔记,如需要转载,请声明原文链接微信公众号「englyf」 https://mp.weixin.qq.com/s/x2OXMTaLlxb_Os7NDHrKsg …

    Linux 2023年6月6日
    0116
  • SpringBoot的文件上传&下载

    前言:不多BB直接上代码 文件上传 pom依赖添加commons-io <!– 上传/下载jar https://mvnrepository.com/artifact/co…

    Linux 2023年6月14日
    0108
  • 用户相关命令

    关机重启命令均需要root权限执行 su username: 切换用户,不带任何参数会进入root;低权限用户切换高权限用户需要输入密码 logout: 只能在shell上使用,不…

    Linux 2023年6月6日
    0140
  • [转帖]bash shell学习之变量

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    Linux 2023年5月28日
    095
  • PHP array_reduce()

    array_reduce array_reduce() 将回调函数 callback 迭代地作用到 array 数组中的每一个单元中,从而将数组简化为单一的值。 示例一: 示例二:…

    Linux 2023年6月7日
    0119
  • 2017年腾讯 秋招软件开发笔试编程题回忆版

    2017 年腾讯 秋招软件开发笔试编程题回忆版 (所有题目大致描述如下,并非完整的题目回忆,但意思大致一样) 1、又一个魔法城市,城市里面有n个魔法城堡,序号为0,1,2。。。n-…

    Linux 2023年6月6日
    0101
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球