本文将简单介绍一下IP地址,以及相关分配规则,NAT技术的简单了解

一,IP协议的定位

IP协议是在TCP/IP五层模型中网络层所运用的协议,如果把TCP比作一个一个快递公司的“确认电话”,那么IP协议就是“负责运输快递到目的地址的快递员”,他不像TCP传输的可靠性,IP协议只管传输,不管送达。

二,IP数据包结构

以下是IP数据包的结构简图:
image.png

  • 版本(Version, 4位): IP 协议的版本。对于 IPv4,该值始终为 4

  • 首部长度(IHL, 4位): 表示 IP 首部长多少个 32 位字(即 4 字节)。因为固定部分是 20 字节,所以这个值通常是 5 (5×4=205 \times 4 = 205×4=20)。最大值为 15,即首部最长 60 字节。

  • 服务类型(TOS, 8位): 现在的标准叫 区分服务(DiffServ)。用来标记数据包的优先级,比如是追求低延迟、高吞吐量还是高可靠性。

  • 总长度(Total Length, 16位): 指的是 首部 + 数据 的总字节数。最大值为 216−1=655352^{16}-1 = 655352161=65535 字节。

  • 标识(Identification, 16位): 计数器,每发送一个报文就加 1。分片时,同一原始报文的所有分片具有相同的标识,以便在目的地重组。

  • 标志(Flags, 3位): * 第一位保留。

    • 中间位 DF (Don’t Fragment):为 1 表示不允许分片。

    • 末位 MF (More Fragments):为 1 表示后面还有分片,为 0 表示这是最后一个分片。

  • 片偏移(Fragment Offset, 13位): 较长的分组分片后,某片在原分组中的相对位置。单位是 8 字节

  • 生存时间(TTL, 8位): 数据报在网络中可通过的路由器的最大跳数。每经过一个路由器减 1,减到 0 就会被丢弃,防止报文在网络中无限循环。

  • 协议(Protocol, 8位): 指出此数据报携带的数据是使用何种协议,以便交给上层(运输层)处理。

    • 6 代表 TCP

    • 17 代表 UDP

    • 1 代表 ICMP

  • 首部校验和(Header Checksum, 16位): 只校验数据报的首部,不检查数据部分。

  • 源 IP 地址(Source Address, 32位): 发送方的 IP。

  • 目的 IP 地址(Destination Address, 32位): 接收方的 IP。

  • 选项(Options): 可变长度,用于排错、测量或安全措施,但因为会增加路由器处理负担,现在很少使用。

  • 数据(Data): 上层(如 TCP 或 UDP 报文段)的具体内容。

三,地址分配

IP地址反映了一台主机在网络上所处的位置,当下的通信主机这么多,是如何进行分配,地址又分的过来吗?

IP地址可以分为以下几大类:
image.png
前三类地址总体可以划分为网络号+主机号的的结构,在IPv4的结构中

  • 网络号:定位主机所处网段,理解为小区地址
  • 主机号:定位同一个网段中的不同主机,可理解为门牌号
    对于同一个网段中的不同主机,网络号一致,但是主机号不相同
    当下的大部分主机的IP地址都采用C类地址,前24位网络号,后8位主机号。
    如何查看我们使用的主机IP呢?以我的windows电脑为例的话,在终端中输入
    ipconfig即可查看
    image.png
    WLAN是我们上网使用的网卡
  • 本地链接 IPv6 地址:是自动生成的链路本地 IPv6 地址,仅在当前局域网内有效,用于局域网内设备间通信
  • IPv4 地址:这是一个内网 IP(私有 IP),属于192.168. 网段,主机号为38
  • 子网掩码:32位子网掩码,前24位是网络号,后8位是主机号
  • 默认网关 :无线路由器的内网 IP 地址,当我们使用设备访问互联网时,数据包会先访问这个网关,再由路由器转发到公网

四 如何分配

IP地址是一个32位4字节的整数,这个数值可以表示大约42亿左右的数字,但这远不够分配给互联网上的所有主机,为了解决这一问题,可以采用以下几种方案:

动态分配地址(DHCP)

动态分配地址是只给上网的设备分配IP地址。如果每一个设备都固定分配,使用一个IP地址那IP地址的申请,配置就会很麻烦,同时还会增加IP地址的分配数量,但是不一定同一时间网上存在如此规模的正在访问互联网的设备。
IP地址在使用时,设备会向服务器进行申请一个有时效的IP地址,于是你的设备就在这段时间内暂时拥有了该IP,即将失效时即可再次续约

工作原理

  • Discover:你的设备大喊“谁是 DHCP 服务器?我想领个 IP”。

  • Offer:路由器(DHCP 服务器)回话“我这有个 192.168.1.10 给你用”。

  • Request:设备确认“好的,我就要这个地址了”。

  • ACK:路由器点头“成交,租给你 24 小时,过期记得续约”。

NAT技术(NAT)

NAT技术也是为了减少IP地址数量不够分配而产生的一种技术手段
首先NAT把IP地址划分为公网IP和私网IP(局域网)。
公网IP地址可以类比于小区地址(全球内唯一),私网IP就好比一个小区内的具体门牌号(仅在小区内唯一)。当一个私网内部的设备想要给公网中的设备传输信息时,就好比一个小区内部门牌号给其他地区的小区寄快递。
NAT技术就负责把寄件人的信息映射为小区的地址,相当于对发送方的起始位置变为其范围管辖区,而不是落实到一个具体的设备

  • 意义:通过 NAT,上百台内网设备可以共用 1 个 公网 IP 访问互联网,极大地节省了地址资源。

数据发送:NAT地址替换

image.png
通过NAT技术,使得服务器接收到的数据包的源IP地址由最初发送方的IP变为NAT网关的IP。
假设同一个私网内的多个设备向公网服务器发起请求时,当服务器对处理完响应,返回数据时,当传输数据原路返回到达NAT网关时,由于NAT对源IP进行了替换,如何才能知道该把数据传给私网内的那一台设备呢?

数据返回:NAT映射表

为了解决这一问题,NAT网关保存了NAT源IP替换的IP信息,并将其映射到一张表中
image.png
通过此方法,NAT发送时进行源IP替换,返回时按照映射表进行了目的IP替换,完成了数据的正确传输。通过NAT技术,一个私网内部的上百台设备可以使用同一个公网IP(网关IP)来访问互联网,极大的减少了IP地址的资源开销

IPv6

以上的技术手段都是从减少主机使用的IP地址来实现地址分配,而IPv6则是地址数量极多,地址数量多到可以给地球上每一粒沙子都分配一个独立的 IP。

  • 空间巨大:IPv6 采用 128 位 地址长度(IPv4 仅 32 位)。地址数量多到可以给地球上每一粒沙子都分配一个独立的 IP。

  • 地址长相:十六进制表示,如 240e:e1:1234:abcd::1

  • 主要改进

    1. 取消 NAT:因为地址足够多,每台设备(甚至你的灯泡)都可以拥有全球唯一的公网 IP,恢复了互联网的“端到端”连接。

    2. 安全性:原生支持 IPsec 加密。

    3. 效率高:首部格式简化(虽然地址变长了,但路由器处理起来更快)。

五,总结与对比

特性 DHCP NAT IPv6
解决的问题 自动化配置,防止冲突 缓解 IPv4 地址枯竭 彻底解决地址空间不足
主要角色 终端设备与路由器交互 路由器作为内外网转换器 全新的一套网络协议
关键点 租约续期 端口号映射 128 位极长地址

以上就是相关IP地址如何分配的知识点,如有纰漏,还请指出~~

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐