网络层的重要概念
网络层介于传输层和数据链路层之间,其主要作用是实现两个网络系统之间的数据透明传送,具体包括路由选择,拥塞控制和网际互连等。
网络层的两个层面(路由器之间传送的信息有两类)
(1)转发源主机和目的主机之间所传送的数据
把源主机所发送的分组,像接力赛跑一样从一个路由器转发到另一个路由器,最后把分组传送到目的主机。
(2)传送路由信息
根据路由选择协议所使用的路由算法,彼此不断地交换路由信息分组,目的是为了在路由器中创建路由表,并由此导出为转发分组而用的转发表。这一类信息的传送是为第一类数据的传送服务的。
网际协议IP
网际协议IP是TCP/IP体系中两个最主要的协议之一,主要为IPV4,较新版本IPV6
与协议IP配套使用的还有三个协议:
地址解析协议ARP
网际控制报文协议ICMP
网际组管理协议IGMP
从一般的概念来讲,将网络互连起来要使用一些中间设备。根据中间设备所在的层次,可以有一下四种不同的中间设备:
(1)物理层使用的中间设备叫做转发器(repeater),比如中继器、集线器(Hub);
(2)数据链路层使用的中间设备叫做网桥或桥接器(bridge);
(3)网络层使用的中间设备叫做路由器(router);
(4)在网络层以上使用的中间设备叫做网关(geteway)。用网关连接两个不兼容的系统需要在高层进行协议的转换。
TCP/IP的虚拟互连方式
所谓虚拟互连网络,它的意思就是互连起来的各种物理网络的异构性本来是客观存在的,但是我们利用IP协议就可以把这些性能各异的网络在网络层看起来好像是一个统一的网络。
这种使用IP协议的虚拟互连网络可简称为IP网,使用IP网通信的好处是:当IP网上的主机进行通信时,就好像在一个单个网络上通信一样,他们看不见互连的各网络的具体异构细节(如具体的编址方案、路由选择协议、等等)
互联网的源主机H1把一个IP数据报发送给目的主机H2
根据分组交换分组转发概念,主机H1先要查找自己的路由表,看目的主机是否就在本网络上。如是,则不需要经过路由器而是直接交付,任务就完成了。如不是,则必须把IP数据报发送给某个路由器(图中R1)。R1在查找了自己的路由表后,知道应把数据报转发给R2进行交接交付,这样一直转发下去,最后由路由器R5知道自己是和H2连接在一个网络上,不需要再使用别的路由器转发了,于是就把数据报直接交付到目的主机H2。
这里强调的是:互连网可以由多个异构网络组成。
IP地址
IP作用于OSI参考模型中的网络层,在终端通信中作为唯一标识,便于确定数据的传递目标。
IP地址分为:IPv4 、IPv6
大众熟知且流行的IPv4是用点分四组十进制的表示方法展示的
IPv4是32位的。而IPv6的位数就比较大了,是128位的,长度是IPv4的4倍,并且其表示方式是分块的八组四个十六进制数
IP是作为终端的唯一表示,因此只有当保证每个IP都不同时,才能保证IP的唯一性。其中,IPv4地址的长度为32位,因此就有 2^32 种可能的地址,那么同理,IPv6地址的长度为128位,因此就有 2^128 种可能的地址。
这些地址就是作为数据包发送的目的地址,当然每个地址都会有它们各自的含义,例如单播 、组播 、广播等
-
单播可以理解为一台主机发送单一的数据包给另一台主机;
-
组播可以理解为一台主机发送单一的数据包给多台主机;
-
广播可以理解为一个节点向其它所有的节点发送数据包;
IPv4种大多的数的地址都为单播
在识别IP地址时,就是先通过识别IP地址中的网络号来确认目的地址处于哪个网络区域,然后再识别主机号,来确认这个网络中特定的主机。
将IPv4地址用二进制表示,一段地址的网络号和主机号分类可以分为5类:A类 、B类 、C类 、D类 、E类,
A类 :网络号共8位,首位固定为 0 ,接下来连续的7位可以自由设定;主机号为24位。 B类 :网络号共16位,前两位固定为1 0 ,接下来连续的14位可以自由设定,主机号为16位。 C类 :网络号共24位,前三位固定为1 1 0 ,接下来连续的21位可以自由设定,主机号为8位。 D类 :为组播地址,共32位,前四位固定 1 1 1 0 。 E类 :为保留地址,共32位,前四位2固定为 1 1 1 1 。
A类地址网络号共8位,其中首位固定为 0,那么还有7位可以自由设定,那么就共有 2^7个网络数。 B类地址网络号共16位,其中首位固定为 1 0,那么还有14位可以自由设定,那么就共有 2^14个网络数。
C类地址网络号共24位,其中首位固定为 1 1 0,那么还有21位可以自由设定,那么就共有 2^21个网络数。
A类地址的网络号字段占1个字节,只有7位可供使用(该字段的第一位已固定为0,
网络号为全0的IP地址有特殊的用途,它表示“本网络”;
网络号为127(即01111111)保留作为本地软件环回测试本主机的进程之间的通信之用,若主机发送一个目的地址为环回地址(即127.0.0.1)的IP数据报,则本主机的协议软件就处理数据报中的数据,而不会把数据报发送到任何网络。因此,A类地址可指派的网络号有126个。
类 | 地址范围 | 最大网络数 | 最大主机数 |
---|---|---|---|
A | 1.0.0.0~126.255.255.255 | 2^7 | 2^24-2 = 16777214 |
B | 128.0.0.0~191.255.255.255 | 2^14 - 1 | 2^16-2 = 65534 |
C | 192.0.0.0~223.255.255.255 | 2^21 - 1 | 2^8-2 = 254 |
无分类编址CIDR
在IP地址即将枯竭时,一种新的无分类编址方法问世。
(1)网络前缀
CIDR把网络号改称为网络前缀,用来指明网络,剩下的后面部分仍然是主机号,用来指明主机
网络前缀n不是固定的数。
CIDR使用 “斜线计法” ,即IP地址后面是网络前缀所占的位数。
(2)地址块
CIDR把网络前缀都相同的所有连续的IP地址组成为一个“CIDR地址块”,一个CIDR地址块包含的IP地址数目,取决于网络前缀的位数,我们只要知道CIDR地址块中的任何一个地址,就可以知道这个地址块的起始地址(即最小地址)和最大地址,以及地址块中的地址数。
IP数据报的格式
IP协议提供不可靠无连接的数据报传输服务,IP层提供的服务是通过IP层对数据报的封装与拆封来实现的。IP数据报的格式分为报头区和数据区两大部分,其中报头区是为了正确传输高层数据而加的各种控制信息,数据区包括高层协议需要传输的数据。
IP数据报首部的固定部分中的各字段
(1)版本
占4位,指IP协议的版本。通信双方使用的IP协议版本必须一致。日前广泛使用的 IP协议版本号为 4 (即 IPv4)。IPv6目前还处于起步阶段。
(2)报头长度
占4位,该字段的单位是32位字(1个32位字长是4字节),因此当IP报头长度为1111时,报头长度就达到最大值60字节。当IP分组的首部长度不是4字节 的整数倍时,就需要对填充域加以填充。最常用的报头长度为20位(报头长度值为0101),这时不使用任何选项。
(3)区分服务(服务类型):
占8位,在一般情况下都不使用这个字段。
(4)总长度
指报头和数据之和的长度,单位是字节。总长度字段为16位,故IP数据报的最大长度为65535。 每一种数据链路层都有其自己的帧格式,其中包括帧格 式中的数据字段的最大长度,这称为最大传送单元MTU。当IP数据报封装成链路层的帧时,此数据报的总长度不能超过对应MTU的值。若数据报长度超过对 MTU的值,就将数据报进行分片处理,此时数据报首部中的“总长度“字段是指分片后的每一个分片的报头长度和数据长度之和。
(5)标识
占16位。IP软件在存储器中维持一个计数器,每产生一个数据报,计数器就加1,并赋给标识字段。当数据报进行分片处理后,每个分片的标识值都与原数 据报的标识值相同,则在接收端具有相同标识值的分片就能最终正确的重装成为原来的数据报。
(6)标志
占3位,但目前只有两位有意义。 最低位记为MF。MF=1即表示后面”还有分片“的数据包。MF=0表示这已是若干数据包片中的最后一个。 中间位记为DF,意思是”不能分片“。只有当DF=0时才允许分片。
(7)片偏移
占13位。表示每个数据报的分片在原数据报中的相对位置。片偏移以8个字节为偏移单位,即每个分片的长度一定是8字节的整数倍。