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 ...
随机推荐
- Google出品的NotebookLM 人工智能笔记本,一款基于RAG的personalized AI产品
Google推出了实验性的NotebookLM产品,一款基于RAG的个性化AI助手产品,基于用户提供的可信信息,通过RAG,帮助用户洞察和学习参考内容,然后借助AI整理笔记,转换为用户最终需要的大纲. ...
- 申请并部署免费的 SSL/TLS 证书
对于囊中羞涩的我们来说,只要能白嫖,就绝不乱花钱.惯常申请免费 SSL/TLS 证书的途径有: 各大云服务平台限量提供.比如阿里云会给每个账号每年 20 个证书的申请额度.缺点是不支持泛域名,一年后须 ...
- 全网最全100个AI工具导航网站合集
随着ChatGPT年前的爆火,人工智能也变成当今最热门的领域之一,它正在改变着我们的生活和工作方式.无论你是想要学习人工智能的基础知识,还是想要利用人工智能来提升你的业务效率和创新能力,都需要找到合适 ...
- Linux-线程优先级学习
概念 Linux系统中常用的几种调度类为SCHED_NORMAL.SCHED_FIFO.SCHED_RR. SCHED_NORMAL:用于普通线程的调度类 SCHED_FIFO和SCHED_RR是用于 ...
- kettle从入门到精通 第三十一课 mysql 数据连接连接池配置
无论开发应用程序还是做ETL研发,都离不开连接池的应用,如下是kettle中mysql 连接池设置界面,今天重点讲解下连接池中的参数配置. defaultAutoCommit 当 defaultAut ...
- INFINI Labs 产品更新 | 发布 Easysearch Java 客户端,Console 支持 SQL 查询等功能
近年来,日志管理平台越来越流行.使用日志管理平台可以实时地.统一地.方便地管理和查看日志,挖掘日志数据价值,驱动运维.运营,提升服务管理效率. 方案架构 Beats 是轻量级采集器,包括 Filebe ...
- 使用final shell 连接使用 ubuntu server linux
书接上回,VM 安装ubuntu server:https://www.cnblogs.com/runliuv/p/16880599.html 1.从 https://www.hostbuf.com/ ...
- edge ctrl+c 复制不起作用
现象: 在edge中选中文字时,按一次ctrl+c,到其它程序ctrl+v,并不是你选中的内容. 需要在edge中按2次ctrl+c才行. --- 当你选中文字时,会出现一个三个点的菜单,点击后会出现 ...
- 如何排查常规软件问题 - 面向 Linux 初级用户的教程
笔者从 14 年做开源软件以来,接触了众多 Linux 新手用户,这里我为这类用户总结了一些常见的问题排查方法,希望能帮助到大家.如果你已经工作多年,对于下面提到的思路和方法应该非常熟悉,如果对某一条 ...
- BigDecimal的小数位
在使用BigDecimal的divide方法进行除法运算时,需要传入两个参数:被除数和除数.如果要对除法结果进行保留小数位数的处理,可以使用该方法的重载形式,传入一个指定小数位数和舍入规则的MathC ...