当前位置: 首页 > news >正文

计算机网络-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的知识点做成一个思维导图,以供迷茫的小白参考,哪里不会&#xf…...

【云原生】手把手带你从零开始搭建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强强联合呢&…...

基于服务器使用 apt 安装、配置 Nginx

🧾 一、查看可安装的 Nginx 版本 首先,你可以运行以下命令查看可用版本: apt-cache madison nginx-core输出示例: nginx-core | 1.18.0-6ubuntu14.6 | http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages ng…...

【解密LSTM、GRU如何解决传统RNN梯度消失问题】

解密LSTM与GRU:如何让RNN变得更聪明? 在深度学习的世界里,循环神经网络(RNN)以其卓越的序列数据处理能力广泛应用于自然语言处理、时间序列预测等领域。然而,传统RNN存在的一个严重问题——梯度消失&#…...

质量体系的重要

质量体系是为确保产品、服务或过程质量满足规定要求,由相互关联的要素构成的有机整体。其核心内容可归纳为以下五个方面: 🏛️ 一、组织架构与职责 质量体系明确组织内各部门、岗位的职责与权限,形成层级清晰的管理网络&#xf…...

学习STC51单片机31(芯片为STC89C52RCRC)OLED显示屏1

每日一言 生活的美好,总是藏在那些你咬牙坚持的日子里。 硬件:OLED 以后要用到OLED的时候找到这个文件 OLED的设备地址 SSD1306"SSD" 是品牌缩写,"1306" 是产品编号。 驱动 OLED 屏幕的 IIC 总线数据传输格式 示意图 …...

MySQL中【正则表达式】用法

MySQL 中正则表达式通过 REGEXP 或 RLIKE 操作符实现(两者等价),用于在 WHERE 子句中进行复杂的字符串模式匹配。以下是核心用法和示例: 一、基础语法 SELECT column_name FROM table_name WHERE column_name REGEXP pattern; …...

Web 架构之 CDN 加速原理与落地实践

文章目录 一、思维导图二、正文内容(一)CDN 基础概念1. 定义2. 组成部分 (二)CDN 加速原理1. 请求路由2. 内容缓存3. 内容更新 (三)CDN 落地实践1. 选择 CDN 服务商2. 配置 CDN3. 集成到 Web 架构 &#xf…...

Python ROS2【机器人中间件框架】 简介

销量过万TEEIS德国护膝夏天用薄款 优惠券冠生园 百花蜂蜜428g 挤压瓶纯蜂蜜巨奇严选 鞋子除臭剂360ml 多芬身体磨砂膏280g健70%-75%酒精消毒棉片湿巾1418cm 80片/袋3袋大包清洁食品用消毒 优惠券AIMORNY52朵红玫瑰永生香皂花同城配送非鲜花七夕情人节生日礼物送女友 热卖妙洁棉…...

Java + Spring Boot + Mybatis 实现批量插入

在 Java 中使用 Spring Boot 和 MyBatis 实现批量插入可以通过以下步骤完成。这里提供两种常用方法&#xff1a;使用 MyBatis 的 <foreach> 标签和批处理模式&#xff08;ExecutorType.BATCH&#xff09;。 方法一&#xff1a;使用 XML 的 <foreach> 标签&#xff…...

JavaScript基础-API 和 Web API

在学习JavaScript的过程中&#xff0c;理解API&#xff08;应用程序接口&#xff09;和Web API的概念及其应用是非常重要的。这些工具极大地扩展了JavaScript的功能&#xff0c;使得开发者能够创建出功能丰富、交互性强的Web应用程序。本文将深入探讨JavaScript中的API与Web AP…...

【JVM】Java虚拟机(二)——垃圾回收

目录 一、如何判断对象可以回收 &#xff08;一&#xff09;引用计数法 &#xff08;二&#xff09;可达性分析算法 二、垃圾回收算法 &#xff08;一&#xff09;标记清除 &#xff08;二&#xff09;标记整理 &#xff08;三&#xff09;复制 &#xff08;四&#xff…...