计算机网络学习笔记——网络层(b站)

news2024/12/28 9:46:28

目录

网络层概述

网络层提供的两种服务

①面向连接的虚电路服务

②无连接的数据报服务

IPv4

路由选择

路由器转发IP数据报

静态路由选择

动态路由选择

路由信息协议RIP

开放最短路径优先OSPF(Open Shortest Path First)

内部网关协议IGP(如路由信息协议RIP或开放最短路径优先OSPF)

外部网关协议EGP(如边界网关协议BGP)

IPv4数据报首部格式

网际控制报文协议ICMP

虚拟专用网VPN与网络地址转换NAT

虚拟专用网VPN

网络地址转换NAT


网络层概述

网络层主要任务:实现网络互连,进而实现数据报在网络之间的传输

需解决一下问题:

①网络层向运输层提供怎样的服务(可靠传输or不可靠传输)

(不可靠传输丢弃有误码的帧,什么也不做;可靠传输要想办法实现发送端发送什么,接收端就接收什么)

②网络层寻址

③路由选择

网络层提供的两种服务

①面向连接的虚电路服务

可靠通信由网络来保证;必须建立网络层的连接(虚电路VC);双方沿已建立的虚电路发送分组;目的主机地址仅在建立连接阶段使用,之后每个分组首部只需携带一条虚电路编号;如果再使用可靠传输的网络协议,就可以使发送的分组正确到达;通信结束后,需释放虚电路

②无连接的数据报服务

可靠通信由用户主机来保证;不需要建立网络层连接;每个分组可以走不同路径;每个分组必须携带目的主机的完整地址;这种方式传送的分组可能误码、丢失、重复、失序

IPv4

32比特,采用点分十进制表示方法

分类编址的IPv4地址

只有A、B、C类地址可以分配给网络中的主机或路由器的各接口

主机号为全0的是网络地址,主机号为全1的是广播地址,两者都不能分配给主机或路由器的各接口

特殊IPv4地址

0.0.0.0表示本网络上的本主机,只能作为源地址使用

127开头且后面三个字节非全0或全1,用于本地软件环回测试,可以作为源地址、目的地址

255.255.255.255,表示只在本网络上进行广播,只能作为目的地址

从主机号中借用一部分作为子网号

使用子网掩码表示主机号部分被借用了几个比特作为子网号

子网掩码使用连续比特1对应网络号和子网号,使用连续比特0对应主机号

无分类编址

消除传统A、B、C类地址,以及子网划分的概念,可以更加有效地分配IPv4的地址空间

使用“斜线记法”或CIDR记法,在IPv4地址后加上斜线“/”,斜线后面写上网络前缀所占比特数

路由聚合

网络前缀越长,地址块越小,路由越具体

路由器查找转发表时发现由多条路由可以选择,则选择网络前缀最长的那条,这样更具体,称为最长前缀匹配

中继器和集线器工作在物理层,不隔离冲突域和广播域

网桥和交换机工作在数据链路层,隔离冲突域,不隔离广播域

路由器工作在网络层,隔离冲突域和广播域

路由选择

路由器转发IP数据报

①检查IP数据报首部是否出错

若出错则丢弃并向源主机发送ICMP差错报告报文,若没出错,则转发

②根据IP数据报的目的地主之在路由表中查找匹配的条目

若找到匹配的条目,则转发给条目中的下一跳,若找不到,则丢弃IP数据报并通告源主机

静态路由选择

用户或管理员使用路由器的相关命令给路由器人工配置路由表

不能及时适应网络状态(流量、拓扑等)的变化,一般只在小规模网络中使用

动态路由选择

路由器通过路由选择协议自动获取路由信息,能较好适应网络状态的变化,更适应大规模网络

因特网采用的路由选择协议主要特点

自适应:动态路由选择,能较好适应网络状态变化

分布式:路由器之间交换路由信息

分层次:将整个因特网划分为许多较小自治系统AS(Autonomous System)

路由信息协议RIP

要求自治系统AS内的每一个路由器都要维护从它自己到AS内其他每一个网络的距离记录,使用跳数来衡量到达目的网络的距离

路由器到达直连网络的距离为1,到达非直连网络的距离为所经过的路由器数加一,允许一条路径只能包含15各路由器,距离为16时相当于不可达

RIP只适用于小型互联网

RIP认为好的路由就是所通过的路由器数量最少的路由,当到达同一目的网络有多条距离相等的路由时,可以进行等价负载均衡

RIP三个要点①仅和相邻的路由器交换信息②交换的是自己的路由表③周期性交换(如每30秒)

RIP存在坏消息传得慢问题

当网1出现故障

这个时候R1是知道是无法到达的,则其到网1的距离为16,并且为直接交付。
但是R2在收到R1报文之前,即在R2并不知道R1出故障时,发送了原来的报文,1 2 R1。
于是,R1收到R2跟新报文后,误以为可以经过R2到网1,于是更新自己的路由表,1 3 R2,并且将次更新信息发送给R2.
然后R2以后又跟新自己的路由表为1 4 R1, 30s后,又把这个信息发送给R1.
……………………
一直循环,直到距离等于16为止,才知道不可达

开放最短路径优先OSPF(Open Shortest Path First)

基于链路状态,不同于RIP(基于距离向量)

(链路状态指本路由器和哪些路由器相邻,以及相应链路代价)

采用SPF算法计算路由

OSPF相邻路由器之间通过问候分组(Hello),建立和维护邻居关系

Hello分组封装在IP数据报中,发送组播地址224.0.0.5;发送周期为10秒;40秒未收到来自邻居路由器的Hello分组,则认为该邻居路由器不可达

使用OSPF的每个路由器都会产生链路状态通告LSA(Link State Advertisement)

LSA包含①直连网络的链路状态信息②邻居路由器的链路状态信息

LSA被封装在链路状态更新分组LSU中,采用洪泛法发送

每个路由器都有一个链路状态数据库LSDB,用于存储LSA

通过路由器洪泛发送封装有自己LSA的LSU分组,最终各路由器的LSDB到达一致

OSPF的五种分组类型

①问候分组:用来发现和维护邻居路由器的可达性

②数据库描述分组:向邻居路由器给出自己的链路状态数据库中的所有链路状态项目的摘要信息

③链路状态请求分组:向邻居路由器请求发送某些链路状态项目的详细信息

④链路状态更新分组:路由器使用这种分组将链路状态进行洪泛发送,即用洪泛法对全网更新链路状态

⑤链路状态确认分组:对链路状态更新分组的确认分组

OSPF在多点接入网络中中路由器邻居关系的建立

选举指定路由器DR(designated router)和备用的指定路由器BDR(backup designated router),

所有的非DR/BDR只有DR/BDR建立邻居关系,非DR/BDR之间通过DR/BDR交换信息

为了使OSPF能够用于规模很大的网络,把OSPF把一个自治系统再划分为若干个更小的范围,叫做区域(Area)

内部网关协议IGP(如路由信息协议RIP或开放最短路径优先OSPF)

设法使分组在一个自治系统内尽可能有效地从源网络传输到目的网络;无需考虑自治系统外部其他方面的内容

外部网关协议EGP(如边界网关协议BGP)

在不同自治系统内度量路由的代价(距离、带宽、费用等)可能不同,所以自治系统之间的路由选择必须考虑相关政策(政治、经济、安全等),BGP只能力求寻找一条能够到达且网络比较好的路由,而非最佳路由

在配置BGP时,每个自治系统的管理员要选择至少一个路由器作为该自治系统的“BGP发言人”,不同自治系统建立TCP连接,发言人交换路由信息

使用TCP连接交换路由信息的两个BGP发言人彼此称为对方的邻站或对等站

BGP发言人交换网络可达性信息(要到达某个网络所要经过的一系列自治系统)后,各BGP发言人就根据所采用的策略从收到的路由信息中找出到达各自治系统的较好的路由。也就是构造出树形结构、不存在回路的自治系统连通图。

IPv4数据报首部格式

版本:占4比特,表示IP协议的版本。通信双方使用的IP协议的版本必须一致。目前广泛使用的IP协议版本号为4(即IPv4)

首部长度:占4比特,表示IP数据报首部的长度。该字段的取值以4字节为单位。最小十进制取值为5,表示IP数据报首部只有20字节固定部分;最大十进制取值为15,表示IP数据报首部包含20字节固定部分和最大40字节可变部分

可选字段:长度从1个字节到40个字节不等。用来支持排错、测量及安全等措施可选字段增加了IP数据报的功能,但这同时也使得IP数据报的首部长度成为可变的。这就增加了每一个路由器处理IP数据报的开销。实际上可选字段很少被使用。

填充字段:确保首部长度为4字节的整数倍。使用全0进行填充。

区分服务:占8比特,利用该字段的不同数值可提供不同等级的服务质量。只有在使用区分服务时,该字段才起作用。一般情况下都不使用该字段。

总长度:占16比特,表示IP数据报的总长度(首部+数据载荷)最大取值为十进制的65535,以字节为单位。

标识、标志、片偏移三个字段共同用于IP数据报分片

标识:占16比特,属于同一个数据报的各分片数据报应该具有相同的标识。

标志:占3比特,各比特含义如下:
DF位:1表示不允许分片、0表示允许分片

MF位:1表示“后面还有分片”、0表示“这是最后一个分片”
保留位:必须为0

片偏移:占13比特,指出分片数据报的数据载荷部分偏移其在原数据报的位置有多少个单位。片偏移以8个字节为单位。

协议:占8比特,指明IPv4数据报的数据部分是何种协议数据单元,常用的一些协议和相应的协议字段值如下

首部检验和:占16比特,用来检测首部在传输过程中是否出现差错。IP数据报每经过一个路由器,路由器都要重新计算首部检验和,因为某些字段(生存时间、标志、片偏移等)的取值可能发生变化。
(由于IP层本身并不提供可靠传输的服务,并且计算首部校验和是一项耗时的操作,因此在IPv6中路由器不再计算首部校验和,从而更快转发IP数据报。)

源IP地址和目的IP地址:各占32比特,用来填写发送该IP数据报的源主机的IP地址和接收该IP数据报的目的主机的IP地址

举例对IPv4数据报进行分片

数据报分片例题

网际控制报文协议ICMP

(Internet Control Message Protocol)

目的:为了更有效地转发IP数据报和提高交付成功的机会

ICMP报文被封装在IP数据报中发送,主机或路由器使用ICMP来发送差错报告报文询问报文


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

①终点不可达

当路由器或主机不能交付数据报时,就向源点发送终点不可达报文。具体可再根据ICMP的代码字段细分为目的网络不可达、目的主机不可达、目的协议不可达、目的端口不可达、目的网络未知、目的主机未知等13种错误。
②源点抑制
③时间超过

若生存时间TTL0,除丢奔该IP数据报外,还要向源点发送时间超过报文门

另外,当终点在预先规定的时间内不能收到一个数据报的全部数据报片时,就把已收到的数据报片都丢弃,也会向源点发送时间超过报文。
④参数问题

当路由器或目的主机收到IP数据报后,根据其首部中的检验和字段发现首部在传输过程中出现了误码,就丢弃该数据报,并向源点发送参数问题报文。
⑤改变路由(重定向)

路由器把改变路由报文发送给主机,让主机知道下次应将数据报发送给另外的路由器(可通过更好的路由)。

以下情况不应发送ICMP差错报告报文:
① 对ICMP差错报告报文不再发送ICMP差错报告报文
② 对第一个分片的数据报片的所有后续数据报片都不发送ICMP差错报告报文

③对具有多播地址的数据报都不发送ICMP差错报告报文
④对具有特殊地址(如127.0.0.0或0.0.0.0)的数据报不发送ICMP差错报告报文

常用的ICMP询问报文有以下两种:
①回送请求和回答
ICMP回送请求报文是由主机或路由器向一个特定的目的主机发出的询问收到此报文的主机必须给源主机或路由器发送ICMP回送回答报文。这种询问报文用来测试目的站是否可达及了解其有关状态。
②时间戳请求和回答
ICMP时间戳请求报文是请某个主机或路由器回答当前的日期和时间。这种询问报文用来进行时钟同步和测量时间

虚拟专用网VPN与网络地址转换NAT

虚拟专用网VPN

VPN(Virtual Private Network):利用公用的因特网作为本机构各专用网之间的通信载体。由于IPv4地址的紧缺,一个机构能够申请到的IPv4地址数量往往远小于本机构所拥有的主机数量。因此,虚拟专用网中的各主机所分配的地址应该是本机构可自由分配的专用地址而不是需要申请的、在因特网上使用的公有地址

专用(私有)地址:

10.0.0.0~10.255.255.255(10/8地址块)

172.16.0.0~172.31.255.255(172.16/12地址块)

192.168.0.0~192.168.255.255(192.168/16地址块)

如上图所示,同一机构内不同部门的内部网络所构成的虚拟专用网VPN又称为内联网VPN

有时一个机构的VPN需要有某些外部机构(通常就是合作伙伴)参加进来。这样的VPN就称为外联网VPN

在外地工作的员工需要访问公司内部的专用网络时,只要在任何地点接入到因特网,运行驻留在员工PC中的VPN软件,在员工的PC和公司的主机之间建立VPN隧道,即可访问专用网络中的资源。这种VPN称为远程接入VPN.

网络地址转换NAT

NAT(Network Address Translation):能使大量使用内部专用地址的专用网络用户共享少量外部全球地址来访问因特网上的主机和资源。

再次缓解了IPv4地址空间即将耗尽的问题

该转换方法存在一个问题:如果NAT路由器具有N个全球IP地址,那么至多只能有N个内网主机能够同时和因特网上的主机通信。

于是引入NAPT(Network Address and Port Translation):

将端口号和IP地址一起进行转换的技术叫作网络地址与端口号转换,用一个全球IP地址就可以使多个拥有本地地址的主机同时和因特网上的主机进行通信。

NAT中外网主机不可以首先发起通信

收到来自外网的IP数据报后在转换表中找不到相应的记录

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

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

相关文章

TypeScript系列之-- 数组和元组类型

数组的定义&#xff1a; 第一种&#xff0c;可以在元素类型后面接上[] let list: number[] [1, 2, 3]; 第二种方式是使用数组泛型&#xff0c;Array<元素类型> let list: Array<number> [1, 2, 3]; 如果数组想每一项放入不同数据怎么办&#xff1f;用元组类型…

B+树和B*树

B树和B*树 一、B树的简单介绍二、B树的插入过程三、B*树的简单介绍四、B树、B树、B*树总结五、B树的应用1、MyISAM索引实现2、InnoDB索引实现 一、B树的简单介绍 B树是B树的变形&#xff0c;是在B树基础上优化的多路平衡搜索树&#xff0c;B树的规则跟B树基本类似&#xff0c;但…

order by工作过程和优化

工作过程 order by 是由优化器决定的&#xff0c;如果优化器认为filesort速度快&#xff0c;那么走filesort排序&#xff0c;如果优化器认为索引速度快&#xff0c;那么走索引排序。

Sui新共识协议刷新了区块链交易速度的标准

Sui是提供业界领先性能和无限水平扩展的创新Layer 1区块链&#xff0c;今日在官推上宣布其最新共识协议Mysticeti已成功部署到测试网。这一重大突破将Sui测试网的共识时间减少了80%&#xff0c;至390毫秒&#xff0c;同时保持协议的行业领先吞吐量。这一令人印象深刻的演示证明…

SPP/BLE蓝牙双模方案,主从一体,串口速率可达85KB/S

MS-BTD020A是一款蓝牙5.0双模数传模块&#xff0c;支持SPP&#xff08;经典蓝牙&#xff09;和BLE&#xff08;低功耗蓝牙&#xff09;。蓝牙双模技术使其能够在传统蓝牙和低功耗蓝牙之间无缝切换&#xff0c;用户只需要进行简单的设置就可以实现串口与手机之间的无线传输。模块…

Typora图床配置优化(PicGo-Core(command line) 插件 + gitee)

Typora图床配置优化&#xff08;PicGo-Core(command line) 插件 gitee&#xff09; 前言 在日常使用Typora编写markdown笔记时&#xff0c;经常需要插入图片来帮助理解和整理逻辑。然而&#xff0c;由于图片保存在本地&#xff0c;上传到网上时经常出现图片不见或错误警告的…

Spring和Mybatis的整合

一、需要引入Mybatis 和Spring 整合需要的jar mybatis需要的jar&#xff1a; <!--引入工程需要的jar--><!-- 实体注解--><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.24&…

Clickhouse字典关联外部 MySQL 表联合查询实践

前言 clickhouse 可以将源数据加载进 clickhouse 作为字典表使用&#xff0c;字典表可以理解为 clickhouse 中的一张特殊表&#xff0c;我们在查询 clickhouse 表中的数据的时候不需要 JOIN 就可以直接查询字典表中的数据&#xff0c;非常方便&#xff0c;快速。我刚好在工作场…

JavaScript--作用域是什么

作用域是什么 编译原理 在传统的编译语言中&#xff0c;程序中的一段源代码在执行之前会经历三个步骤。成为编译 分词/词法分析 这个过程由字符组成的字符串分解成有意义的代码块&#xff0c;这些代码块成为词法单元。 分词和词法分析之间的主要差异在于词法单元的识别是有…

知识点总结

1、Uboot的流程调用&#xff1a; 1.1、cmd_process函数是怎么被调用到的&#xff1a; cmd_process在common/command.c 1.2、uboot阶段断电&#xff0c;后续起不来&#xff0c;可能要换线去使用&#xff0c;也许和电源线有关 2、git 相关使用 2.1 .gitignore相关的使用 1、…

北京证券公司港股通交易佣金手续费最低是多少?万0.8?港股通纳入规则是怎么样的?

港股通交易佣金概述 港股通的交易佣金可能会因证券公司和投资者的不同而有所差异。 北京证券公司的港股通交易佣金最低可能万分之零点八&#xff08;0.008%&#xff09;&#xff0c;但这需要投资者与证券公司客户经理了解&#xff0c;进行沟通和申请。 一般来说&#xff0c;…

我手握多篇顶会一作,引用量几百,却连个像样的博士offer都申请不到

卷&#xff0c;卷&#xff0c;卷。在当下整个 AI 领域&#xff0c;一切价值衡量标准仿佛都在经历一场恶性的通货膨胀…… 让我们想象这样一个角色&#xff1a; 一个来自普通家庭的学生刻苦努力的完成了自己的学业。他在领域内的顶级会议中发表了多篇论文&#xff0c;并且其论文…

OpenHarmony应用开启Service以及完成自启动和常驻

一.背景 由于有需求实现一个后台常驻服务,这里就是来实现在鸿蒙里面如何实现后台服务并且实现自启动和常驻 二.添加服务 如下来添加服务 然后此时直接运行这个hap是报错的,如下: 此处参考: 应用中添加ServiceExtensionAbility然后安装HAP时提示“code:9568344 error: inst…

【NumPy】全面解析NumPy的bitwise_xor函数:高效按位异或操作指南

&#x1f9d1; 博主简介&#xff1a;阿里巴巴嵌入式技术专家&#xff0c;深耕嵌入式人工智能领域&#xff0c;具备多年的嵌入式硬件产品研发管理经验。 &#x1f4d2; 博客介绍&#xff1a;分享嵌入式开发领域的相关知识、经验、思考和感悟&#xff0c;欢迎关注。提供嵌入式方向…

I.MX6ULL主频和时钟配置实验

系列文章目录 I.MX6ULL主频和时钟配置实验 I.MX6ULL主频和时钟配置实验 系列文章目录一、前言二、I.MX6U 时钟系统详解三、硬件原理四、 7 路 PLL 时钟源五、时钟树简介六、内核时钟设置七、PFD 时钟设置八、AHB、IPG 和 PERCLK 根时钟设置九、实验程序编写十、编译下载10.1编写…

探索Python中的随机数生成与统计分析

新书上架~&#x1f447;全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我&#x1f446;&#xff0c;收藏下次不迷路┗|&#xff40;O′|┛ 嗷~~ 目录 一、随机数的魅力与实用性 1. 随机数生成基础 2. 批量生成随机数 二、随机数的高级应用&a…

Linux——Linux服务管理

服务管理大作业要求&#xff1a; 基本拓扑如下&#xff1a; 按照要求完成基本的系统管理任务&#xff1a; 完成所有系统的主机名、网络配置&#xff1b; 本次作业共需要3台虚拟机&#xff0c;分别作为客户端、综合应用服务器、存储服务器。三台虚拟机操作系统均为CentOS-Stream…

mybatis新增到数据库后返回当前ID

描述 在开发中&#xff0c;插入一条数据并返回当前的ID的场景很多 之前用mybatisPlus自带的api非常简单&#xff0c;调用完save or insert之后再getId即可。 今天使用mybatis的时候也遇到了这个场景&#xff0c;在此记录一下。 解决问题 直接再insert标签里面表明属性 核心…

软考案例题总结

数据库故障与恢复 E-R图 关系规范化 SQL 涉及的知识点一般包括&#xff1a;表的创建、视图和索引创建的关键字、表的查询、聚集函数、子查询、分组查询、集合操作、外连接存储过程、游标、触发器以及表的更新、插入和删除

WPS PPT学习笔记 2 结构页的制作

制作PPT结构页 制作封面页、目录页、封底页。它们都属于结构页。而时间轴页&#xff0c;流程图页&#xff0c;框架图页这些属于内容页。 做一份PPT 讲一个故事 封面页 开头&#xff0c; 目录页 脉络&#xff0c; 各式内容页 详情&#xff0c; 封底页 结尾。 所有的结构页…