TCP报头结构和TCP协议特性

news2024/10/6 14:42:26

TCP报头结构


原端口号/目的端口号:表示数据是从哪个进程来,到哪个进程去;
32位序号/32位确认号:这个序号是取的发送方发送所用数据下一个字节的序号,发送方的序列号和接收方的确认号一样,才算接收成功,否则还会索要确认号的数据
4位TCP报头长度:表示该TCP头部有多少个32位bit
6位标志位:
URG:紧急指针是否有效
ACK:确认号是否有效
PSH:提示接收端应用程序立刻从TCP缓冲区把数据读走
RST:对方要求重新建立连接;我们把携带RST标识的称为复位报文段
SYN:请求建立连接;我们把携带SYN标识的称为同步报文段
FIN:通知对方,本端要关闭了,我们称携带FIN标识的为结束报文段
16位窗口大小:这个用来限制滑动窗口,就是限制发送方一次发送多少条数据
16位校验和:发送端填充,CRC校验。接收端校验不通过,则认为数据有问题。此处的检验和不
光包含TCP首部,也包含TCP数据部分。
比特就业课
16位紧急指针:标识哪部分数据是紧急数据;


TCP原理和特性


可靠性方面:

确认应答:

ack为应答报文


序列号:

这个序号是取的发送方发送所用数据下一个字节的序号,发送方的序列号和接收方的确认号一样,才算接收成功,否则还会索要确认号的数据

校验和

啊啊

超时重传

发送方一定时间内拿不到应答报文,会等一段时间重发

连接管理

TCP3次握手和4次挥手

流量控制

接收端处理数据的速度是有限的,发送端发的太快,导致接收端的缓冲区被打满,这个时候如果发送端继续发送,就会造成丢包,所以有窗口大小决定,每次发多少

拥塞控制

如果接受方比较拥堵。在不清楚当前网络状态下,贸然发送大量的数据,可能会出事,TCP引入 慢启动 机制,先发少量的数据,探探路,摸清当前的网络拥堵状态,再决定按照多大的速度传输数据

提高性能方面:


滑动窗口

就是一次发送多条数据

快速重传

如果发送多条数据,接受方只受到第1条数据,下次发送会从第2条数据开始发送

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/416205.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

敏捷开发模式下如何用 PingCode 这类工具进行版本发布管理

在软件团队工作中,版本发布要达到好的发布效果,需要在版本发布前做好版本发布的规划,并对发布流程和进度进行管理 准备工作: 您已经创建了一个 PingCode 帐户【快速注册入口】 您创建了一个 PingCode Scrum或 Kanban 项目 您的…

【周末闲谈】文心一言,模仿还是超越?

个人主页:【😊个人主页】 系列专栏:【❤️周末闲谈】 周末闲谈 ✨第一周 二进制VS三进制 文章目录周末闲谈前言一、背景环境二、文心一言?(_)?三、文心一言的优势?😗😗😗四、文心一…

使用 arm 架构实例搭建 Harbor

使用 arm 架构实例搭建 Harbor事情准备(使用甲骨文云上实例时的准备事项)第1步,准备自签名证书第2步,安装Docker-ce第3步,构建arm镜像第4步,安装Harbor第5步,访问Harbor第6步,上传镜…

TensorFlow 深度学习第二版:1~5

原文:Deep Learning with TensorFlow Second Edition 协议:CC BY-NC-SA 4.0 译者:飞龙 本文来自【ApacheCN 深度学习 译文集】,采用译后编辑(MTPE)流程来尽可能提升效率。 不要担心自己的形象,只…

2023年【第十四届蓝桥杯】省赛java b组填空题

第一题 令 S 1! 2! 3! ... 202320232023!,求 S 的末尾 9 位数字。 提示:答案首位不为 0。 考试时的想法以及题解: 如果我们直接按照题目描述直接来求每个阶乘和的话恐怕没有什么数据类型能够胜任,在考试时我一开始使用了…

Linux中的read/write和recv/send的区别,并使用recv/send实现简单的聊天功能

Linux中的read/write和recv/send的区别read/writeread/writeread/write的用法recv/sendrecv/sendrecv/send的用法LinuxLinuxLinux中的read/writeread/writeread/write和recv/sendrecv/sendrecv/send的区别下面是一个使用read/write进行文件读写操作的例子:下面是一个…

【云原生】Kubernetes(k8s)部署 MySQL+Dubbo+Nacos服务

一、说明二、部署 MySQL三、部署 Nacos四、部署 Dubbo 服务4.1. 创建镜像仓库的密钥4.2. 部署 provider 服务4.3. 部署 consumer 服务五、测试一、说明 本文介绍基于 Kubernetes(k8s) 环境集成阿里云 私有镜像仓库 来部署一套 Dubbo Nacos 的微服务系统,并使用 Ku…

VUE前端项目环境搭建

背景: 想要使用vue搭建一个前端项目,写个小网站练练手,因为没有前端经验,所以从网上找了一个vue得开源模板使用,经过一番挑选选中了字节公司花裤衩大佬开源得项目,地址如下: 开源项目地址&…

第三代api自动化测试框架使用教程(pytest+allure+sql+yaml)

使用教程一、配置1、环境配置2、框架配置3、启动入口二、用例编写1、用例模板2、参数依赖写法2、函数(方法插件)写法3、接口上传文件和表单参数4、接口上传json参数5、接口无数据填写6、code断言7、body断言7、json断言8、sql断言9、完整断言写法&#x…

三种不同实现ublk的零拷贝I/O的方法

用户态块设备ublk,就是提供/dev/ublkbX这样的标准块设备给业务,业务读写这个块的实际IO处理由编写的用户态的代码决定。这就好比使用FUSE,所有对挂载于FUSE的目录的读写都是编写的IO handler来处理一样。使用用户态块设备,可以方便…

产品经理必读|用户研究方法总结①

众所周知,理解用户需求,识别用户痛点,是产品或功能成型之前绕不开的过程。而要获取到用户真实的需求和痛点,唯一的方法就是做用户调研。而用研的方法都有哪些呢?今天我就来给大家分享一下行业中常见的用研方法。 用研的…

ESP32设备驱动-VL53L0X飞行时间(激光测距)传感器驱动

VL53L0X飞行时间(激光测距)传感器驱动 文章目录 VL53L0X飞行时间(激光测距)传感器驱动1、VL53L0X介绍2、硬件准备3、软件准备4、驱动实现1、VL53L0X介绍 VL53L0X 是新一代飞行时间 (ToF) 激光测距模块,采用当今市场上最小的封装,与传统技术不同,无论目标反射率如何,都能提…

项目中开发固定表头和首列的表格【付代码】

前言 前段时间做移动端的项目,项目中需要一个固定表头和首列的表格,但由于是移动端的,组件库里没有类似的,于是,就去网上找看有没有类似的,结果越找越气,10个文章9个抄,抄也行&#…

安全狗入选网络安全行业全景图(第十版)多个细分领域

4月7日,安全牛正式发布第十版网络安全行业全景图。 作为国内云原生安全领导厂商,安全狗也凭借综合的安全能力脱颖而出入选全景图多个领域。 据悉,全景图报告调研基于企业自主申报,并对申报企业收录有严格要求,安全牛…

Zookeeper集群+Kafka集群

目录 一、Zookeeper Zookeeper 概述 定义 工作机制 Zookeeper特点 Zookeeper数据结构 ZooKeeper应用场景 统一命名服务 统一配置管理 统一集群管理 服务器动态上下线 软负载均衡 第一次启动选举机制 非第一次启动选举机制 二、部署Zookeeper集群 1、实验准备 2…

第60章 用户增、修、删的前端实现

1 \src\components\Users\AddUser.vue <template> <!-- elmentUI 子页面的渲染显示注意事项说明&#xff1a; 子页面的渲染显示必须的使用“<el-dialog></el-dialog>标签及其所包含的子标签&#xff0c;否则子页面将不会被渲染显示出来。” --> <…

Python学习笔记--判断语句

&#xff08;一&#xff09; 布尔类型和比较运算符 1. 布尔类型&#xff1a;判断结果 True&#xff1a;表示真&#xff08;是、肯定&#xff09; False&#xff1a;表示假&#xff08;否、否定&#xff09; """ 演示布尔类型的定义 以及比较运算符的应用 "…

BCM系统组成及控制原理

1 输入控制 由于负载能力、抗干扰能力等客观情况。许多信号量无法直接施加至MCU之上&#xff0c;须有适当的输入电路(Input circuit)将信号进行隔离、调理&#xff0c;方可安全可靠地传递给MCU。 下面以开关信号和脉冲信号2种来分述。 1)开关信号的输入。 即将系统与电源正…

高频算法:Leetcode53 最大子数组和

今天讲的是Leetcode第53题&#xff0c;最大子数组和 首先观察题目&#xff0c;题目需要我们找出具有最大和的连续子数组&#xff0c;直接拿题目中的示例来做一个演示&#xff0c;找一找什么规律下的连续子数组才能得到最大的和 先从-2开始&#xff0c;-2 1 -1 此时我们的和…

【Python】Python读写.xlsx文件(基本操作、空值补全等)

【Python】Python读写.xlsx文件&#xff08;Pandas&#xff09; 文章目录【Python】Python读写.xlsx文件&#xff08;Pandas&#xff09;1. 介绍2. Pandas读写xlsx文件2.1 基本操作2.1.1 实现任务2.1.2 代码2.1.3 结果2.2 进阶操作2.2.1 写操作2.2.2 查看数据表的基本信息2.2.2…