当前位置: 首页 > news >正文

计算机网络 (35)TCP报文段的首部格式

前言

       计算机网络中的TCP(传输控制协议)报文段的首部格式是TCP协议的核心组成部分,它包含了控制TCP连接的各种信息和参数。

一、TCP报文段的结构

       TCP报文段由首部和数据两部分组成。其中,首部包含了控制TCP连接的各种字段,而数据部分则是实际传输的数据。

二、TCP报文段首部格式

       TCP报文段首部的前20个字节是固定的,后面还可以根据需要增加最多40字节的选项部分。因此,TCP报文段首部的最小长度是20个字节,最大长度可以达到60个字节(当选项部分被完全使用时)。

1. 源端口和目的端口
  • 位置:报文段的前4个字节(源端口2个字节,目的端口2个字节)。
  • 作用:端口是传输层和应用层的服务接口,用于实现传输层的复用和分用功能。源端口是发送方进程的端口号,目的端口是接收方进程的端口号。
2. 序号
  • 位置:第5到第8个字节。
  • 作用:序号用于标识TCP连接中传送的字节流中的每一个字节。它是一个32位的无符号整数,范围从0到2^32-1。TCP在建立连接时,会为整个字节流设置一个起始序号,然后每个报文段都会携带一个序号,表示该报文段中数据的第一个字节在字节流中的位置。
3. 确认号
  • 位置:第9到第12个字节。
  • 作用:确认号用于表示接收方期望收到的下一个报文段的第一个数据字节的序号。它是接收方对发送方的确认,告诉发送方已经收到了哪些数据。确认号的值等于上一个已成功接收的报文段的序号加上该报文段的数据长度再加1。
4. 数据偏移
  • 位置:第13到第16个字节中的前4位(实际上是第13个字节的高半字节)。
  • 作用:数据偏移用于指示TCP报文段的首部长度,单位是32位字(即4字节)。由于首部中可能包含长度不确定的选项字段,因此数据偏移字段是必要的。数据偏移的最大值是15,对应的首部长度是60字节。
5. 保留字段
  • 位置:第13到第16个字节中的后6位。
  • 作用:保留字段用于今后可能的扩展,目前应置为0。
6. 控制位
  • 位置:第17个字节。

  • 作用:控制位包含了6个标志位,用于控制TCP连接的状态和行为。它们分别是:

    • URG(紧急位):当URG=1时,表示报文段中有紧急数据,应尽快传送。此时,紧急指针字段有效。
    • ACK(确认位):当ACK=1时,确认号字段有效。在连接建立后,所有的报文段都必须把ACK置为1。
    • PSH(推送位):当PSH=1时,接收方应尽快将报文段交付给应用进程,而不需要等到接收缓存满后再交付。
    • RST(复位位):当RST=1时,表示TCP连接中出现了严重错误,必须释放连接并重新建立。
    • SYN(同步位):在连接建立时用来同步序号。当SYN=1而ACK=0时,表示这是一个连接请求报文段;当SYN=1而ACK=1时,表示接受连接请求。
    • FIN(终止位):当FIN=1时,表示发送方已经没有数据要发送了,要求释放连接。
7. 窗口
  • 位置:第18到第19个字节。
  • 作用:窗口字段用于流量控制,表示接收方允许发送方发送的数据量(以字节为单位)。它是接收方根据自己的缓存空间大小来设置的。
8. 检验和
  • 位置:第20到第21个字节。
  • 作用:检验和字段用于检验TCP报文段的首部和数据部分在传输过程中是否发生变化。它是通过对首部和数据进行加和(通常采用补码和)来计算的。接收方在收到报文段后,也会进行相同的计算,并将结果与检验和字段进行比较,以验证数据的完整性。
9. 紧急指针
  • 位置:第22到第23个字节。
  • 作用:紧急指针字段仅在URG=1时有效,它表示报文段中紧急数据的字节数(从报文段数据的第一个字节开始计算)。紧急数据结束后就是普通数据。当接收方收到紧急数据后,会优先处理这些数据。
10. 选项
  • 位置:紧跟在紧急指针字段之后,长度可变,最长可达40字节。
  • 作用:选项字段用于扩展TCP的功能,可以包含多种选项,如最大报文段长度(MSS)、窗口扩大字段、时间戳、选择确认信息等。当选项字段的长度不是4字节的整数倍时,会使用填充字段来补齐。

总结

       TCP报文段的首部格式是TCP协议的核心组成部分,它包含了控制TCP连接的各种信息和参数。通过了解和分析这些字段,可以更好地理解TCP协议的工作原理和特性,从而更有效地进行网络编程和故障排查。

 结语     

不幸往往是性格的试金石

最强有力的人是能控制自己的人

!!!

相关文章:

计算机网络 (35)TCP报文段的首部格式

前言 计算机网络中的TCP(传输控制协议)报文段的首部格式是TCP协议的核心组成部分,它包含了控制TCP连接的各种信息和参数。 一、TCP报文段的结构 TCP报文段由首部和数据两部分组成。其中,首部包含了控制TCP连接的各种字段&#xff…...

ubuntu24.04安装docker显卡工具包nvidia-container-toolkit

问题描述 docker 容器启动时如果需要访问 gpu ,需要安装 nvidia-container-toolkit 才行,否则会提示如下错误 sudo docker run --rm -it --gpus all ubuntu:latest docker: Error response from daemon: could not select device driver "" …...

rknn环境搭建之docker篇

目录 1. rknn简介2. 环境搭建2.1 下载 RKNN-Toolkit2 仓库2.2 下载 RKNN Model Zoo 仓库2.3 下载交叉编译器2.4 下载Docker镜像2.5 下载ndk2.5 加载docker镜像2.6 docker run 命令创建并运行 RKNN Toolkit2 容器2.7 安装cmake 3. 模型转换3.1 下载模型3.2 模型转换 4. 编译cdem…...

OpenCV相机标定与3D重建(56)估计物体姿态(即旋转和平移)的函数solvePnPRansac()的使用

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 使用RANSAC方案从3D-2D点对应关系中找到物体的姿态。 cv::solvePnPRansac 是 OpenCV 中用于估计物体姿态(即旋转和平移)的…...

vue倒计时组件封装,根据每个循环项的倒计时是否结束添加新类名。

1.创建countdown.vue文件&#xff1a; <template><p style"font-size: 10px">{{time}}</p> </template> <script>export default{data () {return {time : ,flag : false}},mounted () {let time setInterval(() > {if (this.fla…...

缩放 对内外参的影响

当你对图像进行同比例缩小时&#xff0c;图像的内参需要相应地变化&#xff0c;但外参通常保持不变。 相机内参 相机内参&#xff08;内参矩阵&#xff09;描述了相机的固有属性&#xff0c;包括焦距和主点&#xff08;光轴与图像平面的交点&#xff09;的坐标。 当你对图像…...

SQL面试题2:留存率问题

引言 场景介绍&#xff1a; 在互联网产品运营中&#xff0c;用户注册量和留存率是衡量产品吸引力和用户粘性的关键指标&#xff0c;直接影响产品的可持续发展和商业价值。通过分析这些数据&#xff0c;企业可以了解用户行为&#xff0c;优化产品策略&#xff0c;提升用户体验…...

晨辉面试抽签和评分管理系统之九:随机编排考生的分组(以教师资格考试面试为例)

晨辉面试抽签和评分管理系统&#xff08;下载地址:www.chenhuisoft.cn&#xff09;是公务员招录面试、教师资格考试面试、企业招录面试等各类面试通用的考生编排、考生入场抽签、候考室倒计时管理、面试考官抽签、面试评分记录和成绩核算的面试全流程信息化管理软件。提供了考生…...

【EtherCATBridge】- KRTS C++示例精讲(9)

EtherCATBridge示例讲解 文章目录 EtherCATBridge示例讲解结构说明代码说明 项目打开请查看【BaseFunction精讲】。 结构说明 EtherCATBridge.h &#xff1a;数据定义 EtherCATBridge.cpp &#xff1a;应用层源码 EtherCATBridge_dll.cpp &#xff1a;内核层源码 其余文件说明…...

C++实现设计模式--- 观察者模式 (Observer)

观察者模式 (Observer) 观察者模式 是一种行为型设计模式&#xff0c;它定义了一种一对多的依赖关系&#xff0c;使得当一个对象的状态发生改变时&#xff0c;其依赖者&#xff08;观察者&#xff09;会收到通知并自动更新。 意图 定义对象之间的一对多依赖关系。当一个对象状…...

iOS 解决两个tableView.嵌套滚动手势冲突

我们有这样一个场景&#xff0c;就是页面上有一个大的tableView&#xff0c; 每一个cell都是和屏幕一样高的&#xff0c;然后cell中还有一个可以 tableView&#xff0c;比如直播间的情形&#xff0c;这个时候如果我们拖动 cell里面的tableView滚动的话&#xff0c;如果滚动到内…...

Lianwei 安全周报|2025.1.13

新的一周又开始了&#xff0c;以下是本周「Lianwei周报」&#xff0c;我们总结推荐了本周的政策/标准/指南最新动态、热点资讯和安全事件&#xff0c;保证大家不错过本周的每一个重点&#xff01; 政策/标准/指南最新动态 01 美国国土安全部发布《公共部门生成式人工智能部署手…...

rtthread学习笔记系列(2) -- 宏

文章目录 2.链接文件2.0. 参考链接2.1._stext 和 _etext2.2. "."与"*符号作用2.3..linkonce 段2.4. KEEP2.5 ENTRY2.6 PROVIDE2.7 AT2.8 SORT2.9 NOLOAD 源文件路径:https://github.com/wdfk-prog/RT-Thread-Study 2.链接文件 2.0. 参考链接 https://home.cs…...

美摄科技PC端视频编辑解决方案,为企业打造专属的高效创作平台

在当今这个信息爆炸的时代&#xff0c;视频已成为不可或缺的重要内容形式&#xff0c;美摄科技推出了PC端视频编辑解决方案的私有化部署服务&#xff0c;旨在为企业提供一款量身定制的高效创作平台。 一、全面功能&#xff0c;满足企业多样化需求 美摄科技的PC端视频编辑解决…...

服务端开发模式-thinkphp-重新整理workman

一、登录接口 <?php /*** 登录退出操作* User: 龙哥三年风水* Date: 2024/10/29* Time: 15:53*/ namespace app\controller\common; use app\controller\Emptys; use app\model\permission\Admin; use app\model\param\System as SystemModel; use Email\EmailSender; use…...

HTB:Access[WriteUP]

目录 连接至HTB服务器并启动靶机 信息收集 使用rustscan对靶机TCP端口进行开放扫描 将靶机TCP开放端口号提取并保存 使用nmap对靶机TCP开放端口进行脚本、服务扫描 使用nmap对靶机TCP开放端口进行漏洞、系统扫描 使用nmap对靶机常用UDP端口进行开放扫描 尝试匿名连接至…...

【论文笔记】SmileSplat:稀疏视角+pose-free+泛化

还是一篇基于dust3r的稀疏视角重建工作&#xff0c;作者联合优化了相机内外参与GS模型&#xff0c;实验结果表明优于noposplat。 abstract 在本文中&#xff0c;提出了一种新颖的可泛化高斯方法 SmileSplat&#xff0c;可以对无约束&#xff08;未标定相机的&#xff09;稀疏多…...

电机控制的数字化升级:基于DSP和FPGA的仿真与实现

数字信号处理器&#xff08;DSP&#xff0c;Digital Signal Processor&#xff09;在工业自动化领域的应用日益广泛。DSP是一种专门用于将模拟信号转换成数字信号并进行处理的技术&#xff0c;能够实现信号的数字滤波、重构、调制和解调等多项功能&#xff0c;确保信号处理的精…...

1/14 C++

练习&#xff1a;将图形类的获取周长和获取面积函数设置成虚函数&#xff0c;完成多态 再定义一个全局函数&#xff0c;能够在该函数中实现&#xff1a;无论传递任何图形&#xff0c;都可以输出传递的图形的周长和面积 #include <iostream>using namespace std; class Sh…...

java springboot3.x jwt+spring security6.x实现用户登录认证

springboot3.x jwtspring security6.x实现用户登录认证 什么是JWT JWT&#xff08;JSON Web Token&#xff09;是一种开放标准&#xff08;RFC 7519&#xff09;&#xff0c;它用于在网络应用环境中传递声明。通常&#xff0c;JWT用于身份验证和信息交换。JWT的一个典型用法是…...

全面解析网络端口:概念、分类与安全应用

在计算机网络的世界里&#xff0c;数据的传输与交互如同一场繁忙的物流运输&#xff0c;而网络端口就是其中不可或缺的 “货运码头”。无论是日常浏览网页、收发邮件&#xff0c;还是运行各类网络服务&#xff0c;都离不开网络端口的参与。本文将深入介绍网络端口的相关知识&am…...

【异常】极端事件的概率衰减方式(指数幂律衰减)

在日常事件中,极端事件的概率衰减方式并非单一模式,而是取决于具体情境和数据生成机制。以下是科学依据和不同衰减形式的分析: 1. 指数衰减(Exponential Decay) 典型场景:当事件服从高斯分布(正态分布)或指数分布时,极端事件的概率呈指数衰减。 数学形式:概率密度函数…...

使用swoole作为MQTT客户端并接收实现即时消息推送

环境准备 首先需要安装swoole 可以使用pecl进行安装 &#xff0c;如 pecl install swool, 注意加上版本号 或者使用构建好的docker镜像&#xff0c;这里使用构建好的 zacksleo/php:7.1-alpine-fpm-swoole 镜像 使用 compose 安装依赖库 composer require jesusslim/mqttcl…...

JAVA开发工具——IntelliJ IDEA

JAVA开发工具——IntelliJ IDEA 软件下载地址https://www.jetbrains.com/idea/ IDEA项目结构介绍 项目&#xff08;project&#xff09;模块&#xff08;module&#xff09;包&#xff08;package&#xff09;类&#xff08;class) 包含关系&#xff1a;项目 > 模块 >…...

【C++项目】负载均衡在线OJ系统-1

文章目录 前言项目结果演示技术栈&#xff1a;结构与总体思路compiler编译功能-common/util.hpp 拼接编译临时文件-common/log.hpp 开放式日志-common/util.hpp 获取时间戳方法-秒级-common/util.hpp 文件是否存在-compile_server/compiler.hpp 编译功能编写&#xff08;重要&a…...

【RAG召回】bge实现向量相似度索引

sentence-transformers 是一个非常强大的 Python 框架&#xff0c;它可以将句子或段落转换成高质量、高信息密度的数字向量&#xff08;称为“嵌入”或 Embeddings&#xff09;。它厉害的地方在于&#xff0c;语义上相似的句子&#xff0c;其向量在空间中的距离也更近。 这使得…...

【第九篇】 SpringBoot测试补充篇

简介 本文介绍了SpringBoot测试中的五项关键技术&#xff1a;测试类专用属性加载、 测试类专用Bean配置、 表现层测试方法、测试类事务回滚控制、配置文件随机数据设置&#xff09;。这些技术可以有效隔离测试环境&#xff0c;确保测试数据不影响生产环境&#xff0c;同时提供了…...

STM32H562----------串口通信(UART)

1、串口介绍 1.1、 数据通信概念 在单片机中我们常用的通信方式有 USART、IIC、SPI、CAN、USB 等; 1、数据通信方式 根据数据通信方式可分为串行通信和并行通信两种,如下图: 串行通信基本特征是数据逐位顺序依次传输,优点:传输线少成本低,抗干扰能力强可用于远距离传…...

linux下gpio控制

linux下gpio控制 文章目录 linux下gpio控制1.中断命令控制/sys/class/gpio/export终端命令控制led 2.应用程序控制 3.驱动代码控制 1.中断命令控制 通用GPIO主要用于产生输出信号和捕捉输入信号。每组GPIO均可以配置为输出输入以及特定的复用功能。 当作为输入时&#xff0c;内…...

实验四:图像灰度处理

实验四 图像处理实验报告 目录 实验目的实验内容 原理描述Verilog HDL设计源代码Testbench仿真代码及仿真结果XDC文件配置下板测试 实验体会实验照片 实验目的 在实验三的基础上&#xff0c;将图片显示在显示器上&#xff0c;并进行灰度处理。 实验内容 原理描述 1. 图片的…...