传输层——TCP报文头介绍

2023-11-05

16位源端口号

16位目的端口号

32位序列号

32位确认序列号

4位头部长度

保留6位

U

R

G

A

C

K

P

S

H

R

S

T

S

Y

N

F

I

N

16位窗口大小

16位检验和

16位紧急指针

可选项

数据

源端口:  长度为16位,2个字节。

目的端口:  长度为16位,2个字节。

    IP实现了点到点的数据通信,而TCP实现的是端到端的通信。

    通信端用一个IP与端口号来唯一标识。(其实端口号就是用来标识同一主机中的不同进程。)

    IP协议负责将数据传输到目标主机,而TCP可以根据数据报中的端口号,将数据交给相应的程序进行处理。

序列号: 长度32位,4个字节。

确认序列号:长度32位,4个字节。

头部长度:该字段占用4位,用来表示报文首部的长度,单位是4Byte。如:headLen = ((packet[12]>>4)&0x0F)*4;

预留6位:长度为6位,作为保留字段,暂时没有什么用处。

URG:长1位,表示紧急指针字段有效;

ACK:长1位,置位表示确认号字段有效;

PSH:长1位,表示当前报文需要请求推(push)操作;

RST:长1位,置位表示复位TCP连接;

SYN:长1位,用于建立TCP连接时同步序号;

FIN:长1位,用于释放TCP连接时标识发送方比特流结束;

    ————该6位字段,理解不深,留作日后研究???

窗口大小:长度为16位,2个字节。

校验和:长度为16位,2个字节。

紧急指针:长度为16位,2个字节。

以上是TCP包头必须要有的字段,也称固有字段,长度为20个字节。

可选项:此项是可选项(可有可无),解包时得具体分析(是TCP包头的一部分)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

传输层——TCP报文头介绍 的相关文章

随机推荐

  • Linux_8_磁盘存储和文件系统

    1 磁盘结构 1 1 设备文件 一切皆文件 open read write close 设备文件 关联至一个设备驱动程序 进而能够跟与之对应硬件设备进行通信 设备号码 主设备号 major number 标识设备类型 次设备号 minor
  • A*寻路算法浅析

    最近刚接触A 寻路算法 听说是一种比较高效的自动寻路的算法 当然 事实也正是如此 这么好的东西 自然是要收入囊中的 说不定什么时候也能派上用场呢 为了学习这个 也是上网找了好多资料 看了好多博客 但是貌似有些关键点没有具体说明 所以自己也是
  • understand - 笔记

    术语 Terminology Architecture 层级 An architecture is a hierarchical aggregation of source code units entities An architectu
  • 用vb语言编写一个抄底的源代码程序实例

    以下是一个基于通达信软件编写的简单抄底源代码程序 用于自动识别股票的底部形态并发出买入信号 vbs 复制 导入通达信软件自带的股票数据接口 Dim TdxApi Set TdxApi CreateObject TdxApi TdxLocal
  • Winform自定义控件 —— 指示灯

    在开始阅读本文之前 如果您有学习创建自定义控件库并在其他项目中引用的需求 请参考 在Visual Studio中创建自定义Winform控件库并在其他解决方案中引用https blog csdn net YMGogre article de
  • Rx Java 异步编程框架

    Rx Java 文章目录 Rx Java 名词定义 举个例子 基本概念 Backpressure Upstream Downstream Objects in motion Assembly time Subscription time R
  • Cocos2d-x使用Luajit将Lua脚本编译为bytecode,从而实现加密

    项目要求对lua脚本进行加密 查了一下相关的资料 得知lua本身可以使用luac将脚本编译为字节码 bytecode 从而实现加密 试了一下 确实可行 下面是使用原生的lua解释器编译字节码 1 新建一个名为1 lua的文件 里面只有一句话
  • 带宽与码元的关系_带宽、速率(波特率、比特率)和码元宽度简述

    首先弄清楚带宽和速率的关系 信道带宽与数据传输速率的关系可以奈奎斯特 Nyquist 准则与香农 Shanon 定律描述 奈奎斯特准则指出 如果间隔为 2 f 通过理想通信信道传输窄脉冲信号 则前后码元之间不产生相互窜扰 因此 对于二进制数
  • 【云原生之Docker实战】使用Docker部署web端vscode

    云原生之Docker实战 使用Docker部署web端vscode 一 vscode server介绍 二 检查本地docke环境 1 检查系统版本 2 检查docker版本 3 检查docker状态 三 下载vscode镜像 四 部署vs
  • 北京理工大学:《Python语言程序设计》详细笔记

    第一章 程序设计基本方法 计算机与程序设计 计算机是根据指令操作数据的设备 计算机发展参照摩尔定律 表现为指数形式 编译和解释 计算机执行源程序两种方式 编译和解释 编译 将源代码一次性转换成目标代码的过程 执行编译过程的程序叫编译器 co
  • C#是不是不能把基类对象强转成它派生类对象

    转载请标明是引用于 http blog csdn net chenyujing1234 有补充的 请大家指出 最近在论坛上看到有网友问到C 中对象强转的问题 自己虽然接触过C 但对这个特性还是第一次接触 所以这里找到一些资料与大家一起分享
  • unity 模仿原神的人物移动和镜头变换

    unity 模仿原神人物移动和镜头转换 自学了几周unity了 感觉还是要做点什么上手才快 所以先做个简单的RPG游戏吧 然后很快就做出了CS那种第一人称视觉的人物操控 不过感觉体验不太好 不能边走边看周围 所以重新模仿了原神那种可以环绕人
  • 3D建模教程分享

    全套3D建模教程让你从小白到大神 工欲善其事必先利其器 目前主流的3D建模软件当然是3DMAX MAYA还有ZBrush了 开始学习之路前这三个软件肯定是必备的 欢迎大家加入Q裙 939901947 领取各种学习资料和软件 迈出成为大神的第
  • linux系统创建新用户

    一般情况下linux系统创建 删除新用户主要有以下几种方式 1 创建新用户 useradd 用户名 删除用户 userdel 用户名 2 sudo useradd m 用户名 删除用户 sudo userdel r 用户名 可以直接删掉用户
  • 联想笔记本插入耳机仍外放--解决方式

    1 打开控制面板 2 点击硬件和声音 3 点击realtek音频管理器 4 点击设备高级设置 5 选中第二项 6 点击确定 关闭所有窗口即可解决该问题
  • 数学在机器学习中的重要性

    数学在机器学习中的重要性 by Dahua Lin Linear Algebra 线性代数 和 Statistics 统计学 是最重要和不可缺少的 这代表了Machine Learning中最主流的两大类方法的基础 一种是以研究函数和变换为
  • 使用BOTO进行S3各种操作

    使用BOTO进行S3各种操作 BOTO是一个开源的PYTHON发布包 是AWS AMAZON WEBSERVICE 的PYTHON封装 近期 我们公司用到国内某知名公司的S3云存储服务 需要调用该公司提供的S3 PYTHON SDK 鉴于该
  • Java连接MySQL数据库(多种连接方法)

    当我们掌握Java的基础知识后就可以学习一些Java的高级技术 或特性 了 例如 集合 多线程 网络编程 数据库技术 并发等等 其中数据库技术在Java的学习中也是相当重要的 今天就简单介绍一下Java与MySQL数据类的 1 提前准备 下
  • 亚马逊云科技实时 AI 编程助手 Amazon CodeWhisperer,开发快人一步!

    Amazon CodeWhisperer 是一款 AI 编码配套应用程序 可在 IDE 中生成整行代码和完整的函数代码建议 以帮助您更快地完成更多工作 在本系列文章中 我们将为您详细介绍 Amazon CodeWhisperer 的相关信息
  • 传输层——TCP报文头介绍

    16位源端口号 16位目的端口号 32位序列号 32位确认序列号 4位头部长度 保留6位 U R G A C K P S H R S T S Y N F I N 16位窗口大小 16位检验和 16位紧急指针 可选项 数据 源端口 长度为16