网络编程(五)IP协议-下

一、路由控制

路由控制表(Routing Table):保存真正的数据发送目标地址,指明路由器或主机。实现IP通信的路由器或主机必须都持有这样的一张表。

静态路由控制:管理员手动设置。

动态路由控制:路由器交换信息时自动刷新。

1.1 IP地址与路由控制

IP地址的网络地址部分用于进行路由控制!

路由控制表中记录着网络地址与下一步应该发送至路由器的地址。

在发送IP包时,首先要确定IP包首部中的目标地址,再从路由控制表中找到与该地址具有相同网络地址的记录,根据该记录将IP包转发给相应的下一个路由器。如果路由控制表中存在多条相同网络地址的记录,就选择一个最为吻合的网络地址。所谓最为吻合是指相同位数最多的意思(也叫最长匹配。) 。

image.png

当存在多条网络地址符合时,比如目标ip是10.1.2.8,路由表如下所示:

image.png

如上所示,10.1.2.8的符合前两条ip地址的网络地址,此时选取位数最多的匹配,仍然会选择10.1.2.1这个路由器。

1.1.1 默认路由

默认路由是指路由表中任何一个地址都能与之匹配的记录。 当路由表需要包含所有的网络及其子网络时,可以选择默认路由。

默认路由一般标记为0.0.0.0/0或default,在计算机内部和路由协议的发送过程中还是以0.0.0.0/0进行处理。

“/0”表示没有标识IP地址。

1.1.2 主机路由

“IP地址/32”被称为主机路由(Host Route)

整个IP地址的所有位都将参与路由。进行主机路由,意味着要基于主机上网卡上配置的IP地址本身,而不是基于该地址的网络地址部分进行路由。

主机路由多被用于不希望通过网络地址路由的情况。

缺点:会导致路由表膨大,路由负荷增加,进而造成网络性能下降。

1.1.3 还回地址

环回地址是在同一台计算机上的程序之间进行网络通信时所使用的一个默认地址。计算机使用一个特殊的IP地址127.0.0.1作为环回地址。与该地址具有相同意义的是一个叫做localhost的主机名。使用这个IP或主机名时,数据包不会流向网络。

1.2 路由控制表的聚合

通过路由信息的聚合可以有效地减少路由表的条目,路由表的聚合也叫路由汇(Aggregation)。

路由表能够缩小路由表的大小是它最大的优势。路由表越大,管理它所需要的内存和CPU也就越多。并且查找路由表的时间也会越长,导致转发IP数据包的性能下降。如果想要构建大规模、高性能网络,则需要尽可能削减路由表的大小。

举例看下,有三台路由器:A、B和C,其中C为入口路由,后面分别挂着A和B。

其中:

  • A的内部网络有192.168.2.0/25和192.168.2.128/25;

  • B的内部网络是192.168.3.0/26、192.168.3.64/26、192.168.3.128/26、192.168.3.192/26;

  • 有一个目标地址是发送到路由器C,其ip是192.168.3.159;

则其关系如下:

image.png

image.png

上图中路由器C公告的路由表,应该是发送目标地址的路由表,如主机等。

二、IPV6

IPv6(IP version 6)是为了根本解决IPv4地址耗尽的问题而被标准化的网际协议。

IPv4的地址长度为4个8位字节,即32比特。而IPv6的地址长度则是原来的4倍,即128比特,一般写成8个16位字节

2.1 IPV6的特点

1)IP地址的扩大与路由控制表的聚合

IP地址依然适应互联网分层构造。分配与其地址结构相适应的IP地址,尽可能避免路由表膨大。

2)性能提升

包首部长度采用固定的值(40字节),不再采用首部检验码。简化首部结构,减轻路由器负荷。路由器不再做分片处理(通过路径MTU发现只由发送端主机进行分片处理)。

3)支持即插即用功能

即使没有DHCP服务器也可以实现自动分配IP地址。

4)采用认证与加密功能

应对伪造IP地址的网络安全功能以及防止线路窃听的功能(IPsec)。

5)多播、Mobile IP成为扩展功能

多播和Mobile IP被定义为IPv6的扩展功能。由此可以预期,曾在IPv4中难于应用的这两个功能在IPv6中能够顺利使用。

2.2 IPV6地址标记方式

IPv6的IP地址长度为128位。它所能表示的数字高达38位数(2 128 =约3.40×10 38 )。

将128比特IP地址以每16比特为一组,每组用冒号(“:”)隔开进行标记。而且如果出现连续的0时还可以将这些0省略,并用两个冒号(“::”)隔开。但是,一个IP地址中只允许出现一次两个连续的冒号。

IPv6的IP地址标记举例:

  • 二进制表示

    image.png

  • 十六进制表示

    image.png

  • 十六进制省略后

    image.png

2.3 IPV6地址结构

IPv6类似IPv4,也是通过IP地址的前几位标识IP地址的种类。

在不同的网络环境下,使用不同的地址,具体如下图所示:

image.png

image.png

全局单播地址

全局单播地址是指世界上唯一的一个地址。

链路本地单播地址

链路本地单播地址是指在同一个数据链路内唯一的地址。它用于不经过路由器,在同一个链路中的通信。通常接口ID保存64比特版的MAC地址。

唯一本地地址

唯一本地地址是不进行互联网通信时所使用的地址。

2.4 IPV6分段处理

IPv6的分片处理只在作为起点的发送端主机上进行,路由器不参与分片。这也是为了减少路由器的负荷,提高网速。因此,IPv6中的“路径MTU发现”功能必不可少。不过IPv6中最小MTU为1280字节。因此,在嵌入式系统中对于那些有一定系统资源限制(CPU处理能力或内存限制等。) 的设备来说,不需要进行“路径MTU发现”,而是在发送IP包时直接以1280字节为单位分片送出。


关于ip协议的知识就介绍这么多,不在进行深究了,毕竟对于软件开发用于扫盲就够了。

文章内容摘自:图解TCP/IP(第五版)

猜你喜欢

转载自juejin.im/post/7112248465668702239