【计算机网络复习】第四章 网络层 2

news2024/11/27 21:48:29

源主机网络层的主要工作

 

路由器网络层的主要工作

 

目的主机网络层的主要工作

 

网络层提供的服务

o 屏蔽底层网络的差异,向传输层提供一致的服务

虚电路网络

o 虚电路网络提供面向连接的服务

n 借鉴了电路交换的优点

n 发送数据之前,源主机和目的主机之间首先要建立一条虚连接(逻辑连接)

n 数据无丢失、重复和失序

o 面向连接

n 数据传输过程分为三阶段:建立虚连接、传输数据、拆除虚连接

n 虚电路表

Ø 输入接口、输入VCI(虚电路标识,局部有效)

Ø 输出接口、输出VCI(虚电路标识,局部有效)

n 输入接口和输入VCI唯一标识一条虚电路,后续的数据报只需携带VCI无需携带完整的目的地址

 

数据报网络

o 无连接

o 路由器对于每个输入的数据包单独进行处理

o 路由表包含了目的地址和输出接口的对应关系

o 每个数据包必须包含完整的目的地址

o 来自相同源节点和目的节点的两个数据报可能被转发到不同的接口,不保证顺序

o 对网络状况和目的主机状况一无所知,可能出现丢失

数据报网络的好处

o 由于传输网络不提供端到端的可靠传输服务,这就使网络中的路由器可以做得比较简单,而且价格低廉(与电信网的交换机相比较)。

o 如果主机(即端系统)中的进程之间的通信需要是可靠的,那么就网络的主机中的传输层负责(包括差错处理、流量控制等)

 

 

路由选择算法

o 基于图论

n 节点:路由器

n 边:链路

n 权值:链路开销

o 路径长度

o HOP数(跳数)

o 延迟时间

o 最短路由

n 总开销最小的路径

 

静态选路算法

o 固定路由表选路法

n 根据事先设置的静态路由表,查表选路

o 洪泛法(Flooding

n 向除输入接口之外的所有接口转发

o 随机走动选路法

n 按概率随机选路

o Dijkstra算法(1959):通过用边的权值作为距离的度量来计算最短路径,

n 有最少边数的路径不一定是最短路径

算法原理

1)定义一个集合N,包含所有最短路径已确定的节点,在初始时,该集合中只包含一个源节点(设为S

2)如果S和某个节点之间有一条边相连,距离就是该边上的权值;否则,距离值设为无穷大(

3)从集合N外的节点中选择一个和S距离最小的节点(设为T)加入集合

4)重新计算S到其他集合N外的节点的距离,如果经过T的路径更短,则更新距离值

5)重复3-4步,直到所有节点都加入集合N

 

洪泛法

o 不计算路径,有路就走

o 路由器收到数据包后,向除了输入接口之外的所有接口转发

洪泛法的特点

o 一个数据包将产生大量的副本(copy

n 给网络增加大量负载

o 至少有一个副本将到达目的主机

n 健壮性强

o 至少有一个副本选择的是最优路由

o 所有的路由器都会收到副本

n 可用于传播路由信息

缺点:重复数据包多,浪费带宽

点:可靠性高,路径最短,常用于

随机走动选路法

o 路由表中,一个表项有多条候选路由,路由器收到一个数据包时,按照预定的概率随机地选择其中一条路由

o 应用:无线网络

 

动态选路算法

o 自适应算法是动态的、分布式的算法

o 实现分布式算法的三要素:

n 测量路由

n 更新路由信息的协议

n 计算路由开销

距离矢量选路算法

o 距离:两个节点间传输数据的开销

o 前提:每个路由器都知道自己到邻居节点的距离

o 动态选路:路由器通过周期性地与邻居节点交换路由信息

n 与谁交换:邻居节点

n 交换什么:路由表中的距离项(目的地、距离)

n 何时交换:周期性交换

o 各节点根据路由信息更新路由表

无穷计算问题

o 好消息传播得快,坏消息传播得慢

 

DVR算法的缺点

o 交换的路径信息量大

o 路径信息不一致

o 收敛速度慢(坏消息)

o 不适合大型网络

链路状态选路算法

o LSRLink State Routing

n 链路状态:链路连通/中断、链路开销

o 又称最短路径优先(SPF)选路

n 使用Dijkstra算法来计算最短路径

o 路由器发现自己和邻居节点链路状态及开销

o 路由器之间通过交换路由信息,构造出全网的拓扑结构,并计算出到其他节点的最短路径

n 与谁交换:网络中的所有节点

n 交换什么:一个节点到各邻居节点的链路开销

n 何时交换:网络初启或链路状态变化时

测量线路开销

o 发送一个ECHO分组要求对方立即响应,通过测量RTT,再除以2,发送方就可以得到一个延迟估计值

构造链路状态包(LSP

包含:源节点到其所有邻居节点(路由器)的线路开销测量值(即时延)

 

发布链路状态分组

o 洪泛法向所有节点发布LSP,保证每个节点都能收到。

o 存在问题:

n 对于重复的LSP,路由器使用序号判断哪个LSP最新

n 如果序号循环使用,就会发生重复

n 如果一个路由器重启,序号将从0开始重新计数,但这些LSP会被当成过时包

n 如果序号发生错误,则很多LSP将被看成过时包

解决办法:序号+年龄

o 使用一个32序号,即使每秒钟发送一个LSP包,137年才会循环一次

o 在每个LSP包中加一年龄字段(如初值为60),每秒钟将年龄值减1,为0后该包将被丢弃

oLSR的优点

n 路由信息的一致性好,坏消息也一样传播得快

n 状态分组的长度较短,仅包含到邻接点的距离、序号和年龄等,与网络规模关系不大,传输所耗用的网络带宽不大,此外,状态分组的扩散,由于年龄参数的设定,不会无限制扩散,所以可适用于大型网络

oLSR的缺点

n 每个路由器需要有较大的存储空间,用以存储所收到的每一个节点的链路状态分组

n 计算工作量大,每次都必须计算最短路径

IP地址的构成

o 网络号net-id +主机号host-id

n 网络号标识主机/路由器所连接到的网络,

n 主机号标识该主机/路由器

IP 地址 ::= { <网络号>, <主机号>}

o 地址划分有两类

n 分类编址:

Ø 单播地址分为A、B、C三类

Ø 网络号和主机号所占的比特个数不同

n 无类别编址

 

同一个网络(如LAN)中的主机或路由器的IP 地址中的网络号必须相同

划分子网的基本思路

o 属于一个单位内部的事情,对外仍然是一个网络

o 从主机号借用高若干位作为子网号 subnet-id,主机号host-id 相应减少了若干位

IP地址 ::= {<网络号>, <子网号>, <主机号>}

o 从外网发给本网某个主机的IP包,仍然根据其目的网络地址,先找到连接本网的路由器;路由器收到 IP包后,再按目的网络地址转发到目的子网。

n 最后交付给目的主机

 

子网掩码

o 从一个 IP 包的包头无法判断源主机或目的主机所在网络的网络地址

o 使用子网掩码(subnet mask)可以找出 IP 地址中的网络号部分

o 子网掩码:特殊IP地址,网络号(包括子网号)部分为全1,主机号部分为全0

 

 

 

 

路由器转发IP包的过程

(1) 从收到的IP包的包头提取出目的 IP 地址 D

(2) 先检查直接相连的网络:用各网络的子网掩码和 D 逐位相“与” ,看是否和对应的网络地址匹配。若匹配,则将包转发到对应接口;否则执行(3)

(3) 若路由表中有目的地址为 D 的特定主机路由,则将IP包转发给对应的下一跳路由器;否则,执行(4)

(4) 对路由表中的每一行的子网掩码和 D 逐位相“与” ,若其结果与该行的目的网络地址匹配,则将IP包转发给对应的下一跳路由器;否则,执行(5)

(5) 若路由表中有一个默认路由,则将IP包转发默认路由器;否则,执行(6)

(6) 报告转发包出错

可变长度子网掩码

o VLSM

o 划分子网时根据需要灵活划分,不要求每个子网的地址空间都一样大,即不同子网的地址掩码可能不同

超网

o Super network

o 一个C类网络地址不够时,将几个连续的C类地址块合并,构成一个超网

o 将网络号低位的若干位分离出来作为超网号

n 网络号、超网号、主机号

n 网络地址:超网号+主机号为0

n C类地址块个数必须是2n

n C类地址块必须连续

n 超网的网络地址的第3字节值必须能整除C类地址块的个数

 

无类别地址

o CIDR(无类别域间选路)

o 不再对地址分类

o 根据网络规模的需要,将IP地址划分为任意2n1<n<32)大小的地址块

o 采用CIDR后,根据CIDR子网掩码来判定网络大小

o CIDR使用各种长度的“网络前缀(network prefix)来代替分类地址中的网络号和子网号。

IP地址 ::=网络地址/x

x为网络号的位数,即子网掩码中1的个数

 

CIDR:路由聚合

 

最长前缀匹配

o 使用 CIDR 时,路由表中的每个项目由“网络前缀”和“下一跳地址”组成。在查找路由表时可能会得到不止一个匹配结果。

o 应当从匹配结果中选择具有最长网络前缀的路由 : 最 长 前 缀 匹 配(longest-prefix matching)

o 网络前缀越长,其地址块就越小,因而路由就越具体(more specific)

o 最长前缀匹配又称为最长匹配最佳匹配

私有地址

o 问题:IPv4的地址空间不够

o 方法:使用局部地址(私有地址)

n 允许不同网络内的主机使用相同的地址,该地址仅在网络内部使用

o 3段私有地址

n 10.0.0.0 – 10.255.255.25510/8

n 172.16.0.0 – 172.31.255.255172.16/12

n 192.168.0.0 – 192.168.255.255192.168/16

NAT

o 网络地址翻译

n 完成私有地址和全局地址的转换

n 由路由器完成

 

IP地址的自动分配:DHCP

o 动态主机配置协议

n 自动分配IP地址的应用层协议

n C/S模式,服务器端口号为67,客户端口号为68

n 采用UDP传输

n 可配置其他网络参数:子网掩码、路由器地址、DNS服务器地址等

n DHCP服务器维护一个IP池,主机向DHCP服务器发出请求,申请IP地址

o 表示IP包内的数据属于哪个协议

n TCP=6

n UDP=17

n ICMP=1

n IGMP=2

n OSPF=89

 

IP包的分段和重装

o IP包:IP数据报

o 分段原因:底层网络所允许的最大数据块长度(MTU)不同

o 分段相关字段

n 标识(2B):所有属于同一个IP数据报的片段(IP包)都使用相同的标识

n DF(1):不要分段,DF=1IP数据报不允许分段

n MF(1):更多片段,MF=0IP包是最后一个片段

n 段偏移量(13位):本片段在原IP数据报中的位置,单位为8字节

 

因特网的差错处理:ICMP

o 因特网控制报文协议

o IP没有差错处理机制,由ICMP补充

o 提供差错报告机制

n 只报告,不强制处理

o ICMP 不是高层协议,而是 IP 层的协议。

o ICMP 报文作为 IP 层数据报的数据,加上数据报的首部,组成 IP 数据报发送出去。

n IP包头的协议字段值=1

 

因特网有两大类路由选择协议

o 内 部 网 关 协 议 IGP (Interior Gateway

Protocol) :即在一个自治系统内部使用的路由选择协议。目前这类路由选择协议使用得最多,如 RIP OSPF 协议。

o 外 部 网 关 协 议 EGP (External Gateway Protocol) :若源站和目的站处在不同的自治系统中,当数据报传到一个自治系统的边界时,就需要使用一种协议将路由选择信息传递到另一个自治系统中。在外部网关协议中目前使用最多的是 BGP-4

o IGPEGP相互独立

 

RIP(路由信息协议)

o 基于距离矢量算法

o 距离:跳数

 

距离矢量选路的问题:无穷计算

o Count-to-Infinity,又称为无穷环路(Infinite Loop)

o 坏消息传播得慢!

o 原因

n 节点只知距离、不知路径

n 向邻居提供虚假路由通告

n 导致路由中出现环路

o 解决方案

n 限制网络规模:RIP(网络直径<16跳)

n 在路由通告中增加路径信息:BGP

n 节点知道网络拓扑:OSPFLSR

OSPF(开放最短路径优先协议)

o 基于链路状态选路算法

o 经过信息交换,每个路由器都知道全网的拓扑结构,因此不会出现无穷计算问题

o 支持分级选路

 

OSPF消息

o 问候(Hello)消息:获知其邻居节点的IP地址、检测邻居节点是否可达。

o 链路状态更新消息(LSU):通告路由器已知的网络拓扑结构信息

o 链路状态确认消息(LSA):收到LSU消息时,路由器发送此消息进行确认

o 链路状态请求(LSR)消息:向邻居节点询问一条或多条链路的状态信息

组播可明显减少网络中资源的消耗

 

组播地址

o D类地址,每个小组成员使用同一个组地址

o 228个组地址

o 组地址由因特网号码分配权威机构IANA分配

o 组地址只能用于目的地址,不能用于源地址

o 主机发送组播数据时,IP包的目的地址为组播地址

移动主机的通信过程

o (1) 相关节点发送的IP包被转发给归属代理

o (2) 归属代理将IP包封装到一个新的IP包里,发送给外来代理:隧道方式

o (3) 外来代理拆出原IP包,转发给移动节点

o (4) 移动节点回复IP包给相关节点

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

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

相关文章

MTK耳机识别

MTK耳机检测分为Eint only和EintAccdet 其中主流的是Eint Accdet(multi-key)。 图为MTK 耳机相关电路图的主要部分。 其中&#xff0c;左右声道的33pF主要滤除TDD干扰。串的10R100nf下地电容为低通滤波器。磁珠主要影响的是Fm以及音频THD性能。 Eint&#xff1a;检测耳机是否…

网络基础知识(3)——初识TCP/IP

首先给大家说明的是&#xff0c;TCP/IP 协议它其实是一个协议族&#xff0c;包含了众多的协议&#xff0c;譬如应用层协议 HTTP、 FTP、MQTT…以及传输层协议 TCP、UDP 等这些都属于 TCP/IP 协议。 所以&#xff0c;我们一般说 TCP/IP 协议&#xff0c;它不是指某一个具体的网络…

Casdoor 开始

Casdoor 是一个基于 OAuth 2.0 / OIDC 的中心化的单点登录&#xff08;SSO&#xff09;身份验证平台&#xff0c;简单来说&#xff0c;就是 Casdoor 可以帮你解决用户管理的难题&#xff0c;你无需开发用户登录、注册等与用户鉴权相关的一系列功能&#xff0c;只需几个步骤进行…

C++多线程中共享变量同步问题

目录 1、互斥量 &#xff08;1&#xff09;std::mutex &#xff08;2&#xff09;std::recursive_mutex &#xff08;3&#xff09;std::timed_mutex 2、锁管理器 &#xff08;1&#xff09;std::lock_guardlk &#xff08;2&#xff09;std::unique_locklk &#xff0…

掌控MySQL并发:深度解析锁机制与并发控制

前一篇MySQL读取的记录和我想象的不一致——事物隔离级别和MVCC 讲了事务在并发执行时可能引发的一致性问题的各种现象。一般分为下面3种情况&#xff1a; 读 - 读情况&#xff1a;并发事务相继读取相同的记录。读取操作本身不会对记录有任何影响&#xff0c;不会引起什么问题&…

【C++】C++中的多态

目录 一.多态的概念二.多态的定义及实现2.1虚函数2.2虚函数的重写虚函数重写的两个例外 2.3多态的构成条件2.4C11 override 和final2.5重载、重写、隐藏的对比 三.抽象类3.1概念3.2接口继承和实现继承 四.多态的原理4.1虚函数表4.2多态的原理(1)代码分析(2)清理解决方案 4.3动态…

MySQL高阶语句与连接

目录 高级查询selectDISTINCTWHEREAND ORINBETWEEN通配符与likeORDER BY数学函数聚合函数字符串函数mysql进阶查询GROUP BYHAVING别名子查询EXISTS连接查询inner join(内连接)left join(左连接)right join(右连接)自我连接 高级查询 实验准备&#xff1a; 第一张表&#xff1a…

Cesium入门之六:Cesium加载影像图层(ArcGIS、Bing、Mapbox、高德地图、腾讯地图、天地图等各类影像图)

Cesium加载影像图层 一、ImageryLayer类常用属性常用方法 二、ImageryLayerCollection类常用属性常用方法 三、ImageryProvider类常用属性常用方法 四、ImageryProvider子类1. ArcGisMapServerImageryProvider加载ArcGIS地图服务 2. BingMapsImageryProvider加载BingMap地图服务…

call to non-‘constexpr‘ function

文章目录 call to non-constexpr function概述备注END call to non-‘constexpr’ function 概述 在尝试迁移 openpnp - Smoothieware project 从gcc命令行 MRI调试方式 到NXP MCUXpresso工程. 在加了头文件路径后, 还有一些语法错误. 这和编译器语法有关系. 在运行BuildShe…

阿里云服务器部署flask项目「gunicorn + nginx + 支持https」

最近做了一个微信小程序&#xff0c;使用 flask 实现了对应的后台&#xff0c;上线需要部署到服务器上&#xff0c;之前只是了解并没有全链路试过&#xff0c;靠着网上的资料最终完成部署上线&#xff0c;但中间遇到了较多的一些问题&#xff0c;网上的资料也比较零碎&#xff…

WPF MaterialDesign 初学项目实战(2)首页导航栏样式

其他内容 WPF MaterialDesign 初学项目实战&#xff08;0&#xff09;:github 项目Demo运行 WPF MaterialDesign 初学项目实战&#xff08;1&#xff09;首页搭建 MaterialDesign 确保运行了初学项目实战&#xff08;0&#xff09; MaterialDesign给我们提供了很多的样式库&…

微服务框架【笔记-Nacos环境隔离】

Nacos注册中心 环境隔离 - namespace Nacos 中服务存储和数据存储的最外层都是一个名为namespace的东西&#xff0c;用来做最外层隔离 Nacos默认的命名空间&#xff1a; 创建命名空间复制命名空间ID启动Orderservice服务&#xff0c;在nacos服务列表可以看到环境隔离之后的服…

vue实现电梯锚点导航

1、目标效果 最近喝了不少的咖啡、奶茶&#xff0c;有一个效果我倒是挺好奇怎么实现的&#xff1a; &#xff08;1&#xff09;点击左侧分类菜单&#xff0c;右侧滚动到该分类区域 &#xff08;2&#xff09;右侧滑动屏幕&#xff0c;左侧显示当前所处的分类区域 这种功能会出现…

Jmeter进阶使用:BeanShell实现接口前置和后置操作

一、背景 我们使用Jmeter做压力测试或者接口测试时&#xff0c;除了最简单的直接对接口发起请求&#xff0c;很多时候需要对接口进行一些前置操作&#xff1a;比如提前生成测试数据&#xff0c;以及一些后置操作&#xff1a;比如提取接口响应内容中的某个字段的值。举个最常用…

XDC约束技巧 之 I/O篇 (上)

《XDC约束技巧之时钟篇》中曾对I/O约束做过简要概括&#xff0c;相比较而言&#xff0c;XDC中的I/O约束虽然形式简单&#xff0c;但整体思路和约束方法却与UCF大相径庭。加之FPGA的应用特性决定了其在接口上有多种构建和实现方式&#xff0c;所以从UCF到XDC的转换过程中&#x…

都别吹牛逼了,2个英语指令简单评测便知ChatGPT、博弈Ai、文心一言、通义千问、讯飞星火真实水平

一、博弈Ai&#xff1a;GPT3.5版 演示&#xff1a;https://chat.bo-e.com/ 1、充当英语发言助手 评分&#xff1a;10分 总结&#xff1a;完整满足了指令需求 2、充当英汉互译器 评分&#xff1a;8分 总结&#xff1a;基本满足了我的指令需求。但是有点啰嗦&#xff0c;扣…

MySQL---视图(定义、修改、更新、重命名、删除)

1. 定义视图 视图&#xff08;view&#xff09;是一个虚拟表&#xff0c;非真实存在&#xff0c;其本质是根据SQL语句获取动态的数据集&#xff0c;并为其命 名&#xff0c;用户使用时只需使用视图名称即可获取结果集&#xff0c;并可以将其当作表来使用。 数据库中只存放了…

SIR模型与R模拟

SIR病毒模型R模拟 文章目录 SIR病毒模型R模拟[toc]1.SIR病毒模型2.R模拟 1.SIR病毒模型 SIR病毒模型的的三个字母分别为病毒传播过程中的三种状态&#xff0c;其中 S&#xff0c;表示易感染者&#xff0c;即没有被感染病毒的人群I&#xff0c;表示已感染者&#xff0c;即被感…

Spring_jdbcTemplate基本使用

文章目录 一、导入spring-jdbc和spring-tx坐标二、创建数据库表和实体在applicationContext.xml中配置连接池和JdbcTemplate在test数据库中创建account表 三、创建JdbcTemplate对象四、执行数据库操作 一、导入spring-jdbc和spring-tx坐标 <dependency><groupId>o…

Vue.js快速入门

文章目录 一、Vue基础1.1 渐进式框架​1.2 第一个Vue程序1.3 el 挂载点1.4 data 数据对象 二、Vue 指令2.1 v-text 文本值2.2 v-html 标签元素2.3 v-on 绑定事件2.4 v-show 隐藏2.5 v-if 消除2.6 v-bind 属性值2.7 v-for 生成列表2.8 v-model 双向数据绑定 三、axios 网络请求库…