计算机网络第四章——网络层

embedded/2024/10/18 6:03:48/

网络层的主要任务就是把分组从源端传到目的端,为分组交换网上的不同主机提供通信服务。网络层的传输单位是数据报

网络层的主要功能:

功能一:路由选择与分组转换

功能二:异构网络互联

功能三:拥塞控制

一.SDN

路由器的功能:转发和路由选择

转发:达到路由器输入链路之一的数据报然后转发到该路由器的输出链路之一。

路由选择:控制数据报沿着从源主机到目的主机的端到端路径中路由器之间的路由方式。

两大平面:数据平面和控制平面

数据平面:数据平面对于数据处理过程中各种具体处理转发过程。

控制屏幕:控制平面用于控制和管理网络协议的运行,比如:OSPF协议,RIP协议,BGP协议

1.数据平面

数据平面对应的就是路由器的转发功能。

2.控制平面

传统方法:也叫每路由器法,路由选择算法运行在每个路由器中,并且每台路由器都包含转发和路由选择两种功能。

SDN(软件定义网络)方法:将控制平面从路由器上物理分离,路由器仅仅只实现转发,通过远程控制器来计算和转发转发表以供每台路由器使用。

控制平面中的路由选择控制器

在传统方法中,路由选择处理器负责执行控制平面的功能,而在SDN方法中,因为控制平面被物理分离出去了,所以无法负责执行控制平面,而是负责与远程控制器进行通信

3.SDN控制器的三个层次

SDN控制器和网络控制应用程序

SDN控制器的三个层次分别是:对于网络控制应用程序的接口、网络范围状态管理层、通信层。

例题:

总结:

二.IP数据报

1.IP数据报格式

首部长度最小是5,因为首部长度的单位是4B,最小就是20B,正好是首部中固定部分的大小,首部中的可变部分可以有,也可以没有,因此最小是5。

协议部分占8位,指的是传输层传下来的数据部分所含的协议,具体如下:

2.IP数据报分片

我们先来复习一下数据链路层最大传输单元MTU:MTU指数据链路层的数据帧可封装的数据的上限,以太网的MTU是1500b

也就是数据链路层中数据帧的数据部分不能超过MTU,那如果所传送的数据报长度超过了数据链路的MTU,这怎么办呢?这就是现在介绍的IP数据报分片。

IP数据报分片的目的就是为了解决IP数据报长度大于了数据链路层的MTU的问题

在上一小节介绍IP数据报格式时,并没有介绍固定部分中的标识、标志和片偏移三个字段的意义,他们主要就是为了控制IP数据报分片以及分片后的重组问题。

例题:

该例题中,需要把IP数据报分片成不超过1420B的数据报分片,注意:每一片分片都会添加一个相同的首部,因此分成了长度为1420B,1420B以及1020B的三片IP数据报分片,因三个报片都是原IP数据报的,所以他们的标识字段值是相同的(12345是随便写的),对于DF字段,三个报片都是允许分片,因为它们自己就是分片得来的,所以都是0(表示允许分片),对于MF字段,它表示该报片后面还有没有报片,很显然,报片1后面有报片2,报片2后面有报片3,报片3后面没有报片,所有分别赋值1,1,0。

三.IPv4地址

IP地址:IP地址表面了当前主机是在哪个网络,哪个主机,就跟人的身份证一样。是全世界唯一的32位标识符,由网络号和主机号组成。(一般用点分十进制表示)

1.分类的IP地址

2.特殊的IP地址

3.私有IP地址

4.常用各类网络可用情况

A类网络中,网络号有7位可变,但是网络号全0表示本网络的意思,如果是127表示环回地址,这两种都是特殊的IP地址,因此最大可用网络为2^7-2,同理,主机号有24位,但是要减去全0和全1,都是属于特殊的IP地址

B类网络也是与A类同理,这里最大网络数应该是2^14,因为现在128.0的网络也可以指派了,最大主机数也是要减去全0和全1的特色IP地址。

C类网络中,最大网络数应该是2^21,因为现在的128.0.0也可以指派。

四.网络地址转换NAT

在前面介绍了私有IP地址,如图:

私有IP地址也叫本地IP地址,一般用于本地网或者专用网,路由器对于这种私有IP地址的数据报一律不进行转发。那这种IP地址又该怎么样与外界互联网或者因特网建立通信呢?这就是现在介绍的网络地址转换NAT!

网络地址转换NAT:在专用网连接到因特网的路由器上安装NAT软件,安装了NAT软件的路由器叫做NAT路由器,它至少有一个有效的外部全球IP地址。

五.子网划分和子网掩码

分类IP地址的缺点:①IP地址空间利用率有时会很低。②二级IP地址不够灵活

例如:一个企业要申请多个网络IP地址,但是如果使用B类网络,所连的主机并不会有那么多,这样就会有大量B类网络IP地址被浪费。并且要申请多个网络IP地址,需要向ISP进行申请,这显然很麻烦,所以,有没有什么办法可以灵活增加单位的网络而不用去向ISP申请?这个办法就是通过子网划分。

1.子网划分

子网划分就是对两级IP地址修改成三级IP地址,对主机号部分修改成子网号加上主机号,子网号能否全0全1看情况,主机号不能全0全1。

划分子网后,对外仍表现为一个网络,即本单位外的网络看不见本单位内的子网划分。

由于外部并不知道内部单位网络是否进行了子网划分,因此对于外部网络的主机想要发送IP数据报到内部单位主机,它只知道发送给哪一个路由器,但是传给哪台主机呢?这就要借助子网掩码了!

2.子网掩码

子网掩码就是主机号位数部分全部是0,网络部分全部为1.子网掩码与IP地址相与,可以得到子网网络地址

例题:

六.无分类编址(CIDR)

1.构成超网

构成超网:将多个子网聚合成一个较大的子网,叫做构成超网,或者叫路由聚合。

方法:将网络前缀缩短(所有网络地址取交集

例题:

2.最长前缀匹配

使用CIDR时,查找路由表可能得到几个匹配结果(与网络掩码按位相与),应选择最长网络前缀的路由,前缀越长,地址块越小,路由越具体。

例题:

七.ARP协议

发送端发送数据时,从应用层开始,到传输层会根据发送数据的大小来对数据进行分段,即报文段,运输层将各报文段交付给网络层,网络层会给各报文段加上发送主机IP地址IP1和目的IP地址IP2,IP1是自己的IP地址,很好获得,而目的IP地址IP2的获取与传输层有关,之后交付给数据链路层,当然,还有根据数据链路层的MTU来决定是否进行分片,在数据链路层,会进行封装,加上主机MAC地址和目的MAC地址作为帧首部,尾部加上FCS形成帧。那目的MAC地址应该怎么填入呢?这就涉及到ARP协议了。

ARP高速缓存:IP地址与MAC地址的映射。

一个网段内发送数据的过程

如果ARP高速缓存当中没有目的IP地址和目的MAC地址的映射,那么会使用ARP协议,即源主机会发送广播ARP请求分组并等待目的主机单播ARP响应分组

不同网段内发送数据的过程:

如果发送目的主机不在本网段内,并且ARP高速缓存中没有映射,那么就会向默认网关发送广播ARP分组。

ARP协议总结如下

例题:

八.DHCP协议

主要內容:

九.ICMP协议

1.ICMP差错报告报文

ICMP差错报告报文有以下五种:

2.形成ICMP差错报告报文的过程:

3.不发送ICMP差错报文情况

2.ICMP询问报文

3.ICMP应用

十.路由算法与路由协议

1.路由算法

路由算法‌是指在网络>计算机网络中,根据网络拓扑结构和路由策略,计算出数据包从源节点到目的节点的最佳路径的算法。

路由算法的分类

2.分层次的路由选择协议

采取分层次的路由选择协议的原因

自治系统AS:一个有权自主地决定在本系统中应采用各种路由协议的小型单位。

十一.IPv6

为什么要有IPv6?

32位的IPv4地址空间已分配殆尽,而CIDR和NAT并不能从根本上解决问题,因此就有了IPv6。简而言之,IPv6就是为了从根本上解决地址耗尽问题。

1.IPv6数据报格式


2.IPv6和IPv4

3.IPv6地址表示形式

4.IPv6基本地址类型

IPv6主要有单播地址、多播地址和任播地址。

十二.RIP协议与距离向量算法

1.RIP协议

RIP协议要求网络中每一台路由器都维护从它自己到其他每一个目的网络的唯一最佳距离记录。只适用小互联网。

距离:通常指跳数,从源端口到目的端口,经过一个路由器跳数+1,距离为16,表示网络不可达。

1.距离向量算法

例题:

3.RIP协议的报文格式

RIP协议特点:好消息传得快,坏消息传得慢。

十三.OSPF协议及链路状态算法

1.OSPF协议

2.链路状态路由算法

3.OSPF区域(了解)

OSPF特点:

十四.BGP协议

BGP协议:

BGP协议特点:

三种路由协议(RIP、OSPF、BGP)比较:

十五.IP组播

IP数据报的三种传输方式:

举个例子,如果有90台主机需要接收视频节目,那么源站点就会复制90份视频数据通过路由分发给各主机,而组播(多播),只需要准备一个,到路由器需要分路传输就会进行复制,提高了数据传送速率。

1.IP组播地址

组播地址范围为:224.0.0.0——239.255.255.255(D类地址),一个D类地址表示一个组播组。只能用作分组的目标地址。源地址总是单播地址。

2.IGMP协议

IGMP工作的两个阶段:

2.组播路由选择协议

组播路由选择协议的目的是找出以源主机为根节点的组播转发树。

组播路由选择协议常用的三种算法:

十六.移动IP

移动IP通信过程

十七.网络层设备

路由器功能:转发和路由选择

三层设备的区别:

路由表和路由转发


http://www.ppmy.cn/embedded/119170.html

相关文章

LeetCode146 LRU缓存

请你设计并实现一个满足 LRU (最近最少使用) 缓存 约束的数据结构。 实现 LRUCache 类: LRUCache(int capacity) 以 正整数 作为容量 capacity 初始化 LRU 缓存int get(int key) 如果关键字 key 存在于缓存中,则返回关键字的值,否则返回 -1 …

【C++报错已解决】std::ios_base::floatfield

🎬 鸽芷咕:个人主页 🔥 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 专栏介绍 在软件开发和日常使用中,BUG是不可避免的。本专栏致力于为广大开发者和技术爱好者提供一个关于BUG解决的经…

用PYTHON合并多个PDF文件

from PyPDF2 import PdfFileReader,PdfFileWriter import os # 合并PDF def Merge_pdf(src_dir,pdf_list,out): if src_dir and os.path.isdir(src_dir): if pdf_list: merge PdfFileWriter() for pdf in pdf_list: pdf…

pytest

pytest测试框架 单元测试框架定义:针对软件开发最小的单元(函数,方法)进行正确性位置测试 单元测试框架:java(junit,testing)python(unittest,pytest&#…

【Verilog学习日常】—牛客网刷题—Verilog企业真题—VL67

十六进制计数器 描述 请用Verilog设计十六进制递增计数器电路,每个时钟周期递增1。 电路的接口如下图所示。Q[3:0]中,Q[3]是高位。 接口电路图如下: 输入描述: input clk , input rst_n ,…

OpenCV特征检测(8)检测图像中圆形的函数HoughCircles()的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 在灰度图像中使用霍夫变换查找圆形。 该函数使用霍夫变换的一种修改版本在灰度图像中查找圆形。 例子&#xff1a; #include <opencv2/imgp…

2-102基于matlab的蒙特卡洛仿真

基于matlab的蒙特卡洛仿真&#xff0c;对64QAM和BPSK进行蒙特卡洛仿真&#xff0c;并绘出误码率曲线。程序已调通&#xff0c;可直接运行。 下载源程序请点链接&#xff1a; 2-102基于matlab的蒙特卡洛仿真

腾讯邮箱上传附件卡、慢、无法上传,下载慢问题处理

1、检查文件中转站容量是否已满 2、建议用户打开链接https://exmail.qq.com/qy_mng_logic/wasmHelper?typehashv2&#xff0c;看是否可以正常访问。&#xff08;能打开下载就表示可以正常访问&#xff09; 3、让用户切换到4G或者其他网络再重新上传附件是否会重现问题&#xf…