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

TCP传输控制协议二

 

TCP 是 TCP/IP 模型中的传输层一个最核心的协议,不仅如此,在整个 4 层模型中,它都是核心的协议,要不然模型怎么会叫做 TCP/IP 模型呢。

它向下使用网络层的 IP 协议,向上为 FTP、SMTP、POP3、SSH、Telnet、HTTP 等应用层协议提供支持。其他的还有我们常用的 Redis 的 RESP 协议、MongoDB的网络协议,以及我们编程中用到的 Socket,都是 TCP 协议在背后提供支持的。

 

 

网络协议是通信计算机双方必须共同遵从的一组约定。如怎么样建立连接、怎么样互相识别等。只有遵守这个约定,计算机之间才能相互通信交流。它的三要素是:语法、语义、时序。

语法:即数据与控制信息的结构或格式;
语义:即需要发出何种控制信息,完成何种动作以及做出何种响应;                                  时序(同步):即事件实现顺序的详细说明。

 

TCP协议格式

c500349af5234605be1cd2d2922f4f19.png

 TCP首部 + 用户数据被称为TCP段,其中 TCP 首部就是这里要主要研究的 TCP 协议的核心所在,用户数据部分是 TCP 段的负载。TCP 段的大小也是有限制的,最大是 1460 字节。

529c74c586ec49c899b1c3bc37911b2d.png

 最终由网卡发出去的数据包叫做以太网帧,以太网帧由以太网首部和负载构成。以太网帧的负载就是一个 IP 数据报,IP数据报由IP首部和负载构成。

 

 

 

下图是TCP协议的示意图,如果不算「可选项」部分的话,共占用 32bit x 5 = 160bit,也就是20个字节

44174e13b25d49a49336c4efaab20f83.png

 

源端口和目标端口


源端口和目标端口分别占用 2个字节,共占用 4 字节,分别记录数据发送端的端口号和数据接收端的端口号,这两个标记和 IP 协议中记录的发送端 IP 和接收端 IP组合起来,便可确定一个唯一的 TCP 连接。

序号
由于TCP段的大小有限制,当要传输的数据量大于这个限制的时候,就要对数据进行分段,一段一段的发送,既然发送方要分段,那接收方就要对分段进行重组,才能还原回原始数据。在重组的过程中,要保证各段间的先后顺序,序号正是起到保证重组顺序的作用。

序号占用 4 字节,32 位,它的范围是 0,
2(32)。
 ​TCP是字节流服务,会对每一个发送的字节进行编号。在建立连接的时候,系统会给定一个 ISN(初始序号),然后这个设备在当前连接中发送的第一个字节的序号就是 ISN+1,假设 ISN 初始为0,那第一个字节的序号就是 1。

 

 

 

举个例子:

假设ISN为0,发送端第一次发送 100 字节的数据包,那这第一个 TCP段的序号就是1,下次再发送 100字节的数据包,那这第二个 TCP段的序号就是 101。

这样一来,最大可以一直标记 2(32)
 个字节,也就是 4个G的数据。当达到最大值后,又会从 0 开始标记。

序号只有在下面两种情况下才有用:

1:数据字段至少包含一个字节。
2:是一个 SYN 段,或者是 FIN 段,或者是 RST 段。

 

 

 

 

相关文章:

TCP传输控制协议二

TCP 是 TCP/IP 模型中的传输层一个最核心的协议,不仅如此,在整个 4 层模型中,它都是核心的协议,要不然模型怎么会叫做 TCP/IP 模型呢。 它向下使用网络层的 IP 协议,向上为 FTP、SMTP、POP3、SSH、Telnet、HTTP 等应用…...

【学习笔记】无人机(UAV)在3GPP系统中的增强支持(五)-同时支持无人机和eMBB用户数据传输的用例

引言 本文是3GPP TR 22.829 V17.1.0技术报告,专注于无人机(UAV)在3GPP系统中的增强支持。文章提出了多个无人机应用场景,分析了相应的能力要求,并建议了新的服务级别要求和关键性能指标(KPIs)。…...

使用F1C200S从零制作掌机之debian文件系统完善NES

一、模拟器源码 源码:https://files.cnblogs.com/files/twzy/arm-NES-linux-master.zip 二、文件系统 文件系统:debian bullseye 使用builtroot2018构建的文件系统,使用InfoNES模拟器存在bug,搞不定,所以放弃&…...

Vue 3 与 TypeScript:最佳实践详解

大家好,我是CodeQi! 很多人问我为什么要用TypeScript? 因为 Vue3 喜欢它! 开个玩笑... 在我们开始探索 Vue 3 和 TypeScript 最佳实践之前,让我们先打个比方。 如果你曾经尝试过在没有 GPS 的情况下开车到一个陌生的地方,你可能会知道那种迷失方向的感觉。 而 Typ…...

PyMysql error : Packet Sequence Number Wrong - got 1 expected 0

文章目录 错误一错误原因解决方案 错误二原因解决方案 我自己知道的,这类问题有两类原因,两种解决方案。 错误一 错误原因 pymysql的主进程启动的connect无法给子进程中使用,所以读取大批量数据时最后容易出现了此类问题。 解决方案 换成…...

MVC 生成验证码

在mvc 出现之前 生成验证码思路 在一个html页面上&#xff0c;生成一个验证码&#xff0c;在把这个页面嵌入到需要验证码的页面中。 JS生成验证码 <script type"text/javascript">jQuery(function ($) {/**生成一个随机数**/function randomNum(min, max) {…...

OSPF.综合实验

1、首先将各个网段基于172.16.0.0 16 进行划分 1.1、划分为4个大区域 172.16.0.0 18 172.16.64.0 18 172.16.128.0 18 172.16.192.0 18 四个网段 划分R4 划分area2 划分area3 划分area1 2、进行IP配置 如图使用配置指令进行配置 ip address x.x.x.x /x 并且将缺省路由…...

云计算【第一阶段(29)】远程访问及控制

一、ssh远程管理 1.1、ssh (secureshell)协议 是一种安全通道协议对通信数据进行了加密处理&#xff0c;用于远程管理功能SSH 协议对通信双方的数据传输进行了加密处理&#xff0c;其中包括用户登录时输入的用户口令&#xff0c;建立在应用层和传输层基础上的安全协议。SSH客…...

2024前端面试真题【CSS篇】

盒子模型 盒子模型&#xff1a;box-sizing&#xff0c;描述了文档中的元素如何生成矩形盒子&#xff0c;并通过这些盒子的布局来组织和设计网页。包含content、padding、margin、border四个部分。 分类 W3C盒子模型&#xff08;content-box&#xff09;&#xff1a;标准盒子模…...

python中设置代码格式,函数编写指南,类的编程风格

4.6 设置代码格式 随着你编写的程序越来越长&#xff0c;确保代码格式一致变得尤为重要。花时间让代码尽可能易于阅读&#xff0c;这不仅有助于你理解程序的功能&#xff0c;也能帮助他人理解你的代码。 为了保证所有人的代码结构大致一致&#xff0c;Python程序员遵循一系列…...

CentOS 8升级gcc版本

1、查看gcc版本 gcc -v发现gcc版本为8.x.x&#xff0c;而跑某个项目的finetune需要gcc-9&#xff0c;之前搜索过很多更新gcc版本的方式&#xff0c;例如https://blog.csdn.net/xunye_dream/article/details/108918316?spm1001.2014.3001.5506&#xff0c;但执行指令 sudo yu…...

Kafka基础入门篇(深度好文)

Kafka简介 Kafka 是一个高吞吐量的分布式的基于发布/订阅模式的消息队列&#xff08;Message Queue&#xff09;&#xff0c;主要应用与大数据实时处理领域。 1. 以时间复杂度为O(1)的方式提供消息持久化能力。 2. 高吞吐率。&#xff08;Kafka 的吞吐量是MySQL 吞吐量的30…...

C++之复合资料型态KU网址第二部V蒐NAY3989

结构 结构可存放不同资料型态的数值&#xff0c;例如 #include <iostream>struct Demo {int member1;char *member2;float member3; };int main() {Demo d;d.member1 19823;d.member2 "203";d.member3 3.011;std::cout << "member1: " &l…...

乡镇集装箱生活污水处理设备处理效率高

乡镇集装箱生活污水处理设备处理效率高 乡镇集装箱生活污水处理设备优势 结构紧凑&#xff1a;集装箱式设计减少了占地面积&#xff0c;便于在土地资源紧张的乡镇地区部署。 安装方便&#xff1a;设备出厂前已完成组装和调试&#xff0c;现场只需进行简单的连接和调试即可投入使…...

计算机网络高频面试题

从输入URL到展现页面的全过程&#xff1a; 用户在浏览器中输入URL。浏览器解析URL&#xff0c;确定协议、主机名和路径。浏览器查找本地DNS缓存&#xff0c;如果没有找到&#xff0c;向DNS服务器发起查询请求。DNS服务器解析主机名&#xff0c;返回IP地址。浏览器使用IP地址建立…...

进程通信(1):无名管道(pipe)

无名管道(pipe)用来具有亲缘关系的进程之间进行单向通信。半双工的通信方式&#xff0c;数据只能单向流动。 管道以字节流的方式通信&#xff0c;数据格式由用户自行定义。 无名管道多用于父子进程间通信&#xff0c;也可用于其他亲缘关系进程间通信。 因为父进程调用fork函…...

YOLOv10改进 | 损失函数篇 | SlideLoss、FocalLoss、VFLoss分类损失函数助力细节涨点(全网最全)

一、本文介绍 本文给大家带来的是分类损失 SlideLoss、VFLoss、FocalLoss损失函数&#xff0c;我们之前看那的那些IoU都是边界框回归损失&#xff0c;和本文的修改内容并不冲突&#xff0c;所以大家可以知道损失函数分为两种一种是分类损失另一种是边界框回归损失&#xff0c;…...

【数组、特殊矩阵的压缩存储】

目录 一、数组1.1、一维数组1.1.1 、一维数组的定义方式1.1.2、一维数组的数组名 1.2、二维数组1.2.1、二维数组的定义方式1.2.2、二维数组的数组名 二、对称矩阵的压缩存储三、三角矩阵的压缩存储四、三对角矩阵的压缩存储五、稀疏矩阵的压缩存储 一、数组 概述&#xff1a;数…...

Flat Ads:金融APP海外广告投放素材的优化指南

在当今全球化的数字营销环境中,金融APP的海外营销推广已成为众多金融机构与开发者最为关注的环节之一。面对不同地域、文化及用户习惯的挑战,如何优化广告素材,以吸引目标受众的注意并促成有效转化,成为了广告主们亟待解决的问题。 作为领先的全球化营销推广平台,Flat Ads凭借…...

DBA 数据库管理 表管理 数据批量处理。表头约束

表管理 建库 库名命名规则&#xff1a;仅可以使用数字、字母、下划线、不能纯数字 不可使用MySQL命令或特殊字符 库名区分字母大小写 加if not exists 命令避免重名报错 create database if not exists gamedb; 建表 drop database if exists gamedb ; 删表…...

G-Helper华硕笔记本优化指南:三步告别臃肿控制中心,性能提升30%

G-Helper华硕笔记本优化指南&#xff1a;三步告别臃肿控制中心&#xff0c;性能提升30% 【免费下载链接】g-helper Lightweight, open-source control tool for ASUS laptops and ROG Ally. Manage performance modes, fans, GPU, battery, and RGB lighting across Zephyrus, …...

避坑指南:用Docker部署Oracle 11g时你一定会遇到的5个权限问题(附终极解决方案)

避坑指南&#xff1a;用Docker部署Oracle 11g时你一定会遇到的5个权限问题&#xff08;附终极解决方案&#xff09; 在容器化技术席卷全球的今天&#xff0c;Docker已成为部署数据库的首选工具之一。然而&#xff0c;当我们将Oracle 11g这样的传统数据库巨人塞进轻量级容器时&a…...

FramePack完整指南:5个关键技巧解决AI视频生成难题

FramePack完整指南&#xff1a;5个关键技巧解决AI视频生成难题 【免费下载链接】FramePack Lets make video diffusion practical! 项目地址: https://gitcode.com/gh_mirrors/fr/FramePack 你是否曾为AI视频生成中的内存溢出、生成速度缓慢和画面漂移问题而烦恼&#x…...

重启 CSDN 两周复盘:从 0 到 10700 + 阅读,37 岁老码农的内容创作实战

从 3 月 23 日正式重启 CSDN&#xff0c;到今天 4 月 6 日&#xff0c;整整两周时间。从最初的「码龄 14 年&#xff0c;重新出发」&#xff0c;到现在累计10700 总阅读量、155 分原力值&#xff0c;这两周的每一步&#xff0c;都是我对「个人技术品牌」的真实实践&#xff0c…...

如何用数字记忆守护留住QQ空间的青春足迹?一份让回忆永不褪色的解决方案

如何用数字记忆守护留住QQ空间的青春足迹&#xff1f;一份让回忆永不褪色的解决方案 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 当数字记忆面临消失危机 2023年的一个普通下午&…...

STM32F1标准库ADC采样避坑指南:如何正确设置定时器触发与DMA传输,避免FFT结果不准?

STM32F1标准库ADC采样避坑指南&#xff1a;如何正确设置定时器触发与DMA传输&#xff0c;避免FFT结果不准&#xff1f; 在嵌入式信号处理领域&#xff0c;STM32F1系列凭借其出色的性价比成为许多开发者的首选。然而&#xff0c;当涉及到ADC采样结合FFT频谱分析时&#xff0c;即…...

HG-ha/MTools生产环境部署:媒体公司后期处理提效案例

HG-ha/MTools生产环境部署&#xff1a;媒体公司后期处理提效案例 1. 项目概述与核心价值 HG-ha/MTools是一款开箱即用的现代化桌面工具集&#xff0c;专为媒体内容处理而设计。它集成了图片处理、音视频编辑、AI智能工具和开发辅助等多项功能&#xff0c;支持跨平台GPU加速&a…...

告别会议记录烦恼:5分钟掌握Windows实时语音转文字神器

告别会议记录烦恼&#xff1a;5分钟掌握Windows实时语音转文字神器 【免费下载链接】TMSpeech 腾讯会议摸鱼工具 项目地址: https://gitcode.com/gh_mirrors/tm/TMSpeech 还在为会议记录焦头烂额吗&#xff1f;TMSpeech这款免费开源的Windows实时语音转文字工具&#xf…...

最强30B模型GLM-4.7-Flash实测:Ollama一键部署,小白也能玩转AI

最强30B模型GLM-4.7-Flash实测&#xff1a;Ollama一键部署&#xff0c;小白也能玩转AI 1. GLM-4.7-Flash模型概述 1.1 模型特点与优势 GLM-4.7-Flash是当前30B参数级别中最具竞争力的混合专家模型&#xff08;MoE&#xff09;。这个规模特别适合需要平衡性能与资源消耗的实际…...

终极指南:Sapiens核心架构解析——从300万图像预训练到多任务微调的完整路径

终极指南&#xff1a;Sapiens核心架构解析——从300万图像预训练到多任务微调的完整路径 【免费下载链接】sapiens High-resolution models for human tasks. 项目地址: https://gitcode.com/gh_mirrors/sa/sapiens Sapiens是一个专注于高分辨率人体任务的深度学习模型项…...