【TCP/IP 笔记】IPv4 详解

本文详细探讨了IPv4寻址的概念,包括IP地址的结构、分类寻址、子网划分以及无类域间路由(CIDR)。文章介绍了IP地址的32位二进制形式,以及如何通过子网掩码进行网络号和主机号的划分。此外,还讨论了原始的分类寻址的局限性和VLSM的引入,以提高地址空间的利用率和路由效率。最后,简要概述了IPv4数据报的结构和分片重组过程,以及IP数据报在网络中的路由方式。
摘要由CSDN通过智能技术生成

参考 <The TCP/IP Guide> http://tcpipguide.com

寻址 (Addressing)

IP 寻址的概念和问题

IP 地址概述和基础
  • IP 地址的功能:标识 (Identification) 和路由 (Routing)

    • 网络接口标识 (Network Interface Identification):IP 地址给设备和网络之间的接口提供唯一的标识。这才能保证数据被传递到了正确的地方。
    • 路由:当数据包的起源和终点不在同一个网络,数据包就必须通过中间系统间接 (Indirectly) 地传递,这个过程叫路由 (Routing)。
  • 设备的 IP 地址数量

    任何设备若要在网络层 (Network Layer) 传输数据就至少有一个 IP 地址,一个网络接口一个 IP 地址。一般的主机通常有一个 IP 地址,而路由器 (Routers) 则有多个 IP 地址。一些特殊的主机,如多宿 (Multihomed) 主机也会有多个 IP 地址。

    多宿:一个主机拥有超过一个 IP 网络接口那么它就是多宿的,一个多宿设备可能有多个接口连着同一个网络也可能连着不同的网络。如果一个主机连着多个网络,那么它可以被配置成一个路由器 (Router)。

    比网络层低层的设备如:中继器 (Repeaters)、桥 (Bridges) 和交换机 (Switches) 是不需要 IP 地址,因为它们是基于数据链路层 (Data Link Layer) 地址进行通信的。

  • IP 地址的网络特定性

    当 IP 地址代表网络接口并用于路由时,这个 IP 地址是它所连接的网络特定的,如果设备移动到了一个新的网络,这个 IP 地址通常也需要改变,这个问题也催生了移动 IP (Mobile IP)。

IP 地址记法和大小

IP 地址仅是 32 位二进制数。一般分为四个字节,每个字节转换成十进制数,用点分开来表示。

二进制 11100011 01010010 10011101 10110001
十六进制 E3 52 9D B1
十进制 227 82 157 177

因为 IP 地址有 32-bit 长,所以总共有 2^32 即 4,294,967,296 个地址。

IP 基本地址结构

为了方便寻址,IP 地址被结构化成两部分:网络号 (Network ID) 和主机号 (Host ID)。

网络号:从 IP 地址最左端起的部分 bits,标识主机或其他网络接口所在的网络。也叫 Network prefix 或 prefix

主机号:除去网络号后剩余的 bits,标识网络上的主机。

将网络号包含进 IP 地址中,对寻址起到很大的帮助,因为可以通过比对数据包的目的地址的网络号和自身的网络号是否相同判断出目的地址在内网还是外网,从而快速确定路由。将 IP 地址分为网络号和主机号,还产生了一些有特殊含义的地址,如主机号全为 1 的广播地址。

网络号和主机号的分割点不是固定的,而是取决于各种因素的,并且可以在 32-bit 地址的任何地方,包括十进制八位字节的中间。

在这里插入图片描述

三种主要的 IP 寻址方案
  • 分类寻址 (Classful Addressing):将 IP 地址分为 ABCDE 五类,三个主要类为 ABC 三类,区别在于网络号和主机号的长度,网络号和主机号的划分线在八位字节边界,如 C 类地址前 24 bits 为网络号,后 8 bits 为主机号。
  • 子网分类寻址 (Subnetted Classful Addressing):在子网寻址系统中,通过从主机号中拿取前端部分 bits 作为子网号,用于识别子网,这将原本的两层划分系统(网络号/主机号)被改为三层划分系统(网络号/子网号/主机号)。
  • 无类寻址 (Classless Addressing):将原始的分类寻址抛开,网络号和主机号可以在任意点划分,不需要像分类寻之中那样划分在八位字节边界。这种方案更加灵活有弹性。

原始的分类寻址 (Classful IP Addressing)

概述

在分类寻址中,IP 地址被分为 ABCDE 五类地址

IP 地址类别 在 IP 地址中的占比 网络号数 主机号数 用于
A 类地址 1/2 8 24 为需要上千万台主机连入网络的大型组织提供单播地址,最多提供 16,277,214 个地址
B 类地址 1/4 16 16 为需要上千台主机连入网络的中型组织提供单播地址,最多提供 65,534 个地址
C 类地址 1/8 24 8 为需要上百台主机连入网络的小型组织提供单播地址,最多提供 254 个地址
D 类地址 1/16 - - 多播地址
E 类地址 1/16 - - 为实验保留

其中 ABC 类占 7/8,用作单播地址。

尽管分类寻址对如今的网络来说缺点众多,以至于我们用无类寻址 (Classless IP Addressing) 代替了它,但要知道这是在十几年前开发出来的寻址系统,对于那时的网络环境,那时的计算机性能,分类寻址也有着许多的优点:

  • 合理的灵活性:三种等级“粒度”的地址,分别对应大、中、小三种大小的组织,提供了足够的容量来处理当时对网络增长的预期。
  • 易于路由:因为地址的类别信息包含在地址中,且只有五种类型,这使路由器可以很轻松的知道地址的哪部分为网络号,哪部分为地址号,而不需要如掩码的附加信息。
类别确定算法

TCP/IP 刚被创造的时候,计算机的性能比起现在要弱得多,路由器要快速地决定数据包的去处,就必须快速的确定地址的类别并获得目的地址的网络号,当时大家也想象不到网络发展到今天会如此巨大,那时只需要一套简单高效的寻址机制即可,所以分类寻址就这么被发明并使用相当一段时间,也随之诞生了类别确认算法。

在这里插入图片描述

算法流程

  1. 如果地址第一位为 0,则为 A 类地址;如果为 1 则进行下一步。(这也是为什么 A 类地址占 IP 地址的一半)
  2. 如果地址第二位为 0,则为 B 类地址;如果为 1 则进行下一步。
  3. 如果地址第三位为 0,则为 C 类地址;如果为 1 则进行下一步。
  4. 如果地址第四位为 0,则为 D 类地址;如果为 1 则为 E 类地址。
特殊含义的 IP 地址
网络号 主机号 A 类地址例子 B 类地址例子 C 类地址例子 特殊含义
网络号 全为 0 77.0.0.0 154.3.0.0 227.82.157.0 指整个网络。
全为 0 主机号 0.91.215.5 0.0.99.6 0.0.0.160 指当前网络或默认网络中的一个主机。
全为 0 全为 0 0.0.0.0 指自身,当设备不知道自己的 IP 地址时使用,常用于设备用主机配置协议(如 DHCP)确定自身地址。
网络号 全为 1 77.255.255.255 154.3.255.255 227.82.157.255 指某网络中的所有主机,即本地广播地址。
全为 1 全为 1 255.255.255.255 指网络中的所有主机,即全局广播地址,广
  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值