• 第07-5章 传输层详解


    7.1 传输层概述

    • 分段及封装应用层送来的数据:应用层以字节流的形式给传输层传输数据,传输层会把字节流分段,并给每段封装
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
      由应用程序产生应用进程,由应用进程产生进程端口号,由端口号提供相应的服务
      在这里插入图片描述
      在这里插入图片描述
      如何查看本机端口号:用netstat
      在这里插入图片描述

    7.2 TCP详解

    7.2.1 TCP发送缓存,接受缓存及报文段详解

    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    • 应用层以字节的形式向传输层发送数据
    • TCP发送进程以字节流的形式传递数据,而接收进程也把数据作为字节流来接收,类似于假想的管道
    • UDP发送进程发送的数据报文都是独立的,因此UDP不是面向字节流的协议
    • 缓存:数据流向的每一个方向上都有两种缓存:发送缓存、接收缓存
      在传输层向IP层发送数据时要以分组为单位,而不是按字节流来发送,TCP协议把若干字节构成一个分组,我们可以把这样的分组称为报文段(segment),这种报文段不一定都一样长,可以是几个字节,也可以是几千个字节

    7.2.2 TCP中的字节号和序号详解

    在这里插入图片描述
    字节号:
            以字节为单位
            字节号的定义范围:0到(2^32-1)
            编号机制:随机
            举例:假如随机号正好是1057,而要发送6000个字节,那么字节编号范围是:1057到7056
    序号:
            以字节为基础,TCP给每一个报文段指派一个序号
            每个报文段的序号就是在这个报文段中第一个字节数据的序号
            举例:
            比如TCP要传输6000个字节的文件,第一个字节的编号是10001,如果数据用5次来发送,前4个报文段各携带1000字节的数据,最后一个报文段携带2000字节的数据:
                    报文段1—>序号:10001 (字节号范围:10001到11000)
                    报文段2—>序号:11001 (字节号范围:11001到12000)
                    报文段3—>序号:12001 (字节号范围:12001到13000)
                    报文段4—>序号:13001 (字节号范围:13001到14000)
                    报文段5—>序号:14001 (字节号范围:14001到16000)

    7.2.3 TCP中的报文段格式详解

    在这里插入图片描述
    在这里插入图片描述

    • 补充:源端口是随机的,为动态端口(短暂端口)49152到65535
      目的端口为熟知端口(著名端口)为0到1023

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    • RST为1的三种情况:a、拒绝连接请求;b、异常终止连接;c、终止空闲连接;

    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    • 伪首部指的是IP地址
    • 检验和是TCP的必须内容,是UDP的可选内容

    在这里插入图片描述

    • Ctrl+c就是紧急指针的内容同时URG为1;

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    普通情况下此关系成立,在以太网中MTU为1500字节,由硬件决定

    在这里插入图片描述

  • 相关阅读:
    【Java基础夯实】我消化后的ThreadLocal是怎样的?
    科创人·优艾智合创始人张朝辉:死磕细分行业Know-How,中国制造将引领全球移动机器人市场
    无涯教程-JavaScript - BIN2HEX函数
    MVVM项目开发(商品管理系统二)
    基于java web技术的班级同学录网站-计算机毕业设计
    从零搭建开发脚手架 注意System.currentTimeMillis()和System.nanoTime()的选择
    【牛客编程题】GO语言入门46题
    Office 2016、2019 解决“你的 Office 许可证有问题”
    AndroidAuto PCTS A118解决杂音问题
    (十三)【Jmeter】线程(Threads(Users))之tearDown 线程组
  • 原文地址:https://blog.csdn.net/weixin_40290845/article/details/138137628