网络层提供主机到主机
的通信服务。
转发和路由选择
区别:转发是将分组从一个输入链路接口转移到适当的输出链路接口的路由器本地动作
。路由选择是网络范围
的过程,决定分组从源到目的地所采取的端到端路径。
考虑旅行者从宾夕法尼亚州到佛罗里达州的行程,转发就类似于图中要经过很多立交桥,离开每个立交桥的时候才决定走哪一条路,而路由选择像出发前旅行者就看地图在许多可能的路径(每条路径包含多个立交桥)中选择一条路线。
虚电路和数据报网络
IP地址的编址方法
分类的IP地址 --- 最基本的编址方法
A类地址
可指派的网络号是126(即$2^{7}-2)$$个.(减去全0和全1两种情况)。最大主机数 $2^{24}-2$个。(减去主机号全0和全1)
网络号字段全0的IP地址是保留地址
,意为"本网络"。
e.g. A类地址0.0.0.35
代表"在这个网络上"主机号为35的主机。
网络号为127(即01111111)
保留作为本地软件环回测试
(本主机的进程之间通信之用)。
全0主机号
表示"本主机"所连接的单个网络地址。
e.g. 一主机的IP地址为5.6.7.8
,则该主机所在的网络地址为5.0.0.0
全1主机号
代表本网所有主机。
B类地址
可指派的网络号是16383(即$2^{14}-1)$$个.(没有主机号全0和全1的情况,但是128.0.0.0
不指配,最小网络地址128.1.0.0
)。最大主机数$2^{16}-2$个。(减去主机号全0和全1)
C类地址
可指派的网络号是16383(即$2^{21}-1)$$个.(没有主机号全0和全1的情况,但是192.0.0.0
不指配,最小网络地址192.0.1.0
)。最大主机数$2^{8}-2$个。(减去主机号全0和全1)
根据上面表格的网络号指派范围就可以区分该IP地址属于哪一类了。
由于一个路由器至少连接到两个网络,因此一个路由器至少应当拥有两个不同的IP地址。(每个接口都有一个IP地址)
同一局域网上主机或路由器IP地址中网络号必须一样。
划分子网
从网络的主机号借用若干位作为子网号。
划分子网在内部,因此对外仍是一个网络!
子网掩码(network mask)
子网的网络地址 = 子网掩码 & IP地址
(相与 and)
一张图足以概括。另外,若没有划分子网,也必须有子网掩码,使用默认子网掩码
。
CIDR(Classless Inter-Domain Routing)--无分类编址
IP数据报
IP数据报分片
因为不是所有的链路层协议都能承载相同长度的网络层分组。比如以太网帧的MTU
(Maximum Transmission)即最大传送单元(一个链路层帧能承载的最大数据量)为1500字节
。链路层的MTU严格限制IP数据报的长度。因此要进行分片
,将IP数据报中的数据分片成多个较小的IP数据报(fragment)再分别用链路层帧封装。
e.g.
一个4000字节的数据报(20字节IP首部加上3980字节IP有效载荷)到达一台路由器,且必须被转发到一条MTU为1500字节的链路上。问要分多少片?每片多少字节?
解答
: 3980/1500 = 2.65 < 3 则应该分为3片
,数据字段分别长1480, 1480, 1020
(3980-1480-1480)
注意!分片除了最后一片,所有数据字段长应该是8的倍数!偏移值应当被规定以8字节块为单位!
自治系统(autonomous system)
在互联网中,一个自治系统(AS)
是一个有权自主地决定在本系统中应采用何种路由协议的小型单位。
路由选择算法
一种广义分类可将路由选择算法分为
-
全局式路由选择算法(global routing algorithm)
:用完整的、全局性的网络制式计算出从源到目的地之间的最低费用路径。实践中,具有全局状态信息的算法常被称为链路状态(Link State, LS)算法
。 -
分散式路由选择算法(decentralized routing algorithm)
:以迭代、分布式的方式计算出最低费用路径。一个常用的算法为距离向量(Distance-Vector, DV)算法
。
具体算法的原理和实现在《计算机网络:自顶向下方法》中第4章有详细讲解。
自治系统内路由选择 -- 内部网关协议
路由选择信息协议(Routing Information Protocol, RIP)
使用距离向量
算法。
- 仅和相邻路由器交换信息。
- 路由器交换的信息时当前本路由器知道的全部信息。
- 按固定的时间间隔交换路由信息。
刚开始时,到直接相连的网络距离定义为1。每经过一个路由器,跳数加1,跳数为16相当于不可达。事实证明,RIP协议可以较快收敛。
举个路由器中路由表的书上的例子:
已知路由器R6有表4-9(a)所示的路由表。现收到相邻路由器R4发来的路由更新信息(表4-9(b)),试更新R6的路由表。
距离向量算法是分散式路由选择,和全局式很不一样,它并不需要知道整个网络的拓扑结构。
缺点是当网络出现故障,要记过比较长的时间才能将信息传送到所有的路由器。
RIP协议使用运输层的用户数据报UDP进行传送。
RIP1和RIP2的报文首部相同,路由部分有些不同。
开放最短路径优先(Open Shortest Path First, OSPF)
使用链路状态
协议。
- 向本自治系统中所有路由器发送信息。使洪泛法(flooding)。
- 发送的信息就是与本路由器相邻的所有路由器的链路状态。
- 只有当链路状态发生变化时,路由器才向所有路由器用洪泛法发送此消息。
各个路由器频繁的交换链路状态信息,所有的路由器建立一个链路状态数据库
,这实际上就是全网的拓扑图
。OSPF的更新过程收敛得快。
OSPF直接用IP数据报传送。(注意RIP是用UDP的)
外部网关协议BGP
BGP采用路径向量(path vector)路由选择协议。
协议交换路由信息节点数量级是自治系统个数的数量级。刚开始运行时,BGP的邻站是交换整个的BGP路由表。但以后只需要在发生变化时更新有变化的部分。
网际组管理协议IGMP
- 第一阶段:当某个主机加入新的多播组时,该主机应向多播组的多播地址发送IGMP 报文,声明自己要成为该组的成员。本地的多播路由器收到 IGMP 报文后,将组成员关系转发给因特网上的其他多播路由器。
- 第二阶段:因为组成员关系是动态的,因此本地多播路由器要周期性地探询本地局域网上的主机,以便知道这些主机是否还继续是组的成员。只要对某个组有一个主机响应,那么多播路由器就认为这个组是活跃的。但一个组在经过几次的探询后仍然没有一个主机响应,则不再将该组的成员关系转发给其他的多播路由器。
还有好多之后再补充吧,其实书上的更详尽全面,只是因为要考试了所以重温一下并且记录下来当做复习。
参考资料:
1.《计算机网络》 谢希仁
2.《计算机网络:自顶向下方法》 James F. Kurose & Keith W. Ross