1. IPv4地址结构分类规则
- 由四个字节构成,第一个字节决定地址结构的类别:
第一个字节的十进制数值小于128时,只有第一个字节表示网络地址。大于128小于192时,前两个字节表示网络地址。大于192小于224时前三个字节均表示网络地址。
0.0.0.0是本机地址,255.255.255.255是广播地址。
2. 路由器的两种功能以及其对应的协议,分别举例并简单说明机制
- to fragment larger PDU data blocks into IP sizes blocks for transfer
对应协议:routable protocols:负责把信息封装到包中进行发送 (IP协议)
- to route IP packets towards their destination
对应协议:routing protocols: 负责判断可用路由器,与其他可用路由器交流并为传输的包选择路由路径(RIP协议,OSPF协议)
3. 解释IP数据报里的每一个部分的作用
Version:4位,指IP协议的版本。通信双方IP协议版本必须一致
IHL:4位,指首部(header)长度,可表示最大数为15,单位是32字节(一行)。即表明最大长度是15行,即60字节。IP字节长度不是4字节的整数倍时,必须用最后的填充字段加以填充。
Total length:16位,描述首部和数据包的长度之和。
identification: 16位,标识。当数据包由于长度超过网络的MTU而必须被分片时,这个标志字段的值就被复制到所有数据报的标识字段中,相同的标识字段的值使各个数据报片能够正确地重装成原来的数据报。
0/MF/DF:标志。占3位,MF = 1表示后面还有分片,DF = 1表示不能分片,只有DF = 1时才允许分片。
Fragment offset:占13位。片偏移,较长的分组在分片后,某片在原分组的相对位置。即相对于用户数据字段的起点,该片从何处开始。
TTL:8位。生存时间。为了防止这个数据报在网络中兜圈子,每经过一个新的路由器就会在这个值上减去它所消耗的时间,当其被减为0时就丢弃这个数据报。
Protocol:8位,说明这个数据报使用了什么协议,以方便IP协议向上层交付。
checksum:16位,检查头部信息完整性。不完整则丢弃
Options:让IP可以有更多的设定,例如安全和路由选择方面
padding:保证options区域补全32字节的边界。
4. 数据报分片考察
- 简化版数据报一般前三个数字分别描述的是:identification, fragment offset, MF。分别代表这个数据报对应的ID号,以及此分片在完整数据中的位置,和是否后面还存在分片。
5. IP协议分类比较
Source Routing vs Next hop Routing
source routing 是通过算法预先选出 a set of hops并将其存入数据报后才开始执行路由
next hop routing 是在每一跳中基于当前路由器中的信息决定下一跳的位置
Static routing vs Dynamic routing
静态路由简单,开销小。动态路由开销大,实现复杂。
静态路由不能及时应对网络的变化,紧急情况需要手动修改一些配置。但动态路由可以较好地适应这种变化
静态路由适用于小型网络,大型网络则应用动态路由维护
静态路由与source routing机制类似,动态路由与next hop routing机制相似
IGP vs EGP
内部网关协议在一个自治系统内部使用的路由选择协议
外部网关协议是面对多个不同的网关协议系统
RIP协议 vs OSPF协议
RIP工作原理
- distance vector protocol
仅和相邻路由器交换信息。
路由器交换的是当前本路由器所知道的全部信息,即自己完整的路由表。
按固定时间间隔交换路由信息。
RIP协议传输信息通过UDP协议
如果一个路由在180秒内没有刷新,距离设置为16,路由被标记为不可达
自组织网络
路由器交换的信息有:
OSPF工作原理
- link state protocol
-
通过洪泛法向本治系统所有路由器发送信息。
什么是洪泛法?
路由器通过所有输出端口向所有相邻的路由器发送消息。而每一个相邻路由器又将此信息发往其所有的相邻路由器。最终整个区域的所有路由器都获得了这个信息的一个副本
所谓洪泛是因为数据方向是单向的
-
发送的信息只有与本路由器相邻的所有路由器的链路状态,发送的信息只是路由器所知道的部分信息。算法认为只发相邻路由器的链路状态就足够满足需求。
- 发送的信息中会含有“链路状态”信息和“度量”信息。“链路状态”信息指的是本路由器都和那些路由器相邻。“度量信息”即用来表示对应链路的权重(非跳数,而是距离,费用,时延,带宽等)
只有在链路状态发生变化的时候,路由器才向所有路由器用洪泛法发送此信息。
通过洪泛法,最终OSPF协议下的每一个路由器都可以形成一个链路状态数据库(link-state database),这个数据库是全网的拓扑结构图,所有路由器内该数据库都是相同的,即链路状态数据库的同步。
RIP vs OSPF
-
关于和哪些路由器交换的问题
RIP协议仅仅想自己相邻的几个路由器发送消息
OSPF协议通过洪泛法向所有路由器发送消息
-
关于交换什么信息的问题
RIP协议发送的信息是到所有网络的距离和下一跳路由器
OSPF协议下每个路由器仅发送部分自己所知到的信息,即相邻的所有路由器的链路状态以及该链路的度量(非跳数,权重值)
-
在什么时候交换信息
RIP协议不管网络拓扑环境是否有变化,定期交换路由表的全部信息
OSPF协议只有在链路状态发生变化的时候,路由器才会用洪泛法发送此信息。
收敛时间改进的四种方法
-
Split Horizon Update 【水平分割】
由于路由器可能收到它自己发送的路由信息,而这种信息是无用的,水平分割技术不反向通告任何从终端收到的路由更新信息,而只通告那些不会由于计数到无穷而清除的路由。
水平分割法的规则和原理是路由器从某个接口接收到的更新信息不允许再从这个接口发回去。
-
Poison Reverse 【毒性逆转】
-
Triggered Updates【触发更新】
路由改变需要路由器发出广播消息而不是等待正常的广播间隔
如果网络出现问题,所有受影响的路由器都将立刻进入抑制状态,而不是等待定时器到期。这种机制提高了汇聚速度,有助于防止环路。
-
Hold-Down Timer【抑制计时器】