一、网络层协议
• 网 络 层 经 常 被 称 为 IP 层 。 但 网 络 层 协 议 并 不 只 是 IP 协 议 , 还 包 括 ICMP ( Internet Control Message Protocol)协议、IPX(Internet Packet Exchange)协议等。
二、IP协议
2.1 什么是IP协议
IP地址就像现实中的地址,可以标识网络中的一个节点,数据就是通过它来找到目的地。
2.1.1 IP协议的作用
2.1.2 IP协议的版本
• IP协议有版本之分,分别是IPv4和IPv6。目前,Internet上的IP报文主要都是IPv4报文,但是逐步在向IPv6过渡。
▫ IPv4(Internet Protocol Version 4)协议族是TCP/IP协议族中最为核心的协议族。它工作在TCP/IP协议栈的网络层,该层与OSI参考模型的网络层相对应。
▫ IPv6(Internet Protocol Version 6)是网络层协议的第二代标准协议,也被称为IPng(IP Next Generation)。它是Internet工程任务组IETF(Internet Engineering Task Force)设计的一套规范,是IPv4(Internet Protocol Version 4)的升级版本。
2.2 数据封装

• 应用数据需要经过TCP/IP每一层处理之后才能通过网络传输到目的端,每一层上都使用该
层的协议数据单元PDU(Protocol Data Unit)彼此交换信息。不同层的PDU中包含有不同
的信息,因此PDU在不同层被赋予了不同的名称。
▫ 如上层数据在传输层添加TCP报头后得到的PDU被称为Segment(数据段);数据段
被传递给网络层,网络层添加IP报头得到的PDU被称为Packet(数据包);数据包被
传递到数据链路层,封装数据链路层报头和尾部得到的PDU被称为Frame(数据帧);
最后,帧被转换为比特,通过网络介质传输。
▫ 这种协议栈逐层向下传递数据,并添加报头和报尾的过程称为封装。
2.3 IPv4报文格式(重要)

IP Packet(IP数据包),其包头主要内容如下:
Version:4 bit ,4:表示为ipv4;6:表示ipv6
Header Length:4bit,首部长度,如果不带Option字段,则为20,最长为60;
Type of Service:8 bit,服务类型。只有在QoS差分服务要求时,这个字段才起作用。(数据包的紧急程度有关,可以设置优先级转发排序)
Total Length:16 bit,总长度,整个IP数据包的长度。
Identification: 16bit,标识,分片重组时会用到该字段。(如果发送过来的多个数据包都进行分片,则需要该字段进行标识,区分分片后的数据属于哪个数据包,属于同一个包的的分片,标识相同)
Flags:3bit,标志位。(有三个二进制位,相当于三个开关,仅使用两个,
M(more)F位:=1时,代表一个大包的分片还没传完;
=0时,代表收到的这个分片是最后一个分片;
DF位=1时:代表禁止分片;
=0时,代表允许分片)
Fragment Offset:12bit,片偏移,分片重组时会用到该字段。(标识一个分片在原先数据包的位置)
Time to Live:8bit,生存时间。(数据在两个主机收发的过程中会经过多个路由器,每经过一个路由器,ttl会减1,总数为100,目的是防止网络搭建出现环路,当出现环路时,ttl会减为0,则将ttl为0的数据包丢掉,防止网络出现环路后,造成资源的浪费)
Protocol:8 bit,协议:下一层协议。指出此数据包携带的数据使用何种协议,以便目的主机的IP层将数据都上交给哪个进程处理。(里面可能包的ICMP、IGMP、TCP、UDP这些协议后续会学习)
▪ 常见值:
− 1: ICMP, Internet Control Message;
− 2: IGMP, Internet Group Management;
− 6: TCP , Transmission Control Protocol;
− 17: UDP, User Datagram Protocol。
Header Checksum:16bit,首部校验和(其中有算法,校验,判断数据包传输的时候是否有损坏)
Source IP Address:32bit,源IP地址。
Destination IP Address:32bit,目的IP地址。
Option:可变,选项字段。(有无别的信息,一般情况不需要)
2.4 IP地址表示

IP地址的长度为32位,采用点分十进制表示,四段,故一段八位,故最大为255.
2.5 IP地址的构成
• IPv4地址由如下两部分组成:
网络部分 (网络号):用来标识一个网络。
▪ IP地址不能反映任何有关主机位置的地理信息,只能通过网络号码字段判断出主机属于哪个网络。
▪ 对于网络号相同的设备,无论实际所处的物理位置如何,它们都是处在同一个网络中。
▫ 主机部分 (主机号):用来区分一个网络内的不同主机。
2.5.1 网络掩码的作用(计算网络号与主机号)
但是一串IP地址,如:192.168.10.1 ;又没有什么符号来隔开网络部分和主机部分,我们又怎么区分呢?下面就体现了网络掩码的重要作用!
• 网络掩码 (Netmask),又称子网掩码 (Subnet Mask):
▫ 网络掩码为32 bit,与IP地址的位数一样,通常也以点分十进制数来表示。
▫ 网络掩码不是一个IP地址,在二进制的表示上是一堆连续的1、后面接一堆连续的0。
▫ 通常将网络掩码中1的个数称为这个网络掩码的长度。如:掩码0.0.0.0的长度是0,掩码252.0.0.0的长度是6。
▫ 网络掩码一般与IP地址结合使用,其中值为1的比特对应IP地址中的网络位;值为0的比特对应IP地址中的主机位,以此来辅助我们识别一个IP地址中的网络位与主机位。即网络掩码中1的个数就是IP地址的网络号的位数,0的个数就是IP地址的主机号的位数。

如图所示:
当IP地址为192.168.10.1时,配备的掩码为255.255.255.0,在书写方式中可以写成:
192.168.10.1 255.255.255.0 简写成 192.168.10.1 24
我们可以看出掩码前二十四位都是1,后八位为0
IP地址:为32位的二进制数列。
我们将这两项全列出来,就得到两列一一对应的32位的二进制数列,让这两列一一对应的二进制数一一进行与运算,我们得出,IP地址在与掩码相与之后前二十四位,还是原来的二进制数列,而后八位就变成0了,所以根据与运算来区分前二十四位为网络号,后八位为主机号。
所以我们可以得出一个规律,在观察一个掩码时,掩码全1的位数有多少,那么网络号就有几位。
例如上面的题,掩码前24位为1,那么网络号就是前二十四位。其余八位为主机号。
2.5.2 IP地址寻址
注意:在这我们可能会想到,如果一户人家一个IP地址下连到了好几台机器,怎么区分呢?这就体现出在数据链路层以太网协议封装的MAC地址的厉害之处,每台机器的出场MAC地址都不一样,所以在数据通信过程中,解封装到数据链路层时,会解出MAC地址,然后区分同一IP地址下的不同机器。

• 网络寻址:
▫ 二层网络寻址:可直接通过IP地址,找到对应的主机接口。
▫ 三层网络寻址:利用网关转发来自不同网段之间的数据包。
• 网关:
▫ 报文转发过程中,首先需要确定转发路径以及通往目的网段的接口。如果目的主机与
源主机不在同一网段,报文需要先转发到网关,然后通过网关将报文转发到目的网段。
▫ 网关是指接收并处理本地网段主机发送的报文并转发到目的网段的设备。为实现此功
能,网关必须知道目的网段的路由。网关设备上连接本地网段的接口地址即为该网段
的网关地址。
2.5.3 IP地址分类(根据网络号)
• 为了方便IP地址的管理及组网,IP地址分成五类:

• 为了方便IP地址的管理及组网,IP地址分成五类:
▫ A、B、C、D、E类的类别字段分别是二进制数0、10、110、1110、1111,通过网络
号码字段的前几个比特就可以判断IP地址属于哪一类,这是区分各类地址最简单的方
法。
▫ A、B、C三类地址是单播IP地址 (除一些特殊地址外),只有这三类地址才能分配给主
机接口使用。
▫ D类地址属于组播IP地址。
▫ E类地址专门用于特殊的实验目的。
2.5.3.1 ABC类地址比较
▫ A类网络的网络号为8 bit,个数很少,但所允许的主机接口的个数很多;首位恒定为0,
地址空间为:0.0.0.0~127.255.255.255。
▫ B类网络的网络号为16 bit,介于A类和C类网络之间;首两位恒定为10,地址空间为:
128.0.0.0~191.255.255.255。
▫ C类网络的网络号为24 bit,个数很多,但所允许的主机接口的个数就很少;首三位恒
定为110,地址空间为:192.0.0.0~223.255.255.255。
2.5.3.2 IP地址分类总结
总结:
A->0 (8位网络号 24位主机号)
B->10 (16位网络号 16位主机号)
C->110 (24位网络号 8位主机号)
D->1110 (用于组播)
E->1111 (用于实验研究)
2.5.4 IP地址类型(根据主机号)

• 广播地址(主机号全1的地址)
▫ 不能分配给具体的主机接口使用。

• 可用地址(除了上述全0,全1,之间的地址)
▫ 又称主机地址,可用分配给具体的主机接口使用。

2.5.5 IP地址计算
根据上述的知识点我们就可以进行这类题的计算
• 例:172.16.10.1/16这个B类地址的网络地址、广播地址以及可用地址数分别是?
网络地址:根据掩码为16位,则IP地址中前16位为网络号,主机号全为0就得出了:172.16.0.0
广播地址: 由主机位全一可得, 172.16.255.255
可用地址数:2ⁿ-2,n:主机位的位数,故 224-2
可用地址范围: 172.16.0.1 ~172.16.255.254
2.5.6 私网IP地址
• 公网IP地址:IP地址是由IANA统一分配的,以保证任何一个IP地址在Internet上的唯一性。这里的IP地址是指公网IP地址。
看到这里,我们是不是不理解在一个封闭的网络下的IP,如果我们要访问外网该怎么办,这些私网地址与外网正常地址是重复的,所以这就引入了一个技术,叫NAT (Network Address Translation),网络地址转换,其基本作用是实现私网IP地址与公网IP地址之间的转换,NAT地址转换技术实现了将私网地址转换为正常的能够与访问外网的地址,减少使用公网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
2.5.7 特殊IP地址

• 255.255.255
▫ 这个地址称为有限广播地址,它可以作为一个IP报文的目的IP地址使用。
▫ 路由器接收到目的IP地址为有限广播地址的IP报文后,会停止对该IP报文的转发。
• 0.0.0.0
▫ 如果把这个地址作为网络地址,它的意思就是“任何网络”的网络地址;如果把这个
地址作为主机接口地址,它的意思就是“这个网络上主机接口”的IP地址。
▫ 例如:当一个主机接口在启动过程中尚未获得自己的IP地址时,就可以向网络发送目
的IP地址为有限广播地址、源IP地址为0.0.0.0的DHCP请求报文,希望DHCP服务器在
收到自己的请求后,能够给自己分配一个可用的IP地址。
• 127.0.0.0/8
▫ 这个地址为环回地址,它可以作为一个IP报文的目的IP地址使用。其作用是测试设备
自身的软件系统。
▫ 一个设备产生的、目的IP地址为环回地址的IP报文是不可能离开这个设备本身的。
• 169.254.0.0/16
▫ 如果一个网络设备获取IP地址的方式被设置成了自动获取方式,但是该设备在网络上
又没有找到可用的DHCP服务器,那么该设备就会使用169.254.0.0/16网段的某个地
址来进行临时通信。
三、子网划分
3.1 为什么要划分子网
我们可以想象一下,当我们一个网段的主机地址有24位或16位时,那么像16位主机号的B类地址,这一个地址有216=65536个IP地址,一个地址用于一个广播域,地址过于浪费,而且广播域过于庞大,一旦发生广播,内网的压力不堪重负。
所以我们想把一个B类地址运用的更加好,更加灵活,我们就引入了子网划分这个概念,这样使用子网划分,一个B类地址就可以划分多个子网,来分配给广播域,这样可以减少浪费,将一个大的有类网络像ABC类网络,划分为若干小的子网,使IP地址的使用更加科学。

3.2 如何进行子网划分
第一步:原网段分析

第二步:向主机借位

• 现在,将原有的24位网络位向主机位去“借”1位,这样网络位就扩充到了25位,相对的主
机位就减少到了7位,而借过来的这1位就是子网位,此时网络掩码就变成了25位,即
255.255.255.128,或/25。
• 子网位:可取值0或取值1,则得到了两个新的子网。
• 通过计算可知,现在每个子网网络中,有128个IP地址,可用IP地址为126个。
注意:其实总IP地址数没有变化,毕竟位数就那么多,只不过划分子网,可以将一个庞大数量的网络,划分为若干子网,便于管理。
3.2.1 计算子网网络地址(注意,容易迷)

• 计算网络地址,主机位全为0:
▫ 如果子网位取值0,则网络地址为192.168.10.0。
▫ 如果子网位取值1,则网络地址为192.168.10.128。
虽然划分子网,网络位借用的主机位,但是在书写上,主机位虽说被借走了,但是它被借走的不只是他这个数字,还有它书写上,所在的地方,我们只要知道,有这个数划分了子网,在书写上,网络位就要把借来的主机位也写在主机位的地方,容易混淆,注意仔细理解。
3.2.2 计算子网广播地址

• 计算广播地址,主机位全为1:
▫ 如果子网位取值0,则广播地址为192.168.10.127。
▫ 如果子网位取值1,则广播地址为192.168.10.255。
3.3 计算子网(重要)
问题:现有一个C类网络地址段192.168.1.0/24,请使用可变长子网掩码给三个子网分别分配IP地址。

计算步骤:
步骤1:先规划主机多的子网
步骤2:借位,根据上一步所需要的主机位来借位。
计算:
步骤1:
最多的是10台;2^n-2>=10;所以n>=4,所以主机位留4位就足够。
步骤2:
一共八位,主机位4位,供子网划分的位数为4,所以向主机位借4位,为子网位;
所以可以划分16个,每个子网里可以供14台主机使用的IP地址。至此掩码就发生变化,网络位多了四位,相应掩码也就成了28位。然后给每个子网的主机配主机位,然后组合就成了每台主机的IP地址。

四、ICMP协议
4.1 什么是ICMP协议
• Internet控制消息协议ICMP (Internet Control Message Protocol)是IP协议的辅助协议。

• 为了更有效地转发IP数据报文和提高数据报文交互成功的机会,在网络层使用ICMP协议。
ICMP允许主机或设备报告差错情况和提供有关异常情况的报告。
• ICMP消息:
▫ ICMP消息封装在IP报文中,IP报文头部Protocol值为1时表示ICMP协议。
▫ 字段解释:
▪ ICMP消息的格式取决于Type和Code字段,其中Type字段为消息类型,Code字段包含该消息类型的具体参数。
▪ 校验和字段用于检查消息是否完整。
▪ 消息中包含32 bit的可变参数,这个字段一般不使用,通常设置为0。
− 在ICMP重定向消息中,这个字段用来指定网关IP地址,主机根据这个地址将报文重定向到指定网关。
− 在Echo请求消息中,这个字段包含标识符和序号,源端根据这两个参数将收到的回复消息与本端发送的Echo请求消息进行关联。尤其是当源端向目的端发送了多个Echo请求消息时,需要根据标识符和序号将Echo请求和回复消息进行一一对应。
4.2 ICMP协议的功能
4.2.1 ICMP重定向

• ICMP重定向过程:
1. 主机A希望发送报文到服务器A,于是根据配置的默认网关地址向网关RTB发送报文。
2. 网关RTB收到报文后,检查报文信息,发现报文应该转发到与源主机在同一网段的另一个网关设备RTA,此转发路径是更优的路径,所以RTB会向主机发送一个Redirect消息,通知主机直接向另一个网关RTA发送该报文。
3. 主机收到Redirect消息后,会向RTA发送报文,然后RTA会将该报文再转发给服务器A。
4.2.2 ICMP差错检测

4.2.3 ICMP错误报告
• ICMP定义了各种错误消息,用于诊断网络连接性问题;根据这些错误消息,源设备可以判断出数
据传输失败的原因。如:当网络设备无法访问目标网络时,会自动发送ICMP目的不可达报文到发
送端设备。

• ICMP定义了各种错误消息,用于诊断网络连接性问题;根据这些错误消息,源设备可以判
断出数据传输失败的原因。
▫ 如果网络中发生了环路,导致报文在网络中循环,且最终TTL超时,这种情况下网络
设备会发送TTL超时消息给发送端设备。
▫ 如果目的地不可达,则中间的网络设备会发送目的不可达消息给发送端设备。目的不
可达的情况有多种,如果是网络设备无法找到目的网络,则发送目的网络不可达消息;
如果网络设备无法找到目的网络中的目的主机,则发送目的主机不可达消息。
• ICMP的另一个典型应用是Tracert。Tracert基于报文头中的TTL值来逐跳跟踪报文的转发路
径。为了跟踪到达某特定目的地址的路径,源端首先将报文的TTL值设置为1。该报文到达
第一个节点后,TTL超时,于是该节点向源端发送TTL超时消息,消息中携带时间戳。然后
源端将报文的TTL值设置为2,报文到达第二个节点后超时,该节点同样返回TTL超时消息,
以此类推,直到报文到达目的地。这样,源端根据返回的报文中的信息可以跟踪到报文经
过的每一个节点,并根据时间戳信息计算往返时间。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/32575.html