目录
IP地址定义
网络标识和主机标识
子网掩码
IPv4地址的分类
全局地址和私有地址
个人主页:东洛的克莱斯韦克-CSDN博客
IP地址定义
IP是网络中每台设备的唯一标识符,用于识别和定位计算机、服务器、路由器等设备,以便它们能够在网络上进行通信。
IPv4是由32位比特位构成,计算机也是以二进制的方式处理该地址。而人更喜欢用点分十进制表示一个IPv4地址。
2 的 32 次方是 4,294,967,296。IPv4地址的绝对数量也只有这么多。
网络标识和主机标识
IP地址中,一部分比特位用来标识数据链路层不同段的唯一性(标识不同子网),称为网络标识。一部分比特位用来标识同一子网的不同主机,称为主机标识。
子网掩码
子网掩码是一个32位的数值,用于划分IPv4地址中的网络部分和主机部分。它帮助确定一个IP地址中的哪一部分是网络标识,哪一部分是主机标识。
子网掩码前半部分位连续的1,后半部分为连续的0。子网掩码的32位比特位中有多少个一表示IP地址前多少位表示网络标识。
子网掩码有两种标识形式,一种是IP地址和子网掩码用两行表示
另一种是在IP地址后面追加网络标识的位数,用/分隔
IPv4地址的分类
A类地址
范围:0.0.0.0 - 127.255.255.255 |
默认子网掩码:255.0.0.0(即/8) |
网络标识:前8位(第一个八位组) |
主机标识:后24位 |
可用网络数:2^7 = 128(去除0和127后的有效网络数为126) |
每个网络的可用主机数:2^24 - 2 = 16,777,214 |
用途:A类地址用于大型网络,如跨国企业或互联网服务提供商(ISP)。 |
B类地址
范围:128.0.0.0 - 191.255.255.255 |
默认子网掩码:255.255.0.0(即/16) |
网络标识:前16位(前两个八位组) |
主机标识:后16位 |
可用网络数:2^14 = 16,384(去除128和191后的有效网络数为16,384) |
每个网络的可用主机数:2^16 - 2 = 65,534 |
用途:B类地址适用于中型网络,如大型企业或大学校园网络。 |
C类地址
范围:192.0.0.0 - 223.255.255.255 |
默认子网掩码:255.255.255.0(即/24) |
网络标识:前24位(前三个八位组) |
主机标识:后8位 |
可用网络数:2^21 = 2,097,152(去除192和223后的有效网络数为2,097,152) |
每个网络的可用主机数:2^8 - 2 = 254 |
用途:C类地址用于小型网络,如家庭网络或小型企业网络。 |
D类地址
范围:224.0.0.0 - 239.255.255.255 |
用途:D类地址专门用于多播(Multicast),即将数据包发送给一组特定的设备,而不是单个设备。D类地址不分网络标识和主机标识,因此没有子网掩码。 |
用途:多播应用,例如视频会议、在线直播等,使用D类地址来将数据传输到多个目的地。 |
E类地址
范围:240.0.0.0 - 255.255.255.255 |
用途:E类地址保留用于实验和研究目的,供未来技术的研究和开发,不用于常规的网络通信。 |
子网掩码是对该分类更细力度的划分。
全局地址和私有地址
全局地址和私有地址也可以称为公网IP和私有IP
私有IP范围如下
在私有IP范围之外都是公网IP
私有IP的数量为17,891,328。在搭建网络时,一个配有公网IP的路由器在该子网中最多可以为17,891,328台主机分配地址。也就是说一个有公网IP的机器可以用私有ip搭建子网。
这样的网络搭建方案可以极大缓解IPv4地址不足问题。在我们平常生活场景中接触到的基本都是私有IP。一般都是由当地运营商配有公网IP的路由器为我们的手机,笔记本电脑,家用路由器等入网设备分配一个临时的私有IP,该私有IP用来标识该路由器构建的子网中主机的唯一性。
私有IP是可以被重复使用的,所以私有IP在全网中没有唯一性。这就是为什么不同子网的主机不能通信的原因。
IPv4的报头
4 位版本号(version): 指定 IP 协议的版本, 对于 IPv4 来说, 就是 4. • 4 位头部长度(header length): IP 头部的长度是多少个 32bit, 也就是 length 4 的字节数. 4bit 表示最大的数字是 15, 因此 IP 头部最大长度是 60 字节.
8 位服务类型(Type Of Service): 3 位优先权字段(已经弃用), 4 位 TOS 字段, 和 1 位保留字段(必须置为 0). 4 位 TOS 分别表示: 最小延时, 最大吞吐量, 最高可靠性, 最小成本. 这四者相互冲突, 只能选择一个. 对于 ssh/telnet 这样的应用程序, 最小延 时比较重要; 对于 ftp 这样的程序, 最大吞吐量比较重要.
16 位总长度(total length): IP 数据报整体占多少个字节. • 16 位标识(id): 唯一的标识主机发送的报文. 如果 IP 报文在数据链路层被分片 了, 那么每一个片里面的这个 id 都是相同的.
3 位标志字段: 第一位保留(保留的意思是现在不用, 但是还没想好说不定以后要 用到). 第二位置为 1 表示禁止分片, 这时候如果报文长度超过 MTU, IP 模块就会丢 弃报文. 第三位表示"更多分片", 如果分片了的话, 最后一个分片置为 0, 其他是 1. 类 似于一个结束标记.
13 位分片偏移(framegament offset): 是分片相对于原始 IP 报文开始处的偏移. 其实就是在表示当前分片在原报文中处在哪个位置. 实际偏移的字节数是这个值 8 得到的. 因此, 除了最后一个报文之外, 其他报文的长度必须是 8 的整数倍(否则报文 就不连续了).
8 位生存时间(Time To Live, TTL): 数据报到达目的地的最大报文跳数. 一般是 64. 每次经过一个路由, TTL -= 1, 一直减到 0 还没到达, 那么就丢弃了. 这个字段要是用来防止出现路由循环
8 位协议: 表示上层协议的类型
16 位头部校验和: 使用 CRC 进行校验, 来鉴别头部是否损坏. • 32 位源地址和 32 位目标地址: 表示发送端和接收端.
选项字段(不定长, 最多40字节)