米葫芦网

一个IP地址扩展方案

热度:7℃ 发布时间:2024-11-17 21:47:31

1简介与背景
Internet社区近年来得到了很好的发展,一系列成熟的协议在网络和传输服务上为用户提供了很大的方便。然而,由于TCP/IP协议的极大成功以及越来越多的网络希望加入Internet,使得可分配地址出现短缺现象。
现今的网络地址空间使用32位的IP地址,其中包括网络地址部分和主机地址部分。这两部分的划分通过五种地址类型来定义:A类地址、B类地址、C类地址、D类地址和E类地址。在这五种地址之中,只有A、B、C类地址可分配给主机。D类地址用于广播地址,只有E类地址被保留。
A类地址的最高位为0,然后是7位的网络地址和24位的主机地址。
B类地址的最高两位为10,然后是14位的网络地址和16位的主机地址。
C类地址的最高三位为110然后是21位的网络地址和8位的主机地址。
D类地址的最高四位为1110。
E类地址的最高四位为1111。
将IP地址空间增加到多于32位即可以解决地址短缺问题,但所付出的代价是:需要制作一个新的IP头定义,而这将与原IP的执行相冲突。象用CLNP这样的基于OSI的解决办法已有人提出,但真正履行可能还需要一段时间。
2IP扩展建议
为了支持此RFC协议中提出的地址扩展问题,为了使必要的变化减小到最少IP头格式不应被修改。相反一个“被遗忘的”的结构可实现地址的扩大化。IP头长度域为4位,这样就答应长度达到15个32位字(这里每个字是4个八位字节)。不带选项的最小IP头为5个字,另外10个字供选项使用。我们可以保留6个字(24个八位字节)作为常规选择,其余的(4个字或16个八位字节)作为新的选择类型,这便指明了一个扩展地址。以下是对此结构的具体介绍。
E类地址的高五位应固定置为11110。它目前的定义是从最高位开始有四个1的地址是E类地址。
定义一个新的F类地址,使其高六位顺序置为111110。新的F类地址放置在用于存放存放源和目的地址的位置,但置那部分地址信息放在IP头的选项部分。说明如下表:
版本
首部长度
服务类型
总长
认证号
标志
碎片偏移
1
1
1
1
1
0
保留
源IP地址第一部分
1
1
1
1
1
0
保留
目标IP地址第一部分
自选号
SADDR编码
地址第二部分长度
源IP地址第二部分
DADDR编码
地址第二部分长度
目标IP地址第二部分
数据
"偏移量"域以字为单位指明了地址的第二部分从包头开始的偏移量。它的目的是避免为寻找地址信息而搜索选项区。为了与这部分中其它选项一致,选项区的地址部分长度以字节为单位。“Lenadr.part”以八位为单位表明了IP地址第二部分的长度。此长度应该进行规定以便IP地址的第二部分结束于一个字的边界。比如说,可能的长度是4,8个字节。建议SADDR和DADDR的编码分别采用新的IP选项编码。
IP地址有是固定的IP地址头中两字节部分加上选项区中定义的地址部分。
假如“Lenadr.Part”部分是数字2,则新的一类地址被指定为F-4类地址(F类地址为4字节长的IP地址)。
假如“Lenadr.Part”部分是数字6,则新的一类地址被指定为F-8类地址(F类地址为8字节长的IP地址)。
每一个F-4和F-8类IP地址均可被分割为一个网络地址部分和一个主机地址部分,从风格上来说这是和当前的IP地址安排相同的。
F-4类地址的子类地址定义如下。虽然这四个字节在表中是连续的,但前两个子节和后两个字节在IP头中是不连续的。
F-4A类地址的最高位置为0,然后是7位的网络地址和24位的主机地址。
0
网络地址
主机地址
F-4B类地址最高两位置为10,然后是14位的网络地址和16位的主机地址。
1
0
网络地址
主机地址
F-4C类地址最高三位置为110,然后是21位的网络地址和8位的主机地址。
1
1
0
网络地址
主机地址
F-4D类地址最高四位置为1110,F-4D类地址是作为广播用的。
1
1
1
0
广播
F-8类地址的子类地址定义如下所示。虽然这8位形式上是连续的,但前两位和后六位在IP头上是不连续的。
F-8A类地址的最高位是0,然后是7位的网络地址和56位的主机地址。
0
网络部分
主机部分
主机部分
F-8B类地址的最高两位是10,然后是14位的网络地址和48位的主机地址。
1
0
网络部分
主机部分
主机部分
F-8C类地址的最高三位是110,然后是21位的网络地址和40位的主机地址。
1
1
0
网络部分
主机部分
主机部分
F-8D类地址的最高四位是1110,然后是28位的网络地址和32位的主机地址。
1
1
1
0
网络部分
主机部分
F-8E类地址的最高五位是11110,然后是35位的网络地址和24位的主机地址。
1
1
1
1
0
网络部分
网络部分
主机部分
F-8F类地址的最高六位是111110,然后是42位的网络地址和16位的主机地址。
1
1
1
1
1
0
网络部分
网络部分
主机部分
F-8G类地址的最高七位是1111110,然后是49位的网络地址和8位的主机地址。
1
1
1
1
1
1
0
网络部分
网络部分
主机部分
3相关问题
假如不支持新F类地址的主机看到该此新F类地址,则此IP包将被忽略掉。那么与此主机之间的通信将无法进行,但是对主机的改动量要比实行一个完全不同的IP头结构或一个不同的协议所需要的改动要少得多。
接收主机必须被修改为包含如下程序:
if(Destination_IP_address&0xFC000000==0xF8000000)
{
/*NewextendedclassFaddress*/
Class_F_Processing(Destination_IP_address);
}
此Class_F_Processing()程序可定义为一个单独的模块。同时将会需要有其它的改变把F类地址处理结果传送给到主IP处理模块,但这种的必要性不会很多。
4安全问题的考虑
安全问题在这里不进行讨论。
作者联系地址
KaranjitSiyan
SiyanConsultingServices
49TaurusRoad,Box960
NorthGlastonbury
Emigrant,Montana59027
Phone:406-333-4491
EMail:72550.1634@compuserve.com



网友评论
评论
发 布

更多软件教程
  • 软件教程推荐
更多+
Greenfoot设置中文的方法

Greenfoot设置中文的方法

Greenfoot是一款简单易用的Java开发环境,该软件界面清爽简约,既可以作为一个开发框使用,也能够作为集成开发环境使用,操作起来十分简单。这款软件支持多种语言,但是默认的语言是英文,因此将该软件下载到电脑上的时候,会发现软件的界面语言是英文版本的,这对于英语基础较差的朋友来说,使用这款软件就会...

07-05

Egret UI Editor修改快捷键的方法

Egret UI Editor修改快捷键的方法

Egret UI Editor是一款开源的2D游戏开发代码编辑软件,其主要功能是针对Egret项目中的Exml皮肤文件进行可视化编辑,功能十分强大。我们在使用这款软件的过程中,可以将一些常用操作设置快捷键,这样就可以简化编程,从而提高代码编辑的工作效率。但是这款软件在日常生活中使用得不多,并且专业性...

07-05

KittenCode新建项目的方法

KittenCode新建项目的方法

KittenCode是一款十分专业的编程软件,该软件给用户提供了可视化的操作界面,支持Python语言的编程开发以及第三方库管理,并且提供了很多实用的工具,功能十分强大。我们在使用这款软件进行编程开发的过程中,最基本、最常做的操作就是新建项目,因此我们很有必要掌握新建项目的方法。但是这款软件的专业性...

07-05

Thonny设置中文的方法

Thonny设置中文的方法

Thonny是一款十分专业的Python编辑软件,该软件界面清爽简单,给用户提供了丰富的编程工具,具备代码补全、语法错误显示等功能,非常的适合新手使用。该软件还支持多种语言,所以在下载这款软件的时候,有时候下载到电脑中的软件是英文版本的,这对于英语基础较差的小伙伴来说,使用这款软件就会变得十分困难,...

07-05

最新软件下载