计算机网络-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强强联合呢&…...

leetcode 第二题:两数相加-C语言实现
题目地址 备注: 不要忘记最后一个进位的可能。可以使用typedef,来简化struct的书写 代码实现: #include<stdio.h> #include<stdlib.h>struct listNode {int val;struct listNode* next; };// 使用typedef typedef struct lis…...

【人工智能】PTP网络时钟服务器在智能驾驶里的重要性
【人工智能】PTP网络时钟服务器在智能驾驶里的重要性 【人工智能】PTP网络时钟服务器在智能驾驶里的重要性 一辆宣称具备L4/L5自动驾驶功能的车辆,如果多个激光雷达之间的时间同步不够精确?如果传感器感知数据通过以太网传输到智驾域控制器的延迟不可控…...
【蓝桥杯集训3】二分专题(3 / 5)
目录 二分模板 1460. 我在哪? - 二分答案 哈希表 1221. 四平方和 - 哈希表 / 二分 1、哈希表 2、二分 自定义排序 1227. 分巧克力 - 113. 特殊排序 - 二分模板 l r >> 1 —— 先 r mid 后 l mid1 —— 寻找左边界 —— 找大于某个数的最小值lr…...

在成都的哪个培训机构学习Java好呢?
自从小课06年进入成都这个IT培训市场以来,短短十几年,招过很多学员,也见证过很多机构的起起落落。心中有万分的感慨,总结下来有这几点分享给大家,在选择培训机构时能看清本质,找到适合自己靠谱的机构学Java…...

传输层重要协议之UDP协议和TCP协议详解
更多关于UDP协议和TCP协议请移步官网:https://www.rfc-editor.org/standards#ISUDP标准协议文档-RFC 768TCP标准协议文档-RFC 793UDP协议详解UDP协议的特点:无连接、不可靠传输、面向数据报和全双工。UDP协议报文结构:关于端口号:…...

BNB Greenfield 成存储赛道“新贵”,BNB 生态的野心与破局
“从BNB Beacon Chain,到BNB Chain,再到BNB Greenfield ,三位一体的 BNB 生态格局正式形成。 ”在今年的2月1日,币安发布了分布式存储链BNB Greenfield,根据白皮书信息,它的特别之处在于其不仅具备基于SP&a…...

【SQL开发实战技巧】系列(十六):时间类型操作(上):日、月、年、时、分、秒之差及时间间隔计算
系列文章目录 【SQL开发实战技巧】系列(一):关于SQL不得不说的那些事 【SQL开发实战技巧】系列(二):简单单表查询 【SQL开发实战技巧】系列(三):SQL排序的那些事 【SQL开发实战技巧…...

JavaScript知识点总结
JavaScript 一、介绍: 1.JavaScript是一种专门在浏览器编译并执行的编程语言 2.JavaScript处理用户与浏览器之间请求问题 3.JavaScript采用【弱类型编程语言风格】对【面向对象思想】来进行实现的编程语言 二、弱类型编程语言风格 VS 强类型编程语言风格 …...

adb命令记录
一、获取系统版本 adb shell getprop ro.build.version.release 二、手机文件拉取到电脑 adb命令 : adb pull source_path dest_path 示例: adb pull /sdcard/Movies/app_layout.txt ./ 从手机拉取app_layout.txt文件到当前路径。 三、电脑文件推送…...

9.Docker Swarm
Docker Swarm 基本概念 Swarm是使用SwarmKit构建的 Docker 引擎内置(原生)的集群管理和编排工具。Docker Swarm是 Docker 官方三剑客项目之一,提供 Docker 容器集群服务,是 Docker 官方对容器云生态进行支持的核心方案。 使用它…...