计算机网络笔记(4)

第4章网络层

4.1网络层提供的两种服务

网络层向运输层可能提供的两种服务:面向连接(网络负责)、无连接(端系统负责)

  • 面向连接
    通信时先建立连接(虚电路),然后双方沿着虚电路发送分组
    (虚电路:一条逻辑上的连接,不是像老式的电话通信那样的真正的连接)

    (主机H1和H2之间交换的分组都必须在事先建立的虚电路上传送)
  • 无连接(类似于CSMA/CD协议的无连接处理)
    互联网设计的思路:网络层向上只提供简单灵活的、无连接的、尽量大努力交付的数据报服务
    网络在发送分组时不必先建立连接,每个分组独立发送
    网络层不提供服务质量的承诺,由网络的主机中的传输层负责通信的可靠
    优点:网络造价降低、运行方式灵活、能够适应多种应用

    (图,主机H1和H2发送的分组各自独立地选择路由)

TCP/IP协议提供的是数据报服务

(图,虚电路服务与数据报服务的对比)

4.2网际协议IP

IP协议作用:实现网络互连。使得参与互连的性能各异的网络在用户看来好像是一个统一的网络。
网际协议IP是TCP/IP体系中两个最主要的协议之一,也是互联网标准协议之一
与IP协议配套使用的三个协议:

  • ARP:地址解析协议
  • ICMP:网际控制报文协议
  • IGMP:网际组管理协议


(图,网际协议IP及其配套协议)

虚拟互连网络

将网络连接起来需要中间设备
四种不同的中间设备:

  • 转发器:物理层使用的中间设备
  • 网桥/桥接器:数据链路层的中间设备
  • 路由器:网络层使用的中间设备
  • 网关:网络层以上使用的中间设备
    有时把网络层使用的路由器称为网关

虚拟互连网络:逻辑互连的网络,利用IP协议将性能各异的网络在网络层上看起来好像是一个统一的网络
IP网:使用IP协议的虚拟互连网络
在IP网的上层使用TCP协议,就形成现在的互联网

(图,IP网的概念)
互联网可以由多种异构网络互连组成

(图,分组在互联网中传送)

分类的IP地址

IP地址及其表示方法

整个互联网是个单一抽象的网络
ICANN:互联网名字和数字分配机构

IP地址:给互联网上的每一台主机(或路由器)的每个接口分配一个在全世界范围内唯一的32位标识符(整个互联网范围内唯一)
IP地址编址方法所经历的三个阶段:

  1. 分类的IP地址(最基本的编址方法)
  2. 子网的划分(基本的改进)
  3. 构成超网(无分类编址方法)

基本的分类IP地址的表示方法:
方法:将IP地址划分为若干个固定类,其中A、B、C都由两个固定长度的字段组成,其中第一个字段是网络号,第二个字段是主机号。
网络号:标志主机(或路由器)所连接到的网络(整个网络范围内唯一)
主机号:标志一台主机(或路由器)(在所指明的网络范围内唯一)
IP地址可以记为:IP::={<>,<>}(“::=”是“定义为”的意思)

为了提高可读性,IP地址采用点分十进制记法,每个数字代表一个八位二进制数(如:128.11.3.31)

常用的三种类别的IP地址(ABC类)

A的网络号:
网络数-2:全0、127作为保留地址
全0:意思是“本网络”
127:用作本地软件的环回测试

B的网络号:
网络数-1:128.0.0.0不指派

C的网络号:
网络数-1:192.0.0.0不指派

A、B、C的主机号:
主机数均-2:全0、全1作为保留地址
全0:本主机所连接到的单个网络地址
全1:该网络上的所有主机

IP地址具有的特点:

  1. 是分等级的地址结构
    好处:
    IP地址管理机构只分配网络号,主机号由得到网络号的单位分配(两种机构负责IP地址两个部分的分配
    路由器根据目的主机所连接的网络号转发分组,减少了路由表所占用的存储空间以及查找路由表的时间
  2. IP地址是标志一台主机(或路由器)和一条链路的接口
    多归属主机:一台主机同时连接两个网络,具有两个相应的IP地址
  3. 一个网络是具有相同网络号的主机的集合,用转发器或网桥连接起来的若干个局域网仍为一个网络
  4. IP地址中,所有分配到网络号的网络都是平等的(同等对待)


注意点:

  1. 用网桥互连的网段仍然是一个局域网,只能有一个网络号
  2. 路由器总是有两个或以上的IP地址,其每个接口都有一个不同的网络号的IP地址
  3. 两个路由器直接相连时,在连线两端的接口处可以分配或不分配IP地址,不分配的叫无编号网络/无名网络(现常常是无编号网络)

IP地址与硬件地址

物理地址(硬件地址):数据链路层和物理层使用的地址(是网卡标识)
IP地址:是网络层及以上各层使用的地址,是一种逻辑地址(是主机标识)

在网络层和网络层以上使用IP地址,而数据链路层及以下使用的是硬件地址

强调点:

  1. IP层抽象的互联网上只能看到IP数据报
  2. 局域网的链路层只能看见MAC帧
  3. 路由器只根据目的站的IP地址的网络号进行路由选择
  4. IP层抽象的互联网屏蔽了下层的复杂细节

地址解析协议ARP

作用:从网络层使用的IP地址解析出在数据链路层使用的硬件地址(负责同一局域网内IP地址与硬件地址的映射问题)
ARP解决问题的方法:在主机ARP高速缓存中存放一个从IP地址到硬件地址的映射表(该映射表经常动态更新)
映射表的作用:可以直接找到所需的硬件地址而不必再用广播方式发送ARP分组

(映射表的建立过程)

使用ARP的四种典型情况:

  1. 主机H1->本网络的主机H2(主机把IP数据报发送到同一个网络上的另一台主机,后面类似)
    广播发送分组,找到主机H2的硬件地址
  2. 主机->另一个网络的主机
    广播发送分组,找到路由器R1的硬件地址
  3. 路由器->连在同一网络上的主机
    广播发送分组,找到主机的硬件地址
  4. 路由器->不连在同一网络上的主机
    广播发送分组,找到路由器R2的硬件地址

使用ARP而不直接使用硬件地址的理由:直接使用硬件地址要进行复杂的硬件地址转换工作(许多不同的网络硬件地址不同)

IP数据报的格式

IP数据报格式能够说明IP协议的功能

IP数据报有首部和数据两部分构成
首部的前一部分是固定长度(20字节),后一部分是可选字段(长度可变)

IP数据报首部的固定部分中的各字段:

  • 版本
    4位,指IP协议的版本(IPv4、IPv6等)
  • 首部长度
    4位,单位是4字节(最小是5,最大是15代表60字节)
  • 总长度
    16位,首部+数据的长度,单位是字节(数据报最大长度是2161字节(包括各分片在内))
  • 最大传送单元MTU
    数据帧中数据字段的最大长度
  • 标识
    16位,用来标记同一个数据报(数据报可能过长被分为多片)
  • 标志
    3位,前两位有用(MF=1还有分片,DF=1不能分片)
  • 片偏移
    13位,单位为8字节,较长的分组在分片后,某片在原分组中的相对位置
  • 生存时间
    8位,约定限制转发的路由器个数
  • 首部检验和
    16位,只检验数据报的首部(首部错误后果比数据的更严重,此外不检验数据部分可以减少运算代价加快分组转发,但数据部分出错不能尽早发现)
    方法:将首部划分为n个16位字,全部反码相加求和再取反码(发送方:检验和先置零计算后再赋值给检验和,接收方:计算结果为0接收否则抛弃)

IP数据报首部的可变部分:选择字段用来支持排错、测量等措施

IP层转发分组的流程

路由表:负责指出如何转发到到某个网络(路由表有若干行,每行对应一个网络)
最后由ARP负责找到主机相应的硬件地址

路由表中,每一条路由最主要的两个信息:目的网络地址、下一跳网络地址

(图b强调在互联网转发分组时,是从一个路由器转发到下一个路由器)

多数的分组转发都是基于目的主机所在的网络
特定主机路由:对特定目的的主机指明一个路由
默认路由:实在找不到目的网络(目的网路是其他网络),就选择默认路由
默认路由的作用:减少路由表所占的空间和搜索路由表所用的时间(适用于网络中只有很少的对外连接的情况)

IP地址经ARP转换成硬件地址放到MAC帧的首部

分组转发算法:

  1. 从数据报的首部提取目的主机的IP地址D,得出目的网络地址N
  2. 若N是此路由器直接相连的某个网络地址,则直接交付否则间接交付
  3. 若路由表有目的地址为D的特定主机路由,则进行特定主机路由传送(否则下一步)
  4. 若路由表有到达网络N的路由,则将数据报传送给该下一跳路由器(否则下一步)
  5. 若路由表有默认路由,则将数据报传送给该默认路由器(否则分组转发报错)

4.3划分子网和构造超网

划分子网

二级地址的缺点:

  1. IP地址的空间利用率有时很低
  2. 路由表变太大使网络性能变坏
  3. 不够灵活

三级IP地址:在二级地址的基础上增加“子网号字段”(划分子网)
划分子网的基本思路:

  1. 划分子网是一个单位内部的事情,对外仍表现为一个网络
  2. 从网络的主机号借用若干位作为子网号,记为IP::={<>,<>,<>}
  3. 由目的网络号找到连接在本单位网络上的路由器,再按目的网络号和子网号找到子网,最后将IP数据报交付目的主机

    小结:IP地址划分前是两级结构,划分子网后变成三级结构,划分子网只是对主机号这部分进行划分,不改变IP地址原来的网络号

子网掩码:使用子网掩码与IP地址进行按位与可以得到子网的网络地址(网络号+子网号=网络地址)

  • 子网掩码是一个网络或一个子网的重要属性
  • 路由器间交换路由信息时,要把自己所在网络(或子网)的子网掩码告诉相邻的路由器
  • 所有的网络都必须使用子网掩码,路由器表要有子网掩码一栏(若一个网络不划分子网,那么该网络的子网掩码就使用默认子网掩码)

    划分子网的结果:增加了灵活性,但却减少了能够连接在网络上的主机总数
    注:同样的IP地址和不同的子网掩码可以得出相同的网络地址,但不同掩码的效果是不同的

使用子网时分组的转发

子网划分后,路由表必须包含的三项内容:目的网络地址、子网掩码、下一跳地址
划分子网的情况下,路由器分组转发的算法:与划分前类似,只是加上了通过子网掩码获取IP地址的网络地址这一工作

无分类编址CIDR(构造超网)

网络前缀
背景:B类地址快用完,主干网上路由表的项目数急剧增长
*无分类编址CIDR是由变长子网掩码VLSM基础上发展来的
CIDR的两个主要特点:

  1. 消除了传统的A、B、C类地址以及划分子网的概念,把IP地址划分为前后两个部分(无分类的两级编址
    前一部分用来指明网络,称为网络前缀
    后一部分用来指明主机
    记法:IP::={<>,<>}
    或使用“斜线记法”(CIDR记法):在IP地址后加上斜线“/”然后写上网络前缀所占的位数(地址掩码中1的位数)
  2. CIDR把网络前缀都相同的连续IP地址组成一个“CIDR地址块”
    可以用地址块中的最小地址和网络前缀的位数指明这个地址块(例如:128.14.32.0/20(若不需要指出地址块的起始地址,可简称:/20地址块))

路由聚合(构成超网):将网络前缀缩短,网络前缀越短,其地址块所包含的地址数就越多(例如把四个系的路由聚合为大学的一个路由)
(相反,划分子网是使网络前缀变长)

最长前缀匹配
路由表的每个项目由网络前缀和下一跳地址组成
最长前缀匹配(最长匹配/最佳匹配):从匹配结果中选择具有最长网络前缀的路由

使用二叉线索查找路由表
使用二叉线索树:IP地址中从左到右的比特值决定了从根节点逐层向下延伸的路径,而二叉线索中的各个路径就代表路由表中存放的各个地址

4.4网际控制报文协议ICMP

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

ICMP的两种报文种类

ICMP差错报告报文:

  • 5种ICMP差错报告报文:
    终点不可达
    时间超过
    参数问题
    改变路由(重定向)
    源点控制
  • 不发送ICMP差错报告报文的情况:
    对ICMP差错报告报文本身不再发送
    对报文的第一个分片,其后续分片都不发送
    *具有多播地址的数据报不发送
    *具有特殊地址的数据报不发送

ICMP询问报文:

  • 2种ICMP询问报文:
    回送请求和回答
    时间戳请求和回答

ICMP的应用

  • 分组网间探测PING:用来测试两台主机之间的连通性
  • traceroute:用来跟踪一个分组从源点到终点的路径

4.5互联网的路由选择协议

有关路由选择协议的几个基本概念

路由选择协议的核心算法是路由算法
理想的路由算法的特点:是最佳的(相对于某种特定要求下得出的较为合理的选择)

路由算法的划分(按能否随网络通信量或拓扑自行应地进行调整变化来划分):

  • 静态路由选择策略(非自适应路由选择)
    特点:简单和开销小,但不能及时适应网络状态的变化
  • 动态路由选择策略(自适应路由选择)
    特点:能较好地适应网络状态的变化,但实现复杂开销大

分层次的路由选择协议:

  • 分层次的原因:
    互联网规模大
    使外界不能了解本网络的布局细节和采用的路由选择协议但仍能接到互联网
  • 自治系统(AS):
    内部路由器使用一种自治系统内部的路由选择协议和共同度量
    一个AS对其他AS表现出的是一个单一的和一致的路由选择策略
    (一个大的ISP就是一个自治系统,或者机构类(学校edu、公司com等))
  • 两类路由选择协议:
    内部网关协议IGP:在一个自治系统内使用的路由选择协议(如RIP、OSPF)
    外部网关协议EGP:将路由选择信息传递到另一个自治系统的路由选择协议(如BGP)
  • 两种路由选择
    域内路由选择:在自治系统内部的路由选择
    域间路由选择:在自治系统之间的路由选择

*注:
互联网的早期RFC文档使用“网关”(对应IGP、EGP协议),后又改用“路由器”(对应IRP、ERP)
IGP和EGP是协议类别的名称,但早期在EGP类中有一个外部网关协议的名称也叫EGP(后来该协议被更好的外部网关协议BGP(边界网关协议)代替)

内部网关协议RIP

作用:让路由器相互“认识”,而与信息的转发不直接相关(但转发的依据是RIP协议建立起来的“关系表”)

工作原理

  • RIP本质:一种分布式的基于距离向量的路由选择协议
    距离:路由器到直接相连的网络距离为1,到非直接连接的网络的距离为所经过的路由器数量加1(也称跳数
    距离的特点:等于16时相当于不可达(只适用于小型互联网)、短路由优先
  • RIP协议的特点:
    1)仅和相邻的路由器交换信息
    2)交换的信息时是交换当前路由器的路由表
    3)按固定时间间隔交换路由信息
    4)一般可收敛,且过程也较快
  • 路由表的更新原则:
    找出到达每个目的网络的最短距离(对应距离向量算法)

距离向量算法
简述:RIP协议让一个自治系统中的所有路由器都和自己的相邻路由器定期交换路由信息,并不断更新其路由表,使得每个路由器到每个目的网络的路由都是最短的
不同之处:不同位置的路由表是不同的(注意与OSPF协议区分)

RIP协议的报文格式

  • RIP协议优点:实现简单,开销小
  • RIP协议缺点:
    限制网络规模
    开销随着网络规模增加而增加
    坏消息传播慢使得收敛时间长

内部网关协议OSPF

OSPF协议基本特点

OSPF:开放最短路径优先协议,使用了Dijkstra的最短路径算法
最主要特征:使用分布式的链路状态协议
OSPF的三个要点:

  1. 使用洪泛法
    向本自治系统中所有路由器发送信息
  2. 发送路由器所知道的部分信息
    发送的信息时与本路由器相邻的所有路由器的链路状态
    链路状态:和哪些路由器相邻,以及该链路的度量(代价/权)
  3. 只有链路状态发生变化时,路由器才向所有路由器用洪泛法发送此信息

链路状态数据库(全网的拓扑结构图):用OSPF协议最终所有的路由器都能建立链路状态数据库(此拓扑结构在全网范围内一致)
OSPF的重要优点:更新过程收敛快,能用于大规模网络

区域

概念:OSPF将一个自治系统再划分为若干个更小的范围,这个范围叫做区域
表示方法:用32位的区域标识符,点分十进制表示
好处:把洪泛法局限于区域内,减少网络上的通信量
区域划分:OSPF使用层次结构的区域划分

  • 主干区域:上层区域,用来连通其它下层区域,标识符0.0.0.0
  • 主干路由器:主干区域内的路由器
  • 区域边界路由器:用来转发其它区域的信息

OSPF分组的结构

OSPF直接用IP数据报传送

OSPF的五种分组类型

  1. 问候分组
  2. 数据库描述分组
  3. 链路状态请求分组
  4. 链路状态更新分组
  5. 链路状态确认分组

OSPF采用的两个技术

OSPF采用可靠的洪泛法

  • 特点:当互联网规模很大时,OSPF协议要比RIP协议好得多,没有“坏消息传播慢”的问题

OSPF对多点接入的局域网采用指定的路由器方法

  • 概念:指定路由器代表该局域网上所有的链路向连接到该网络上的各路由器发送状态信息
  • 优点:使广播信息量大大减少

外部网关协议BGP

BGP:边界网关协议,用于不同自治系统的路由器之间的信息交换

BGP使用的环境与内部网关协议不同:

  1. 互联网的规模太大,使得自治系统AS之间路由选择非常困难
  2. 自治系统之间的路由选择必须考虑有关策略

BGP采用的策略:力求找到能够到达目的网络且比较好的路由(不绕圈子),不必求一条最佳路由
采用协议:路径向量路由选择协议

BGP发言人:配置BGP时,要选择至少一个路由器作为该自治系统的BGP发言人。(BGP发言人往往是BGP边界路由器)
邻站(对等站):使用TCP连接交换路由信息的两个BGP发言人,彼此称为对方的邻站或对等站。
BGP会话:BGP发言人要与其他AS的BGP发言人要交换路由信息,先建立TCP连接,再在此连接上交换BGP报文以建立BGP会话

BGP所交换的网络可达性的信息:要到达某个网络所要经过的一系列自治系统
自治系统连通图:是树形结构,不存在回路

(BGP协议交换路由信息的结点数量级是自治系统个数的数量级,比自治系统的网络数少很多)

BGP支持无分类域间路由选择CIDR
BGP不同时期的更新:BGP刚刚运行时,BGP的邻站是交换整个的BGP路由表,以后只需要在发生变化时更新有变化的部分

BGP-4的四种报文:OPEN(打开)报文、UPDATE(更新)报文、KEEPALIVE(保活)报文、NOTIFICATION(通知)报文
BGP报文格式:

路由器的构成

整个路由器结构可划分为两大部分:路由选择部分和分组转发部分
路由选择部分(控制部分):核心构件是路由选择协议
分组转发部分:由交换结构(交换组织,根据转发表对分组处理)、一组输入端口、一组输出端口组成
转发和路由选择的区别:

  1. 转发:路由器根据转发表把收到的IP数据报从路由器合适的端口转发出去
  2. 路由选择:许多路由器按照复杂的路由算法得出整个网络的拓扑变化情况,构造出整个的路由表(转发表是从路由表得出的)

    (讨论路由选择原理时,往往不去区分转发表和路由表的区别)

输入输出端口的处理:

4.7IP多播

IP多播概念:在互联网上进行多播,实现一对多的通信(多播地址只能用于目的地址)

IP多播需要两种协议

网际组管理协议IGMP:让连接在本地局域网上的多播路由器知道本局域网上是否有主机(主机的某个进程)参加或退出了某个多播组
多播路由选择协议:协同局域网上多播路由器间的工作,把多播数据报用最小的代价送给所有组成员
转发多播数据报使用的三种方法:
1)洪泛与剪除:洪泛即使用洪泛法,剪除是打破环路剪除多余路径
2)隧道技术:对多播数据报进行再次封装,使之成为向单一目的站发送的单播数据报,然后通过隧道(虚拟的)进行传播

3)*基于核心的发现技术

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

虚拟专用网VPN

本地地址:仅在本机构有效的IP地址,而不需要向互联网的管理机构申请全球唯一的IP地址(全球地址)
专用地址:只能用于一个机构的内部通信,而不能用于和互联网上的主机通信
专用互联网(专用网/本地互联网/):使用专用IP地址的互连网络
虚拟专用网VPN:利用公用的互联网作为机构各专用网之间的通信媒体,这样的专用网称为虚拟专用网VPN

内联网:由场所A和B的内部网络所构成的虚拟专用网VPN,表示场所A和B同属一个机构
外联网:需要有某些外部机构参与的机构VPN
用隧道技术实现虚拟专用网:

网络地址转换NAT

作用:所有使用本地地址的主机在和外界通信时,都要在NAT路由器上将其本地地址转换成全球IP地址,才能和互联网连接

posted @   kksk43  阅读(436)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
特效
黑夜
侧边栏隐藏
点击右上角即可分享
微信分享提示