计算机网络学习笔记——网络层(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数据报后在转换表中找不到相应的记录

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【MATLAB】数字滤波器的设计

一、引言 在信号处理过程中,所处理的信号往往混有噪声,从接收到的信号中消除或减弱噪声是信号传输和处理中十分重要的问题。根据有用信号和噪声的不同特性,提取有用信号的过程称为滤波,实现滤波功能的系统称为滤波器。在以往的模拟电路中用的…

10.RedHat认证-Linux文件系统(上)

10.RedHat认证-Linux文件系统(上) ⽂件系统,顾名思义,是⼀个组织⽂件的“系统(system)”。file system ⽂件系统是⽤来组织⽂件的,通俗⼀点理解的话,⽂件系统是⽤来存储⽂件的。 硬盘是不能直接存放⽂件或数据。 我们通过将硬…

美光EMMC芯片丝印型号查询 8LK17/D9PSK, OXA17/JY997

问题说明 最近在使用美光EMMC的时候,发现通过芯片丝印查询不到 芯片的规格说明书; 经过查阅资料,发现美光的EMMC芯片 “由于空间限制,FBGA 封装组件具有与部件号不同的缩写部件标记”,需要通过官网查询丝印的FBGA cod…

百度智能云千帆AppBuilder升级!开放多源模型接入,思考模型再次加速!

>>【v0.5.4版本】 上线时间:2024/5/24 关键发版信息: 大模型优化:开放多源模型接入,思考模型再次加速! Agent思考模型:新增AppBuilder专用版模型ERNIE Speed-AppBuilder,自主任务规划…

Euler 欧拉系统介绍

Euler 欧拉系统介绍 1 简介重要节点与版本EulerOS 特色EulerOS 与 openEuler 区别联系Euler 与 HarmonyOS 区别联系 2 openEuler特色支持 ARM,x86,RISC-V 等全部主流通用计算架构融入 AI 生态嵌入式实时能力提升引入 OpenHarmony 一些突出功能 参考 1 简…

BIO/NIO学习

在传送文件的时候常常出现这么一个问题,就是当客户端的文件全部传送完了之后,服务器没有接收到客户端那边传过的停止信号,所以服务器也就跟着客户端停止运行了,我们可以使用 try {socket.shutdownOutput();} catch (IOException e…

VSCode安装platformio插件

文章目录 一、安装VSCode二、安装platformio(一)整理文件夹(二)整理Python环境(三)安装platformio 三、创建ESP8266项目四、使用命令行创建项目五、创建项目太久怎么办六、参考链接 一、安装VSCode VSCode…

这款网站测试工具,炫酷且强大!【送源码】

随着互联网的普及和发展,Web 应用程序的数量也越来越多,各种网络问题也是层出不穷,因而监测这些 Web 应用程序的性能和可用性变得非常重要。 今天的文章,了不起和大家分享一款十分好用的的网站分析项目 - Web-Check。 项目简介 …

xss-labs之level9、level10

一、level9 1、测试分析 尝试了之前的payload,发现都不行,看源码发现多了个strpos函数, strpos() 是一个在 PHP 中用于查找子串首次出现位置的函数。它接受两个参数:要搜索的字符串(主字符串)和要查找的子…

【PHP【实战训练】系统性学习】——最经典的web端头像上传,数据库内容安全精简

👨‍💻个人主页:开发者-曼亿点 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 曼亿点 原创 👨‍💻 收录于专栏&#xff1a…

DSP6657 GPIO中断学习

1 简介 使用创龙板卡的KEY2按键通过中断的方式控制LED3的亮灭 2 中断学习 在C665x设备上,CPU中断是通过C66x CorePac中断控制器进行配置的。该中断控制器允许最多128个系统事件被编程到任意12个CPU可屏蔽中断输入(CPUINT4至CPUINT15)、CPU…

Spring:事务

1. 简介 spring对jdbc进行封装&#xff0c;简化对数据库的操作 2. HelloWorld 1. 搭建模块 2.加入依赖 <dependencies><!--spring jdbc Spring 持久化层支持jar包--><dependency><groupId>org.springframework</groupId><artifactId>s…

5.28OpenMV入门

10分钟快速上手 OpenMV中文入门教程 使用的元件 先安装好&#xff0c;上述链接上手 IDE显示颜色阈值&#xff0c;同时也配有示例文件&#xff0c;如下图打开&#xff0c;helloworld 你好&#xff0c;世界&#xff01; OpenMV中文入门教程&#xff0c;在官方也有每一个的详细…

那智不二越机器人维修案例分享

那智不二越工业机器人在工业范围内广泛应用于各种生产领域。其示教器作为人机交互的重要设备&#xff0c;常常需要定期维护和Nachi不二越机械手示教盒修理。 【Nachi不二越机器人示教器维修步骤】 1. 关闭电源 在进行任何那智不二越机器人维修操作之前&#xff0c;务必确保机器…

黑马es0-1实现自动补全功能

1、安装分词器 上github上找人做好的分词器&#xff0c;放到es-plugin数据卷里&#xff0c;然后重启es即可 2、自定义分词器 elasticsearch中分词器(analyzer)的组成包含三部分: character filters:在tokenizer之前对文本进行处理。例如删除字符、替换字符 …

如何开启tomcat管理功能

1 、修改conf/tomcat-users.xml <role rolename"manager-gui"/> <user username"tomcat" password"tomcat" roles"manager-gui"/>2、修改webapps/manager/META-INF/context.xml <Valve className"org.apache.cata…

【aI】LiveKit Agents Playground

demo 是跑在 playground中的。 语音助手demo 可以语音对话 概念 Concepts Agent: A function that defines the workflow of a programmable, server-side participant. This is your application code. Worker: A container process responsible for managing job queuing …

Spring Boot中@Value加载配置的替代者:@ConfigurationProperties

Value注解Spring Boot开发者都已经熟悉了&#xff0c;通过该注解&#xff0c;我们可以快速的把配置信息加载到Spring的Bean中。 例如&#xff1a;在application.yml中添加了一个配置如下&#xff1a; 我想在service中获取name&#xff0c;通过value注解方式实现&#xff0c;代…

【Python-OS】os.path.splitext()

作用&#xff1a;将文件路径分割成文件名和扩展名两部分。 slide_id, _ os.path.splitext(slide) print("slide:") print(slide) print("slide_id:") print(slide_id)注&#xff1a; slide是文件名&#xff0c;可以自行赋值

配置物联网平台 保姆级教程

一、云平台配置&#xff08;我们这里使用阿里云&#xff09; 1、注册和登录 &#xff08;1&#xff09;找到云平台官网&#xff0c;点击右上角的注册登录&#xff0c;完成之后&#xff0c;进行实名认证&#xff0c;任选一种认证方式。 ​​​​​​​ 2、实例的开通和创建 …