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进制数。

    • IPv4地址的分类:

总共分为A,B,C,D四类。以网络ID(Net-id)与主机ID(Host-id)表示,如图1所示。

      • A类地址:

第一个bit 为零,Net-id由第一个字节表示,因此Net-id的范围为0-127.因此常见10.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可达65536个。

      • C类地址:

C类地址的前三个bits为110,Net-id总共24个bits,其中只有21个bits 可以使用,因此表达范围192.0到223.255总共200万个,主机ID只剩8bits,因此范围为0-255。

      • D类地址:

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

      • E类地址:

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

IMG_256

图1

  • 子网掩码(subnet mask)

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

子网掩码是一个32位数据,是与IP地址结合使用的一种技术。它的主要作用有两个,一是用于屏蔽IP地址的一部分以区别网络标识和主机标识,并说明该IP地址是在局域网上,还是在远程网上。二是用于将一个大的IP网络划分为若干小的子网络。

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

通过计算机的子网掩码判断两台计算机是否属于同一网段的方法是,将计算机十进制的IP地址和子网掩码转换为二进制的形式,然后进行二进制“与”(AND)计算(全1则得1,不全1则得0),如果得出的结果是相同的,那么这两台计算机就属于同一网段。

    • 子网掩码分类:

子网掩码一共分为两类。第一类是缺省(自动生成)子网掩码,一类是自定义子网掩码。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.

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

RFC 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或注册中心申请而在公司或企业内部自由使用。

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

  • IP的报文格式

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

图2  IP v4报文结构

表1

字段 长度 含义 缺省/常用值
版本(version) 4bit IP版本号 IPv4/IPv6 4/6
首部长度(IHL) 4bit IPv4的首部长度(32-bit计算) 5
区分服务(TOS) 8bit 提供更好的服务,一般很少使用 type of service 0
总长度 16bit IP首部与数据之和的总长度,按字节计算
标识(identifier) 16bit IPv4 在软件中维持一个计数器,每发送一个数据包计数器+1,初始值可以为随机数
标志 3bit bit [16: 18],只有bit[17],bit[18]有效,bit[16]必须为0。bit[18] :‘0’表示后面没有分片,‘1’表示后面还有分片数据。bit[17]:为‘1’表示不能分片,‘0’表示可以分片 000/001/010
片偏移 13bit 分片的偏移量,初始值为0,后续为前面所有片的累计长度,按字节计算,以8个字节为计算单位,最大的累计长度是(213 – 1) × 8 = 65528 0
生存时间(TTL) 8bit 记录多少跳,每跳(hop)一次减1,当TTL等于0时,该IP包就被路由器丢弃,并通过ICMP将信息发送给发送者 64/128/255
协议 8bit TCP = 6,UDP = 17(0x11),ICMP = 1,IGMP = 2
首部校验和 16bit 发送者提供16位checksum计算值,接收者校验(包含路由器)
源地址 32bit 源IP地址
目的地址 32bit 目的IP地址
选项 可变 自定义,通常会用来排错,测量,安全等,如有选项数据,应32bit对齐,并在首部长度指出 0

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

由128位二进制数据组成,其中每16位以“:”分割,如:fd00:bc4d:fbcb:0a72:f98f:b46f:710e:df2f

如果在“:”分割序列中,前面的四个bit都为0,则0可以省略不写,如:

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

表3

0         3

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

Next header

Hop limit
Source  address
Destination address

 

IPv6报文格式

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

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

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

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

(5)下一个头(next header):指明了当前包头之后还有哪种扩展头。指定上层的传输类型。

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

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

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

 

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

发表回复

相关链接