目录
网络层
- 网络层负责:数据路由(决定数据在网络中的路径)
- IP协议使得复杂的实际网络变成一个虚拟互联的网络
- IP协议使得网络层可以屏蔽底层细节,而专注网络层的数据转发
- IP协议解决了在虚拟网络中数据包传输路径的问题
1、IP协议
MAC地址是不可变的,每个设备独有
IP地址是可变的,不同网络环境下会不一样
- IP层数据最大65536,大于链路层以太网MTU,链路层会将大数据包分帧发送;
- 标志和片偏移就是为了分片的标志或者不允许分片
2、逐跳 hop-by-hop
路由表的简介
类似MAC地址表;路由表中存的是目的IP地址与下一跳IP地址的对应关系;
计算机、路由器都拥有路由表;
IP协议的转发流程
- 数据帧每一跳的MAC地址都在变化
- IP数据报每一跳的IP地址始终不变
3、ARP协议、RARP 协议
- 地址解析协议(Address Resolution Protocol)逆地址解析协议(Reverse Address Resolution Protocol)
- 解决不知道MAC地址的情况;将32位IP地址转换为48位MAC地址
- 重要的表:ARP缓存表;映射了IP地址与MAC地址;且有一段时间的期限;
arp -a 可以检查主机中ARP缓存表
- 前面的IP协议转发中,告知MAC地址是什么,其实都经过了ARP缓存表来查询得到的;
4、IP分类、子网划分
- 根据开头,可以知道IP地址是几类地址;A类第一个为0;
- IP分类是为了更好的规划IP分配问题;
- 子网划分,为了解决地址空间的浪费 ;
- 子网划分,在网络号后加了一个子网号;用于扩充IP分类能力;可以将IP分的更细;减少地址空间浪费(内部浪费);
- 提出子网掩码,用于快速识别IP属于哪个网络号;
无分类编制CIDR
5、网络地址转换NAT技术
- 为了解决IP地址不够用的问题; (Network Address Translation,网络地址转换)
- NAT 用于多个主机通过一个公有IP访问互联网 ;
- 增加了网络通信的复杂度;但是减缓了IP地址的消耗;
分类 | 内网地址 |
---|---|
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 |
6、ICMP协议
- ICMP(Internet Control Message Protocol)Internet控制报文协议
- 用于报告错误信息、异常情况;
- 主要包含差错报告报文、询问报文;
- ping、Traceroute 都是ICMP的应用
ping 127.0.0.1 检查本地网络协议正常与否
ping 网关地址 检查本机到路由器的通信
ping 远端地址 检查本机到ISP之间网络的通信
Traceroute 可以探测IP数据报在网络中走过的路径;
- 因为IP数据报中TTL,是每经过一个设备就减一;当其成为0的时候,网络设备就会丢弃这个报文;并发送一个ICMP终点不可达差错报文;
- Traceroute 就是利用这个机制,第一次发ttl为1 的包,第二次发ttl为2的包,通过每次的返回,记录整个路径;
7、网络层的路由概述
简单路由过程
- 路由表的来源
- 路由算法其实就是图论的算法
自治系统 AS
自治系统内部路由协议 (内部网关协议 RIP 、OSPF)
自治系统外部路由协议 (外部网关协议 BGP)
各个系统内部使用内部网关协议,对外使用外部网关协议
1、RIP协议
- 距离矢量(DV)算法
- 每个节点使用两个向量Di、 Si:表示到当前节点到其他节点的距离、当前节点到别的节点的下一节点是什么(就是通过哪个节点到的其他节点);
- 算法过程:每个节点与相邻节点交换向量信息;每个节点根据交换的信息更新自己节点信息;(D更新为更小的距离,S更新最小距离经过的第一个节点)
- RIP (routing informatino protocol)路由信息 协议
使用DV算法的一种路由协议
- 将网络跳数,作为DV算法的距离 ;
- 每隔30S 交换一次路由信息;及DV向量;
- 默认将跳数>15作为不可达路由
过程:
- 路由器初始化路由信息(DV向量)
- 对相邻路由器X发来的信息,将下跳地址设置为X,将其地址都+1(认为从这个路由器跳)
- 将信息中新的路由插入到路由表中;
- 更新路由信息:对于下一跳为X的,更新为修改后的信息;(即从X跳的距离可能更短,所以暂存)
- 更新路由信息:对于相同目的地的,取新信息和旧信息中较小的;
- 如果三分钟没有收到相邻路由信息,则将相邻路由设为不可达(16跳)
RIP优缺点:
- 实现简单、开销小;
- 故障信息传递慢;使得更新收敛时间过长;限制了网络的规模;(有一个点不可达了,其他点以为可以通过别的点到达,一点一点增加跳数,直到超过15,才判断不可达)
- 因为他随便相信了隔壁节点;
- 视野不够;只能看到临近路由器;
2、OSPF协议
- 是从一个顶点到其余各顶点的最短路径算法。
- 解决的是有权图中最短路径问题。
链路状态(LS)协议:
- 与RIP只与相邻路由器交换信息不同,LS向所有路由器发送消息(一传十,十传百);
- 消息描述该路由器与相邻路由器的链路状态;(距离、时延、带宽等) ;
- 只有链路状态发生变化时,才发送更新消息;(RIP是30秒交换一次)
OSPF协议过程:
(Open Shortest Path First开放式最短路径优先);核心是Dijksta算法;
OSPF协议是LS 协议的一种实现;
向所有路由器发送消息,可以获得网络中所有信息,得到网络的完整拓扑(链路状态数据库,全网一致);
使得OSPF协议更加客观、更加先进;
变化时才发送消息:减少了数据交换、更快收敛;
- OSPF协议的五种消息类型
- 问候消息:验证与其他路由器的可达性;
- 链路状态数据库描述信息:向别的路由器发送自己的链路状态消息;
- 链路状态请求信息:向隔壁路由器请求链路状态数据库;
- 链路状态更新消息:
- 链路状态确认消息:对更新消息的确认;
过程:
- 路由器接入网络
- 路由器向邻居发出问候消息
- 与邻居交流链路状态数据库
- 广播和更新未知路由
3、BGP协议
(Border Gateway Protocol,边界网关协议)运行在自治系统AS之间的一种协议;
why?
- 因为互联网规模太大,不能处处使用链路状态协议LS;
- AS内部使用不同的路由协议,有RIP 和OSPF;
- AS之间需要考虑其他因素:政治、安全;
- BGP协议只能找到一条到达目的地比较好的路由
BGP 发言人(speaker):
位于AS边界;与不同AS交流;AS之间通过BGP发言人交流信息;
BGP不关心内部网络拓扑;
BGP 发言人可以认为配置策略;