首页 > 代码库 > 【jc2-1】 网络层IP编址

【jc2-1】 网络层IP编址


        网络层位于TCP/IP协议栈第三层。在数据链路层和传输层中间,网络层通过定义一些协议保证了数据包的正确转发。本文简单介绍IP地址分类、合理进行子网地址划分(VLSM ,variable lengthsubnet mask可变长子网掩码)、ARP/RARP协议原理以及路由器工作原理。

 

网络层数据封装

     

wKiom1SO6-KBN5-8AADiH-addCI213.jpg


前面已经学习到,数据链路层有物理地址——MAC地址。MAC地址是全球唯一的。当有数据发送时,源网络设备查询对端设备的MAC地址,然后将数据发送过去。

MAC地址通常存在于一个平面地址空间,没有清晰的地址层次,只适合于本网段主机的通信,另外,MAC地址固化在硬件中,灵活性较差。对于不同网络之间的互连通信,通常使用基于软件实现的网络层地址----IP地址来通信,提供更大的灵活性。IP地址,又称逻辑地址,IP地址在一个网络中是独一无二的。每一台网络设备用IP地址作为唯一的标识。

 

IP地址:

  • IP地址唯一标识一台网络设备,由32个二进制位组成(又称为4个字节);

  • IP地址采用点分十进制格式显示;

  • IP地址分为两部分

    • 网络地址部分

    • 主机地址部分

wKioL1SO7IGCRFJvAAA-lvSMqnw725.jpg主机地址

 

进制转换

       IP地址是一组32为二进制,通常用4个8位二进制数组来表示。二进制中用0和1表示。每8位二进制数对应着一个十进制数。二进制及十进制转换如下图:

      wKiom1SO6-PTWVV4AADsvfwOJFU791.jpg

    wKiom1SO6-TT4GGYAADV6yXsVsY848.jpg

       IP地址的进制转换

              IP地址:192.168.1.11(十进制)

           wKioL1SO7IXy49g-AAIwrZbnpAs709.jpg

  

IP地址分类

      wKiom1SO6-vC33_BAAKrKPG-mG4106.jpg

        最初互联网设计者根据网络规模大小规定了地址类,把IP地址分为A、B、C、D、E五类。

        IP地址的网络部分称为网络地址,网络地址用于唯一地标识一个网段,或者若干网段的聚合,同一网段中的网络设备有同样的网络地址,这就好比同一个学院的学生学号有同样的学院代码开头。IP地址的主机部分称为主机地址,主机地址用于唯一的标识同一网段内的网络设备,这就好比一个学号的唯一标识一个学院内的某个学生。如A类IP地址:10.1.1.1,网络部分地址为10,主机部分地址为1.1.1。

       A类IP地址:

       A类IP地址第一个字节以“0”开始(也就是第一个八位数组,0XXX XXXX,最小值0 0000001[1] ~ 最大值0 1111111[126]),所以,A类地址的第一个字节为1~126之间(0和127为特殊,后面做解释)。

       A类地址范围:1.0.0.0 ~ 126.255.255.255  [第一字节二进制位:0 0000001 ~ 0 1111111]。

       B类IP地址:

       B类IP地址第一个字节以“10”开始(二进制:最小值 10 000000[128] ~ 10 111111[191]),所以,B类地址的第一个字节为128 ~ 191之间。

       B类地址范围:128.0.0.0 ~ 191.255.255.255 [第一字节二进制:10000000 ~ 10 111111 ]。

       C类IP地址:

       C类IP地址第一个字节以“110”开始(二进制:最小值110 00000[192] ~ 110 11111[223]),所以,C类地址的第一个字节为192 ~ 223之间。

       C类地址范围:192.0.0.0 ~ 223.255.255.255 [第一字节二进制:11000000 ~ 110 11111]。

       D类IP地址第一个字节以“1110”,因此,D类地址的第一个字节为224 ~ 239.D类地址通常作为组播地址。

       E类IP地址第一个字节为240 ~ 255之间,保留用于科学研究。

 

特殊IP地址

 wKioL1SO7IyiNlcqAAHcC0CnWWI122.jpg

        网络地址:对于主机部分(IP=网络部分+主机部分)全为“0”的IP地址,称为网络地址,网络地址用来标识一个网段,例如:A类地址1.0.0.0;

        广播地址:对于主机部分全为“1”的IP地址,称为广播地址,广播地址用于标识一个网络的所有主机,例如,1.255.255.255。广播地址用于向本网段的所有节点发送数据包。

 

私有IP地址

       在进行IP地址规划时,通常会在公司内部网络使用私有IP地址。

       私有IP地址是有interNIC预留的各个企业内部网络自由支配的IP地址。使用私有IP地址不能直接访问Internet是因为公网上没有针对私有地址的路由。当访问Internet时,需要利用网络地址转换(NAT,network addresstranslation)技术,把私有IP地址转换为Internet可识别的公有IP地址(这将在后面的课程做介绍)。

       InterNIC预留的私有IP地址:

       A类地址:10.0.0.0 ~ 10.255.255.255

       B类地址:172.16.0.0 ~ 172.31.255.255

       C类地址:192.168.0.0 ~ 192.168.255.255


掩码(masking)

  • 使用掩码区分网络部分和主机部分;

  • 掩码使用与IP地址一样的格式;

  • 掩码的网络部分和子网部分全部都是1,主机部分全都是0.


wKiom1SO6--gKCMJAAD0EnyeXKU107.jpg

        默认情况下(也称为自然掩码),A类网络(1字节网络部分+3字节主机部分)的网络掩码为255.0.0.0,B类网络(2字节网络部分+2字节主机部分)的网络掩码为255.255.0.0,C类网络(3字节网络部分+1字节主机部分)的网络掩码为255.255.255.0.


子网掩码

       有前面掩码介绍可知,一个B类网可容纳65000多个主机在网络内。假设申请B类地址的用户仅仅只需要100个IP地址,那么剩余的地址无法被别人的用户使用,这就造成了极大的浪费。于是需要一种方法将这种网络分为不同的网段。按照各个子网段进行管理。

       网络设备使用子网掩码(subnet masking)决定IP地址中哪部分为网络部分,哪部分为主机部分。子网掩码使用与IP地址一样的格式。子网掩码的网络部分和子网部分全部是1,主机部分全都是0.

       子网掩码的表示方式如下:

      wKioL1SO7YqQAGw_AAG3TpXZXTI752.jpg

图中子网掩码比特数是28,指的是子网掩码是连续的18个1,表示网络为有28为。

子网掩码表示方式:/28 =255.255.255.240两种表示方式是等同的。


例1:网络地址的计算

       IP地址为192.168.1.7/28,该IP地址的网络地址?

         wKioL1SO7Z-RaffbAAHcRZzoT-o116.jpg

主机数的计算

     wKiom1SO7RHSK9sqAADkVOXYkak350.jpg

主机数的计算是通过子网掩码来计算的,首先要看子网掩码中最后有多少位是0.如上图,假设最后有N位为0,那么总的主机数为2n个,可用主机的个数要减去全0的网络地址和全1的广播地址,即2n-2个。


例2:主机数计算

       IP地址为192.168.1.100/28,可用主机数为?

    wKiom1SO7SLDF8jGAAD8vi9UJR4916.jpg  

例中给出一个C类地址,标准子网掩码为8bits的主机位,这8bits中的前4bits也用作子网掩码,则所能容纳的主机总数为2的8-4次方(8为默认C类掩码的主机位数,4为用于子网掩码的位数,也就是找默认C类8bits借位来作为子网位,所以可用主机数为:2的n次方-2,n为主机数)。


例3:子网规划举例

       某公司使用192.168.1.0/24(C类地址)来规划公司内四个部门的IP网段,每个部门主机数50个左右,如何进行合理规划IP子网?

  • 网络地址:192.168.1.0/24中192.168.1为网络位+0(8bits)为主机位;

  • 四个部门就需要划分为四个子网,所以子网位(借位)为2,2^2=4(子网数=2的s次方,s为借位数)。所以四个子网为192.168.1.00000000/26(下划线部分为网络位,最后8bits用二进制表示,十进制:192.168.1.0/26),192.168.1.01000000/26(十进制:192.168.1.64/26),192.168.1.10000000(十进制:192.168.1.128/26),192.168.1.11000000/26(十进制:192.168.1.192/26);

  • 剩余主机位为6,所以可以用主机数=2^6=64>50,所以规划符合要求。

所以,最后四个子网位:

       192.168.1.0/26

       192.168.1.64/26

       192.168.1.128/26

       192.168.1.192/26.


例4:B类子网规划

     wKioL1SO7dWz4NSPAAFhnGvGsF8121.jpg

    wKiom1SO7Uujcx6bAAPT_kclrAA795.jpg

 

变长子网掩码(VLSM)

     

wKioL1SO7gnzYZQuAAGp9j7grDQ406.jpg



把一个网络划分成多个子网,要求每一个子网使用不同的网络标识ID。但是每个子网的主机数不一定相同,而且相差很大,如果我们每个子网都采用固定长度子网掩码,而每个子网上分配的地址数相同,这就造成地址的大量浪费。这时候可以采用变长子网掩码(VLSMVariable Length Subnet Mask)技术,对节点数比较多的子网采用较短的子网掩码,子网掩码较短的地址可表示的网络/子网数较少,而子网可分配的地址较多;节点数比较少的子网采用较长的子网掩码,可表示的逻辑网络/子网数较多,而子网上可分配地址较少。这种方案能节省大量的地址,节省的这些地址可以用于其它子网上。


如上图所示,某公司准备用C类网络地址192.168.1.0进行IP地址的子网规划。这个公司共购置了5台路由器,一台路由器作为企业网的网关路由器接入当地ISP,其它4台路由器连接四个办公点,每个办公点20PC。从上图可以看出,需要划分8个子网,4个办公点各网段需要21IP地址(包括一个路由器接口),与网关路由器相连的四个网段各需要2IP地址,每个网段IP地址数目差异较大,可以采用VLSM技术。四个办公点网段采用子网掩码255.255.255.224,划出3个子网位,共有5个主机位,可以容纳最多25-2=30台主机。对于四个办公点路由器和网关路由器相连网段,划出6个子网位,2个主机位,最多有2个合法IP地址。

无类域间路由(CIDR)

CIDR(classlessinter domain routing)减少了路由表的规模,增强了网络的可扩展性。

 wKiom1SO7WzT6fAIAAEtZ7lN7dQ031.jpg

CIDR突破了传统IP地址分类边界,将路由表中的若干条路由汇聚为一条路由,减少了路由表的规模,提高了路由器的可扩展性。

如上图所示,一个ISP被分配了一些C类网络,198.168.0.0~198.168.255.0。该ISP准备把这些C类网络分配给各个用户群,目前已经分配了三个C类网段给用户。如果没有实施CIDR技术,ISP的路由器的路由表中会有三条下连网段的路由条目,并且会把它通告给Internet上的路由器。通过实施CIDR技术,我们可以在ISP的路由器上把这三条网段198.168.1.0198.168.2.0198.168.3.0汇聚成一条路由198.168.0.0/16。这样ISP路由器只向Internet通告198.168.0.0/16这一条路由,大大减少了路由表的数目。

 

 

             


       


本文出自 “ITlang_Jansion_Goktech” 博客,转载请与作者联系!

【jc2-1】 网络层IP编址