0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

TCP头部格式是什么

麦辣鸡腿堡 来源:盼盼编程 作者:盼盼编程 2023-10-08 16:45 次阅读

在学习 TCP 连接之前,还要学习一下 TCP 头部格式。因为 TCP 连接建立,需要用 TCP 包来交换和管理数据,下面看一下 TCP头部格式。

图片

TCP 头部里每个字段都为管理 TCP 连接和控制数据流起了重要作用。

16 位端口号:告知主机该报文段是来自哪里(源端口)以及传给哪个上层协议或应用程序(目的端口)的。

进行 TCP 通信时,客户端通常使用系统自动选择的临时端口号,而服务器则使用知名服务端口号。所有知名服务使用的端口号都定义在/etc/services 文件中。

32 位序号(sequence number):一次 TCP 通信(从 TCP 连接建立到断开)过程中个传输方向上的字节流的每个字节的编号。

32 位确认号(acknowledgement number):用作对另一方发送来的 TCP 报文段的响应其值是收到的 TCP 报文段的序号值加1。

4 位头部长度(header length):标识该 TCP 头部有多少个 32bit ( 4 Byte 因为最大能表示 15 ,所以 TCP头部最长是 60 Byte。

6 位标志位包含如下几项:

URG 标志,表示紧急指针是否有效。

ACK 标志,表示确认号是否有效,一般称携带 ACK 标志的 TCP 报文段为“确认报文段”。

PSH 标志,提示接收端应用程序应该立即从 TCP 接收缓冲区中读走数据,为接收后续数据腾出空间(如果应用程序不将接收到的数据读走,它们就会直停留在TCP 接收缓冲区中)。

RST 标志,表示要求对方重新建立连接,一般称携带 RST 标志的 TCP 报文段为“复位报文段”。

SYN 标志,表示请求建立 个连接,一般称携带 SYN 标志的 TCP 报文段为“同步报文段”。FIN 标志,表示通知对方本端要关闭连接了,一般称携带FIN 标志的 TCP 报文段为“结束报文段”。

16 位窗口大小(window size):是 TCP 流量控制的一个手段。这里说的窗口,指的是接收通告窗口( Receiver Window,RWND)。它告诉对方本端的 TCP 接收缓冲区还能容纳多少字节的数据,这样方就可以控制发送数据的速度。

16 位校验和(TCP checksum):由发送端填充,接收端对 TCP 报文段执行 CRC 算法,以检验 TCP 报文段在传输过程中是否损坏。注意,这个校验不仅包括 TCP 头部,也包括数据部分。这也是 TCP 可靠传输的一个重要保障。

16 位紧急指针(urgent pointer):是一个正的偏移量。它和序号字段的值相加表示最后一个紧急数据的下一字节的序号。确切地说,这个字段是紧急指针相对当前序号的偏移,不妨称之为“紧急偏移”。TCP 的紧急指针是发送端向接收端发送紧急数据的方法。

综上,你需要注意如下几点:

TCP 的包是没有 IP 地址的,那是 IP 层上的事,但是有源端口和目的端口。

一个TCP 连接需要四元组( src_ip,src_port,dst_ip,dst_port )来表示是同一个连接 准确说是五元组,还有一个是协议但因为这里只是强调 TCP 协议,所以,只说四元组。

图片

Sequence Number 是包的序号,用来解决网络包乱序(reordering )问题。

Acknowledgement Number 就是 ACK ,用于确认收到,用来解决不丢包的问题。

Window Advertised Window ,也就是著名 的滑动窗口 Sliding Window ),用于解决流量控制问题。

TCP Flag ,也就是包的类型,主要是用于操控 TCP 的状态机的。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 通信
    +关注

    关注

    18

    文章

    5706

    浏览量

    134405
  • 网络
    +关注

    关注

    14

    文章

    7251

    浏览量

    87445
  • TCP
    TCP
    +关注

    关注

    8

    文章

    1272

    浏览量

    78301
  • 接收端
    +关注

    关注

    0

    文章

    19

    浏览量

    8420
收藏 人收藏

    评论

    相关推荐

    TCP协议如何优化

    Control Protocol / Internet Protocol) TCP传输控制协议指一种面向连接的、可靠的、基于字节流的传输层通信协议。 下面我们会先回顾一下其报文格式,三次握手,四次挥手
    的头像 发表于 10-08 15:15 831次阅读
    <b class='flag-5'>TCP</b>协议如何优化

    TCP协议详细解析

    TCPTCP/IP协议族中一个最核心的协议,它向下使用网络层IP协议,向上为应用层HTTP、FTP、SMTP、POP3、SSH、Telnet等协议提供支持。本文给出TCP报文格式的详
    的头像 发表于 11-03 09:14 1748次阅读
    <b class='flag-5'>TCP</b>协议详细解析

    大侠 求助啊 关于TCP模块中的数据格式

    最近想要使用tcp模块与下位机通讯,但是发现tcp模块收发数据都只能是字符串格式的。那这样一来的话我发数据到下位机的时候 下位机接受到的是数据字符的ASCII码值。 这该怎么解决啊 ?
    发表于 06-27 20:59

    图中的箭头部分是什么意思

    图中的箭头部分是什么意思
    发表于 12-11 18:36

    请问SIM800C AT HTTP和ONENET提交数据的head头部怎么处理?

    采用 官方的 推荐的测试工具 fiddler测试API已经测试成功,数据成功提交,也返回了 结果正确的响应;但是在SIM800C 中 如果 用 AT HTTP的方式 好像是 没有 填充 头部head
    发表于 05-07 02:46

    labview采用TCP传输数据时转化字符串的编码格式是哪种?

    labview采用TCP传输数据,需要先进行字符串转化,平化或者强制转换,请问转换的字符串采用哪种编码格式:ASCII、GBK、Unicode、UTF-8。网上查资料有两种观点:(1)默认情况下
    发表于 08-22 13:35

    tcp报文格式详解

    TCP(Transmission ControProtocol)传输控制协议是一种面向连接的、可靠的、基于字节流的传输层协议。TCP报文是TCP层传输的数据单元,也称为报文段。
    发表于 12-08 11:11 3.2w次阅读
    <b class='flag-5'>tcp</b>报文<b class='flag-5'>格式</b>详解

    TCP IP相关知识的详细资料说明免费下载

    本文档的主要内容详细介绍的是TCP IP相关知识的详细资料说明免费下载。主要内容包括了:TCP报文格式TCP通信过程,ICMP协议。
    发表于 12-05 11:19 19次下载
    <b class='flag-5'>TCP</b> IP相关知识的详细资料说明免费下载

    tcp和udp协议的异同

    。UDP 校验和则是包含 UDP 首部和数据在内的校验结果。 TCP协议 TCP协议基于网络层的 IP 协议提供的是有连接、可靠服务,是基于字节流的。TCP协议包括了超时重传、流量控制、差错控制等服务。
    的头像 发表于 11-12 14:45 3645次阅读
    <b class='flag-5'>tcp</b>和udp协议的异同

    tcp数据包接口封装的介绍

    TCP报文格式 TCP协议有着自己的数据包格式,这里把TCP的数据包称为报文段(segment),TCP
    的头像 发表于 03-22 09:39 2984次阅读
    <b class='flag-5'>tcp</b>数据包接口封装的介绍

    基于集成PN接口的Modbus TCP通讯概述

    Modbus数据在TCP/IP以太网上传输,支持Ethernet II和802.3两种帧格式,Modbus TCP数据帧包含报文头、功能代码和数据3部分,MBAP报文头(Modbus Application Protocol)分
    的头像 发表于 03-09 17:55 4698次阅读

    详解TCP报文的头部结构

    可以看成是一种字节流,它会处理IP层或以下的层的丢包、重复以及错误问题。在连接的建立过程中,双方需要交换一些连接的参数。这些参数可以放在TCP头部。一个TCP连接由一个4元组构成,分别是两个IP地址
    的头像 发表于 05-05 15:08 5749次阅读

    如何解释TCP报文的内容

    TCP协议有着自己的数据包格式,这里把TCP的数据包称为报文段(segment),TCP报文段封装在IP数据报中发送,TCP报文段由
    的头像 发表于 08-31 09:12 2104次阅读

    TCP 协议深度解析

    头部信息,此处是 TCP 协议 Hypertext Transfer Protocol:应用层 HTTP 的信息 网络分层 应用层(Application Layer) 应用层的本质是规定了应用程序之间如何相互传递报文, 以
    的头像 发表于 11-09 11:19 387次阅读
    <b class='flag-5'>TCP</b> 协议深度解析

    关于TCP协议总结的硬核干货

    本文给出TCP报文格式的详细说明,介绍网络数据包传递中如何进行地址解析、建立TCP连接的三次握手过程以及断开TCP连接的四次挥手过程。
    发表于 11-17 09:26 237次阅读
    关于<b class='flag-5'>TCP</b>协议总结的硬核干货