TCP-报文格式


本文整理自《TCP-IP详解》

1. TCP报文格式

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

  • 端口号
    每个T C P段都包含源端和目的端的端口号,用于寻找发端和收端应用进程

  • 32位序号
    序号是32 bit的无符号数,序号到达23 2-1后又从0开始。字节流的字节计数器

  • 32位确认序号
          既然每个传输的字节都被计数,确认序号包含发送确认的一端所期望收到的下一个序号。因此,确认序号应当是上次已成功收到数据字节序号加1。只有A C K标志(下面介绍)为1时确认序号字段才有效。
          T C P为应用层提供全双工服务。这意味数据能在两个方向上独立地进行传输。因此,连接的每一端必须保持每个方向上的传输数据序号。
    确认过程
    T C P可以表述为一个没有选择确认或否认的滑动窗口协议。我们说T C P缺少选择确认是因为T C P首部中的确认序号表示发方已成功收到字节,但还不包含确认序号所指的字节。当前还无法对数据流中选定的部分进行确认。
          例如,如果1~1 0 2 4字节已经成功收到,下一报文段中包含序号从2 0 4 9~3 0 7 2的字节,收端并不能确认这个新的报文段。它所能做的就是发回一个确认序号为1 0 2 5的A C K。它也无法对一个报文段进行否认。例如,如果收到包含1 0 2 5~2 0 4 8字节的报文段,但它的检验和错, T C P接收端所能做的就是发回一个确认序号为1 0 2 5的A C K。

  • 4位首部长度
    首部长度给出首部中32 bit字的数目。需要这个值是因为任选字段的长度是可变的。这个字段占4 bit,因此T C P最多有6 0字节的首部。然而,没有任选字段,正常的长度是2 0字节

  • 6个标志比特。它们中的多个可同时被设置为1
    U R G 紧急指针
    A C K 确认序号有效。
    P S H 接收方应该尽快将这个报文段交给应用层。
    R S T 重建连接。
    S Y N 同步序号用来发起一个连接。
    F I N 发端完成发送任务。

  • 16位窗口大小
    T C P的流量控制由连接的每一端通过声明的窗口大小来提供。窗口大小为字节数,起始于确认序号字段指明的值,这个值是接收端正期望接收的字节。窗口大小是一个16 bit字段,因而窗口大小最大为6 5 5 3 5字节。在2 4 . 4节我们将看到新的窗口刻度选项,它允许这个值按比例变化以提供更大的窗口。

  • 16位检验和
    检验和覆盖了整个的T C P报文段:
    T C P首部和T C P数据。这是一个强制性的字段,一定是由发端计算和存储,并由收端进行验证。T C P检验和的计算和U D P检验和的计算相似

  • 16位紧急指针
    只有当U R G标志置1时紧急指针才有效。紧急指针是一个正的偏移量,和序号字段中的值相加表示紧急数据最后一个字节的序号。T C P的紧急方式是发送端向另一端发送紧急数据的
    一种方式

  • TCP选项
    最常见的可选字段是最长报文大小,又称为MSS (Maximum Segment Size)。每个连接方通常都在通信的第一个报文段(为建立连接而设置S Y N标志的那个段)中指明这个选项。它指明本端所能接收的最大长度的报文段。

2. TCP/UDP 报文格式对比

结合下图:
TCP 和 UDP 都是端口到端口的通信协议,并且和IP协议组合!
区别:
TCP头部比UDP头部要复杂的多,这是因为TCP需要保证数据传输的可靠性以及性能:拥塞控制,流量控制,错误纠正,有序传输

UDP封装
在这里插入图片描述
UDP首部
在这里插入图片描述

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

  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值