TCP数据包格式(tcp协议报文格式)

要想对TCP有着较为详细的了解的话,那TCP的包格式是一定要了解,有了结构的清楚认识才能真正的理解它的工作过程和各种机制的原理,以下就是TCP的结构图:TCP数据包可分为TCP包头和来自应用层的数据两部分TCP段格式中间的标志位就是用于协议的一些机制的实现的比特位大家可以看到有6比特,它们依次如下:    URG、ACK、PSH、RST、SYN、FIN。

大家好,又见面了,我是你们的朋友全栈君。

TCP数据包格式:

要想对TCP有着较为详细的了解的话,那TCP的包格式是一定要了解,有了结构的清楚认识才能真正的理解它的工作过程和各种机制的原理,以下就是TCP的结构图:

TCP数据包格式(tcp协议报文格式)



TCP数据包可分为TCP包头和来自应用层的数据两部分




TCP段格式




中间的标志位就是用于协议的一些机制的实现的比特位大家可以看到有6比特,它们依次如下:




     URG、ACK、PSH、RST、SYN、FIN。




     URG表示紧急指针字段有效;




     ACK置位表示确认号字段有效;




     PSH表示当前报文需要请求推(push)操作;




     RST置位表示复位TCP连接;




     SYN用于建立TCP连接时同步序号;




     FIN用于释放TCP连接时标识发送方比特流结束。




源端口和目的端口
:各为16比特,用于表示应用层的连接。源端口表示产生数据包的应用层进程,而目的端口则表示数据包所要到达的目的进程。




序列号
:为32比特,表示数据流中的字节数。序列号为首字节在整个数据流中的位置。初始序列号随机产生,并在连接建立阶段予以同步。




确认号
:表示序号为确认号减去1的数据包及其以前的所有数据包已经正确接收,也就是说他相当于下一个准备接收的字节的序号。




头部信息
:4比特,用于指示数据起始位置。由于TCP包头中可选项的长度可变,因此整个包头的长度不固定。如果没有附加字段,则TCP数据包基本长度为20字节。




窗口
:16位,表示源端主机在请求接收端等待确认之前需要接收的字节数。它用于流量控制,窗口大小根据网络拥塞情况和资源可用性进行增减。




校验位
:16位。用于检查TCP数据包头和数据的一致性。




紧急指针
:16位。当URG码有效时只向紧急数据字节。



可选项:存在时表示TCP包头后还有另外的4字节数据。TCP常用的选项为最大数据包(并非整个TCP报文)MSS。每一个TCP段都包含一个固定的20字节的段头。TCP段头由20字节固定头和一些可选项组成。实际数据部分最多可以有65495(65535-20-20=65495)字节。

转载:http://blog.chinaunix.net/uid-26495963-id-3284813.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/127986.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • openCV人脸识别简单案例[通俗易懂]

    openCV人脸识别简单案例[通俗易懂]1基础我们使用机器学习的方法完成人脸检测,首先需要大量的正样本图像(面部图像)和负样本图像(不含面部的图像)来训练分类器。我们需要从其中提取特征。下图中的Haar特征会被使用,就像我们的卷积核,每一个特征是一个值,这个值等于黑色矩形中的像素值之后减去白色矩形中的像素值之和。Haar特征值反映了图像的灰度变化情况。例如:脸部的一些特征能由矩形特征简单的描述,眼睛要比脸颊颜色要深,鼻梁两侧比鼻梁颜色要深,嘴巴比周围颜色要深等。Haar特征可用于于图像任意位置,大小也可以任意改变,所以矩形特征值是

    2022年5月28日
    46
  • SQL Server 存储过程_mysql存储过程教程

    SQL Server 存储过程_mysql存储过程教程储过程Procedure是一组为了完成特定功能的SQL语句集合,经编译后存储在数据库中,用户通过指定存储过程的名称并给出参数来执行。

    2022年10月5日
    0
  • Java工程师定位「建议收藏」

    Java工程师定位「建议收藏」Java工程师定位

    2022年4月22日
    37
  • MATLAB GUI图形界面设计一个学生管理系统

    MATLAB GUI图形界面设计一个学生管理系统设计一个简单的学生成绩管理程序,包含如下功能:1、可创建不少于100名学生成员;2、每名成员的记录包括:学号、姓名、专业和5门课程的成绩; 3、能够实现添加、删除、修改学生成员;(增加非法字符警告)4、能够实现添加、删除、修改学生成员的课程成绩;(增加非法字符警告)5、分别计算每一门课程的平均成绩;6、每一门课程单独排序,输出由高到低的课程、姓名、成绩信息。7、提供图形界面实现上述功能,界面包含 系统登录界面 添加、删除、修改界面 被选中学生信息显示界面(基本信息,课程成绩,平均成

    2022年5月25日
    43
  • lspci命令详解无网卡信息_linux系统安装图形化界面

    lspci命令详解无网卡信息_linux系统安装图形化界面说明:lspci 是一个用来显示系统中所有PCI总线设备或连接到该总线上的所有设备的工具。参数:-v使得lspci以冗余模式显示所有设备的详细信息。-vv使得lspci以过冗余模式显示更详细的信息(事实上是PCI设备能给出的所有东西)。这些数据的确切意义没有在此手册页中解释,如果你想知道更多,请参照/usr/include/linux/pci.h或者P

    2022年9月10日
    0
  • com组件接口_com组件特点

    com组件接口_com组件特点int main( int argc, char *argv[] ){cout << "Ini

    2022年8月5日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号