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

目录

网络层概述

网络层提供的两种服务

①面向连接的虚电路服务

②无连接的数据报服务

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.mzph.cn/news/843779.shtml

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

相关文章

启智CV机器人,ROS

资料: https://wiki.ros.org/kinetic/Installation/Ubuntu https://blog.csdn.net/qq_44339029/article/details/120579608 装VM。 装ubuntu20.04 desktop.iso系统。 装vm工具: sudo apt update sudo dpkg --configure -a sudo apt-get autoremove o…

(1) 初识QT5

文章目录 Qt Quickdemo信号的命名方式 qml语言一个很重要的概念 qt 模块 Qt Quick Qt Quick是Qt5中⽤户界⾯技术的涵盖。Qt Quick⾃⾝包含了以下⼏种技术: QML-使⽤于⽤户界⾯的标识语⾔JavaScript-动态脚本语⾔Qt C具有⾼度可移植性的C库. 类似HTML语⾔&#xf…

nano机器人2:机械臂的视觉抓取

前言 参考链接: 【机械臂入门教程】机械臂视觉抓取从理论到实战 GRCNN 通过神经网络,先进行模型训练,在进行模型评估。 机械臂逆运动学求解 所有串联型6自由度机械臂均是可解的,但这种解通常只能通过数值解法得到,计算难度大&am…

ADS基础教程16 - 存档和导入(workspace、cell、view)

设计加密保护IP 一、引言二、workspace归档二、Cell归档三、View归档四、导入归档文件 一、引言 介绍如何ADS中如何对workspace、cell和view进行存档,以及如何将存档文件导入到工程中。 二、workspace归档 (1)在菜单栏中,选择File–>Archive Works…

详解makefile中的$(wildcard pattern)

在 Makefile 中,$(wildcard pattern) 是一个函数,用于匹配指定模式的文件,并返回符合条件的文件列表。这个函数通常用于获取符合特定模式的文件名,在编写 Makefile 时非常有用。 语法: makefile $(wildcard pattern)…

抖店起店玩法,2024年最新保姆级抖音小店开店教程

课程下载:https://download.csdn.net/download/m0_66047725/89360739 更多资源下载:关注我。 课程内容: 1-抖音如何精细化选品 2-达人合作的谈判技巧 3-达人合作细节注意事项 4-短视频达人筛选方法与数据维度 5-短视频带货达人分析工具…

Swift 下标

下标 一、下标语法二、下标用法三、下标选项四、类型下标 下标可以定义在类、结构体和枚举中,是访问集合、列表或序列中元素的快捷方式。可以使用下标的索引,设置和获取值,而不需要再调用对应的存取方法。举例来说,用下标访问一个…

ArcgisPro3.1.5安装手册

ArcgisPro3.1.5安装手册 一、目录介绍: 二、安装教程: (1)安装顺序:最先安装运行环境(runtime6.0.5),接着安装install里面的文件,最后复制path里面的文件替换到软件bin文件夹下即可。 (2)具体安装步骤&#xff…

C 基础环境配置(vscode || vs)

目录 一.发展 二. 环境设置 1.vs2022 2.vscode (1.)首先下载VsCode (2)安装vsCode插件 (3)下载MinGW-W64 (4)配置文件 (5)注意把里面配置的:mingw64路径改为自己的路径 (6)示例代码 三.总结 一.发展 编程语言的发展 机器语言(打孔纸带编程),汇编语言,高级语言,一步步…

CASS11自定义宗地图框

1、找到CASS11的安装路径,找到如下文件夹: 2、打开【report】文件夹,如下: 3、打开其中一个压缩包,如【标准宗地图】压缩包,结果如下: 4、打开后,将其另存为到桌面,随后关…

MySQL(三)查询

1、单表和多表查询 1.1 算术运算符、比较运算符及特殊运算符 1)MySQL的算术运算符 select 0.1+0.3333,0.1-0.3333,0.1*0.3333,1/2,1%2; select 1/0,100%0; select 3%2,mod(3,2); 2)MySQL的比较运算符 select 1=0,1=1,null=null; select 1<>0,1<>1,null<&…

三层交换机基本配置,动态路由链接

<Huawei>system-view //进入系统视图[Huawei]undo info-center enable //关日志[Huawei]vlan batch 2 3 //创建vlan2与3[Huawei]display vlan //检查[Huawei]interface GigabitEthernet 0/0/2 //进2口[Huawei-GigabitEthernet0/0/2]port link-type access //配置…

C语言 | Leetcode C语言题解之第117题填充每个节点的下一个右侧节点指针II

题目&#xff1a; 题解&#xff1a; void handle(struct Node **last, struct Node **p, struct Node **nextStart) {if (*last) {(*last)->next *p;}if (!(*nextStart)) {*nextStart *p;}*last *p; }struct Node *connect(struct Node *root) {if (!root) {return NULL…

开源博客项目Blog .NET Core源码学习(29:App.Hosting项目结构分析-17)

本文学习并分析App.Hosting项目中后台管理页面的按钮管理页面。   按钮管理页面用于显示、新建、编辑、删除页面按钮数据&#xff0c;以便配置后台管理页面中每个页面的工具栏、操作栏、数据列中的按钮的事件及响应url。按钮管理页面附带一新建及编辑页面&#xff0c;以支撑新…

Unity之如何使用Localization来实现文本+资源多语言

前言 使用Unity实现本地化&#xff08;Localization&#xff09;功能 在当今的游戏开发中&#xff0c;支持多语言已成为一项基本需求。Unity作为主流的游戏开发引擎&#xff0c;提供了强大的本地化工具&#xff0c;使开发者能够方便地为游戏添加多语言支持。本文将介绍如何在U…

从0开始学会做标书:新手学习做标书制作必修(95节课)

入门框架 电子标书 商务标书 文档排版 技术标书 实操演示 你是否也有同样的问题 1、做标书公司没人教、没人带? 2、如何看懂招标文件? 3、小白零基础能不能学习做标书? 4、商务标、技术标如何得高分? 5、做标书需要什么软件? 6、如何制作电子标书? 7、如何避…

Java核心: 使用asm操作字节码

在上一篇<Java核心: 注解处理器>中我们提到&#xff0c;通过实现AbstractProcessor&#xff0c;并调用javac -processor能够生成代码来实现特殊逻辑。不过它存在两个明显的问题: 只能新增源文件来扩展逻辑&#xff0c;无法修改现有的类或方法 必须有一个单独的编译过程&a…

三步走,Halo DB 安装指引

前文介绍了国产数据库新星 Halo 数据库是什么&#xff0c; 哈喽&#xff0c;国产数据库&#xff01;Halo DB! ★ HaloDB是基于原生PG打造的新一代高性能安全自主可控全场景通用型统一数据库。 业内首次创造性的提出插件式内核架构设计&#xff0c;通过配置的方式&#xff0c;适…

国产卫星星座,为什么一定要“走出去”?

今天这篇文章&#xff0c;我们来聊聊卫星和星座。 2024年行将过半&#xff0c;全球卫星通信产业的发展&#xff0c;又有了新的变化。 在卫星星座方面&#xff0c;各大企业的竞争博弈全面进入白热化阶段。卫星的发射速度在不断加快&#xff0c;而全球星座项目的数量和规模也在持…

如何在生产环境中以非 Root 用户启动 Kafka

目录 如何在生产环境中以非 Root 用户启动 Kafka1. 创建 Kafka 用户2. 设置目录权限3. 配置 systemd 服务文件4. 启动和启用 Kafka 服务5. 验证 Kafka 服务经验总结 为了在生产环境中以非 root 用户&#xff08;如 kafka 用户&#xff09;启动 Kafka&#xff0c;您需要确保 Ka…