计算机网络-ip数据报
在图中,网络层包含了四种协议:ARP、IP、ICMP、IGMP,由上下关系表明,ARP为IP协议服务,IP为ICMP和IGMP服务。
IP数据报格式
此处不区分数据报和分组的概念:当数据部分过长时,将数据部分拆分,形成分组,也就是网络层的传输单元。
首部分为固定部分和可变部分,常规下没有可变部分。
版本:4位,表示IPv4/IPv6
首部长度:4位,单位是4字节,因为首部最少是固定部分的20字节,因此首部长度最小为5
区分长度:8位,表示期望获得哪种类型的服务
总长度:16位,表示总长度(首部+数据部分),单位1字节,可表示的最大值为2的16次方-1=65535 。但真实的总长度达不到此值,因为过长就会被分片,用来满足数据链路层MTU的限制。
标识、标志、片偏移: IP数据报分片时使用
生存时间(TTL): 8位,表示IP分组的保质期。每经过一个路由器值-1,变为0时被丢弃。
协议:8位,表示数据部分(即上层传输层)的协议。大致有1(ICMP)、2(IGMP)、6(TCP)、8(EGP)、9(IGP)、17(UDP)、41(IPv6)、50(ESP)、89(OSPF)。
首部检验和:16位,只检验首部。
源地址、目的地址:32位。
可选字段:0-40字节,用来支持排错、测量以及安全等措施。
填充:全0,把首部补充为4字节的整数倍。
IP数据报分片
MTU:链路层数据帧可封装数据的上限。以太网的MTU是1500字节。
网络层的IP分组封装上层数据(传输层)时,只增加了首部;链路层封装上层数据时,加头加尾。
整个IP分组构成了链路层的数据部分,当超过链路层MTU限制时,普遍采用分片的形式。当IP数据报要求不使用分片且长度超过MTU,则数据发送不出去,向上层返回一个ICMP差错报文。
标识:16位,同一数据报的分片使用同一标识。
标志:3位,只有两位有效,最高位保留不用。
中间位DF(don’t fragment):1,禁止分片;0,允许分片
最低为MF(more fragment):1,还有分片;0,最后一片/没有分片了
片偏移:13位,表示分片后某片在原分组中的相对位置,单位8B。可以看出,分得的片长度都是8B的整数倍(除了最后一片)。
分片过程
某个数据报首部20B、数据部分3800B,需要分片为长度不超过1420B的数据报片。
则可以分为三片,每片的首部长度和原始数据报相同。
分片后,是乱序到达吗?目的方如何再把片组装起来?
IP地址的分类
IP地址的历史阶段:
- 分类的IP地址
- 子网的划分
- 构成超网(无分类编址方法)
分类的IP地址
IP地址: 全世界唯一的32位/4字节标识符,标识路由器或主机的接口。主机或路由器有多个接口,就有可能有多个ip地址。
IP地址:{网络号,主机号}
网络号不为0,主机号为0标识某个网络。
LAN1:网络号222.1.3.0,网络内各主机的主机号不同
LAN2:网络号222.1.1.0
LAN3:网络号222.1.2.0,虽然内部有网桥,但它是链路层设备,不能隔离广播域,仍然是一个网络。
中间的三个路由器,每个路由器都有三个接口,每个接口都是一个网络。
可以看到4字节的IP地址,被分为A、B、C、D、E五类,每类能表示的数量是上类的一半。
每类中能表示的IP地址,有些是不可以用的。
网络号全0(表示本网络,肯定是A类地址),,当主机号:
- 为全0,表示自己这台主机。可以作为源地址,不能作为目的地址
ps: 当写tcp程序时,监听ip地址0.0.0.0,,与这个有关系吗 - 不为全0,表示本网络内的某台主机,可以作为目的地址,不能作为源地址
网络号全1,主机号全1,即255.255.255.255,表示本网广播地址,不能作为源地址,只能作为目的地址,路由器收到目的地址为它的分组不转发,因为路由器可以隔离广播域。
网络号特定值,主机号全0,表示某个网络,不能作为目的地址和源地址。
网络号特定值,主机号全1,表示某个特定网络的广播地址,可以作为目的地址,不能作为源地址。
网络号127(A类地址),主机号非全0非全1,表示环回地址,可以作为源地址和目的地址。
总结:
网络号全为0,表示本网络的某台主机;
主机号全为0,表示某个网络。
主机号全为1,表示广播地址。
这些特殊的IP地址不能作为主机或路由器的接口地址。
私有IP地址,只能在本地网中使用,路由器对私有地址数据包一律不转发。
最大主机数,都是减去全0和全1,即2。
A类地址中,最大网络数减去全0(表示本网络)和全1(127,表示换回地址)
B类地址中,最大网络数减去全0(表示本网络)
C类地址中,最大网络数减去全0(表示本网络)
NAT网络地址转换
在专用网连接到因特网的路由器上安装NAT软件,安装了NAT软件的路由器叫NAT路由器,它至少有一个有效的外部全球IP地址。
NAT路由器有一个NAT转换表。
在数据往外发时,源地址是本地地址,替换为路由器的外网地址;在外部数据进来时,目的地址是路由器的外网地址,转换为本地地址。
相关文章:

计算机网络-ip数据报
在图中,网络层包含了四种协议:ARP、IP、ICMP、IGMP,由上下关系表明,ARP为IP协议服务,IP为ICMP和IGMP服务。 IP数据报格式 此处不区分数据报和分组的概念:当数据部分过长时,将数据部分拆分&…...

从零开始学C
以下是 该如何学习C语言的【思维导图】以及部分重点知识点的【博客链接】。其实C语言并不难,难的是没有人去教,没有耐心去学。不知道从哪下手学习,我将C的知识点做成一个思维导图,以供迷茫的小白参考,哪里不会…...

【云原生】手把手带你从零开始搭建kubernetes最新版本实战
文章目录前言一. 实验环境二. k8s 的介绍三 . k8s的安装3.1 搭建实验环境3.1.1 硬件层面的要求3.1.2 软件层面环境配置3.2 docker的安装3.2.1 搭建docker3.2.2 部署 cri-dockerd3.3 部署k8s3.3.1 配置添加阿里云的yum源3.3.2 安装kubeadm kubelet kubectl3.3.3 k8s-master节点初…...
trivy os软件包扫描原理分析
具体可以基于之前的博客来做 基于trivy获取基础镜像 参数修改一下: cliOpt.ListAllPkgs true 结果中会带有如下格式的结果: "Results":[{"Target":"192.168.1.94:443/test22/centos:7 (centos 7.9.2009)","Clas…...

算法训练营 day48 动态规划 完全背包 零钱兑换 II 组合总和 Ⅳ
算法训练营 day48 动态规划 完全背包 零钱兑换 II 组合总和 Ⅳ 完全背包 有N件物品和一个最多能背重量为W的背包。第i件物品的重量是weight[i],得到的价值是value[i] 。每件物品都有无限个(也就是可以放入背包多次),求解将哪些物…...
Java 基础(1)—泛型简单使用
一、泛型定义及作用 泛型是一种编程机制,允许在编写代码时使用参数化类型,以在编译时实现类型安全。 以下是泛型作用: 增强代码可读性和可维护性:通过在代码中使用泛型参数,可以使代码更清晰、更具有可读性和可维护性…...
内存卡损坏了怎么恢复?
内存卡损坏了怎么恢复?现在我们身边有不少电子设备都是用存储卡来存储数据的。一旦需要方便我们直接导出使用。但这存储的数据也不是一定安全的,当我们将内存卡连接到电脑时,难免会碰到病毒、格式化等提示,在这些情况下,可能会导…...

Mysql使用规范(纯技术和实战建议)
1、事务隔级别: (强制):Repeatable-Read(重复读),且不能在会话操作时临时开启隔离级别。 注: Repeatable-Read(重复读)隔离级别解决不了幻读。 可用 show variables l…...

Netty源码解读-EventLoop(二)
一、简介 NioEventLoop的重要组成:Selector、线程、任务队列,他既会处理io事件,也会处理普通任务和定时任务. 1.下面是Selector,注意有两个哦后面会讲 2.下面的爷爷类提供的Thread变量,其实下面发excutor用的就是这个…...

OSI模型详解
今天,我们详解OSI(Open System Inter-connection Reference Model)模型,来看看工业物联网的网络互联和数据互通。 OSI模型 1984年,国际标准化组织(International Organization for Standardization&#…...

Share Creators完成500万美元融资,以工具化手段帮助企业从数字资产管理中解放
近日,总部位于旧金山湾区的初创公司Share Creators宣布完成了新一轮500万美元的融资,投资方为五源资本和福昕PDF。本轮融资主要用于扩大客户基础,并加速在美国、欧洲和亚洲的业务发展。近几年,企业内容及数字资产管理全球市场正在…...

几个Base64编码工具,也有蹊跷
起因 需求:对一段内容进行base64加密,然后通过url的get请求进行发送到后台,由于加密的内容比较少,base64串也不是很长,我认为此方案可行。 于是找了三个base64编码的在线工具,分别是: 平台1&…...
Python|每日一练|排序|递归|字符串|数组|动态规划|单选记录:以特殊格式处理连续增加的数字|正则表达式匹配|地下城游戏
1、以特殊格式处理连续增加的数字(排序) 贡献者:EricLao 给出一串数字, 程序要把数字按照这样的格式输出,把连续增加的数字用 [x-y] 的形式表示,只显示这一组顺序数字的首位两个数字,不连续增…...

Spring Cloud微服务网关Gateway组件
目录 网关简介 什么是Spring Cloud Gateway Spring Cloud Gateway 功能特征 核心概念 工作原理 Spring Cloud Gateway快速开始 环境搭建 集成Nacos 路由断言工厂(Route Predicate Factories)配置 自定义路由断言工厂 过滤器工厂( …...
cluster nodes(集群节点)
CLUSTER NODES 复制 自3.0.0起可用。 时间复杂度: O(N)其中N是 Cluster 节点的总数 Redis 集群中的每个节点都有其当前集群配置的视图,由已知节点的集合给出,我们与这些节点的连接状态,它们的标志&…...

【Android学习】下载jar慢和gradle慢的情况
目录 问题出现的原因 解决方法 解决Gradle下载问题:手动安装 解决jar包下载慢问题:更改下载源 问题出现的原因 国内访问谷歌被墙导致访问速度慢或者干脆无法下载 解决方法 解决Gradle下载问题:手动安装 访问官网Gradle | Release Candi…...

下一个排列-力扣31-java
一、题目描述整数数组的一个 排列 就是将其所有成员以序列或线性顺序排列。例如,arr [1,2,3] ,以下这些都可以视作 arr 的排列:[1,2,3]、[1,3,2]、[3,1,2]、[2,3,1] 。整数数组的 下一个排列 是指其整数的下一个字典序更大的排列。更正式地&…...
前端面试题
1.HTTP request报文结构是怎样的 1.首行是Request-Line包括:请求方法,请求URI,协议版本,CRLF(换行符) 2.首行之后是若干行请求头,包括general-header,request-header或者entity-hea…...

jsp游戏门户网站系统Myeclipse开发mysql数据库web结构java编程计算机网页项目
一、源码特点 jsp 游戏门户网站系统 是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql,使…...

Git与IDEA强强联合(HTTPS协议连接)
最近在写项目的时候,在台式机和笔记本之间频繁切换,竟然还是用qq传压缩包,我自己都感觉无语,有git这样强大的版本管理工具,我竟然没想起来。然后也没有相关的博文就想来更新一篇。 那么如何使idea和git强强联合呢&…...
[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解
突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 安全措施依赖问题 GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...
Frozen-Flask :将 Flask 应用“冻结”为静态文件
Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是:将一个 Flask Web 应用生成成纯静态 HTML 文件,从而可以部署到静态网站托管服务上,如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...
数据链路层的主要功能是什么
数据链路层(OSI模型第2层)的核心功能是在相邻网络节点(如交换机、主机)间提供可靠的数据帧传输服务,主要职责包括: 🔑 核心功能详解: 帧封装与解封装 封装: 将网络层下发…...
Linux云原生安全:零信任架构与机密计算
Linux云原生安全:零信任架构与机密计算 构建坚不可摧的云原生防御体系 引言:云原生安全的范式革命 随着云原生技术的普及,安全边界正在从传统的网络边界向工作负载内部转移。Gartner预测,到2025年,零信任架构将成为超…...

EtherNet/IP转DeviceNet协议网关详解
一,设备主要功能 疆鸿智能JH-DVN-EIP本产品是自主研发的一款EtherNet/IP从站功能的通讯网关。该产品主要功能是连接DeviceNet总线和EtherNet/IP网络,本网关连接到EtherNet/IP总线中做为从站使用,连接到DeviceNet总线中做为从站使用。 在自动…...
MySQL中【正则表达式】用法
MySQL 中正则表达式通过 REGEXP 或 RLIKE 操作符实现(两者等价),用于在 WHERE 子句中进行复杂的字符串模式匹配。以下是核心用法和示例: 一、基础语法 SELECT column_name FROM table_name WHERE column_name REGEXP pattern; …...
laravel8+vue3.0+element-plus搭建方法
创建 laravel8 项目 composer create-project --prefer-dist laravel/laravel laravel8 8.* 安装 laravel/ui composer require laravel/ui 修改 package.json 文件 "devDependencies": {"vue/compiler-sfc": "^3.0.7","axios": …...

2025季度云服务器排行榜
在全球云服务器市场,各厂商的排名和地位并非一成不变,而是由其独特的优势、战略布局和市场适应性共同决定的。以下是根据2025年市场趋势,对主要云服务器厂商在排行榜中占据重要位置的原因和优势进行深度分析: 一、全球“三巨头”…...
省略号和可变参数模板
本文主要介绍如何展开可变参数的参数包 1.C语言的va_list展开可变参数 #include <iostream> #include <cstdarg>void printNumbers(int count, ...) {// 声明va_list类型的变量va_list args;// 使用va_start将可变参数写入变量argsva_start(args, count);for (in…...

macOS 终端智能代理检测
🧠 终端智能代理检测:自动判断是否需要设置代理访问 GitHub 在开发中,使用 GitHub 是非常常见的需求。但有时候我们会发现某些命令失败、插件无法更新,例如: fatal: unable to access https://github.com/ohmyzsh/oh…...