本文章内容包括:
-
网络层IP协议相关
- IP协议
- 子网划分
- 简单路由过程
-
网络层其他协议
- ARP与RARP
- ICMP协议
-
IP的路由算法
- 路由的概述
- 内部网关路由协议
- 外部网关路由协议
1.网络层的作用
-
决定数据在网络的路径(网络路由)
2. IP协议详解
2.1 虚拟互联网络
A ——> B的路径可以有很多,我们把整个复杂的网络拓扑结构看成一个虚拟互联网络。
- IP协议使得网络层屏蔽底层细节,而专注网络层的数据转发
- IP协议【解决了虚拟网络中数据报传输路径的问题】
2.2 IP协议
-
IP地址长度为32位,常用点分十进制来表示
IP头部的信息
- 第一行:
- 版本(4位):IPv4或者IPv6
- 首部长度(4位):取值为0-15,代表IP首部长度为0-60个字节
- 服务类型(8位):TOS
- 总长度(16位):IP数据报的总长度(IP首部+IP数据)
- 第二行:
- 16位标识、3位标志、13位片偏移
- 第三行:
- TTL(8位):TTL可以防止IP数据报在网络中无限转发。IP数据报每次进过一个设备,TTL减一,TTL等于0时丢弃该IP数据报。
- 协议(8位):表明IP数据携带的数据具体是什么协议(如:TCP、UDP)
- 首部校验和(16位):校验IP首部是否出错
- 第四行:
- 源IP地址
- 第五行:
- 目的IP地址
2.3 路由表
- 路由表:路由表和MAC地址表类似,都是以键值对的形式存在数据链路层和网络层中。
- 路由表中存的是目的IP地址和对应的下一条IP地址。
- 计算机和路由器中,都存有路由表。
2.4 IP协议的转发流程
-
仅从网络层的角度看待转发
-
从网络层和数据链路层看待路由转发
数据【每一跳的MAC地址都在变化】
IP数据报【每一跳的目的IP地址始终不变】
3. ARP协议
- ARP(Address Resolution Protocol):地址解析协议
- 目的是将 【网络层IP32位地址】——>【数据链路层MAC48位地址】
-
ARP缓存表用来存储IP地址和MAC地址映射关系
- 如果没有缓存:ARP会广播一个数据报到除了发送以外的所有端口,并接受到来自其他端口的回应,并记录该地址。
- ARP缓存表中的记录并不是永久的,有一定期限
ARP数据格式
4. 子网划分
- 特殊的主机号
- 主机号全为0表示当前网络段
- 主机号全为1表示广播地址
-
特殊的网络号
4.1 子网掩码
-
子网掩码和IP地址一样都是32位,是由连续的1和连续的0组成的,用来快速判断某个IP地址属于哪个子网号。
-
当一个C类网络需要划分成两个子网时,子网掩码就延伸到第25位,这样一个可分配254个IP地址的C类网络,就被划分成两个可分配127个IP地址的子网。
4.2 无分类编址CIDR
5 网络地址转换NAT技术
- 主要思想是利用端口号,进行内网和外网地址的转换。
-
转换过程在路由器完成。
6 路由表的工作原理
- 下一跳地址怎么来的?
- 下一跳地址唯一的吗?
- 下一跳地址是最佳的吗?
- 路由器那么多,他们怎么协同工作?
6.1 RIP协议
- RIP协议把网络的条数(hop)作为DV算法的距离
- RIP协议【每隔30s】交换一次路由信息
- RIP协议认为【跳数>15】的路由为不可达路由
6.2 RIP协议过程
- 路由器初始化路由信息(两个向量Di和Si)
-
对相邻路由器X发过来的信息,对信息的内容进行修改(下一跳地址设为X,所有距离加1)
i. 检索本地路由,将信息中新的路由插入到路由表中
ii. 检索本地路由,对于下一跳为X的,更新为修改后的信息
iii. 检索本地路由,对比相同目的的距离,如果新信息的距离更小,则更新本地路由表
- 如果3分钟没有收到相邻的路由信息,则把相邻路由设为不可达(16跳)