计算机网络杂记-08
网络层
网络层的主要功能是将分组从源端传送到目的端,网络层的两个主要问题是路由和拥塞控制。
实现网络层需要解决的问题:
向运输层提供的服务:尽最大努力交付、带宽保证、时延保证、安全性
网络层寻址问题:IP地址
路由选择问题:路由选择算法
网络层在 TCP/IP 协议族中叫网际层,主要包括 IP 协议、ICMP 协议、ARP 协议和 RARP 协议。
网络层的两种主要服务模式
面向连接的虚电路服务
无连接的数据报服务
虚电路
虚电路是一种面向连接的服务,虚电路的建立需要消耗网络资源,虚电路的拆除也需要消耗网络资源。
可靠通信由网络层保证,网络层使用确认、超时重传、序号、流量控制等机制保证可靠通信
必须建立网络层连接–虚电路 Virtual Circuit,虚电路由三部分组成:虚电路标识符、源和目的地址、沿途经过的路由器序列
目的主机的地址仅在建立连接时使用,之后沿途的路由器使用虚电路标识符来识别虚电路
通信结束后,必须拆除网络层连接,释放网络资源
数据报
数据报是一种无连接的服务,数据报不需要建立连接,也不需要拆除连接,因此不需要消耗网络资源。
不可靠通信,网络层不保证数据报能够成功到达目的地
不需要建立网络层连接,不需要消耗网络资源
每个分组都携带完整的目的地址,因此每个分组都可以独立发送,沿途的路由器也可以独立转发
每个分组的转发路由可以不同,因此分组可能不按序到达
网络本身不提供端到端的可靠传输服务,使得路由器的设计和实现变得简单
将复杂的网络处理功能放在端系统中,使得网络层的设计和实现变得简单
IP 协议
有关 IP 协议中:
分类编址 IPv4 地址
划分子网
无分类编址 CIDR
IPv4 地址应用规划
详见 计算机网络(IPv4部分)
IP 数据报的发送和转发
主机发送 IP 数据报
路由器转发 IP 数据报
略…
路由
路由是指从源到目的地的路径,路由选择是指在多个路由中选择一条路由的过程。
静态路由配置以及可能产生的问题
静态路由配置是指在路由器中手动配置路由表,静态路由配置的优点是简单、可靠,缺点是不适合大型网络。
静态路由配置的问题:
静态路由配置不适合大型网络
静态路由配置不适合网络拓扑变化频繁的网络
静态路由配置不适合网络中的路由器故障频繁的网络
静态路由的过程:
路由器收到数据报,检查目的地址,如果目的地址在路由表中,则转发数据报,否则执行下一步
路由器将数据报转发给默认路由器,如果默认路由器不在,则丢弃数据报
默认路由器是指当路由表中没有目的地址的路由时,路由器将数据报转发给默认路由器。
特定主机路由过程:
路由器收到数据报,检查目的地址,如果目的地址在路由表中,则转发数据报,否则执行下一步
路由器将数据报转发给默认路由器,如果默认路由器不在,则丢弃数据报
特定主机路由网络前缀是 32 位,默认路由网络前缀是 0 位。
所以,特定主机路由网络前缀最长,路由最具体;默认路由网络前缀最短,路由最笼统。
为了防止 IP 数据报在路由环路中永久循环,IP 协议规定每个 IP 数据报的生存时间字段 TTL,每经过一个路由器,TTL 减 1,当 TTL 为 0 时,路由器丢弃该数据报。
聚合了不存在的网络前缀的路由称为黑洞路由,黑洞路由的作用是丢弃数据报,不向源主机发送任何 ICMP 消息。
黑洞路由的下一跳地址是 null0,null0 是一个虚拟接口,它不属于任何网络,它的作用是丢弃数据报。
路由选择协议
| 静态路由 | 动态路由 |
|---|---|
| 人工配置 | 自动配置 |
| 适合小型网络 | 适合大型网络 |
| 不适合网络拓扑变化频繁的网络 | 适合网络拓扑变化频繁的网络 |
| 不适合网络中的路由器故障频繁的网络 | 适合网络中的路由器故障频繁的网络 |
因特网所采用的路由选择协议的特点:
自适应:动态路由选择,能较好的适应网络拓扑变化
分布式:路由器之间交换路由信息
分层次:整个因特网划分为多个自治系统(Autonomous System),每个自治系统内部使用某种路由选择协议,自治系统之间使用某种路由选择协议
自治系统内部使用
IGP(Interior Gateway Protocol)协议,自治系统之间使用EGP(Exterior Gateway Protocol)协议;IGP协议有 RIP、OSPF、IS-IS、IGRP、EIGRP 等;EGP协议有 BGP 等。
RIP 协议:路由信息协议;基于距离向量
- 在因特网最早使用
IGRP 协议:内部网关路由选择协议;基于距离向量
- 用于 Cisco 路由器
- 但是 IGRP 协议是私有协议,不是开放协议,现在已被 EIGRP 协议取代
OSPF 协议:开放最短路径优先协议;基于链路状态
- 用于大型网络,在因特网中使用较多
IS-IS 协议:中间系统到中间系统协议;基于链路状态
- 集成化 IS-IS 协议是 ISP 网络中使用的一种 IGP 协议
路由器的基本结构:
输入端口
交换结构
输出端口
路由表一般包含两个部分:目的地址和下一跳地址
路由表需要对网络拓扑变化做出响应,因此路由表需要动态更新
转发表是路由表的一部分
转发表的结构应当使查找过程尽可能快速
RIP 协议 - 距离向量路由选择协议
路由信息协议 RIP(Routing Information Protocol)是一种距离向量路由选择协议,RIP 协议使用距离作为路由选择的度量,距离的度量单位是跳数。
RIP 协议是内部网关协议 IGP 中最先得到广泛应用的一种协议,相关文档是 RFC 1058
该协议要求 AS 内的所有路由器都运行 RIP 协议,维护从它到其他所有目的网络的距离向量(距离向量 D-V Distance Vector)
使用跳数(Hop Count)作为距离的度量单位
- 最大跳数为 15,超过 15 跳的网络被认为是不可达的
- 路由器到直连网络的距离为 1
- 路由器到其他网络的距离为 1 加上到达该路由器的距离
RIP 协议使用 UDP 端口号 520
RIP 认为,跳数越少,路径越短,因此跳数越少的路径越好。当到达同一目的网络的两条路径的跳数相同时,RIP 协议可以进行等价负载均衡。
RIP 包含 3 个要点:
和邻居交换路由信息(和谁)
路由信息的更新(什么)
周期性交换信息(何时)
RIP 协议的基本工作过程
路由器收到 RIP 报文,检查报文类型,如果是请求报文,则执行下一步,否则丢弃该报文
路由器检查请求报文中的目的地址,如果目的地址是本路由器,则执行下一步,否则丢弃该报文
路由器将本路由器的路由表中的所有路由信息封装在响应报文中,发送给请求报文的源路由器
路由器刚开始工作时,只知道自己到直连网络的距离为 1,其他网络的距离为 16
路由器仅和直接相连的路由器交换路由信息
若干次交换后,路由器就可以获得到达其他网络的距离,称之为收敛
RIP 协议的缺点:
RIP 协议的最大跳数为 15,因此 RIP 协议只适合小型网络
RIP 协议的收敛速度慢,因为 RIP 协议的更新时间间隔为 30 秒,因此 RIP 协议的收敛时间为 90 秒
RIP 协议的路由选择不是最优的,因为 RIP 协议的路由选择是基于距离的,而不是基于带宽的
OSPF 协议 - 开放最短路径优先协议
开放最短路径优先协议 OSPF(Open Shortest Path First)是一种链路状态路由选择协议,OSPF 协议使用最短路径作为路由选择的度量,最短路径的度量单位是代价。最短路径优先算法是 Dijkstra 提出的 SPF 算法。
OSPF 协议是内部网关协议 IGP 中最先得到广泛应用的一种协议,相关文档是 RFC 2328
该协议要求 AS 内的所有路由器都运行 OSPF 协议,维护从它到其他所有目的网络的链路状态(链路状态 L-S Link State)
使用代价(Cost)作为距离的度量单位
- 代价越小,路径越短,因此代价越小的路径越好
- 代价的计算公式:代价 = 100Mbps / 带宽
OSPF 协议使用 IP 协议号 89
该协议相邻路由器之间通过交互问候(Hello)报文来建立邻居关系,通过交互链路状态(LS)报文来交换链路状态信息。
OSPF 有五种分组:
问候(Hello)分组:用于建立邻居关系
数据库描述(Database Description)分组:用于交换链路状态数据库
链路状态请求(Link State Request)分组:用于请求链路状态信息
链路状态更新(Link State Update)分组:用于发送链路状态信息
链路状态确认(Link State Acknowledgement)分组:用于确认链路状态信息
BGP 协议 - 边界网关协议
边界网关协议 BGP(Border Gateway Protocol)是一种路径矢量路由选择协议,BGP 协议使用路径作为路由选择的度量,路径的度量单位是 AS。
在不同的自治系统内,度量路由的代价是不同的,因此代价不适合作为路由选择的度量单位。
自治系统间的路由选择需要考虑自治系统间的策略,比如政治、经济、安全等因素。
BGP 协议是外部网关协议 EGP 中最先得到广泛应用的一种协议,相关文档是 RFC 4271
BGP 协议的基本工作过程
管理员在配置 BGP 协议时,需要配置至少一个路由器作为该自治系统的
BGP 发言人,该路由器负责和其他自治系统的BGP 发言人交换路由信息不同自治系统的
BGP 发言人之间交换信息,必须建立 TCP 连接,使用 TCP 端口号 179使用TCP 连接交换路由信息的两个
BGP 发言人之间称为BGP 对等体/邻站/对等点/对等路由器BGP 发言人除了运行 BGP 协议,还需要运行 IGP 协议,IGP 协议用于在自治系统内部交换路由信息,BGP 协议用于在自治系统之间交换路由信息
BGP-4 的四种分组:
打开(Open)分组:用于建立 TCP 连接
更新(Update)分组:用于交换路由信息
通知(Notification)分组:用于通知错误信息
空闲(Keepalive)分组:用于保持 TCP 连接