网络基础-IP协议

文章目录

  • 前言
  • 一、IP报文
  • 二、IP报文分片重组
    • IP分片
    • IP分片示例
    • MTU
    • ping 命令可以验证MTU大小
      • Windows系统:
      • Linux系统:


前言

基础不牢,地动山摇,本节我们详细介绍IP协议的内容。


一、IP报文

在这里插入图片描述
第一行:
4位版本号指定IP协议的版本,有IPv4,SIP,PIP。
4位头部长度是指该IP头部有多少个4字节,因为4位能表示的最大数是15,所以IP头部最长60字节。
8位服务类型,说明了IP数据包的服务需求,包括:最小延时、最大吞吐量、最高可靠性和最小费用。比如ssh和telent这样的登录程序需要的是最小延时服务,文件传输ftp需要最大吞吐量服务。
16为总长度指IP总长度。 MTU(帧的最大传输单元)绝对了1500字节内。
第二行:
16位标识能唯一标识主机发送的每一个数据报,初值随机,每发送一个,其值就加一,用于分片和重组。同一个数据报的所有分片具有相同的标识值。
3位标志字段,第一位保留,第二位可以设置禁止分片DF,第三位标识数据报的更多分片MF。
DF为1:不能分片 MF为1:中间分片
13位分片偏移是指相对于原数据报的偏移。
第三行:
8位生存时间TTL是数据报到达目的地之前允许经过的路由器跳数。
8位协议用来区分上层协议: 1是ICMP 6是TCP 17是UDP
16位头部校验和由发送端填充,接收端用来检查头部是否损坏。
第四行:
32位源端IP地址和目的端IP地址,传输过程中保持不变。
选项字段: 记录路由(记录途径的路由器)、时间戳(测量途径路由器之前数据报传输的时间)松散源路由选择和严格源路由选择(必须经过这些和仅能通过这些)

二、IP报文分片重组

IP分片

IP分片原因:链路层具有最大传输单元MTU这个特性,它限制了数据帧的最大长度,不同的网络类型都有一个上限值。以太网的MTU是1500,你可以用 netstat -i 命令查看这个值。如果IP层有数据包要传,而且数据包的长度超过了MTU,那么IP层就要对数据包进行分片(fragmentation)操作,使每一片的长度都小于或等于MTU。我们假设要传输一个UDP数据包,以太网的MTU为1500字节,一般IP首部为20字节,UDP首部为8字节,数据的净荷(payload)部分预留是1500-20-8=1472字节。如果数据部分大于1472字节,就会出现分片现象。

# 查看MTU
[root@test-90 data]# netstat -i
Kernel Interface table
Iface             MTU    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
ens33            1500    77622      0      0 0         30128      0      0      0 BMRU
lo              65536        0      0      0 0             0      0      0      0 LRU

IP分片示例

在这里插入图片描述

MTU

Maximum Transmission Unit,最大传输单元,指的是数据链路层的最大payload,由硬件网卡设置MTU,是一个硬性限制留给网络层的数据长度(以太网的有效载荷:Payload)

ping 命令可以验证MTU大小

Windows系统:

ping -f -l 1000  www.baidu.com

-f 设置DF标志位为1
-l 指定负载中的数据长度
如图:设置负载2000超过了MTU1500,同时设置DF为1,则提示报错。
在这里插入图片描述

Linux系统:

ping  -M do/want/dont   -s 1000  www.baidu.com

-M 选项通常和 -s 选项结合测试 IP 包的分片情况,do: 禁止分片,即使包被丢弃;want:当包过大时本地分片,dont:不设置分片标志位 DF
在这里插入图片描述

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

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

相关文章

C++使用thread_local实现每个线程下的单例

对于一个类,想要在每个线程种有且只有一个实例对象,且线程之间不共享该实例,可以按照单例模式的写法,同时使用C11提供的thread_local关键字实现。 在单例模式的基础上,使用thread_local关键字修饰单例的instance&…

NineData云原生智能数据管理平台新功能发布|2024年5月版

重点发布​ 数据库 DevOps - 表分组查询​ 在企业用户规模达到一定程度后,分库分表成为一种常见的数据库架构选择。在这种情况下,查询和维护数据需要高效的解决方案,以避免手动逐一查询、变更和汇总多个分库和分表的繁琐操作。 库分组变更…

LLM中完全消除矩阵乘法,效果惊人!10亿参数在FPGA上运行功耗接近大脑!!

一直以来,矩阵乘法(MatMul)在神经网络操作中占据主导地位,主要因为GPU针对MatMul进行了优化。 老黄一举揭秘三代GPU!打破摩尔定律,打造AI帝国,量产Blackwell解决ChatGPT全球耗电难题 这种优化使…

【适配鸿蒙next】Flutter 新一代混合栈管理框架

前言 据最新消息显示,华为今年下半年将全面转向其自主平台HarmonyOS,放弃Android系统。 报道中提到,下一版HarmonyOS预计将随华为即将推出的Mate 70旗舰系列一起发布。 据悉,HarmonyOS Next 已经扩展到4000个应用程序,…

C++【STL】改造红黑树简单模拟实现set map(带你了解set map的底层实现结构)

目录 一、学前铺垫(泛型编程) 二、改造红黑树 1.红黑树节点的改造 2.insert的改造 3.迭代器的实现 4.完整改造代码 三、set的模拟实现封装 四、map的模拟实现封装 五、完结撒❀ 前言: 下面为了简单模拟实现set map所出现的代码是以…

Tensorflow入门实战 P03-天气识别

目录 1、完整代码 2、运行结果 2.1 查看20张图片 2.2 程序运行 2.3 运行结果 3、小结 ① 代码运行过程中有报错: ② 修改代码如下: ③ 分析原因: 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者&…

NDIS Filter开发-PNP响应和安装

NDIS filter驱动可能是最容易生成的驱动之一,如果你安装了VS 2015 WDK之后,你可以直接生成一个能运行的Filter驱动,它一般是ndislwf。 和大部分硬件不同,NDIS Filter驱动介于软件和硬件抽象层之上,它和硬件相关&…

SpringCloud Gateway中Route Predicate Factories详细说明

官网地址:https://cloud.spring.io/spring-cloud-static/spring-cloud-gateway/2.2.1.RELEASE/reference/html/#gateway-request-predicates-factories Spring Cloud Gateway将路由匹配作为Spring WebFlux HandlerMapping基础架构的一部分。 Spring Cloud Gateway …

使用 GPT-4 创作高考作文 2024年

使用 GPT-4 创作高考作文 2024年 使用 GPT-4 创作高考作文:技术博客指南 🤔✨摘要引言正文内容(详细介绍) 📚💡什么是 GPT-4?高考作文题目分析 ✍️🧐新课标I卷 人类智慧的进步&…

【C51】C51单片机实现的 抽奖机 设计与编程指南

文章目录 前言:1. 实现效果2. 准备工作3. 编写代码总结: 前言: 在本文中,我们将介绍如何使用C51单片机来实现一个简单的抽奖机。这个项目不仅能够展示C51单片机的基本应用,还能让我们了解如何通过编程来控制硬件&…

9.3 Go 接口的多态性

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

Django 视图类

在Django框架中,视图类(Class-based views,简称CBVs)提供了一个面向对象的方式来定义视图。这种方式可以让你通过创建类来组织视图逻辑,而不是使用基于函数的视图(Function-based views,简称FBV…

详解FedAvg:联邦学习的开山之作

FedAvg:2017年 开山之作 论文地址:https://proceedings.mlr.press/v54/mcmahan17a/mcmahan17a.pdf 源码地址:https://github.com/shaoxiongji/federated-learning 针对的问题:移动设备中有大量的数据,但显然我们不能收…

minio的一个基础使用案例:用户头像上传

文章目录 一、minio下载安装(Windows)二、案例需求分析三、后端接口开发 一、minio下载安装(Windows) 1. 下载minio服务端和客户端 minio下载地址 2. 手动搭建目录 /minio/binmc.exeminio.exe/data/logs手动创建minio应用程序目…

vivado HW_DEVICE

硬件设备 描述 在Vivado Design Suite的硬件管理器功能中,每个硬件目标都可以 具有一个或多个Xilinx FPGA设备进行编程或用于调试目的。这个 hw_device对象是通过hw_server打开的hw_target上的物理部分。这个 current_hw_device命令指定或返回当前设备。 相关对象 硬…

Linux—小小内核升级

本篇主要是讲述下关于内核的一些基本常识,并记录下内核升级和编译的过程,若有遗漏/有误之处,望各位大佬们指出。 Ⅰ 基本内核常识 常见内核安装包 内核(kernel):这是Linux操作系统的核心部分,它负责管理系统的硬件和…

Vue3学习第二天记录

Vue3学习第二天记录 背景说明截图记录一个简单的JS文件Vue3的watch()函数Vue3的toRef()/toRefs()函数前端数据类型的分类前端写一个对外暴露的函数前端的...语法Vue3中watch()函数的总结Vue3中watchEffect()函数Vue3中watch()函数的坑Vue3中computed()函数 背景 最近在学习尚硅…

Vue2入门(安装Vue、devtools,创建Vue)以及MVVM分层思想

文章目录 1.下载并安装Vue2.使用Vue2.1 创建Vue以及挂载Vue2.2 模板语句的数据来源:data2.3 template配置项详解2.4 Vue实例和容器的关系 3.安装devtools4.MVVM分层思想5.通过vm可以访问哪些属性 1.下载并安装Vue (1)Vue是一个基于JavaScrip…

搭建高可用k8s

高可用只针对于api-server,需要用到nginx keepalived,nginx提供4层负载,keepalived提供vip(虚拟IP) 系统采用openEuler 22.03 LTS 1. 前期准备 因为机器内存只有16G,所有我采用3master 1node 1.1 修改主机配置(所有节…

扩散模型会成为深度学习的下一个前沿领域吗?

文章目录 一、说明二、 第 1 部分:了解扩散模型2.1 什么是扩散模型2.2 正向扩散2.3 反向扩散 三、他们的高成本四、扩散模型的用处五、为什么扩散模型如此出色六、第 2 部分:使用扩散模型生成6.1 用于自然语言处理和 LLM 的文本扩散6.2 音频视频生成6.3 …