本文已参与「新人创作礼」活动,一起开启掘金创作之路。
网络层→ 提供连接的虚电路服务 or 向上提供简单的、无连接的、尽最大努力交付的数据报服务。
路由+转发,拥塞控制
中继系统
RIP 采用的 距离-向量路由算法 (最远15跳)
定期将它们的整个路由选择传送给直接相邻的节点
每次更新节点时,将它的所有路由表更新发给相邻节点。
更新报文的大小与通信子网的节点个数成正比
-
仅和相邻路由器交换信息。
-
路由器交换的信息是自己的路由表。
-
每30秒交换一次路由信息,然后路由器根据新信息更新路由表。若超过180秒没收到邻居路由器的通告,则判定邻居没了,并更新自己路由表。
RIP允许一条路径最多只有15跳,16为不可达
RIP 不支持子网掩码的RIP广播(RIP2支持)
RIP选择东西不一定是时间最短的,但是一定是路由最少的
OSPF 链路状态路由算法
-
主动测试所有邻居的状态
-
定期将链路状态传播给所有其他节点
链路发送改变怎么办? 求一个单源最短路 dijkstra算法?spf算法,都可
特征:
-
向所有节点发送信息,采取泛洪法(dfs一遍)
-
发送的信息是跟这个路由器相邻的所有路由器的链路状态[度量:费用、距离、时延、带宽](带权最短路)
-
只有发生改变才会更新
OSPF五种分组类型:
问候分组,用来发现和维持邻居可达
数据描述分组,发送摘要信息→链路状态
链路状态请求分组,请求发送链路状态
链路状态更新分组,泛洪法更新链路状态
链路状态确认分组,链路分组更新的确认
区别?
距离向量算法,每个节点只与它邻居交流
链路状态算法,每个节点改变时通过与他邻居交流广播出去,更新相关路径的点,不会遇见环,因为它只告诉它们和它直接的直连的费用
BGP
每一个自治系统挑一个发言人出来,要交换路由信息,那么两个发言人要建立TCP连接
4种报文
打开报文
更新报文
保持连接(keep live)报文
通知报文
层次路由
| IGP(内部网关协议) | EGP(外部网关协议) |
|---|---|
| RIP(应用层协议,在传输层采用UDP,端口520) | BGP(采用TCP) |
| OSPF(网络层协议,在网络层采用IP报文,首部协议地址89) |
IP
结构:→
谁重要?=> 版本,首部长度,总长度,标识(分片用),标志(MF(1还有分片)(0最后分片)DF为0时允许分片),片偏移,生存时间(TTL),协议(TCP?UDP?)那几个值
IP 报的偏移值单位是8B
私有地址
A类 → [10.0.0.0-10.255.255.255]
B类 → [172.16.0.0-172.31.255.255]
C类 → [192.168.0.0-192.168.255.255]
路由聚合
聚合相同特征最多的部分,匹配路由最长的ip地址
最长前缀匹配(最佳匹配),由网络前缀和下一跳组成
DHCP 采用的UDP
ICMP种类: ICMP差错报告报文和ICMP询问报文
ICMP差错报告报文类型:
终点不可达
源点抑制
时间超过
参数类型
改变路由(重定向)
ICMP询问报文类型 回送请求和回答报文,时间戳请求和回答报文,掩码地址请求和回答报文,路由器询问和通过报文
Ping 命令使用的是ICMP,而不是TCP和UDP
IP直接为ICMP 提供服务
Tracert 工作在网络层,跟踪路由协议
IP v4 首部长度以32b计数,总长度以8bit为计数单位
IP分组的校验字段检查范围是首部
单播地址就是主机地址
转发IP时,并不会改动源IP和目的IP,但是源mac地址和目的mac地址会因为局域网不同,路由器不同,而改变,否则怎么传送到下一跳路由器上
ip长度
首部长度(4B),总长度(1B),片偏移(8B)
IP协议的首部“标志”中标志(flag) 占 3 位,只有前两位有意义。标志字段的最低位是 MF (More Fragment)。MF =1 表示后面“还有分片”。MF = 0 表示最后一个分片。标志字段中间的一位是 DF (Don't Fragment) 只有当 DF =0 时才允许分片。
IP组播尽最大可能的交付,不可靠,组播地址只能用于目的地址,不能用于源地址
网络层设备
路由器→ 连接不同的网络并完成路由转发
路由器是网络层设备,实现了网络模型中的下三层,物理层、数据链路层和网络层