IP地址

IP通过将数据包发送给最终的目标计算机,让世界上任何两台计算机之间进行通信,IP地址就像是通信过程中的基石

IP(Internet Protocol):网际协议

IP地址(IPv4)由32位正整数表示,在计算机内部用二进制处理,8位一组,用.隔开分成四组,再转换成十进制数,可以有4294967296个地址(43亿个,2^32)

组成与分类

IP地址由网络地址(网络标识)和主机地址(主机标识)两部分组成,同一网段内的网络地址相同,同一个网段内的主机地址不能重复,路由器是通过IP地址的网络地址进行路由

IP地址分为四个级别,根据地址中从1到4位的比特列对其网络地址和主机地址进行区分 ip-cate.jpg

  • A类地址:0开头,1到8位是网络地址,转成十进制是0.0.0.0~127.0.0.0,后面24位是主机地址
  • B类地址:10开头,1到16位,128.0.0.0~191.255.0.0
  • C类地址:110开头,1到24位,192.0.0.0~239.255.255.0
  • D类地址:1110开头,没有主机地址,常被用于多播

用比特位表示主机地址时不能全0或全1,全0在表示对应的网络地址或IP地址不可获知的情况下才使用,全1的主机地址通常是广播地址

广播、多播

广播地址用于在同一个链路中相互连接的主机之间发送数据包,IP地址中的主机地址部分全为1

分为两种广播 ip-guangbo.jpg

  • 本地广播:在本网络内的广播
  • 直接广播:在不同网络间的广播(会使目标IP地址所在的主机群都能收到,有一定安全问题)

多播用于将包发送给特定组内的所有主机,可以穿透路由(广播不能),使用D类地址,除去前四位开头,后28位可以成为多播的组编号

多播地址的可用范围:224.0.0.0~239.255.255.255,所有的主机必须属于224.0.0.1的组,所有的路由器必须属于224.0.0.2的组

其中224.0.0.0~224.0.0.255的范围在同一个链路内也能实现多播,不需要路由控制,在这个范围外设置多播地址会给全网所有组内成员发送多播的包

子网掩码

为了减少IP地址的浪费,开始使用了用新的组合方式:IP地址+子网掩码

子网掩码也用32位正整数表示,IP地址的网络地址部分的位全为1,IP地址的主机地址部分的位全为0,然后转为十进制,就成了:

  • A类地址:255.0.0.0
  • B类地址:255.255.0.0
  • C类地址:255.255.255.0

子网掩码通过子网网络地址细分出比ABC类更小粒度的网络,将原来的ABC类中的主机地址部分用作子网地址,这样就可以自由的定位自己的网络标识长度 ip-ziwang.jpg 有两种表示方法:

  • IP地址和子网掩码各占一行
  • 在IP地址后追加网络地址的位数(后缀表示法)
// 各占一行
IP地址:172.20.100.52
子网掩码:255.255.255.192

// 后缀 网络地址中如果有0可以省略
IP地址:172.20.100.52 /26

由于IP地址仅靠分类满足不了人们日益增长的需求,于是开始采用新的方法:CIDR,它可以用任意长度分割IP地址的网络地址和主机地址,大大提高IP地址的利用率

CIDR(Classless Inter-Domain Routing):意为无类型域间选路

应用CIDR的初期,网络内部采用固定长度的子网掩码机制,由于灵活性受限,后来出现了VLSM技术

VLSM(Variable Length Subnet Mask):可变长子网掩码,可以随机修改组织内各个部门的子网掩码长度的机制

公网IP、私有IP

如果每个主机或路由器都分配一个固定IP,很快地址会被耗尽,于是出现了一种新技术,只在必要的时候为相应数量的设备分配唯一的IP地址

没连接互联网的独立网络(私有)中的主机只需在同一个域内保持地址唯一,不过考虑到会有地址冲突等问题发生,还是限定了地址范围:

  • A类:10.0.0.0~10.255.255.255 (10/8)
  • B类:172.16.0.0~172.31.255.255 (172.16/12)
  • C类:192.168.0.0~192.168.255.255 (192.168/16)

在这范围内的属于私有IP,在此之外都是公网IP(全局IP),两者可以通过NAT技术进行互换

公网IP基本上要在整个互联网范围内保持唯一

解决IP地址分配问题的主流方案:私有IP地址+NAT技术

相当于OSI模型中的网络层

网络层的主要作用是实现终端节点之间的通信(点对点通信),IP的主要作用就是在复杂的网络环境中(比如没有直连的两个网络之间)把数据包发送给最终目标的目标地址

IP主要分为为三大模块:IP寻址、路由、分包与组包

和数据链路层的MAC地址类似,IP地址是网络层的地址信息,用于识别连接到网络中的主机

路由控制(routing):将分组数据发送到最终目标地址的功能,其间经过网络中的每个区间(Hop,一跳)被转发,所以IP路由也叫多跳路由(路由器在转发包时只指定下一个地址)

一跳(1 Hop):利用数据链路层以下分层的功能传输数据帧的一个区间;如以太网数据链路中使用MAC地址传输,此时从源MAC地址到目标MAC地址之间传输帧的区间为一跳

为了简单化与高速化,IP采用面向无连接型,不需要建立与对端目标地址之间的连接,这种方式下可能会有冗余通信,应做好网络监控;可靠性在上层的TCP中确保