一、核心考点总结
核心一:网络层功能
网络层向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务,数据报(或IP数据报)就是分组,其主要功能是路由选择、分组转发和子网划分。
核心二:IP地址结构
基本分类IP地址规定A类、B类和C类地址的网络号字段(在图4-38中这个字段是灰色的)分别为1个、2个和3个字节长,而在网络号字段的最前面有3位的类别位,其数值分别规定为0、10和110,并作为单播地址使用。同时规定D类地址的类别位是1110,作为组播地址使用,E类地址的类别位是1111,作为科研地址使用。
图4-38 IP地址结构
由于两级IP地址不够灵活,于是在IP地址中又增加了一个“子网号”字段,使两级IP地址变成三级IP地址,这种做法称为划分子网。三级IP地址的结构如下:IP地址={<网络号>,<子网号>,<主机号>}。提供子网掩码是一个与IP地址相对应的长32bit的二进制串,它由一串1和跟随的一串0组成。其中,1对应于IP地址中的网络号及子网号,而0对应于主机号。计算机只需将IP地址和其对应的子网掩码逐位相“与”(逻辑AND运算),就可得出相应子网的网络地址。
无分类域间路由选择(CIDR)是在变长子网掩码的基础上提出的一种消除传统A类、B类、C类网络划分,并实现路由聚合的一种IP地址的划分方法。将网络前缀都相同的连续的IP地址组成“CIDR地址块”。一个CIDR地址块可以表示很多地址,这种地址的聚合称为路由聚合,又称为构成超网。
最长前缀匹配:使用CIDR时,路由表中的每个项目由“网络前缀”和“下一跳地址”组成。在查找路由表时可能会得到不止一个匹配结果。应当从匹配结果中选择具有最长网络前缀的路由,因为网络前缀越长,其地址块就越小,路由就越具体。
核心三:IP首部格式
IP协议把从传输层收到的数据添加IP首部之后,得到IP数据报,一个IP数据报由首部和数据两部分组成(图4-39)。首部的前一部分是固定长度,共20字节,是所有IP数据报必须具有的。
图4-39 IP数据报格式
(1)版本:指IP协议的版本,目前广泛使用的版本号为4。
(2)首部长度:占4位。以32位为单位,最大值为60字节(15×4字节)。最常用的首部长度是20字节,此时不使用任何选项(可选字段)。
(3)总长度:占16位,指首部和数据之和的长度,单位为字节,因此数据报的最大长度为216=65536字节。以太网帧的最大传输单元(MTU)为1500字节,因此当一个IP数据报封装成帧时,数据报的总长度(首部加数据)一定不能超过数据链路层的MTU值。
(4)标识:占16位,它是一个计数器,每产生一个数据报就加1,并赋值给标识字段。但它并不是“序号”(因为IP是无连接服务)。当一个数据报长度超过网络的MTU时,必须分片,此时每个数据报片都复制一次标识号以便能正确重装成原来的数据报。
(5)标志:占3位。标志字段的最低位为MF,MF=1表示后面还有分片;MF=0表示最后一个分片。标志字段中间的一位是DF,只有当DF=0时才允许分片。
(6)片偏移:占13位。它指出较长的分组在分片后,某片在原分组中的相对位置。片偏移以8字节为偏移单位,也即每个分片的长度一定是8字节(64位)的整数倍。
(7)首部校验和:IP数据报的首部校验和只校验分组的首部,而不校验数据部分。
(8)生存时间(TTL):标识分组在网络中的寿命,以确保分组不会永远在网络中循环。路由器在转发分组之前,先把TTL减1。若TTL被减为0,则该分组必须丢弃。
(9)协议:占8位,指出此分组携带的数据是使用何种协议,即分组的数据部分应交给哪个传输层协议,如TCP、UDP等。其中值为6表示TCP,值为17表示UDP。
(10)源地址:占4字节,标识发送方的IP地址。
(11)目的地址:占4字节,标识接收方的IP地址。
核心四:路由选择协议
3个路由协议的特点和应用是考试的重点,现总结如表4-43所示,大家进行重点记忆和掌握。
表4-43 路由选择协议
核心五:网络层的协议族
1.ARP协议
已知一个机器(主机或路由器)的IP地址,向下封装时,需要找出其相应的硬件地址。逆地址解析协议RARP的作用是使只知道自己硬件地址的主机能够通过RARP协议找出其IP地址。
地址解析协议ARP解决这个问题的方法是在主机ARP高速缓存中存放一个从IP地址到硬件地址的映射表,并且这个映射表还经常动态更新(新增或超时删除)。当主机A要向本局域网上的某台主机B发送IP数据报时,就先在其ARP高速缓存中查看有无主机B的IP地址。如有,就在ARP高速缓存中查出其对应的硬件地址,再把这个硬件地址写入MAC帧,然后通过局域网把该MAC帧发往此硬件地址。
也有可能查不到主机B的IP地址,在这种情况下,主机A就自动运行ARP,然后按以下步骤找出主机B的硬件地址。
(1)ARP进程在本局域网上广播发送一个ARP请求分组。这称为ARP广播请求。
(2)在本局域网上的所有主机上运行的ARP进程都收到此ARP请求分组。
(3)如果主机B的IP地址与ARP请求分组中要查询的IP地址一致,就收下这个ARP请求分组,并向主机A发送ARP响应分组,同时在这个ARP响应分组中写入自己的硬件地址。由于其余的所有主机的IP地址都与ARP请求分组中要查询的IP地址不一致,因此都不理睬这个ARP请求分组。这个称为ARP单播响应。
2.ICMP协议
网络层使用ICMP协议来允许主机或路由器报告差错和异常情况。ICMP报文作为IP层数据报的数据部分,加上数据报的首部,组成lP数据报发送出去。
ICMP报文的种类有两种,即ICMP差错报告报文和ICMP询问报文。ICMP差错报告报文用于目标主机或路由器向源主机报告差错和异常情况。共有以下5种类型。
(1)终点不可达。当路由器或主机不能交付数据报时就向源点发送终点不可达报文。
(2)源点抑制。当路由器或主机由于拥塞而丢弃数据报时,就向源点发送源点抑制报文,使源点知道应当把数据报的发送速率放慢。
(3)时间超过。当路由器收到生存时间TTL为零的数据报时,除了丢弃该数据报,还要向源点发送时间超过报文。
(4)参数问题。当路由器或目的主机收到的数据报的首部中个别字段的值不正确时,就丢弃该数据报,并向源点发送参数问题报文。
(5)改变路由(重定向)。路由器把改变路由报文发送给主机,让主机知道下次应将数据报发送给哪个路由器(可通过更好的路由)。
ICMP询问报文有4种类型:回送请求和回答报文、时间戳请求和回答报文、掩码地址请求和回答报文、路由器询问和通告报文,最常用的是前两类。
核心六:IP分组转发流程
1.规定性知识
根据目的网络地址就能确定下一跳路由器,IP数据报一定可以找到目的主机所在目的网络上的路由器(可能要通过多次的间接交付),只有到达最后一个路由器时,才试图向目的主机进行直接交付。
特定主机路由是为特定的目的主机指明一个路由。采用特定主机路由可使网络管理人员能更方便地控制网络和测试网络,同时可在需要考虑某种安全问题时采用这种特定主机路由。网络内的DNS、DHCP、WWW服务器等,都需要配置特定主机路由,其路由表表项是IP/32,也就是32位地址要匹配。
默认路由是对IP数据包中的目的地址找不到存在的路由时,路由器所选择的路由。默认路由的路由表表项是0.0.0.0/0,就是不进行地址匹配。注意,默认路由要放在路由表的最后一项。
2.IP分组转发流程
路由器在和相邻路由器交换路由信息时,必须把自己所在网络(或子网)的子网掩码告诉相邻路由器。路由器的路由表中的每个项目,除了要给出目的网络地址,还必须同时给出该网络的子网掩码。若一个路由器连接在两个子网上,则拥有两个网络地址和两个子网掩码。但在划分子网的情况下,从IP地址中却不能唯一地得出网络地址来,这是因为网络地址取决于网络所采用的子网掩码,但数据报的首部并没有提供子网掩码的信息。因此分组转发的算法也必须做相应的改动。
(1)从收到的分组的首部提取目的IP地址D。
(2)先用各网络的子网掩码和D逐位相“与”,看是否和相应的网络地址匹配。若匹配,则将分组直接交付;否则就间接交付,执行(3)。
(3)若路由表中有目的地址为D的特定主机路由,则将分组传送给指明的下一跳路由器;否则执行(4)。
(4)对路由表中的每行的子网掩码和D逐位相“与”,若其结果与该行的目的网络地址匹配,则将分组传送给该行指明的下一跳路由器;否则执行(5)。
(5)若路由表中有一个默认路由,则将分组传送给路由表中所指明的默认路由器;否则执行(6)。
(6)报告转发分组出错。
核心七:网络互联设备
将网络互相连接起来需要使用一些中间设备。根据中间设备所在的层次,可以有以下4种不同的中间设备:物理层使用的中间设备有中继器或集线器;数据链路层使用的中间设备有网桥或交换机;网络层使用的中间设备有路由器;在网络层以上使用的中间设备有网关。各层设备的冲突域和广播域如表4-44所示。
表4-44 各层设备的冲突域和广播域
注意:在VLAN中,交换机可以隔离广播域,这是特殊情况。
冲突域的解释:连接在同一导线上的所有工作站的集合,或者同一物理网段上所有节点的集合,或者以太网上竞争同一带宽的节点集合。这个域代表了冲突在其中发生并传播的区域,这个区域可以被认为是共享段。在OSI模型中,冲突域被看作第一层的概念,连接同一冲突域的设备有中继器、集线器或其他进行简单复制信号的设备。也就是说,用中继器或集线器连接的所有节点可以被认为是在同一个冲突域内,不会划分冲突域。
广播域的解释:接收同样广播消息的节点的集合,若在该集合中的任何一个节点传输一个广播帧,则所有其他能收到这个帧的节点都被认为是该广播帧的一部分。由于许多设备都极易产生广播,因此如果不维护,就会消耗大量的带宽,降低网络的效率。由于广播域被认为是OSI中的第二层的概念,因此像中继器、交换机等第一层、第二层设备连接的节点被认为都是在同一个广播域。而路由器、第三层交换机则可以划分广播域,即可以连接不同的广播域。