目录
- IP协议
- IPv4
- IPv4地址
- IPv4数据报
- IPv6
- IPv4和IPv6的区别
- 过渡技术
- IPv4
- 配套协议
- ARP
- ICMP
- 路由转发协议
- 内部网关协议RIP
- 开放最短路径OSPF
- 边界网关协议BGP
一 IP协议
1.1IPv4
IPv4地址
IP 地址的编址方式经历了三个历史阶段:
(1)分类的IP地址
IP地址由两部分组成:网络号和主机号。不同分类具有不同且固定的网络号长度。
IP 地址 ::= {< 网络号 >, < 主机号 >}
(2)划分子网
通过在主机号字段中拿一部分作为子网号,把两级 IP 地址划分为三级 IP 地址。
IP 地址 ::= {< 网络号 >, < 子网号 >, < 主机号 >}
要使用子网,必须配置子网掩码。一个 B 类地址的默认子网掩码为 255.255.0.0,如果 B 类地址的子网号占两个比特,那么子网掩码为 11111111 11111111 11000000 00000000,也就是 255.255.192.0。
注意,外部网络看不到子网的存在。
(3)无分类 / 构成超网
无分类编址 CIDR的目的是按需分配。它消除了传统 A 类、B 类和 C 类地址以及划分子网的概念,使用网络前缀和主机号来对 IP 地址进行编码,IP地址从三级又回到了两级编址。
IP 地址 ::= {< 网络前缀号 >, < 主机号 >}
CIDR 的记法上采用在 IP 地址后面加上网络前缀长度的方法,例如 128.14.35.7/20 表示前 20 位为网络前缀。CIDR 的地址掩码可以继续称为子网掩码,子网掩码首 1 长度为网络前缀的长度。
CIDR把网络前缀都相同的连续的IP地址组成一个“CIDR地址块”,这种地址的聚合常称为路由聚合或构成超网。它使得路由表中的一个项目可以表示原来传统分类地址的很多个(例如上千个)路由。
在路由表中的项目由“网络前缀”和“下一跳地址”组成,在查找时可能会得到不止一个匹配结果,应当采用最长前缀匹配来确定应该匹配哪一个。
Q:子网掩码的作用是什么?
为了方便路由器进行快速转发使用的。
子网掩码就是对网络进行标识,大大减少了路由表的路由项,提高转发速度。
IPv4数据报
1.2 IPv6
IPv4和IPv6的区别
Q:IPv4和IPv6的区别:
- IP地址方面:
- 地址空间增加:v4地址是32位,v6地址是128位;
- 地址表示不同:v4是点分十进制,v6是冒分十六进制;
如:192.168.0.1 和 2001:0db8:85a3:08d3:1319:8a2e:0370:7344
- ip数据报格式方面:
v6的头部字段比v4精简了很多,这样可以使得网络数据传输更快。
过渡技术
- 双协议栈:网络设备,服务器等支持两种协议栈
- 隧道:通过隧道,IPv6分组被作为无结构无意义的纯数据封装在IPv4的数据报中。或者反过来,IPv4分组被作为春数据封装在IPv6的数据报中。
- 地址转换:把IPv4地址转换到IPv6地址
二 配套协议
与 IP 协议配套使用的还有三个协议:
- 地址解析协议 ARP(Address Resolution Protocol)
- 网际控制报文协议 ICMP(Internet Control Message Protocol)
- 网际组管理协议 IGMP(Internet Group Management Protocol)
ARP
网络层实现主机之间的通信,而链路层实现具体每段链路之间的通信。在通信过程中,IP 数据报的源地址和目的地址始终不变,而 MAC 地址随着链路的改变而改变。
ARP 实现由 IP 地址得到 MAC 地址。每个主机都有一个 ARP 高速缓存,里面有本局域网上的各主机和路由器的 IP 地址到 MAC 地址的映射表。
如果主机 A 知道主机 B 的 IP 地址,但是 ARP 高速缓存中没有该 IP 地址到 MAC 地址的映射,此时主机 A 通过广播的方式发送 ARP 请求分组,主机 B 收到该请求后会发送 ARP 响应分组给主机 A 告知其 MAC 地址,随后主机 A 向其高速缓存中写入主机 B 的 IP 地址到 MAC 地址的映射。
ICMP
ICMP 是为了更有效地转发 IP 数据报和提高交付成功的机会。ICMP允许主机或路由器报告差错情况和提供有关异常情况的报告。
它封装在 IP 数据报中,作为其中的数据部分,但是不属于高层协议。
ICMP 报文分为差错报告报文和询问报文。
Ping:Ping 是 ICMP 的一个重要应用,主要用来测试两台主机之间的连通性。
Ping 的原理是通过向目的主机发送 ICMP Echo 请求报文,目的主机收到之后会发送 Echo 回答报文。Ping 会根据时间和成功响应的次数估算出数据包往返时间以及丢包率。
Traceroute:Traceroute 是 ICMP 的另一个应用,用来跟踪一个分组从源点到终点的路径。
三 路由选择协议
路由选择可分为:
- 静态路由选择/非自适应路由选择:由人工配置的路由。其特点是简单和开销较小,但不能及时适应网络状态的变化。适用于很简单的小网络。
- 动态路由选择/自适应路由选择:能较好的适应网络状态的变化,但实现较为复杂,开销也比较大。适用于较复杂的大网络。
互联网采用的路由选择协议主要是自适应的,能随着网络通信量和拓扑结构的变化而自适应地进行调整。
互联网可以划分为许多较小的自治系统 AS,在AS内部和AS之间分别进行路由选择。比如一个大的ISP就是一个AS。这样,互联网就把路由选择协议划分为两大类:
- 自治系统内部的路由选择:RIP 和 OSPF
- 自治系统间的路由选择:BGP
内部网关协议RIP
RIP 是一种基于距离向量的路由选择协议。使用跳数作为距离度量,直接相连的路由器跳数为 1。跳数最多为 15,超过 15 表示不可达。
RIP的特点:(和那些路由器交换信息?交换什么信息?在什么时候交换信息?)
- 仅与相邻路由器交换信息。
- 路由器交换的信息是当前路由器所知道的全部信息,即自己现在的路由表。
- 按固定的时间间隔交换路由信息。
RIP 协议实现简单,开销小。但是 RIP 能使用的最大距离为 15,限制了网络的规模。并且当网络出现故障时,要经过比较长的时间才能将此消息传送到所有路由器。
开放最短路径OSPF
开放最短路径优先 OSPF,基于Dijkstra 提出的最短路径算法 SPF,使用链路状态作为距离度量。
链路状态包括与哪些路由器相连以及链路的度量/代价,代价用来表示费用、距离、时延、带宽等,这些由网络管理人员来决定。
OSPF 具有以下特点:(和那些路由器交换信息?交换什么信息?在什么时候交换信息?)
- 向本自治系统中的所有路由器发送信息,这种方法是洪泛法。
- 发送的信息就是与相邻路由器的链路状态,这只是自己知道的部分信息。
- 只有当链路状态发生变化时,路由器才会发送信息。
所有路由器都具有全网的拓扑结构图,并且是一致的。相比于 RIP,OSPF 的更新过程收敛的很快。
边界网关协议BGP
AS 之间的路由选择很困难,主要是由于:
- 互联网规模很大;
- 各个 AS 内部使用不同的路由选择协议,无法准确定义路径的度量;
- AS 之间的路由选择必须考虑有关的策略,比如政治、安全、经济等问题。
所以BGP 只能寻找一条比较好的路由,而不是最佳路由。
每个 AS 都必须配置 BGP 发言人,AS之间通过在两个相邻 BGP 发言人之间建立 TCP 连接来交换路由信息。
BGP所交换的网络可达行的信息就是要到达某个网络所要经过的一系列AS。
BGP发言人根据所采用的策略,从收到的路由信息中找到到达各自AS的较好的路由。也就是构造连通树形结构。