(学习笔记-TCP连接建立)IP层会分片,为什么TCP层还需要MSS呢?

news2024/11/28 19:03:37

前提知识:

网络层最常用的是IP协议,IP协议会将传输层的报文作为数据部分,再加上IP包头组装成IP报文,如果IP报文大小超过了MTU(1500字节)就会再次分片,得到一个即将发送到网络的IP报文

 MTU和MSS:

  •  MTU:一个网络包的最大长度,以太网中一般为1500字节
  •  MSS:除去IP和TCP头部后,一个网络包所能容纳的TCP数据的最大长度

如果在TCP的整个报文(头部+数据)交给IP层进行分片:

当IP层有一个超过MTU大小的数据(TCP头部+TCP数据)要发送,那么IP层就要进行分片,把数据分片为若干片,保证每一个分片都小于MTU。把一份IP数据进行分片后,由目标主机的IP层来进行重新组装后再交给上一层TCP传输层。

那么当一个IP分片丢失,整个IP报文的所有分片都得重传。

因为IP层本身没有超时重传机制,它由传输层的TCP来负责超时重传。

当某一个IP分片丢失后,接收方的IP层就无法组装成一个完整的TCP报文,也就无法将数据报文送给TCP层,所以接收方不会响应ACK给发送方,因为发送方迟迟收不到ACK确认报文,所以就会触发超时重传,就会重发整个TCP报文(头部+数据)

因此,由IP层进行分片传输,是非常没有效率的

所以为了达到最佳传输效能TCP协议在建立连接时通常要协商双方的MSS值,当TCP层发现数据超过MSS时,则会先进行分片,分片后的形成的IP包自然不会超过MTU,也就不用IP进行分片了。此时,如果一个TCP分片丢失后,进行重发也是MSS为单位的,而不用重发所有数据,大大增加了重传的效率

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

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

相关文章

如何在 Excel 中快速生成随机密码?

有时,我们可能想创建随机密码来保护某些重要内容。 但是,您有什么技巧可以在Excel中快速生成随机密码? 在这里,我有一些可以在Excel工作表中处理的方法。 用公式生成随机密码 使用插入随机数据生成随机密码​编辑 用公式生成随机…

普通人的姓名可以注册为商标吗?

商标是商品的生产者、经营者在其生产、制造、加工或者经销的商品上或者服务使用的标志,用于区别商品或服务来源。商标由文字、图形、字母、数字、三维标志、颜色组合和声音等组合而成,以姓名注册商标属于文字商标,因此,个人的名字…

第十二章:MULTI-SCALE CONTEXT AGGREGATION BY DILATED CONVOLUTIONS——通过膨胀卷积的多尺度上下文聚合

0.摘要 目前用于语义分割的先进模型是基于最初设计用于图像分类的卷积网络的改进。然而,像语义分割这样的密集预测问题在结构上与图像分类不同。在这项工作中,我们开发了一个专门为密集预测设计的新的卷积网络模块。所提出的模块使用膨胀卷积来系统地聚合…

QQ号码3个月未登陆真的要回收?

7月17日消息,微信号长期未使用会被回收的消息引起热议。 腾讯微信团队微博发文称:为保障用户的微信账号安全,注册后不活跃,长期未登录,并且没有零钱的微信账号,会被系统注销,无法使用。 不过也有…

B. The BOSS Can Count Pairs

Problem - 1830B - Codeforces 思路&#xff1a;因为ai*ajbibj&#xff0c;bibj<2*n&#xff0c;那么会有ai*aj<2*n&#xff0c;那么会有min(ai,aj)<sqrt(2*n)&#xff0c;我们能够发现我们只要枚举ai&#xff08;假设ai<aj&#xff09;那么只要在这种情况下求得所…

Kubernetes(K8s)常用命令大全:熟练编排更完美

&#x1f337;&#x1f341; 博主 libin9iOak带您 Go to New World.✨&#x1f341; &#x1f984; 个人主页——libin9iOak的博客&#x1f390; &#x1f433; 《面试题大全》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33…

提升效率,打通万里牛ERP与下游用友U8财务软件的无缝对接

一、对接流程 1.1 销售/售后流程 在万里牛订单出库后&#xff0c;通过轻易云数据集成平台将数据推送至用友U8销售订单和销售出库单&#xff0c;这些单据可以进行关联操作。 当万里牛售后单完成退货入库后&#xff0c;通过数据集成平台将数据推送至用友U8销售退货单和红字销售…

基于SpringBoot+vue的点餐平台网站设计与实现

博主介绍&#xff1a; 大家好&#xff0c;我是一名在Java圈混迹十余年的程序员&#xff0c;精通Java编程语言&#xff0c;同时也熟练掌握微信小程序、Python和Android等技术&#xff0c;能够为大家提供全方位的技术支持和交流。 我擅长在JavaWeb、SSH、SSM、SpringBoot等框架…

编程导航算法通关村第 1关 | 单链表的操作

编程导航算法通关村第 1关 | 链表的操作 文章目录 编程导航算法通关村第 1关 | 链表的操作单链表链表的定义初始化链表的遍历获取链表的长度链表的插入链表的节点的删除 双向链表节点的定义双向链表的定义节点的打印获取长度头部插入元素尾部插入元素链表的删除 单链表 链表的…

InnoDB锁内存结构

假如说 我们SELECT * FROM table WHERE a < 10000 FOR UPDATE 那岂不是要加几万条锁 这消耗老鼻子内存了 这些锁有很多地方都是一样的啊 能不能通过某种方式整理整理节省点内存呢? 答案是能 如果符合下边这些条件&#xff1a; 在同一个事务中进行加锁操作 被加锁的记录…

Redis远程字典服务

目录 前言 1.NoSQL 1.1NOSQL和关系型数据库比较 1.2非关系型数据库的优势 1.3关系型数据库的优势 ​编辑 2.主流的NOSQL产品 键值(Key-Value)存储数据库 列存储数据库 文档型数据库 图形(Graph)数据库 3.Redis简介 redis的应用场景 4.命令操作 4.1字符串类型 s…

python根据excel数据,基于散点图绘制棋盘图

文章目录 一、需求二、处理方式三、代码实现 一、需求 根据可视化的需要&#xff0c;下图的数据需要使用棋盘图的样式来展示&#xff0c; 原始数据&#xff1a; 最终效果图&#xff1a; 二、处理方式 1、先将DataFrame数据转换为Numpy数组&#xff1b; 2、先使用np.transp…

Window下Mysql5.x和8.x版本切换

在最近的工作中需要使用Mysql5.x版本&#xff0c;但以前的自己项目开发使用的Mysql版本都是8.x。因此特意去查资料看了一下&#xff0c;下边是如何在window下实现两个不同版本Mysql的切换。 既然是不同的Mysql&#xff0c;所以我们需要去下载自己需要的Mysql版本安装即可。&…

立思辰打印机IP连接和USB连接

打印机是常用办公设备,很多家庭也都用着这个,立思辰3032是一个比较老的型号,属于国产打印机,基本功能都有,下边分享一下安装经验: 1.驱动: 不管是连USB还是IP地址,都需要先给电脑装上打印机驱动,只有装上驱动,系统才能够识别打印机,并帮助用户传输文件。一般来讲,立…

Jenkins动态化阶段步骤

Jenkins中如何去根据入参动态化阶段步骤呢&#xff1f; Groovy语言基础 定义一个列表变量 def list []定义一个map的kv结构变量 def map [:]如何可以动态化阶段步骤 动态化步骤&#xff1a;其实就是&#xff0c;在jenkins pipeline中根据入参或者其他变量列表&#xff0c;动…

进阶高级Python开发工程师,不得不掌握的Python高并发编程(文末送书5本)

&#x1f935;‍♂️ 个人主页&#xff1a;艾派森的个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f4…

Vue 项目路由、自定义指令、api方法自动引入资源(require.context使用)

前端项目&#xff08;当前我以Vue项目为例&#xff09;当我们把api挂载在main上后 // 将api挂载到vue的原型上 import api from /api Vue.prototype.$apiapi在src下会有一个api文件夹&#xff0c;结构如下&#xff1a; 通常情况下&#xff0c;api文件夹的index.js文件我们通常…

Morris遍历--验证二叉搜索树(java)

Morris遍历- 验证二叉搜索树题目描述Morris 遍历解题代码演示&#xff1a; morris 遍历改写后序遍历 验证二叉搜索树 来源&#xff1a;力扣&#xff08;LeetCode&#xff09; 链接&#xff1a;https://leetcode.cn/problems/validate-binary-search-tree 题目描述 给你一个二叉…

git同步推送代码至gitee和阿里云效

背景 已有阿里云效的代码库&#xff0c;想迁移gitee却迁移不了&#xff0c;只能把代码先拉取下来&#xff0c;然后重新建库&#xff0c;配置过后&#xff0c;采用同步推送的方式&#xff0c;同步两个库的代码。 步骤一 新建名称相同的库 在gitee上新建库 在阿里云效上新建库 …

Java 提供的队列

一、基础数据结构 1、大O 表示法 O(1)&#xff1a;常数级别&#xff0c;它执行的步数都是恒定的&#xff0c;不会因为输入变大而变大&#xff0c;哈希表的查找就是这个级别。O(N)&#xff1a;线性级别&#xff0c;随着输入变大耗费的步数也正向相关&#xff0c;遍历算法就是这…