• TCP数据报结构分析(面试重点)


    传输层中有UDP和TCP两个重要的协议,下面将针对TCP数据报的结构进行分析

    关于UDP数据报的结构分析推荐看UDP数据报结构分析(面试重点)

    TCP结构图示

    TCP报头结构的分析

            一.16位源端口号

            源端口表示发送数据时,发送方的端口号,由于占16位2个字节,所以取值范围是0-65535,所以一个合法的端口号,有效范围就是0-65535不能再大了(实际上0是不使用的),

     知名端口号
                            在1-1024这个范围的端口号,系统赋予了特定的含义,一般也不建议使用,这些端口号已经给一些名气比较大的服务器提前安排好了(坐飞机的头等舱一样)

            二.16位目的端口号

            目的端口号表示发送数据时,接收方的端口号,其余的特点和源端口号相同

            三.32位序号

            维持TCP可靠性的结构,序号表示在网络传输数据时,第一个字节的序号,引入了序号的概念,在进行网络传输数据时,知道了传输数据的第一个字节的序号,已经传输数据的长度,便知道了传输的数据中每一个字节的序号(TCP将每个字节的数据都进行了编号,即为序列号)

            四.32位确认序号

            维持TCP可靠性的结构,确认序号表示的是接收方接收到网络传输的数据后,最后一个字节的序号再加1,就表示在这个序号之前的数据都成功接收到了,而在这个序号之后的数据没有接收到。

            当接收到数据了以后,得到了确认序号,确认序号将作为应答报文传递给发送方,发送方能根据确认序号判断数据有没有被成功发送(确认应答),要是没有被成功发送的话就要进行重发(这就体现了TCP协议的可靠性确认应答是TCP保证可靠性的最核心机制

            五.4位首部长度

            首部长度表示的是TCP报头的长度,TCP报头是变长的,4bit表示的范围是0-15,要是单位是字节的话很明显是不够TCP报头所占用的长度的,所以这里的单位是4字节,0-60才是真正的TCP报头的取值范围

            TCP报头的变长性体现在选项这个结构上,选项可以没有,也可以有多个,所以正确来说,TCP报头最小占20个字节,最多占60个字节

            保留6位

            保留6位应该是吸取了UDP有长度限制的教训,因为当前我们用4位首部长度来表示TCP数据报报头的长度已经够用了,但不一定未来会够用,所以这里保留6位,就是给未来留下了可以升级和扩展的空间

            六.6个标志位

            这6个标志位表示当前信息的类别

            七.16位窗口大小

            这个字段,只是对ACK应答报文有意义,这个数字就表示了当前接收方缓冲区的剩余空间大小,这个数字返回给发送方,发送方就知道下一轮发送多少数据,接收方才处理得过来,所以可以作为发送方下一轮发送的依据。

            八.16位校验和

            TCP中的校验和与UDP中的校验和作用相同,在发送方计算一下发送的二进制数据的总和(校验和),然后将二进制数据已经计算的校验和一起发送给接收方,接收方接收到数据以后再根据接收到的二进制数据计算一次总和(新校验和),将接收到的校验和与新校验和进行比较,要是相同就表明接收到的数据正确,要是不同就表示错误

            九.选项

            TCP中提供了很多选项来进行一些特殊操作,比如扩充TCP报头的长度,这里就不一一介绍了

            十.数据

            数据就是要传递信息的具体内容,这里才是具体要传输的数据,之前的结构都是TCP报头的结构

            

            

            

  • 相关阅读:
    行内元素有哪些,块级元素呢? 空元素有哪些呢?
    3D激光SLAM:LeGO-LOAM论文解读---点云分割部分
    计控实验(三)——最少拍控制器
    odoo14 生成PDF报表详解
    人机混合智能中跨域机理的研究
    Git学习
    JavaEE之Cookie 和 Session 的工作流程
    R语言biopsy 数据集数据分析 报告
    图纸管理制度《四》
    《工程伦理与学术道德》之《工程师的职业伦理》
  • 原文地址:https://blog.csdn.net/q322359/article/details/132320915