计算机网络札记(4)-- 网络层

190 阅读4分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

网络层→ 提供连接的虚电路服务 or 向上提供简单的、无连接的、尽最大努力交付的数据报服务。

路由+转发,拥塞控制

中继系统

image_TCmWc-Da6T.png

RIP 采用的 距离-向量路由算法 (最远15跳)

定期将它们的整个路由选择传送给直接相邻的节点

每次更新节点时,将它的所有路由表更新发给相邻节点。

更新报文的大小与通信子网的节点个数成正比

  1. 仅和相邻路由器交换信息。

  2. 路由器交换的信息是自己的路由表

  3. 30秒交换一次路由信息,然后路由器根据新信息更新路由表。若超过180秒没收到邻居路由器的通告,则判定邻居没了,并更新自己路由表。

RIP允许一条路径最多只有15跳,16为不可达

RIP 不支持子网掩码的RIP广播(RIP2支持)

RIP选择东西不一定是时间最短的,但是一定是路由最少的

OSPF 链路状态路由算法

  1. 主动测试所有邻居的状态

  2. 定期将链路状态传播给所有其他节点

链路发送改变怎么办? 求一个单源最短路 dijkstra算法?spf算法,都可

特征:

  1. 向所有节点发送信息,采取泛洪法(dfs一遍)

  2. 发送的信息是跟这个路由器相邻的所有路由器的链路状态[度量:费用、距离、时延、带宽](带权最短路)

  3. 只有发生改变才会更新

OSPF五种分组类型:

问候分组,用来发现和维持邻居可达

数据描述分组,发送摘要信息→链路状态

链路状态请求分组,请求发送链路状态

链路状态更新分组,泛洪法更新链路状态

链路状态确认分组,链路分组更新的确认

区别?

距离向量算法,每个节点只与它邻居交流

链路状态算法,每个节点改变时通过与他邻居交流广播出去,更新相关路径的点,不会遇见环,因为它只告诉它们和它直接的直连的费用

BGP

每一个自治系统挑一个发言人出来,要交换路由信息,那么两个发言人要建立TCP连接

4种报文

打开报文

更新报文

保持连接(keep live)报文

通知报文

层次路由

IGP(内部网关协议)EGP(外部网关协议)
RIP(应用层协议,在传输层采用UDP,端口520)BGP(采用TCP)
OSPF(网络层协议,在网络层采用IP报文,首部协议地址89)

image_CHR1Ax_a-9.png

IP

结构:→

image_1S4MJSzfCQ.png

谁重要?=> 版本,首部长度,总长度,标识(分片用),标志(MF(1还有分片)(0最后分片)DF为0时允许分片),片偏移,生存时间(TTL),协议(TCP?UDP?)那几个值

image_zsLhaG5AXs.png

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组播尽最大可能的交付,不可靠,组播地址只能用于目的地址,不能用于源地址

网络层设备

路由器→ 连接不同的网络并完成路由转发

路由器是网络层设备,实现了网络模型中的下三层,物理层、数据链路层和网络层