参考书:计算机网络自顶向下方法(第6版)(黑皮书)
一些概念
- subnet mask子网掩码:按位与运算,主机号部分全0,网络号部分全1.
网络层
最重要的三个组成:
- IP协议
- 路由协议
- ICMP协议
提供:
- 有限的error control
- 拥塞控制
虚电路和数据报网络
虚电路
VC(virtual circuit),面向连接
- 一条虚电路=源和目的之间的路径+(首部携带)VC号+链路号+路由器中的转发表
- 每台中间路由器必须用一个新的VC号替代每个传输分组的VC 号
数据报
datagram,无连接
- 路由算法:计算端到端的路径
- 转发表:确认输出接口
- 最长前缀匹配
IP
IPv4
报文
切片
fragmentation
- MTU=20B头部+数据
- offset表示数据的偏移(MTU-20),还要除8
- flag置为0表示末端
IPv6
报文
共40字节
- pri是traffic class
- next hdr==next header
compare with IPv4
相同/类似字段:
item | IPv4 | IPv6 |
---|---|---|
指示服务/流量类型 | TOS (type of service) | traffic class |
指示下一层协议(运输层) | protocol | next header |
(路由器)跳数限制 | TTL(time to live) | hop limit |
报文长度 | total datagram length | payload length |
独特点:
- IPv4:fragmentation,option
- IPv6:flow
ICMP
当IP报头中的协议字段值为1时,就说明这是一个ICMP报文。用来传递错误报文信息。
traceroute
Traceroute跟踪路由的原理是通过设置IP数据报的TTL(生存周期)。利用ICMP实现Traceroute - 简书 (jianshu.com)
路由算法
链路状态
在链路状态(LS)算法中,每个节点都有完整地网络拓扑图,也就是完整的链路信息(距离矢量法只知道和相邻路由的),节点向相邻网络广播自己和邻居的信息,每当自己也收到这个信息,就用dijkstra算法来重新计算路由表。
Dijkstra最短路径算法
- p(x)表示最短路径中x的上一个结点
- 最小生成树
- 转发表:下一条链路
OSPF
BGP
距离矢量
距离矢量算法(DV)他会把自己的路由表分享给自己的所有相邻节点,那么这些节点如果发现通过新的路由表自己到其他节点的距离改变了,那么再把自己的更新的路由表发送给自己的周围节点,所以这个过程是迭代的,异步的。
Bellman-Ford
- 从x到y的最短路径=min{x到邻居+邻居到y的最短路径}
- 距离表:
RIP
比较
item | 描述 | 优点 | 缺点 |
---|---|---|---|
LS | 全局计算 | 1.收敛快 | 1.振荡 |
DV | 迭代、分布式 | 1.效率高 | 1.无穷计数 2.环路 |
- RIP是应用层协议
- OSPF是传输层协议
- BGP是应用层协议