IP协议学习笔记
IP的作用类似物理世界中的地址,用于定位机器的位置。只不过物理的地址是文字描述,计算机世界的IP是一串二进制数,并且它是有一定约定和规则的。
下面我来学习关于IP的一些历史约定和规则。
IP地址格式
- 4.4.4.4
- 8.8.8.8
- 114.114.114.114
- 242.105.13.65
- 102.32.175.117
- 123.157.162.46
- 255.255.255.255
这些用四个点.划分,且每个段的范围是 \(2^8\)(从0开始),这就是IP。
IP地址由两部分组成:
- 网络部分 + 主机部分
为什么要分两部分?
网络ID的作用:
- 识别网络:网络ID用于识别特定的网络或子网。
- 路由:路由器使用网络ID来决定如何转发数据包。
- 网络划分:帮助组织有效地管理和划分网络。
主机ID的作用:
- 识别主机:在特定网络内唯一标识一台主机或设备。
- 寻址:允许数据包准确地传递到网络内的特定设备。
分割的重要性:
- 层次结构:创建了网络的层次结构,简化了互联网的组织。
- 效率:提高了路由效率,路由器只需要关注网络ID,而不是每个单独的IP地址。
- 灵活性:允许网络管理员根据需要灵活地分配和管理IP地址。
实际应用:
- 当数据包从一个网络发送到另一个网络时,路由器只查看网络ID部分。
- 一旦数据包到达目标网络,本地设备(如交换机)使用主机ID将其导向特定设备。
IP分类


IP转为二进制,根据判断前几位,设备就能判断这个IP是什么类的IP。
A、B、C类默认网络掩码:
- A:IP/8
- B:IP/16
- C:IP/24
约定:
C类也叫C段。
为什么要IP分类?
这是一个很好的问题,涉及到了互联网发展的历史。IP地址分类(A、B、C、D、E类)是早期互联网设计的一部分,主要用于简化网络地址的分配和路由。让我为您解释一下:
IP地址分类的历史背景:
IP地址分类系统是在1981年通过RFC 791引入的,当时是为了更有效地分配和管理有限的IPv4地址空间。这个系统被称为"有类别寻址"(classful addressing)。各类IP地址的特征:
A类:- 第一位为
0 - 网络地址占8位,主机地址占24位
- 范围:1.0.0.0 到 126.255.255.255
- 适合大型网络
B类:
- 前两位为
10 - 网络地址占16位,主机地址占16位
- 范围:128.0.0.0 到 191.255.255.255
- 适合中型网络
C类:
- 前三位为
110 - 网络地址占24位,主机地址占8位
- 范围:192.0.0.0 到 223.255.255.255
- 适合小型网络
D类:
- 前四位为
1110 - 用于多播(multicast)也叫组播,无子网掩码
- 范围:224.0.0.0 到 239.255.255.255
E类:
- 前五位为
11110 - 保留用于未来或实验用途
- 范围:240.0.0.0 到 255.255.255.255
- 255.255.255.255 作为广播地址
- 第一位为
历史作用:
- 简化地址分配:便于Internet号码分配机构(如IANA)管理和分配IP地址。
- 简化路由:路由器可以根据IP地址的前几位快速确定网络类别。
- 灵活性:不同类别适合不同规模的网络。
局限性:
随着互联网的快速发展,这种分类方法显现出一些问题:- 地址空间浪费:特别是A类和B类网络中,很多地址未被充分利用。
- 缺乏灵活性:难以适应中等规模的网络需求。
发展:
为了解决这些问题,后来引入了无类别域间路由(CIDR)和网络地址转换(NAT)等技术,使IP地址的分配和使用更加灵活和高效。虽然现在我们主要使用CIDR,但了解IP地址分类仍然对理解网络历史和某些遗留系统有一点帮助,主要吹牛时用,不至于不知道别人说什么。
总结:
古老的IP分类——有类网络已经被抛弃了,现在是NAT + CIDR的 无类网络 时代。
CIDR 和 子网掩码介绍
CIDR(Classless Inter-Domain Routing)是一种用于表示IP地址和其相关子网掩码的方法。格式为:IP地址/前缀长度,在介绍CIDR 之前先认识子网掩码。
用Windows系统的朋友,对这个图肯定很熟悉吧:

子网掩码(Subnet Mask)又叫网络掩码、地址掩码,必须结合IP地址一起对应使用。
子网掩码的组成:
- 同IP地址一样,子网掩码是由长度为32位二进制数组成的一个地址。
- 子网掩码32位与IP地址32位相对应,IP地址如果某位是网络地址,则子网掩码为1,否则为0。
- 举个栗子:如:11111111.11111111.11111111.00000000
注:左边连续的1的个数代表网络号的长度,(使用时必须是连续的,理论上也可以不连续),右边连续的0的个数代表主机号的长度。

子网掩码的作用:
- 只有通过子网掩码,才能表明一台主机所在的子网与其他子网的关系,使网络正常工作;
- 子网掩码和IP地址做“与”运算,分离出IP地址中的网络地址和主机地址,用于判断该IP地址是在本地网络上,还是在远程网络网上。
关注到:
子网掩码可以分离出IP地址中的网络地址和主机地址。
为什么要分离出网络地址、主机地址有什么用?
因为两台主机要通信,首先要判断是否处于同一网段,即网络地址是否相同;
如果相同,那么可以把数据包直接发送到目标主机,否则就需要路由网关将数据包转发送到目的地。
在如下拓扑图示例中,A与B,C与D,都可以直接相互通信(都是属于各自同一网段,不用经过路由器),但是A与C,A与D,B与C,B与D它们之间不属于同一网段,所以它们通信是要经过本地网关,然后路由器根据对方IP地址,在路由表中查找恰好有匹配到对方IP地址的直连路由,于是从另一边网关接口转发出去实现互连。

子网掩码的的表示方法:
点分十进制表示法
二进制转换十进制,每8位用点号隔开
例如:子网掩码二进制11111111.11111111.11111111.00000000,表示为255.255.255.0CIDR斜线记法
IP地址/n
也可以理解为:IP地址/前缀长度- 例1:192.168.1.100/24,其子网掩码表示为255.255.255.0,二进制表示为11111111.11111111.11111111.00000000
- 例2:172.16.198.12/20,其子网掩码表示为255.255.240.0,二进制表示为11111111.11111111.11110000.00000000
不难发现,例1中共有24个1,例2中共有20个1,所以n是这么来的。运营商ISP常用这样的方法给客户分配IP地址。
示例:
1表示网络地址,0表示主机地址
CIDR: IP/8
二进制:11111111.00000000.00000000.00000000
十进制:255.0.0.0
CIDR: IP/16
二进制:11111111.11111111.00000000.00000000
十进制:255.255.0.0
CIDR: IP/24
二进制:11111111.11111111.11111111.00000000
十进制:255.255.255.0
CIDR的优势:
- 灵活性:允许更精细的子网划分。
- 效率:相比传统的A、B、C类地址分类,可以更有效地利用IP地址空间。
NAT+公网、私网地址
IPv4只有43亿个地址,远远不能满足全世界的网络需求,
通过配置NAT + CIDR,区分公网地址和私网地址,巧妙地解决了这个问题。
公网和私网IP地址的区分是网络管理中的一个重要概念。让我为您详细解释:
公网IP地址:
- 定义:公网IP地址是在全球互联网上唯一的地址,可以直接访问互联网。
- 分配:由互联网服务提供商(ISP)或地区互联网注册机构(RIR)分配。
- 特点:全球唯一,可以直接在互联网上路由。
私网IP地址:
- 定义:私网IP地址是在局域网内部使用的地址,不能直接访问互联网。
- 分配:由网络管理员在局域网内分配,或通过DHCP自动分配。
- 特点:可以在不同的局域网中重复使用。
私网IP地址范围:
根据RFC 1918,以下IP地址范围被保留用于私网:类 私有地址范围 CIDR表示法 A 10.0.0.0 ~ 10.255.255.255 10.0.0.0/8 B 172.16.0.0 ~ 172.31.255.255 172.16.0.0/12 C 192.168.0.0 ~ 192.168.255.255 192.168.0.0/16 如何区分:
- 地址范围:如果一个IP地址落在上述私网地址范围内,它就是私网IP。
- 网络设置:查看设备的网络设置可以确定IP地址类型。
- 在线工具:有许多在线工具可以帮助判断一个IP是公网还是私网。
使用场景:
- 私网IP:用于家庭、办公室或企业内部网络。多台设备可以共享一个公网IP。
- 公网IP:用于需要直接访问互联网的服务器、网站托管等。
NAT(网络地址转换):
- 私网设备通过NAT技术,使用路由器的公网IP访问互联网。
- NAT允许多个私网IP共享一个公网IP,提高了IP地址的利用效率。

安全性:
- 私网IP提供了一定程度的安全性,因为它们不能直接从互联网访问。
- 公网IP更容易受到直接的网络攻击,因此需要更严格的安全措施。
CIDR 与 VLSM
上面铺垫了那么多,其实重点就是要讲清楚CIDR 与 VLSM这两个概念。
VLSM —— VLSM(Variable Length Subnet Mask,可变长子网掩码),更好理解的词:子网划分,规定了在一个有类(A、B、C类)网络内包含多个子网掩码的能力,以及对一个子网的再进行子网划分的能力,作用是:提升IP的利用率、实际使用率。
VLSM:子网掩码往右边移,掩码netmask增长。

上图的局域网也就两台机器,要是使用192.168.10.240/24 就有256-2 = 254 个可用IP,有点浪费了。划分成 192.168.10.240/30 ,子网/30的可用IP是4个,减去2个(一个网络号,一个广播号),就刚好只剩下2个,就没有造成浪费。
CIDR —— CIDR(Classless Inter-Domain Routing,无类别域间路由),更好理解的词: 路由聚合或者 超网。CIDR本质是消除了传统的A类、B类和C类地址以及划分子网的概念,将多个地址块聚合在一起生成一个更大的网络,从而包含更多的主机。
CIDR:子网掩码往左边移,掩码netmask缩短。

在A路由器上,就有4个路由表,把它聚合成一张路由表,传递到路由器B,减少路由B的压力,作用是为了减少骨干路由器的压力。
CIDR与VLSM总结:
在某种程度上来说,CIDR和VLSM它们之间可以看做是逆过程,CIDR是聚合(找多个路由表的相同的位数,然后把相同位数的求出来)、VLSM是切分(找到划分的界限,划分下去,需要考虑-2)。
VLSM 子网划分案例
一个子网划分的案例:
将 192.168.1.0/24这个C类地址进行子网划分,网络位向主机位借1位:

那么将划分出子网1——192.168.1.0/25

当我们借用一位进行子网划分时,这一位成为了区分两个子网的关键。
在二进制中,这一位可以是0或1,因此产生了两个子网。
那么将划分出子网2——192.168.1.128/25

这种划分方法允许我们创建两个大小相等的子网,每个子网可以容纳126个主机。
这在需要将一个大网络分割成两个较小网络的情况下非常有用。
练习

- 例2:计算一下 172.16.1.0/27 这个子网的网络号、广播号、以及可用IP地址?
Reference
6--10VLSM子网划分
https://www.bilibili.com/video/BV1pY411P7tU/
6-11CIDR无类域间路由
https://www.bilibili.com/video/BV1vR4y1K7Ge/
IP协议学习笔记的更多相关文章
- TCP/IP协议学习笔记
计算机网络基础知识复习汇总:计算机网络基础知识复习 HTTP协议的解析:剖析 HTTP 协议 一个系列的解析文章: TCP/IP详解学习笔记(1)-- 概述 TCP/IP详解学习笔记(2)-- 数据链 ...
- tcp/ip协议学习笔记一
一. 简述 以前在学校学习计算机网络的时候学习多是网络7层模型OSI,了解了一些基本的计算机网络概念和协议通信格式,但是一直没弄明白其中的原理,包括各层之间的关系,应用,还有一些常见的令牌环网到底是什 ...
- TCP/IP协议学习之实例ping命令学习笔记
TCP/IP协议学习之实例ping命令学习笔记(一) 一. 目的为了让网络协议学习更有效果,在真实网络上进行ping命令前相关知识的学习,暂时不管DNS,在内网中,进行2台主机间的ping命令的整个详 ...
- HTTP协议学习笔记(四)
HTTP协议学习笔记(四) 与 HTTP 协作的 Web 服务器 一台 Web 服务器可搭建多个独立域名的 Web 网站,也可作为通信路径上的中转服务器提升传输效率. 1.用单台虚拟主机实现多个域名 ...
- HTTP协议学习笔记(三)
HTTP协议学习笔记(三) 1.状态码告知从服务器端返回的请求结果 状态码的职责是当客户端向服务端向服务端发送请求时,描述返回的请求结果.借助状态码,用户可以知道服务端是正常处理了请求,还是出现了错误 ...
- TCP/IP协议学习(五) 基于C# Socket的C/S模型
TCP/IP协议作为现代网络通讯的基石,内容包罗万象,直接去理解理论是比较困难的:然而通过实践先理解网络通讯的理解,在反过来理解学习TCP/IP协议栈就相对简单很多.C#通过提供的Socket API ...
- HTTP协议学习笔记(二)
HTTP协议学习笔记(二) 1.HTTP报文 HTTP报文:用于HTTP协议交互的信息.请求报文:请求端(客户端)的HTTP报文叫做请求报文.响应报文:响应端(服务端)的HTTP报文叫做响应报文. H ...
- HTTP协议学习笔记(一)
HTTP协议学习笔记(一) 1.HTTP协议用于客户端和服务端之间的通信 客户端:请求访问文本或图像等资源的一端服务端:提供资源响应的一端 在两台计算机之间使用HTTP协议通信时,在一条通信线路上必定 ...
- [TCP/IP] 学习TCP/IP协议的笔记
1.我看的视频是https://www.bilibili.com/video/av10610680?from=search&seid=1733008388243131444这位大大的视频讲解. ...
- TCP/IP协议精华笔记
1.简介 TCP/IP协议并非单指TCP协议.IP协议,它是一组包括TCP协议和IP协议,UDP(User Datagram Protocol)协议.ICMP(Internet Control Mes ...
随机推荐
- c语言在Linux中的使用
gcc版本升级 如何验证gcc正常使用,编译c以及运行 过程 要验证GCC(GNU Compiler Collection)是否正常使用,您可以按照以下步骤进行操作: 检查GCC是否安装:打开终端或命 ...
- 记一次 .NET某企业数字化平台 崩溃分析
一:背景 1. 讲故事 前些天群里有一个朋友说他们软件会偶发崩溃,想分析看看是怎么回事,所幸的是自己会抓dump文件,有了dump就比较好分析了,接下来我们开始吧. 二:WinDbg 分析 1. 程序 ...
- Swoole 源码分析之 Coroutine 协程模块
首发原文链接:Swoole 源码分析之 Coroutine 协程模块 大家好,我是码农先森. 引言 协程又称轻量级线程,但与线程不同的是:协程是用户级线程,不需要操作系统参与.由用户显式控制,可以在需 ...
- ClickHouse 初步认识
概述 Clickhouse 是分析型数据库,真正的面向列式存储,支持高维度表.它免费开源.具备高效的数据导入和查询性能,能达到 50M/200M 每秒.支持实时查询.支持不同功能底层存储引擎,例如:M ...
- [HNOI2005] 狡猾的商人's 题解 (差分约束系统)
题目描述 给你一个\(n\)元一次方程,判断是否有解,方程给出的格式为 \(a-b=c\) 思路 这道题看上去是一道题目看上去就是判断给出条件是否有矛盾,所以就自然而然的可以使用带权并查集 但是因为我 ...
- ubuntu安装之后要做的10件事
部分内容整理自网络,如果侵权还请联系 基础配置 换源 换源 [ubuntu清华源镜像站] ctrl+click,进入镜像站链接,选择合适的版本,将镜像地址粘贴到本地文件里,对于: <24.04的 ...
- kettle从入门到精通 第二十四课 kettle 部署生产常用命令
一.设置KETTLE_HOME环境变量 假设kettle软件目录为/xxx/data-integration vi ~/.bash_profile export KETTLE_HOME=/xxx/da ...
- Easysearch 内核完善之 OOM 内存溢出优化案例一则
最近某客户在使用 Easysearch 做聚合时,报出 OOM 导致掉节点的问题,当时直接让客户试着调整 indices.breaker.request.limit ,但是不起作用,于是又看了下 Ea ...
- Shiro 的优点
a.简单的身份认证, 支持多种数据源 b.对角色的简单的授权, 支持细粒度的授权(方法级) c.支持一级缓存,以提升应用程序的性能 d.内置的基于 POJO 企业会话管理, 适用于 Web 以及非 W ...
- 内部网关协议RIP-路由选择协议
路由信息协议RIP(Routing Information Protocol)是内部网关协议IGP中最先得到广泛使用的协议,其相关标准文档为RFC1058. 一.RIP基本工作原理 RIP要求自治系统 ...