🏘️个人主页: 点燃银河尽头的篝火(●’◡’●)
🕒首发日期:2024年8月4日
如果文章有帮到你的话记得点赞👍+收藏💗支持一下哦
【ICT】网络层协议及IP(一)
前言
IPv4 (Internet Protocol Version 4)协议族是TCP/IP协议族中最为核心的协议族。它工作在TCP/IP协议栈的网络层,该层与OSI参考模型的网络层相对应。
网络层提供了无连接数据传输服务,即网络在发送数据报文时不需要先建立连接,每一个IP数据报文独立发送。
在本章节中,将介绍网络层协议及IPv4地址的基本概念。
一、网络层协议
网络层经常被称为IP层。但网络层协议并不只是IP协议,还包括ICMP(Internet Control Message Protocol)协议、IPX(Internet Packet Exchange)协议等。
IP协议
IP是Internet Protocol的缩写。 Internet Protocol本身是一个协议文件的名称,该协议文件的内容非常少,主要是定义并阐述了IP报文的格式。
作用:
为网络层的设备提供逻辑地址
负责数据包的寻址和转发
版本:
IP协议有版本之分,分别是IPv4和IPv6。目前,Internet上的IP报文主要都是IPv4报文,但是逐步在向IPv6过渡。若无特别声明,本章所提及的IP均指IPv4。
- 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)的升级版本。
数据封装
应用数据需要经过TCP/IP每一层处理之后才能通过网络传输到目的端,每一层上都使用该层的协议数据单元PDU(Protocol Data Unit)彼此交换信息。不同层的PDU中包含有不同的信息,因此PDU在不同层被赋予了不同的名称。
• 如上层数据在传输层添加TCP报头后得到的PDU被称为Segment(数据段);数据段被传递给网络层,网络层添加IP报头得到的PDU被称为Packet(数据包);数据包被传递到数据链路层,封装数据链路层报头和尾部得到的PDU被称为Frame(数据帧);最后,帧被转换为比特,通过网络介质传输。
• 这种协议栈逐层向下传递数据,并添加报头和报尾的过程称为封装。
IPv4报文格式
IP Packet(IP数据包),其包头主要内容如下:
-
Version:4 bit,4:表示为IPv4;6:表示为IPv6。
-
Header Length:4 bit,首部长度,如果不带Option字段,则为20,最长为60。
-
Type of Service:8 bit,服务类型。只有在有QoS差分服务要求时,这个字段才起作用。
-
Total Length:16 bit,总长度,整个IP数据包的长度。
-
Identification:16 bit,标识,分片重组时会用到该字段。
-
Flags:3 bit,标志位。
-
Fragment Offset:12 bit,片偏移,分片重组时会用到该字段。
-
Time to Live:8 bit,生存时间。
-
Protocol:8 bit,协议:下一层协议。指出此数据包携带的数据使用何种协议,以便目的主机的IP层将数据部分上交给哪个进程处理。
常见值:
1: ICMP, Internet Control Message;
2: IGMP, Internet Group Management;
6: TCP , Transmission Control Protocol;
17: UDP, User Datagram Protocol。 -
Header Checksum:16 bit,首部检验和。
-
Source IP Address:32 bit,源IP地址。
-
Destination IP Address:32 bit,目的IP地址。
-
Options:可变,选项字段。
-
Padding:可变,填充字段,全填0。
数据包分片
将报文分割成多个片段的过程叫做分片。
网络中转发的IP报文的长度可以不同,但如果报文长度超过了数据链路所支持的最大长度,则报文就需要分割成若干个较小的片段才能够在链路上传输。
-
Identification:16 bit,发送主机赋予的标识,分片重组时会用到该字段。
-
Flags:3 bit,标志位。
保留段位:0,保留。
不分段位:1,表示“不能分片”;0,表示“能分片”。
更多段位:1,表示“后面还有分片”;0,表示“最后一个数据片”。 -
Fragment Offset:12
bit,片偏移,分片重组时会用到该字段。指出较长的分组在分片后,该片在原分组中的相对位置,与更多段位组合,帮助接收方组合分段的报文。
生存时间 (Time to Live, TTL)
TTL字段设置了数据包可以经过的路由器数目。
一旦经过一个路由器,TTL值就会减1,当该字段值为0时,数据包将被丢弃
- Time to Live:8 bit,生存时间。可经过的最多路由数,即数据包在网络中可通过的路由器数的最大值。
报文在网段间转发时,如果网络设备上的路由规划不合理,就可能会出现环路,导致报文在网络中无限循环,无法到达目的端。环路发生后,所有发往这个目的地的报文都会被循环转发,随着这种报文逐渐增多,网络将会发生拥塞。
为避免环路导致的网络拥塞,IP报文头中包含一个生存时间TTL(Time To Live)字段。报文每经过一台三层设备,TTL值减1。初始TTL值由源端设备设置。当报文中的TTL降为0时,报文会被丢弃。同时,丢弃报文的设备会根据报文头中的源IP地址向源端发送ICMP错误消息。
协议号 (Protocol)
IP报文头中的协议号字段标识了将会继续处理该报文的协议。
即指出此数据包携带的数据使用何种协议,以便目的主机的IP层将数据部分上报给哪个进程处理。
- 目的端的网络层在接收并处理报文以后,需要决定下一步对报文如何处理。IP报文头中的协议字段标识了将会继续处理报文的协议。
- 该字段可以标识网络层协议,如ICMP(Internet Control Message
Protocol,因特网控制报文协议,对应值0x01);也可以标识上层协议,如TCP(Transmission Control
Protocol,传输控制协议,对应值0x06)、UDP(User Datagram Protocol,用户数据包协议,对应值0x11)。
二、IPv4地址介绍
IP地址
IP地址在网络中用于标识一个节点(或者网络设备的接口)。
IP地址用于IP报文在网络中的寻址。
- 在IP网络上,如果用户要将一台计算机连接到Internet上,就需要申请一个IP地址。IP地址就像现实中的地址,可以标识网络中的一个节点,数据就是通过它来找到目的地的。即我们通过IP地址实现全球范围内的网络通信。
- IP地址是网络设备接口的属性,不是网络设备本身的属性。当我们说给某台设备分配一个IP地址时,实质上是指给这台设备的某个接口分配一个IP地址。如果设备有多个接口,通常每个接口都至少需要一个IP地址。
IP地址表示
一个IPv4地址有32 bit。
IPv4地址通常采用“点分十进制”表示。
IPv4地址范围:0.0.0.0~255.255.255.255。
IP地址表示
IP地址是长度是32 bit,由4个字节组成。为了阅读和书写方便,IP地址通常采用点分十进制数来表示。
点分十进制表示法
IP地址表现形式能够帮助我们更好的使用和配置网络,但通信设备在对IP地址进行计算时使用的是二进制的操作方式,因此掌握十进制、二进制的转换运算非常有必要。
IPv4地址范围
00000000.00000000.00000000.00000000 ~ 11111111.11111111.11111111.11111111,即0.0.0.0 ~ 255.255.255.255。
IP地址构成
网络部分:用来标识一个网络。
主机部分:用来区分一个网络内的不同主机。
网络掩码:区分一个IP地址中的网络部分及主机部分。
- IPv4地址由如下两部分组成:
网络部分 (网络号):用来标识一个网络。
IP地址不能反映任何有关主机位置的地理信息,只能通过网络号码字段判断出主机属于哪个网络。
对于网络号相同的设备,无论实际所处的物理位置如何,它们都是处在同一个网络中。
主机部分 (主机号):用来区分一个网络内的不同主机。 - 网络掩码 (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地址寻址
网络部分:用来标识一个网络,代表IP地址所属网络。
主机部分:用来区分一个网络内的不同主机,能唯一标识网段上的某台设备。
- 网络号用于表示主机所在的网络,类似于“XX省XX市XX区XX小区”的作用。
- 主机号用于表示网络号所定义的网络范围内某个特定的主机接口,类似于门牌号“XX栋XX号”的作用。
- 网络寻址:
- 二层网络寻址:可直接通过IP地址,找到对应的主机接口。
- 三层网络寻址:利用网关转发来自不同网段之间的数据包。
- 网关:
- 报文转发过程中,首先需要确定转发路径以及通往目的网段的接口。如果目的主机与源主机不在同一网段,报文需要先转发到网关,然后通过网关将报文转发到目的网段。
- 网关是指接收并处理本地网段主机发送的报文并转发到目的网段的设备。为实现此功能,网关必须知道目的网段的路由。网关设备上连接本地网段的接口地址即为该网段的网关地址。
IP地址分类 (有类编址)
- 为了方便IP地址的管理及组网,IP地址分成五类:
- A、B、C、D、E类的类别字段分别是二进制数0、10、110、1110、1111,通过网络号码字段的前几个比特就可以判断IP地址属于哪一类,这是区分各类地址最简单的方法。
- A、B、C三类地址是单播IP地址 (除一些特殊地址外),只有这三类地址才能分配给主机接口使用。
- D类地址属于组播IP地址。
- E类地址专门用于特殊的实验目的。
- A、B、C类地址比较:
- 使用A类地址的网络称为A类网络;使用B类地址的网络称为B类网络;使用C类地址的网络称为C类网络。
- 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。
IP地址类型
我们通常把一个网络号所定义的网络范围称为一个网段。
网络地址:用于标识一个网络。
网络号为X,主机号的每个比特都为0。
不能分配给具体的主机接口使用。
广播地址:用于向该网络中的所有主机发送数据的特殊地址。
网络号为X,主机号的每个比特都为1。
不能分配给具体的主机接口使用。
可用地址可分配给网络中的节点或网络设备接口的地址。又称主机地址,可用分配给具体的主机接口使用。
一个网段可用地址数量计算:
一个网段的主机位为n位,则IP地址数为:2ⁿ,可用IP地址数为:2ⁿ-2 (减去网络地址和广播地址)。
IP地址计算
例:172.16.10.1/16这个B类地址的网络地址、广播地址以及可用地址数分别是?
网络地址:将IP地址的主机位全设为0,所得结果是该IP地址所在网络的网络地址。
广播地址:将IP地址的主机位全设为1,所得结果是该IP地址所在网络的广播地址。
IP地址数:2ⁿ,n为主机位位数。
可用IP地址数:2ⁿ-2,n为主机位位数。
IP地址数 | 216=65536 |
---|---|
可用IP地址数 | 216-2=65534 |
可用IP地址范围 | 172.16.0.1/16~172.16.255.254/16 |
私网IP地址
- 公网IP地址:IP地址是由IANA统一分配的,以保证任何一个IP地址在Internet上的唯一性。这里的IP地址是指公网IP地址。
- 私网IP地址:实际上一些网络不需要连接到Internet,比如一个大学的封闭实验室内的网络,只要同一网络中的网络设备的IP地址不冲突即可。在IP地址空间里,A、B、C三类地址中各预留了一些地址专门用于上述情况,称为私网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
特殊IP地址
IP地址空间中,有一些特殊的IP地址,这些IP地址有特殊的含义和作用,举例如下。
特殊IP地址 | 地址范围 | 作用 |
---|---|---|
有限广播地址 | 255.255.255.255 | 可作为目的地址,发往该网段所有主机(受限于网关) |
任意地址 | 0.0.0.0 | “任何网络”的网络地址;“这个网络上这个主机接口”的IP地址 |
环回地址 | 127.0.0.0/8 | 测试设备自身的软件系统 |
本地链路地址 | 169.254.0.0/24 | 当主机自动获取地址失败后,可使用该网段中的某个地址进行临时通信 |
IPv4 vs IPv6
由全球IP地址分配机构,IANA (Internet Assigned Numbers Authority)管理的IPv4地址,于2011年完全用尽。随着最后一个IPv4公网地址分配完毕,加上接入公网的用户及设备越来越多,IPv4地址枯竭的问题日益严重,这是当前IPv6替代IPv4的最大源动力。
IPv4 | IPv6 |
---|---|
地址长度:32 bit | 地址长度:128 bit |
地址分类:单播地址、广播地址、组播地址 | 地址分类:单播地址、组播地址、任播地址 |
特点:地址枯竭、包头设计不合理、对ARP的依赖,导致广播泛滥…… | 特点:无限地址、简化的报文头部、IPv6地址自动部署…… |
总结
在IP网络上,如果用户要将一台计算机连接到Internet上,就需要向因特网服务提供方ISP(Internet Service Provider)申请一个IP地址。
在本章节中,我们介绍了IP协议的基本概况,并介绍了IPv4地址的相关概念。