Menu Close

网络层的分类与结构

网络层也称为IP层,在TCP/IP协议中为第三层,主要目的是在互联网中对目的主机的寻址。IP层结构比较完善,因此除了路由外还有许多其它的应用。下面就IP层的分类及结构进行介绍。

1. IP层分类

IP层按照IP地址的长短可以分为IPV4和IP6两类。IPv4的IP地址是由4个字节组成,而IPv6的IP 地址是由16个字节组成。这两种网络层的协议不仅IP地址长度不同,协议结构也有差别,因此后续篇幅将分开对IPv4和IPv6的组成、结构和应用分开介绍。

  • IPv4相关的内容

    • IPv4的表示方法

IPv4总共32位2进制数(4个字节),为了记忆与使用方便,IPv4以4个十进制数的方式表示,中间以圆点“.“分割:如192.168.1.199,实际上每个分段都是8位2进制数或16进制数。

    • IPv4地址的分类

总共分为A,B,C,D四类。以网络ID(Net-ID)与主机ID(Host-ID)表示,如图1所示。网络ID用来标识一个局域网,主机ID用于标识该局域网中的某台主机。

      • A类地址

第一个bit 为零,Net-ID由第一个字节表示,Net-ID实际有效位数只有7位,因此Net-ID的范围为0-127。因此常见0.x.x.x到 127.x.x.x等都是A类地址。A类地址的网络ID最多127个,主机是24-bit,因此主机可以多达1600万个。

      • B类地址

B类地址的第一个bit为1,第二个bit为0。网络ID(Net-ID)总共16个bit,其中只有14个bits 可以使用,因次表达范围128.0到191.255总共16384个。主机ID(HOST-ID)16个bits ,因此可以容纳65536台主机。

      • C类地址

C类地址的前三个bits为110,Net-ID总共24个bits,其中只有21个bits 可以使用,因次C类地址网络范围192.0到223.255总共可有400多万个网络。主机ID只剩8bits,因次主机范围为0-255,即最多可有256台主机。

      • D类地址

D类地址的前四个bits为1110。D类地址用于是多播地址,关于多播(组播)的,后面会有专门的篇幅介绍。

      • E类地址:

E类地址前4bits为1111,为保留地址。目前没有被使用。

IMG_256

图1 IPv4 四类地址

  • 子网掩码(subnet mask)

子网掩码又叫网络掩码、地址掩码、子网络遮罩等,它是一种用来指明一个IP地址的哪些位标识的是主机所在的子网,以及哪些位标识的是主机的位掩码。子网掩码不能单独存在,它必须结合IP地址一起使用。子网掩码只有一个作用,就是将某个IP地址划分成网络地址和主机地址两部分。

    • 子网掩码的作用:

子网掩码是一个32位数据,是与IP地址结合使用的一种技术。它的主要有两个作用,具体描述如下:

(1)用于屏蔽IP地址的一部分以区别网络标识还是主机标识,并说明该IP地址是在局域网上,还是在远程网上。通过计算机的子网掩码判断两台计算机是否属于同一网段的方法是,将计算机十进制的IP地址和子网掩码转换为二进制的形式,然后进行二进制“与”(AND)计算(全1则得1,不全1则得0),如果得出的结果是相同的,那么这两台计算机就属于同一网段。

(2)用于将一个大的IP网络划分为若干小的子网络。使用子网是为了减少IP的浪费。因为随着互联网的发展,越来越多的网络产生,有的网络多则几百台,有的只有区区几台,这样就浪费了很多IP地址,所以要划分子网。使用子网可以提高网络应用的效率。

    • 子网掩码分类:

子网掩码一共分为两类。第一类是缺省(自动生成)子网掩码,一类是自定义子网掩码。

      • 缺省(自动生成)子网掩码

A类网络缺省子网掩码:255.0.0.0,B类网络缺省子网掩码:255.255.0.0,C类网络缺省子网掩码:255.255.255.0 。

      • 自定义子网掩码

自定义子网掩码是将一个网络划分为几个子网,需要每一段使用不同的网络号或子网号,实际上我们可以认为是将主机号分为两个部分:子网号、子网主机号。形式如下:

(1)未做子网划分的IP地址:网络号+主机号

(2)做子网划分后的IP地址:网络号+子网号+子网主机号。

举例说明子网掩码255.255.255.128的作用,

子网掩码255.255.255.128,网络号为255.255.255,子网号为128, 子网主机号为0-127,合在一起表示网络IP地址范围为255.255.255.128–255.255.255.255。

          网络、子网及子网掩码常用的表示方法是在网络IP地址后面+/数字的方式,”/”前面表示网络的IP地址(或主机IP地址),“/”后面的数字表示子网掩码中1的个数。如:

192.168.0.0/24”就表示,这个网段的IP地址从192.168.0.1开始,到192.168.0.254结束(192.168.0.0和192.168.0.255有特殊含义,不能用作IP地址);子网掩码是255.255.255.0。

  • 实验网段(也就是常说的内网)

RFC(Request for Comments) 1918为私有网络预留出了三个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

上述三个范围内的地址不会在因特网上被分配,因此可以不必向ISP(Internet Service Provider,互联网服务提供商)或注册中心申请而在公司或企业内部自由使用。因此这三个网段被称为内网(内部网络)或私网(私有网络)。

NAT(Network AddressTranslate)最初的设计目的是用于实现私有网络访问公共网络的功能,后来扩展到实现任意两个网络间进行访问时的地址转换应用,本文中将这两个网络分别称为内部网络(内网)和外部网络(外网),通常私网为内部网络,公网为外部网络。NAT技术在后续章节中会详解。

  • IP的报文格式

IP报文格式如图2所示,IP v4报文字段详解见表1.

%title插图%num

图2  IP v4报文结构

表1

字段(segment) 长度(length) 描述(Description) 缺省/常用值
版本(version) 4-bit IP版本号 IPv4/IPv6 4/6
首部长度(IHL) 4-bit IPv4的首部长度(按32bit计量),如图1中,如果没有可选字段,则头部长度为5个32-bit 5
区分服务(TOS) 8-bit 使用TOS(type of service)可以提供更好的服务,

不过在真正互联网数据包中,TOS一般很少使用 ,因此缺省值为0。

0
总长度

(TL)

16-bit 总长度是IP首部与数据之和的长度,按字节计算。因此IP包的最大长度可以达到65536个字节。
标识(identifier) 16-bit IPv4 在软件中维持一个计数器,每发送一个数据包计数器+1,初始值可以为随机数。
标志 3-bit 只有最右边两位有效,最右边位为‘0’表示后面没有分片,‘1’表示后面还有分片数据,中间位为‘1’表示不能分片,‘0’表示可以分片,最左边的一位没有定义,默认为0。 000/001/010
片偏移 13-bit 分片的偏移量,初始值为0,后续为每片的累计长度,按字节计算 0
生存时间(TTL) 8-bit 记录多少跳,每跳(hop)一次减1,当TTL等于0时,该IP包就被路由器丢弃,并通过ICMP将信息发送给发送者。 64/128/255
上层协议类型 8-bit TCP=6,UDP=17(0x11),ICMP=1,IGMP=2等
首部校验和 16-bit 发送者提供16位头部checksum计算值,接收者校验(包含路由器)
源地址 32-bit 源主机IP地址
目的地址 32-bit 目的主机IP地址
可选项(Optional) 可变 自定义,通常会用来排错,测量,安全等,如有选项数据,应32bit对齐,并在首部长度指出。由于头部长度标识只有4bit, 因此可选字段最多可能10个32-bit。 0

2. IPv6的组成及表示方法:

由128位二进制数据组成,其中每16位以“:”分割,如:fd00:bc4d:fbcb:0a72:f98f:b46f:710e:df2f。如果16位16进制数最左边开始为0,0可以省略不写。如果在“:”分割序列中,前面的16个bits都为0,则0可以省略不写,如:

fd00:bc4d:fbcb:0a72:f98f:b46f:710e:df2f–>fd00:bc4d:fbcb:a72:f98f:b46f:710e:df2f

2001:0db8:0000:0000:0000:ff00:0042:8329 -> 2001:0db8:0:0:0:ff00:0042:8329->2001:db8::ff00:42:8329(在不引起混淆的前提下)

回环地址:0000:0000:0000:0000:0000:0000:0000:0001 –> ::1

IPv6的报文字段如表3所示,

表3

0         3

4            11 12             15 16            23 24                    31
Version Traffic class                         flow label
Payload  length

Next header

Hop limit
Source  address(128-bit)
Destination address(128-bit)
Extension Headers

 

IPv6报文格式

(1)版本号:与IPv4一样,指定IPv6 还是IPv4

(2)区分服务:区分数据包的服务类别,与IPv4的同名字段一样(TOS)

(3)流标签:对一些要求低延迟的连接建立一种伪连接,随机填充该字段为某个值(0~220)。当一个流标签字段非0的数据包出现时。所有的路由器都在自己的内部表中查找该流标签的值,看它是否要求那一种特殊待遇(比如尽快被发送)。

(4)有效载荷长度:数据载荷的长度,不包含头部。

(5)下一个头:知名了当前头之后还有那种扩展头。指定上层的传输类型。

(6)跳数限制:与IPv4的TTL类似。

(7)原地址和目的地址:各16字节的源和目的IP地址。

(8)IPv6扩展报文头(Extension Headers),有关Extension Headers部分将在IPv6章节中讲解。

后续章节中将继续介绍IP层的应用。

 

Posted in FPGA, FPGA, 教材与教案, 文章, 资料区

发表评论

相关链接