zoukankan      html  css  js  c++  java
  • IP地址

    1. IP地址机器表示方法

    整个因特网就是一个单一的、抽象的网络。IP地址就是给因特网上的每一个主机(或路由器)的每一个接口分配一个在全世界范围是唯一的32位的标识符。
    IP地址的编址方法共经过了三个历史阶段。

    1.1 分类的IP地址

    将IP地址划分为若干个固定了,每一类地址都由两个固定长度的字段组成,其中一个字段是网络号,它标志主机(或路由器)所连接到的网络。一个网络号在整个因特网范围内必须是唯一的。第二个字段是主机号,它标志该主机(或路由器)。一个主机号在它前面的网络号所指明的网络范围内必须是唯一的。这种两级的IP地址可以记为:
    IP地址::={<网络号>,<主机号>}
    (1)A类、B类和C类地址的网络号字段分别为1,2,3字节长,而在网络号字段的最前有1~3位的类别位,其数值粉笔规定为0,10和110。
    (2)A类、B类和C类地址的主机号字段粉笔为3个、2个和1个字节长。
    (3)D类地址(前4位时1110)用于多播(一对多通信),E类地址保留为以后用。
    由于已经广泛使用无分类IP地址进行路由选择,A类、B类和C类地址的区别已成为历史。
    IP地址都是32位的二进制代码,为了提高可读性,常常把32位的IP地址中的每8位用其等效的十进制数字表示,并且在这些数字之间加上一个点,这就是点分十进制记法

    IP地址具有以下一些重要特点:
    (1)每一个IP地址都由网络号和主机号两部分组成。
    (2)实际上IP地址是标志一个主机(或路由器)和一条链路的接口。当一个主机同时连接到两个网络上时,该主机就必须同时具有两个相应的IP地址,其网络号必须是不同的。由于一个路由器至少应当连接到两个网络,因此一个路由器至少应当有两个不同的IP地址。
    (3)一个网络是指具有相同网络号的主机的集合,因此,用转发器或王巧连接其阿里的若干个局域网仍为一个网络,因为这些局域网都具有相同的网络号,具有不同网络号的局域网必须使用路由器进行互连。
    (4)在IP地址中,所有分配到网络号的网络都是平等的。

    应当注意到:
    (1)在同一个局域网上的主机或路由器的IP地址中的网络号必须是一样的。
    (2)用网桥(链路层)互连的网段仍然是一个局域网,只能有一个网络号。
    (3)路由器总是具有两个或两个以上的IP地址。即路由器的每个接口都有一个不同网络号的IP地址。
    (4)当两个路由器直接相连时,在连线两端的接口处,可以分配也可以不分配IP地址

    1.2 子网划分

    两级IP地址的缺点:
    (1)IP地址空间的利用率有时很低
    (2)给每一个物理网络分配一个网络号会使路由表变得很大因而使忘了性能变坏
    (3)两级IP地址不够灵活
    划分子网的基本思路:
    (1)一个拥有许多物理网络的单位,可将所属的物理网络划分为若干个子网
    (2)划分子网的方法是从网络的主机号借用若干位作为子网号,当然主机号也就相应减少了同样位数。于是两级IP地址在本单位内部就变为三级IP地址:网络号、子网号和主机号。可以用一下记法:
    {<网络号>,<子网号>,<主机号>}
    (3)凡是从其他网络发送给本单位某个主机的IP数据报,仍然是根据IP数据报的目的网络号找到连接在本单位网络上的路由器。但此路由器在收到IP数据报后,再按目的网络号合子网号找到目的子网,把IP数据阿伯交付给目的主机。
    总之,当没有划分子网时,IP地址是两级结构。划分子网后IP地址变成了三级结构。划分子网只是把IP地址的主机号这部分进行在划分,而不改变IP地址原来的网络号。

    子网掩码
    假定有一个数据包(目的地址是145.13.3.10)已经到达了路由器R,这个路由器如何把它转发到子网145.13.3.0呢?
    路由器R纪要使用子网掩码,它也是32位,由一串1和跟随的一串0组成。子网掩码中的1对应于IP地址中原来的网络号加上子网号,而子网掩码中的0对应于现在的主机号。
    路由器R把子网掩码和收到的数据报的目的IP地址145.13.3.10逐位相“与”,得出了索要找的子网的网络地址145.13.3.0。
    使用子网掩码的好处就是:不管网络有没有划分子网,只要把子网掩码和IP地址进行逐位的“与”运算,就立即得出网络地址来。这样在路由器处理到来的分组时就可采用同样的算法。

    已知IP地址是141.14.72.24,子网掩码是255.255.192.0。试求网络地址。
    解:子网掩码是11111111 11111111 11000000 00000000。掩码的前连个字节都是全1,因此网络地址的前两个字节可谢伟141.14。子网掩码的第四字节是全0,因此网络地址的第四字节是0.仅需对地址中的第三字节进行计算。
    只要把IP地址和子网掩码的第三字节用二进制表示,就可以很容易得出网络地址。
    若子网掩码该为255.255.224.0。试求网络地址。
    用同样的方法,可以得出网络地址141.14.64.0。
    所以同样的IP和不同的子网掩码可以得出相同的网络地址。但是,不同的掩码效果是不同的。

    使用子网时分组的转发
    使用子网划分后,路由表必须包含以下三项内容:目的网络地址、子网掩码、下一跳地址。
    在划分子网的情况下,路由器转发分组的算法如下:
    (1)从收到的数据报的首部提取目的IP地址D
    (2)先判断是否为直接交付。对路由器直接相连的网络逐个进行检查:用个网络的子网掩码和D逐渐位“与”,看结果是否和相应的网络地址匹配。若匹配,则把分组进行直接交付,转发任务结束。否则就是间接交付,执行(3)。
    (3)若路由表中有目的地址为D的特定主机路由,则把数据报传送给路由表中所指明的下一跳路由器;否则,执行(4)
    (4)对路由器表中的每一行(目的网络地址,子网掩码,下一跳地址),用其中的子网掩码和D逐位“与”,其结果为N。若N与该行的目的网络地址匹配,则把数据报传送给该行指明的下一跳路由器;否则,执行(5)。
    (5)若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由器;否则,执行(6)。
    (6)报告转发分组出错。

    1.3 构成超网(无分类编址CIDR)

    网络前缀
    划分子网在一定程度上缓解了因特网在发展中遇到的困难,然而因特网仍然面临三个必须尽早解决的问题,就是:
    (1)B类地址在1992年已分配了近一半,很快就将全部分配完毕。
    (2)因特网主干网上的路由表中的项目数急剧增长(从几千个增长到几万个)
    (3)整个IPv4的地址空间最终将全部耗尽

    在一个划分子网的网络中可同时使用几个不同的子网掩码。使用变长子网掩码VLSM可进一步提高IP地址资源的利用率。在VLSM的基础上又进一步研究出无分类编址方法,它的正式名字是无分类域间路由选择CIDR。
    CIDR最主要的特点有两个:
    (1)CIDR消除了传统的A类,B类和C类地址以及划分子网的概念。
    CIDR把32位的IP地址划分为两个部分,前面的部分是“网络前缀”,用来指明网络,后面的部分则用来指明主机。因此CIDR使IP地址从三级编址又回到两级编址,但这已是无分类的两级编址,它的记法是:
    {<网络前缀>,<主机号>}
    CIDR使用斜线记法,称为CIDR记法,即在IP地址后面加上斜线"/",然后写上网络前缀所占的位数。
    (2)CIDR把网络前缀都相同的连续的IP地址组成一个CIDR地址块,只要知道CIDR地址块中的任何一个地址,就可以知道这个地址块的起始地(即最小地址)和最大地址,以及地址块中的地址数。
    例如,已知IP地址128.14.35.7/20是某CIDR地址块中的一个地址,现在把它写成二进制表示,其中的前20位时忘了前缀,而前缀后面的12位时主机号:
    128.14.35.7/20=10000000 00001110 0010/0011 00000111
    这个地址所在的最小地址和最大地址可以很方便得出:
    最小地址 128.14.32.0 10000000 00001110 0010/0000 00000000
    最大地址 128.14.47.255 10000000 00001110 0010/1111 11111111

  • 相关阅读:
    poj 2676 Suduku (dfs)
    poj 1562 Oil Deposits (dfs)
    poj 2907 Collecting Beepers (dfs)
    poj 1655 Balancing Act (树形dfs)
    poj 3411 Paid Roads (dfs)
    hdu 2896 病毒侵袭 (AC)
    hdu 3065 病毒侵袭持续中 (AC)
    poj 2251 Dungeon Master (bfs)
    java中debug使用
    Swing入门级小项目总结
  • 原文地址:https://www.cnblogs.com/lujiango/p/10643491.html
Copyright © 2011-2022 走看看