- IPv4 (Internet Protocol Version 4)协议族是TCP/IP协议族中最为核心的协议族。它工作在TCP/IP协议栈的网络层,该层与OSI参考模型的网络层相对应。
- 网络层提供了无连接数据传输服务,即网络在发送数据报文时不需要先建立连接,每一个IP数据报文独立发送。
网络层协议
- 网络层经常被称为IP层。但网络层协议并不只是IP协议,还包括ICMP(Internet Control Message Protocol)协议,IPX(Internet Packet Exchanage)协议等。
IP协议
- IP是Internet Protocol的缩写。Internet Protocol本身是一个协议文件的名称,该协议文件的内容非常少,主要是定义并阐述了IP报文的格式。
- 经常被提及的IP,一般不是特指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)的升级版本。
IP头部报文
- IP头部一行是4个字节,32个bit
- 默认20个字节,IP头部20-60个字节不等
- TTL字段设置了数据包可以经过的路由器数目。
- 一旦经过一个路由器,TTL值就会减1,当该字段值为0时,数据包将被丢弃。
- 报文解释
- Version:版本标识 4个bit
- Header Length:头部长度 4个bit
- 头部长度的二进制乘以4才是真正的长度,如果不是4的倍数,则用padding去凑
- Type of service:服务级别 8个bit
- Total Length:报文总长度 16个bit
- Identification:分片id
- Flags:分片标志
- Fragment Offset:片偏移
- TTL:TTL值,生存时间,定义了生命周期最多能走多远,用于放环来使用
- Protocol:来决定数据包给上层的哪个协议
- 1:ICMP
- 6:TCP
- 17:UDP
- 89:OSPF
- Header Checksum:头部校验
- Source IP Address:源IP地址
- Destination IP Address:目的IP地址
- padding:填充字段,没有意义的数据
二进制计算
- 先把128,64,32,16,8,4,2,1列出来
- 然后将一个十进制数从左往右比较
- 如果大于或等于比较的数字则在下面标1,小于则标0
- 如果大于或者等于标完之后则减去与它比较的数字,继续往右比较,以此类推
- 从左往右的二进制数就是转换好的二进制
什么是IP地址
- IP地址在网络中用于标识一个节点(或者网络设备的接口)
- IP地址用于IP报文在网络中的寻址
在IP网络上,如果用户要将一台计算机连接到Internet上,就需要申请一个IP地址。IP地址就像现实中的地址,可以标识网络中的一个节点,数据就是通过它来找到目的地的。即我们通过IP地址实现全球范围内的网络通信。
IP地址是网络设备接口的属性,不是网络设备本身的属性。当我们说给某台设备分配一个IP地址时,实质上是指给这台设备的某个接口分配一个IP地址。如果设备有多个接口,通常每个接口都至少需要一个IP地址。
注:需要使用IP地址的接口,通常是路由器和计算机的接口。
IP地址表示
- IP地址由网络地址和主机地址构成
- 一个IPv4地址有32bit
- 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地址寻址
- 网络号用于表示主机所在的网络,类似于“XX省XX市XX区XX小区”的作用。
- 主机号用于表示网络号所定义的网络范围内某个特定的主机接口,类似于门牌号“XX栋XX号”的作用。
- 网络寻址:
- 二层网络寻址:可直接通过IP地址,找到对应的主机接口。
- 三层网络寻址:利用网关转发来自不同网段之间的数据包。
- 网关:
- 报文转发过程中,首先需要确定转发路径以及通往目的网段的接口。如果目的主机与源主机不在同一网段,报文需要先转发到网关,然后通过网关将报文转发到目的网段。
- 网关是指接收并处理本地网段主机发送的报文并转发到目的网段的设备。为实现此功能,网关必须知道目的网段的IP地址。网关设备上连接本地网段的接口地址即为该网段的网关地址。
IP地址分类(有类编制)
- 为了方便IP地址的管理及组网,IP地址分成五类:
- A/B/C类默认网络掩码
- A类:8 bit, 0.0.0.0~127.255.255.255/8
- B类:16 bit,128.0.0.0~191.255.255.255/16
- C类:24 bit,192.0.0.0~191.223.255.255/24
为了方便IP地址的管理及组网,IP地址分成五类:
- A、B、C、D、E类的类别字段分别是二进制数0、10、110、1110、1111,通过网络号码字段的前几个比特就可以判断IP地址属于哪一类,这是区分各类地址最简单的方法。
- A、B、C三类地址是单播IP地址 (除一些特殊地址外),只有这三类地址才能分配给主机接口使用。
- D类地址属于组播IP地址。
- E类地址专门用于特殊的实验目的。
- 本节内容,只关注A、B、C三类地址。
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。
注:
主机 (Host),通常指路由器和计算机的统称。并且常把主机的某个接口的IP地址简称为主机IP地址。
组播地址:组播能实现一对多传递消息。
IP地址类型
- 网络地址
- 网络号为X,主机号的每个比特都为0。
- 不能分配给具体的主机接口使用。
- 广播地址
- 网络号为X,主机号的每个比特都为1。
- 不能分配给具体的主机接口使用。
- 可用地址
- 又称主机地址,可用分配给具体的主机接口使用。
- 一个网段可用地址数量计算:
- 一个网段的主机位为n位,则IP地址数为:2ⁿ,可用IP地址数为:2ⁿ-2 (减去网络地址和广播地址)。
IP地址计算
- 例:172.16.10.1/16这个B类地址的网络地址、广播地址以及可用地址数分别是?
- 网络地址:将网络地址的主机位全设为0,所得结果是该IP地址所在网络的网络地址。
- 广播地址:将网络地址的主机位全设为1,所得结果是该IP地址所在网络的广播地址。
- P地址数:2ⁿ,n为主机位位数。
- 可用IP地址数:2ⁿ-2,n为主机位位数。
- 练习题答案:
- 网络地址:10.0.0.0/8
- 广播地址:10.255.255.255
- IP地址数:224
- 可用IP地址数:224-2
- 可用IP地址范围:10.0.0.1/8~10.255.255.254/8
私网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/8
- B类:172.16.0.0~172.31.255.255/12
- C类:192.168.0.0~192.168.255.255/16
- 为了解决IP地址短缺的问题,提出了私有地址的概念。私有地址是指内部网络或主机地址,这些地址只能用于某个内部网络,不能用于公共网络。
- 公网IP地址:连接到Internet的网络设备必须具有由ICANN分配的公网IP地址。
- 私网IP地址:私网IP地址的使用使得网络可以得到更为自由地扩展,因为同一个私网IP地址是可以在不同的私有网络中重复使用的。
- 私有网络连接到Internet:私有网络由于使用了私网IP地址,是不允许连接到Internet的。后来在实际需求的驱动下,许多私有网络也希望能够连接到Internet上,从而实现私网与Internet之间的通信,以及通过Internet实现私网与私网之间的通信。私网与Internet的互联,必须使用网络地址转换 (NAT)技术实现。
- 注:
- NAT (Network Address Translation),网络地址转换,其基本作用是实现私网IP地址与公网IP地址之间的转换。
- IANA (Internet Assigned Numbers Authority),因特网地址分配组织。