计算机网络-网络层1.1

news2024/12/24 1:31:49

IPv4

网络层打包传输数据时,数据量小则称IP数据报,数据量大则分片,每一片称为IPv4分组

分组格式

固定部分长20B,可变部分用于提供错误检测和安全等机制
在这里插入图片描述
在这里插入图片描述

  • 版本:指IP版本
  • 首部长度:以4B为单位,最大值为60B,常用的20B表示不使用任何选项
  • 总长度:首部和数据之和的长度
  • 标识:计数器,每产生一个数据报就+1,每当数据包长度超过网络MTU时,必须分片,每个数据报片都复制一次标识号,用于重新组装
  • 标志:最低位MF为1时才能分片,MF=0表明最后一个分片,中间位DF=0时才能分片
  • 片偏移:某片在原分组中的相对位置,以8B为单位
  • 首部校验和:检验分组的首部,不校验数据部分
  • 生存时间TLL:数据报在网络中可通过路由器数最大值,标识分组在网络中的寿命,以确保分组不会永远在网络中循环,转发前-1,为0时丢弃
  • 协议:指明数据部分采用哪个传输层协议
  • 源地址/目的地址:发送方/接收方的IP地址
    在这里插入图片描述

转发分组流程

  • 1、从首部取出目的地址和源地址
  • 2、检查是否目的地址是否与路由器直接相连,若是则直接交付给目的主机,否则是间接交付,执行步骤3
  • 3、若路由表中有符合的目的地址的特定路由,有则传送给指定的路由,否则执行步骤4
  • 4、若路由器中有到到达目的地址的路由,则将数据报传送给指定路由器,否则执行步骤5
  • 5、若路由表有默认路由,则传送给默认路由,没有则报告出错

在拿到下一跳路由器的IP地址时,不是直接将其填入数据报,而是将IP地址转换为MAC地址,放在MAC帧首部,根据MAC地址找到下一跳路由器,不同网络中传送时,MAC的源地址和目的地址会改变,但网桥转发时不改变

IPv4地址

组成与分类

连接到因特网上的每台组局都分配一个32bit的全球唯一标识符,分为A-E五类
在这里插入图片描述
网络号标志主机所连接到的网络,主机号标志主机,都是唯一
在这里插入图片描述

特点

  • IP地址分成网络化和主机号两部分,使得主机号作为第二级由单位自行分配,转发分组时只需考虑网络号,方便
  • IP地址是标志一台主机和一条链路的接口,当一台主机连接到了两个网络,主机就得有两个IP地址
  • 用网桥等连接的LAN,网络号仍然相同
  • 所有网络平等
  • 同一局域网内所有联网设备网络号一样

NAT

网络地址转换NAT通过将专用网络地址转换为公用地址,从而对外隐藏内部管理的IP地址,它使得整个专用网只需一个IP地址就可联网,且内部IP地址可重用,隐藏了内部结构

私有IP地址

私有IP地址,依赖NAT转换为合法IP地址,无法直接联网,在因特网中的所有路由器,对目的地址是私有地址的数据报一律不进行转发。这种采用私有IP地址的互联网络称为专用互联网或本地互联网。私有IP地址也称可重用地址
在这里插入图片描述

子网

两级IP地址对IP地址空间的利用率有时很低,给每个物理网络分配一个网络号会使得路由表太大而使得网络性能变坏,而且也不够灵活

因此提出子网号字段,形成三级IP地址,这么做叫子网划分

在这里插入图片描述
转发时依旧根据网络号转发,到本单位网络后,根据子网号查找目的主机

子网掩码

外部网络想获取单位子网网络时,需要通过将目的主机的IP地址与子网掩码进行逻辑与,默认子网掩码都是网络号和子网号都为1,主机号区域都为0
在这里插入图片描述
当需要分组转发时,路由表内每个条目都需要给出目的网络地址和下一跳地址、目的网络的子网掩码

同属一个子网的所有主机和路由器的端口,都需要设置一样的子网掩码
在这里插入图片描述
跟前面的分组转发步骤差不多,都是先检查直接交替是否可以,不可以则按特定路由,可路由表可得路由、默认路由的顺序进行路由

无分类域间路由选择CIDR

消除了ABC类和子网的概念
在这里插入图片描述
提出了超网/路由聚合的概念,缩短了路由表在这里插入图片描述

地址解析地址ARP

IP地址是网络层使用的地址,它是分层次等级的。

硬件地址是数据链路层使用的地址(如MAC地址),它是平面式的。

在网络层及网络层之.上使用IP地址,IP地址放在IP数据报的首部,

而MAC地址放在MAC帧的首部。

通过数据封装,把IP数据报分组封装为MAC帧后,数据链路层看不见数据报分组中的IP地址。

无论网络层使用什么协议,在实际的链路上传送时,都需要使用硬件地址,因此需要一种方法来完成IP地址到MAC地址的映射,这就是地址解析地址协议
每个主机都有一个ARP高速缓存,存放ARP表,使用ARP来动态维护此ARP表
在这里插入图片描述

动态主机配置协议-DHCP

给主机动态分配IP地址,允许主机加入新网络后获取IP地址,无需手动参与
DHCP实质上是应用层协议,基于UDP

工作原理

在这里插入图片描述

使用C/S方式

需要IP地址的主机会在启动时向DHCP服务器广播发送发现报文,此时主机成为DHCP客户,本地网络所有主机都能收到,但只有DHCP服务器才能应答,发出提供报文

DHCP服务器先在数据库中查找对应主机的配置信息,找到则返回,找不到则从IP地址池取一个地址分配给该主机

网际控制报文协议-ICMP

ICMP协议支持主机或路由器通过发送特点ICMP报文进行差错报告和网络探询来提高转发IP数据包和交付成功的机会
ICMP报文包含ICMP差错报文、ICMP询问报文
在这里插入图片描述

ICMP差错报告报文

  • 终点不可达:路由器或主机不能交付数据报时就向源点发送终点不可达报文
  • 源点抑制:当路由器或主机由于堵塞而丢弃数据报时,就向源点发送源点抑制报文,使源点把传输数据速率放慢
  • 时间超过:当路由器收到生存时间TLL=0的数据报时,除丢弃该数据报外,还要向源点发送时间超过报文,当终点在预定时间内不能收到一个数据报的全部数据报片时,就把已收到的数据报片都求其,并向源点发送时间超过报文
  • 参数问题:当路由器或目的主机收到的数据报的首部中有的字段的值不对时,就丢弃数据报,并向源点发送参数问题报文
  • 改变路由/重定向:路由器把改变路由报文发送给主机,让主机下次选择发送给另外的路由器
    在这里插入图片描述

ICMP询问报文

回送请求和回答报文:主机/路由器向特定主机发出询问,收到此报文的主机必须给源主机/路由器发送ICMP回送回答报文,测试目的是否可达及其相关状态

时间戳请求和回答报文:请求某个主机/路由器回答当前的日期和实际,进行时钟同步和测量时间

ICMP应用

ICMP两个常见应用是分组网间探测PING和Traceroute/Tracert,分别用于测试两台主机间连通性和跟踪分组经过的路由
其中PING使用了回送请求和回答报文,工作在应用层
Tracert则是使用了时间超过报文,工作在网络层

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

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

相关文章

Java --- springboot3之web的自动配置原理

目录 一、自动配置 二、默认效果 三、WebMvcAutoConfiguration原理 3.1、生效条件 3.2、效果 3.3、WebMvcConfigurer接口 一、自动配置 1、导入web的pom依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-s…

计算机网络-层级架构

计网概念 计算机网络将分散的、具有独立功能的计算机系统&#xff0c;通过通信设备与线路连接起来&#xff0c;由软件实现资源共享和信息传递&#xff0c;同时也是一些互联的、自治的计算机系统的集合 计网组成的三种划分方式 硬件、软件、协议 硬件包含主机&#xff08;端系…

Redis底层学习(四)—存储类型-Hash篇

文章目录 特点具体服务器操作命令底层结构应用场景 特点 1.适⽤场景&#xff1a;存储⽆序字典的数据&#xff0c;⽐如&#xff1a;适合存储对象类型、存储猪⾁价格等。 2.它的内部采⽤ 数组 链表 的结构&#xff0c;类似java⾥的HashMap。 hash的key值只能是字符串。将对象存…

从C语言到C++_15(vector的模拟实现)+迭代器失效问题

目录 1. vector的基本框架 1.1 构造析构和容量 1.2 push_back&#xff0c;reserve和operator[ ] 2. vector的迭代器 2.1 四个基本迭代器 2.2 迭代器区间初始化 2.3 迭代器的分类 3. vector的其它接口函数 3.1 修改后的reserve 3.2 resize 3.3 pop_back 4. insert和…

【Android】Jadx动态调试应用

【Android】Jadx动态调试应用 1. 前言 Jadx已支持动态调试APP&#xff0c;但一直没试过&#xff0c;从逆向角度尝试走一遍流程并熟悉&#xff0c;方便日后翻阅。 2. 相关知识 2.1 动态调试原理 动态调试的原理可以概括为以下几个步骤&#xff1a; 启动应用程序进程&#x…

[数据挖掘02] pandas的分配和聚合函数(1)

一 说明 窗口函数是什么&#xff1f;窗口函数是时间序列的局部属性处理函数&#xff0c;比如&#xff0c;一维卷积滤波、移动平均、指数平均本篇我们将针对pandas对象的窗口函数展开讨论&#xff0c;并以示例展示他们的概念实质。 二 窗口函数、分组函数&#xff08; GroupBy …

2023年18个最佳的ChatGPT AI插件

​关注文章下方公众号&#xff0c;可免费获取AIGC最新学习资料 导读&#xff1a;ChatGPT已经将人工智能提升到了一个新的高度。ChatGPT 4不仅是聊天机器人&#xff0c;还可以很好地与第三方插件配合使用。我们挑选出了2023年目前18款最佳的插件来介绍给您。 本文字数&#xff…

【运维知识进阶篇】Ansible Jinja2模板详解

哈喽大家好&#xff0c;我是koten&#xff0c;本篇文章给大家介绍jinja2模板&#xff0c;这是python的全功能模板引擎。在Ansible中&#xff0c;通常会使用jinja2模板来修改被管理主机的配置文件&#xff08;saltstack中也会用到&#xff09; Ansible中使用的jinja2模板其实就…

【软件测试】软件测试管理

软件测试管理 软件测试环境测试环境的要素测试环境管理员 软件测试计划⭐测试计划目标测试计划主题测试计划制订过程定义工作进度的过程测试策略 软件缺陷(bug)管理缺陷的主要属性如何报告缺陷⭐如何跟踪缺陷缺陷度量 软件配置管理&#xff08;SCM&#xff09;软件配置管理的基…

计算机网络传输层1.0

功能 传输层提供进程到进程的逻辑通信 复用和分用 传输层对收到的报文进行差错检测 TCP/UDP 提供进程到进程的逻辑通信 网络层是提供主机间逻辑通信 从网络层来看&#xff0c;通信双方为两台主机&#xff0c;IP数据包首部给出两台主机的IP地址 而实际上的两台主机通信时两台…

Makefile路径处理:执行路径、绝对路径与相对路径的处理

问题描述 最近编写了一个 编译设备树 的 Makefile&#xff0c;遇到了使用 make -f xx/Makefile&#xff0c;执行路径变了&#xff0c;造成 Makefile 里面的一些操作路径不正确&#xff0c;无法执行 获取当前目录 make 内置的 $(CURDIR)&#xff0c;可以把当前路径的全路径打印…

Three.js--》实现图片转3D效果展示

目录 项目搭建 初始化three.js基础代码 加载图片纹理 设置着色器 今天简单实现一个three.js的小Demo&#xff0c;加强自己对three知识的掌握与学习&#xff0c;只有在项目中才能灵活将所学知识运用起来&#xff0c;话不多说直接开始。 项目搭建 本案例还是借助框架书写th…

逻辑推理与集合

逻辑推理与集合是同一个过程的不同展示方式&#xff0c;这两者具有不同的特点。 逻辑推理通常是一种思维过程、语言文本的形式。 而集合则很容易采用一种可视化的方式进行展示&#xff0c;并且集合很容易进行交集、并集、补集、差集等计算。 把语言的逻辑推理过程转换为集合…

0602-指针和数组

数组名 数组名是一个地址常量&#xff0c;不允许赋值。它表示数组首元素的地址。 指针操作数组元素 指针访问数组 指针类型变量\常量1等同于指针保存的内存地址sizeof(指针指向的数据类型)。 2个相同类型的指针相减&#xff0c;得到的结果是2个指针的偏移量。其中偏移单位…

STL模型转有限元网格

随着计算机图形学、硬件和3D打印技术的发展&#xff0c;基于曲面三角网格的图形渲染及其文件格式越来越流行。 在有限元分析&#xff08;FEA&#xff09;中&#xff0c;工程师有时会得到基于三角形网格的几何文件&#xff08;如STL文件等&#xff09;并进行后续分析。 由于曲面…

华为OD机试真题 Java 实现【检查是否存在满足条件的数字组合】【2022Q4 100分】

一、题目描述 给定一个正整数数组&#xff0c;检查数组中是否存在满足规则的数字组合 规则&#xff1a;A B 2C 二、输入描述 第一行输出数组的元素个数。 接下来一行输出所有数组元素&#xff0c;用空格隔开。 三、输出描述 如果存在满足要求的数&#xff0c;在同一行…

【MySQL】不允许你不会SQL语句之DDL

目录 前言&#xff1a; 一.DDL数据库语句 1.1语句讲解 1.2总结 二.DDL表语句 2.1语句讲解 2.2总结 三.DDL字段语句 3.1语句讲解 3.2总结 四.MySQL数据类型 五.结尾 前言&#xff1a; 在从零到一入门MySQL一篇中&#xff0c;我们对数据库已经有了一定的了解&#xf…

Linux 设备树手动反编译 dtb 生成 源文件dts

验证平台 win10 64 位 VMware Workstation Pro 16 ubuntu 20.04 dtc 工具&#xff1a; 来自 linux-6.3.5 中的 scripts/dtc/ 安装 dtc 工具 其实可以通过安装 dtc 软件包&#xff0c;但不建议这么做&#xff0c;最好通过编译Linux 最新的内核&#xff0c;获取这个 dtc 工具…

利用Web Serial API实现Vue与单片机串口通信

一、Web Serial API介绍 Web Serial API 是一项 Web 技术&#xff0c;用于在浏览器中访问串行端口设备&#xff08;如 Arduino、传感器等&#xff09;并与之通信。它提供了一组 JavaScript 接口&#xff0c;使得 Web 应用程序可以通过 USB 串行端口连接到硬件设备&#xff0c;并…

华为OD机试真题 Java 实现【报数游戏】【2022Q4 100分】

一、题目描述 100个人围成一圈&#xff0c;每个人有一个编码&#xff0c;编号从1开始到100。他们从1开始依次报数&#xff0c;报到为M的人自动退出圈圈&#xff0c;然后下一个人接着从1开始报数&#xff0c;直到剩余的人数小于M。请问最后剩余的人在原先的编号为多少&#xff…