【Linux】:初识网络

发布于:2025-02-10 ⋅ 阅读:(33) ⋅ 点赞:(0)

📃个人主页island1314

🔥个人专栏:Linux—登神长阶

⛺️ 欢迎关注:👍点赞 👂🏽留言 😍收藏  💞 💞 💞


目录

1. 计算机网络发展背景

2. 网络协议

🐇 协议初识

🐇 协议分层

🥝 OSI 七层协议

🥝 TCP/IP五层(四层)模型

3. 再识协议

🍉 为什么要有 TCP/IP 协议?

🍉 什么是 TCP/IP 协议?

🍉 理解网络协议栈

4. 网络传输基本流程

🦌 局域网传输流程

🛹 认识以太网通信

🛹 认识 Mac 地址

🛹 同一个网段内的两台主机消息的发送

🛹 数据包封装和分用

🦌 跨网络传输流程

🛴 令牌环

🛴 认识 IP 地址

🛴 对比 IP 地址和 Mac 地址的区别

🛴 补充 -- IP协议

5. 共勉 🔥


1. 计算机网络发展背景

  • 计算机网络的发展可以追溯到20世纪60年代。当时,美国国防部的高级研究计划署(ARPA)启动了一个名为ARPANET的研究项目,旨在将分布在全美的计算机连接起来,实现资源共享和信息交流。ARPANET于1969年建成,成为了世界上第一个计算机网络

🔥  在随后的几十年里,计算机网络经历了从军用到民用、从局域网到广域网的快速发展。20世纪70年代,随着计算机和网络技术的不断进步,计算机网络开始向商业化和民用化方向发展。1974年,ARPANET采用了TCP/IP协议,这成为了今天互联网的基础。到了80年代,局域网(LAN)和广域网(WAN)开始普及,TCP/IP协议也成为互联网的标准协议标志着互联网的正式建立

独立模式:计算机之间相互独立

网络互联:多台计算机连接在一起, 完成数据共享

局域网LAN:计算机数量更多了, 通过交换机和路由器连接在一起

广域网WAN:将远隔千里的计算机都连在一起

所谓 “局域网” 和 “广域网” 只是一个相对的概念. 比如, 我们有 “天朝特色” 的广域网, 也可以看做一个比较大的局域网.

重要性:计算机网络在现代社会中发挥着举足轻重的作用。它打破了数据的孤立状态,使得不同计算机之间能够高效地交换信息和共享资源。无论是工作、学习还是生活,计算机网络都已经成为人们不可或缺的一部分。它让人们能够随时随地访问互联网,获取各种信息和服务,极大地提高了工作效率和生活质量

2. 网络协议

🔥 网络协议,简称为协议,是网络通信(即网络数据传输)经过的所有网络设备都必须共同遵从的一组约定、规则。这些规则详细规定了如何建立连接、如何互相识别、如何发送和接收数据等

🐇 协议初识

"协议"本质就是一种约定

  • 计算机之间的传输媒介是光信号和电信号。 通过 “频率” 和 “强弱” 来表示 0 和 1 这样的信息. 要想传递各种不同的信息, 就需要约定好双方的数据格式

思考:只要通信的两台主机约定好协议就可以了么?

  • 即使双方已经制定了通信协议,但如果一方使用频率来表示 01,而另一方使用信号强弱来表示 01,这就如同一方说中文,另一方说葡萄牙语。虽然大家遵循相同的 01 通信规则,但由于“表示方式”不同,即使订立了基本协议,也无法进行正常的通信。

多样化的计算环境

  • 计算机生产厂商众多;
  • 计算机操作系统多种多样;
  • 计算机网络硬件设备种类繁多。

在如此多样的环境下,如何确保来自不同厂商的计算机能够顺利通信?

  • 统一标准的需求
  • 因此,一个完善的协议需要更加详细和具体的规定,并且所有参与者都必须遵守这些规定。

一些思考:

  • 技术被挖掘出了价值,广泛使用,第一生产力的特征才会表现出来,被看到。
  • 所以占领市场,制定标准的重要性就可以理解了。
  • 例如现在的鸿蒙系统(物联网),人工智能,大模型......现在都是在找应用场景来落地,进行
  • 普及和构建生态。

软件分层的场景:高内聚,低耦合

  • 结构体和类,数据层面:继承和多态就是在实现软件分层
  • 数据类型上:文件和硬件不同 struct 设计
  • 线程池回调的方式
  • 模块之间:虚拟内存和页表等也是一种分层

🐇 协议分层

⭕ 为什么要分层?

  • 问题是层状的
  • 网络很庞大
  • 好维护

例如两个人打电话

  • 真实情况:我们人其实在和电话沟通
  • 在逻辑上:我们认为,人和人,电话和电话在沟通

举个例子:

本层之间有协议,层和层之间通过话筒(接口)连接

  • 在这个例子中, 我们的"协议"只有两层: 语言层、通信设备层。
  • 但是实际的网络通信协议,设计的会更加复杂, 需要分更多的层
  • 但是通过上面的简单例子,我们是能理解,分层可以实现解耦合
  • 分层具有好维护的特征,可以实现只换同层内容

⭕ 那么网络协议是如何分层的呢?

🥝 OSI 七层协议
  • OSI(Open System Interconnection,开放系统互连) 七层网络模型称为开放式系统互联参考模型,是一个逻辑上的定义和规范;
  • 把网络从逻辑上分为了7层. 每一层都有相关、相对应的物理设备,比如路由器,交换机;
  • OSI 七层模型是一种框架性的设计方法,其最主要的功能使就是帮助不同类型的主机实现数据传输;
  • 它的最大优点是将服务、接口和协议这三个概念明确地区分开来,概念清楚,理论也比较完整. 通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯;

但是, 它既复杂又不实用; 所以我们按照TCP/IP四层模型来讲解.

🔥 其实在网络角度,OSI 定的协议 7 层模型其实非常完善,但是在实际操作的过程中,会话层、表示层是不可能接入到操作系统中的,所以在工程实践中,最终落地的是 5 层协议。

🥝 TCP/IP五层(四层)模型
  1. TCP(传输层)/ IP(网络层) 是一组协议的代名词,它还包括许多协议,共同组成了TCP/IP协议簇
  2. TCP/IP 通讯协议采用了五层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求
  3. 物理层我们考虑的比较少,因此很多时候也可以称为 TCP/IP 四层模型
  4. 一般而言
    1. 对于一台主机:它的操作系统内核实现了从传输层到物理层的内容:
    2. 对于一台路由器:它实现了从网络层到物理层;
    3. 对于一台交换机:它实现了从数据链路层到物理层
    4. 对于集线器:它只实现了物理层;
    5. 但是并不绝对.很多交换机也实现了网络层的转发;很多路由器也实现了部分传输层的内容(比如端口转发); 

  • UDP协议为用户数据报协议,在传输层工作
  • TCP协议为传输控制协议,在传输层工作
  • IP协议为网际协议,在网络层工作
  • ARP协议为地址解析协议,在网络层工作

ICMP协议为Internet控制报文协议,它是TCP/IP协议簇的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息,所以是通过IP协议来进行传输

结构理解:

  • 物理层: 负责光/电信号的传递方式. 比如现在以太网通用的网线(双绞线)、早期以太网采用的的同轴电缆(现在主要用于有线电视)、光纤, 现在的wifi无线网使用电磁波等都属于物理层的概念。物理层的能力决定了最大传输速率、传输距离、抗干扰性等. 集线器(Hub)工作在物理层

 💢 调制解调器(猫)也工作在物理层。(把模拟信号->数字信号,数字信号->模拟信号),家里安装的wifi,先是光纤接入猫,然后猫拉一个先连接路由器,路由器帮我们构建一个局域网然后我们就可以连接wifi了,我们发送的消息先传给路由器,路由器在经过物理设备猫,帮我们做数模转换把数据打到网络里然后数据才能发出去。(路由器真正识别才是真正的01这种二进制对东西)。

  • 数据链路层:负责建立设备之间的数据帧的传送和识别. 例如网卡设备的驱动、帧同步(就是说从网线上检测到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就自动重发)、数据差错校验等工作。 有以太网、令牌环网, 无线LAN等标准。交换机(Switch)工作在数据链路层。确保了主机和直接连接的主机之间可以通信
  • 网络层: 负责地址管理和路由选择. 例如在IP协议中, 通过IP地址来标识一台主机, 并通过路由表的方式规划出两台主机之间的数据传输的线路(路由)。路由器(Router,是涵盖关系,也有集线器,交换机......的功能)工作在网路层.
  • 传输层: 负责两台主机之间的数据传输。 如传输控制协议 (TCP),能够确保数据可靠的从源主机发送到目标主机.
  • 应用层:负责应用程序间沟通,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等。 我们的网络编程主要就是针对应用层。数据拿过来了,以什么样的形式显示

在不同的系统中,网络的系统调用接口大同小异

3. 再识协议

上面的内容,我们只是懂了一些基本概念,还是达不到我们的目标,下面我们再次重新理解协议和协议分层

🍉 为什么要有 TCP/IP 协议?

  • 首先,即便是单机,你的计算机内部,其实都是存在协议的,比如:其他设备和内存通信,会有内存协议。其他设备和磁盘通信,会有磁盘相关的协议,比如:SATA,IDE,SCSI等。只不过我们感知不到罢了。而且这些协议都在本地主机各自的硬件中,通信的成本、问题比较少。
  • 其次,网络通信最大的特点就是主机之间变远了。任何通信特征的变化,一定会带来新的问题,有问题就得解决问题,所以需要新的协议咯。

所以,为什么要有 TCP/IP 协议?本质就是通信主机距离变远了

🍉 什么是 TCP/IP 协议?

  • TCP/IP 协议的本质是一种解决方案
  • TCP/IP 协议能分层,前提是因为问题们本身能分层

 TCP/IP 协议与操作系统的关系(宏观上,怎么实现的),如下图

 所以究竟什么是协议?

  • 截止到目前,我们还没接触过任何协议,但是如何朴素的理解协议,我们已经可以试试了
  • OS 源代码一般都是用 C/C++语言写的。

下面,仔细看看下面的图

💡 问题:主机 B 能识别 data,并且准确提取 a=10,b=20,c=30 吗?
🔖 回答:答案是肯定的!因为双方都有同样的结构体类型 struct protocol。也就是说,
用同样的代码实现协议,用同样的自定义数据类型,天然就具有”共识“,能够识别
对方发来的数据,这不就是约定吗?

关于协议的朴素理解:所谓协议,就是通信双方都认识的结构化的数据类型
🔖 因为协议栈是分层的,所以,每层都有双方都有协议,同层之间,互相可以认识对
方的协议。

🍉 理解网络协议栈

结合 用户贯穿硬件 的结构进行理解:

层状是一样的,层和层之间进行匹配

网络通信的本质:就是贯穿协议栈的过程

 网络协议栈的层状结构中,每一层都有协议(约定的解读)

信息传递要保证可靠性:要有序。所以每个协议层都要有自己的序号 -- 即 协议报头

  • 报头:在协议中,报头(Header)通常指的是数据包或帧的开头部分,其中包含了关于该数据包或帧的元信息。这些信息对于协议的正确路由和处理数据包/帧至关重要,确保成功地将它从发送方传递到接收方
  • 报头的重要性:报头在协议中扮演着至关重要的角色。它是数据包或帧的“身份证”,包含了必要的元信息和控制信息,以确保数据包能够正确、高效地传输到目标地址。同时,报头也是协议实现和调试的重要工具,通过分析报头信息,可以了解数据包在网络中的传输情况,诊断和解决网络故障

网卡为什么要把数据交给内存?因为 冯诺依曼结构 规定的,到内存中才能被 OS 处理

4. 网络传输基本流程

🦌 局域网传输流程

局域网:

这里主要以以太网为例

🛹 认识以太网通信

• 首先回答,两台主机在同一个局域网,是否能够直接通信?是的
• 原理类似上课

局域网内,两个直接连接的主机之间可以直接通信。例如投屏需要手机和电视连接同一个 wifi

  • 主流的局域网通讯协议:以太网

太阳光八分钟到地球,宇宙中是否存在让光传递的介质--以太,就像空气一样的?后来物理界证实不存在,就是真空的。计算机科学家Q到,我们光电传输就有--以太网~

🛹 认识 Mac 地址

• 每台主机在局域网上,要有唯一的标识来保证主机的唯一性:mac 地址

  • MAC 地址用来识别数据链路层中相连的节点;
  • 长度为 48 位, 及 6 个字节. 一般用 16 进制数字加上冒号的形式来表示 (如: 08:00:27:03:fb:19)
  • 在网卡出厂时就确定了,不能修改. mac 地址通常是唯一的(虚拟机中的 mac 地址不是真实的 mac 地址,可能会冲突;也有些网卡支持用户配置 mac 地址)

  • 以太网中,任何时刻,只允许一台机器向网络中发送数据
  • 如果有多台同时发送,会发生数据干扰,我们称之为数据碰撞
  • 所有发送数据的主机要进行碰撞检测碰撞避免
    • 所以发送主机都要执行碰撞避免的算法,保证任何时刻都只有一台主机在发送消息
    • 所以局域网最好不会太大,和引入交换机
  • 没有交换机的情况下,一个以太网就是一个碰撞域
    • 交换机:划分碰撞域
    • 碰撞域:指在网络中,数据信号传输过程中可能发生冲突的区域。在同一个碰撞域内的所有设备共享同一物理介质,在一个碰撞域内,所有设备都监听同一个物理信道,并且任何时刻只能有一台设备发送数据。
  • 局域网通信的过程中,主机对收到的报文确认是否是发给自己的,是通过目标 mac 地址判定

💢 这里可以试着从系统角度来理解局域网通信原理,初步明白了局域网通信原理,再来看同一个网段内的两台主机进行发送消息的过程

🛹 同一个网段内的两台主机消息的发送

初步明白了局域网通信原理,再来看同一个网段内的两台主机进行发送消息的过程

而其中每层都有协议,所以当我进行进行上述传输流程的时候,要进行封装和解包

  • 用户 A 从上到下进行封装,由硬件发出
  • 用户 B 从下到上进行解包,由硬件接收 
  • 用户 A B 都需要贯穿协议层,为啥要进行这么多交互,因为数据需要通过硬件来收发

下面我们明确一下概念

  • 报头部分,就是对应协议层的结构体字段,我们一般叫做报头
  • 除了报头,剩下的叫做有效载荷
  • 故,报文=报头+有效载荷

报文被别人抓走了怎么办?为了确保网络安全,可以在应用层进行加密(令牌环),对方就看不到

如何看待局域网?

只允许一个发送,可以看作每台主机背后就是一个进程,网络的传输是共享资源,传输要互斥进行

🛹 数据包封装和分用
  • 不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在网络层叫做数据报(datagram),在链路层叫做帧(frame)
    1. 数据段是在传输层(Transport Layer)处理的数据单元,通常用于描述TCP或UDP等传输协议封装的信息。在图中,“你好”这个字符串是应用层数据,在传输层会被封装成一个数据段,并添加上相应的头部信息,如序列号、确认号、源端口/目的端口等。

    2. 数据报是在网络层(Network Layer)处理的数据单元,通常用于描述IP协议封装的信息。在图中,数据段经过网络层后会变成一个数据报,它包含了原始数据段以及其他必要的头部信息,例如源IP地址、目的IP地址、TTL(Time To Live)、协议类型等。

    3. 数据帧是在链路层(Link Layer)处理的数据单元,通常用于描述以太网驱动程序封装的信息。在图中,数据报经过链路层后会变成一个数据帧,它包含了原始数据报以及其他必要的头部信息,例如MAC地址(源MAC地址、目的MAC地址)、FCS(Frame Check Sequence)等。

    4. ​​​​​​​总结来说,数据段是传输层的概念,数据报是网络层的概念,而数据帧则是链路层的概念。这些不同层次的数据单元在计算机网络中起着不同的作用,它们通过层层封装和解封装来实现数据的有效传输。

  • 应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据首部(header),称为封装(Encapsulation).
  • 首部信息中包含了一些类似于首部有多长,载荷(payload)有多长,上层协议是什么等信息.
  • 数据封装成帧后发到传输介质上,到达目的主机后每层协议再剥掉相应的首部,根据首部中的 "上层协议字段" 将数据交给对应的上层协议处理.
  • OSI的数据链路层通常同时使用报头和报尾进行封装

通信的过程:本质就是不断的封装和解包的过程

所以在逻辑上,就感觉是在同层传递,例如:

⭕ 扩展:

  1. 几乎任何层的协议,都要提供一种能力,将报头和有效载荷分离的能力
  2. 几乎任何层的协议,都要在报头中提供,决定将自己的有效载荷交付给上层的哪一个协议的能力--分用

封装的时候,一定要考虑后面的解包过程:

  • 如何将报文中的报头和有效载荷进行分离 —> 约定
  • 任何协议都要解决如何将自己的有效载荷交付给上一层的协议 —> 共性
  • 每层协议都要解决这两个问题

🍒 封装

🍒 分用

因此后面我们学习任何协议,都要先宏观上建立这样的认识:

问题1:协议,是如何做到解包的?

🔥 协议解包(解封装)是指接收方从接收到的数据中逐层剥离头部信息,提取出有效载荷,并将其传递给上层协议的过程。解包的关键在于每层协议能够识别自己的头部信息,并根据这些信息决定如何处理数据。以下是协议解包的详细过程

协议栈的每一层都会根据协议规范,解析并剥离自己的头部信息,然后将剩余的数据传递给上层协议。以下是逐层解封装的详细步骤:

(1) 物理层

  • 接收方从物理介质(如网线、光纤)接收到原始的比特流。

  • 物理层将这些比特流组装成链路层的帧。

(2) 链路层(如以太网)

  • 链路层解析帧的头部信息(如目标MAC地址、源MAC地址、帧类型等)。

  • 检查帧的完整性(通过校验和或CRC校验)。

  • 如果帧类型指示上层协议是IP协议,链路层会剥离帧头部和尾部,将IP数据包传递给网络层。

(3) 网络层(如IP协议)

  • 网络层解析IP头部信息(如源IP地址、目标IP地址、协议类型等)。

  • 检查IP数据包的完整性(通过校验和)。

  • 如果协议类型指示上层协议是TCP或UDP,网络层会剥离IP头部,将TCP/UDP段传递给传输层。

(4) 传输层(如TCP/UDP)

  • 传输层解析TCP/UDP头部信息(如源端口、目标端口、序列号、校验和等)。

  • 检查数据的完整性和顺序(TCP协议会进行校验和验证、数据重组等)。

  • 根据目标端口号,传输层会剥离TCP/UDP头部,将应用层数据传递给相应的应用层协议。

(5) 应用层(如HTTP、FTP)

  • 应用层协议解析数据内容(如HTTP请求或响应)。

  • 根据协议规范处理数据,完成最终的业务逻辑。

问题2:协议是如何做到将自己的有效载荷,交付给上层协议的?

  1. 发送方封装

    • 上层协议数据作为有效载荷传递给当前协议。

    • 当前协议添加头部信息,形成完整的报文。

  2. 数据传输

    • 封装后的报文通过网络传输到接收方。

  3. 接收方解封装

    • 接收方解析当前协议的头部信息,验证数据完整性。

    • 提取有效载荷,准备传递给上层协议。

  4. 传递有效载荷

    • 将有效载荷交给上层协议处理。

关键点

  • 封装与解封装:每层协议添加或移除自己的头部信息。

  • 协议标识:头部信息中包含协议标识,确保数据传递给正确的上层协议。

  • 错误检测:通过校验和等机制确保数据传输的可靠性。

🦌 跨网络传输流程

🛴 令牌环

🔥 令牌环网络中,所有的计算机或工作站被连接成一个逻辑或物理的环形拓扑结构,网络中数据的传输是通过一个特殊的控制信号,即“令牌”来管理的

  • 令牌环网和以太网都属于数字链路层,但是底层协议是不一样的

因为网络是层状结构的,所以替换底层协议,不影响传输

🛴 认识 IP 地址

我怎么知道是要跨网络交给主机的呢?

IP 地址可以保证主机在全网的唯一性,例如:我们云服务器的连接 IP 就是唯一的

两个小故事:

  • 从辽宁到云南,沿路旅游的路线如何设计
  • 从哪来,到哪去--一直是不变的--IP 地址--指导我们进行路径规划
  • 上一站从哪里来,下一站到哪里去--会一直变化,变化的依据是“我要去哪里”--Mac 地址

相当于 IP 是大目标,Mac 是小目标

  • 指令:ip -a 可以查看当前的ip地址

IP 地址是什么?

  • IP地址是在IP协议中, 用来标识网络中不同主机的地址
  • 对于IPv4来说, IP地址是一个4字节, 32位的整数
  • 我们通常也使用 “点分十进制” 的字符串表示IP地址, 例如 192.168.0.1 ; 用点分割的每一个数字表示一字节, 范围是 0 - 255

跨网段的主机的数据传输. 数据从一台计算机到另一台计算机传输过程中要经过一个或多个路由器.

IP 地址的意义

  • 为什么要去目标主机,先要走路由器?
  • 目的 IP 的意义

IP地址的意义是:路径选择 —> 从哪里来,到哪里去,IP地址是永远不变的

IP 地址为什么要交给路由器?

  • 路由器会重新解包,和封装 数据链层协议,实现了不同区域网之间的通信,解决了底层协议的差异化
  • 同一子网,没有路由器的话,就会底层协议需要一样

  • IP 及上层是一样的,IP 协议屏蔽了底层网络的差异,靠的就是工作在 IP 层的路由器
  • IP 实现了全球主机的软件虚拟层,一切皆是 IP 报文!
  • 也体现了网络层状结构的优越性

然后结合封装与解包,体现路由器解包和重新封装的特点

🛴 对比 IP 地址和 Mac 地址的区别
  • IP 地址在整个路由过程中,一直不变(目前,我们只能这样说明,后面在修正)

  • Mac 地址一直在变

  • 目的 IP 是一种长远目标,Mac 是下一阶段目标,目的 IP 是路径选择的重要依据,mac 地址是局域网转发的重要依据

  • IP地址是一个数字,用于唯一标识网络中的一台主机。应用于网络层,基于网络拓扑描述起点和终点,Mac地址是物理网卡硬件地址,用于标识相邻设备,应用于链路层

    • IP地址的分配是基于网络拓朴,MAC地址的分配是基于制造商

    • IP地址应用于OSI第三层,即网络层,而MAC地址应用在OSI第二层,即数据链路层(数据链路层协议可以通过MAC地址使数据从一个节点传递到相同链路的另一个节点上

    • 由于IP地址是一个逻辑地址,所以可以给MAC地址对应分配不同的IP地址,使网络通信更加灵活

提炼 IP 网络的意义和网络通信的宏观流程

路由器,可以根据 IP 地址判断目的地在哪个局域网内,IP 地址的设计非常的巧妙,它在网络层,会根据目的地,进行路径选择时选择了下一个跳转的路由器。

  • IP 网络层存在的意义:提供网络虚拟层,让世界的所有网络都是 IP 网络,屏蔽最底层网络的差异
ifconfig   --查看当前云服务器的MAC地址,IP地址

IP数据报的收发方进行跨网投递时,发送方需利用ARP协议获取:发送方本网段路由器对应端口的MAC地址

  • 当需要跨网络进行传递的时候,也就是意味着需要找到该数据包的下一跳的MAC地址,所以认为从发送方出来,首先先到到达本网段的路由器,所以获取本网段的路由器的MAC地址

🛴 补充 -- IP协议

IP协议有两个版本, IPv4  IPv6

IPv4地址解释

  • IPv4地址是一个4字节(即32位)的整数,它可以被看作是一个无符号整数(unsigned int)。这意味着它可以表示从0到 (2^{32} - 1) 之间的任何整数值,即从0到4,294,967,295(约42亿)。

四字节和32位的关系

  • 4字节:在计算机中,一个字节(Byte)等于8位(bits),所以4字节就是 (4 \times 8 = 32) 位。
  • 32位:指的是IPv4地址的总长度,由32个二进制位组成。

点分十进制表示法

  • 点分十进制是一种常用的表示IPv4地址的方法,它将32位的二进制数分成四个8位的部分,每部分转换成十进制数,并用点(.)分隔开。例如,IPv4地址 192.168.0.1 就是点分十进制格式。

每个数字的取值范围

  • 在点分十进制表示法中,每个数字代表一个字节(8位),因此它们的取值范围是从0到255。这是因为8位二进制数的最大值为 (2^8 - 1 = 255)。
  • 最小值:0,对应于8位全0,即 00000000。
  • 最大值:255,对应于8位全1,即 11111111。

示例如下

  1. 以 192.168.0.1 为例:
  2. 第一部分 192 对应于二进制 11000000
  3. 第二部分 168 对应于二进制 10101000
  4. 第三部分 0 对应于二进制 00000000
  5. 第四部分 1 对应于二进制 00000001
  6. 合并起来就是 11000000 10101000 00000000 00000001,去掉空格后就是32位的二进制数 11000000101010000000000000000001。

🔥 总的来说,IPv4地址是一个32位的无符号整数,通常以点分十进制的形式表示,每个部分都是一个8位的二进制数,取值范围是0到255。这种表示方法使得IPv4地址更加易于阅读和记忆。

  • IPv6,IP地址是一个16个字符,128位比特位的整数。防止 IPv4 不够用

要想普及一项技术,需要孵化出一个更大的运用场景,例如物联网使用 IPv6 的话...现在国家规定,公司要兼容 IPv6


5. 共勉 🔥

【*★,°*:.☆( ̄▽ ̄)/$:*.°★* 】那么本篇到此就结束啦,如果有不懂 和 发现问题的小伙伴可以在评论区说出来哦,同时我还会继续更新关于【Linux】的内容,请持续关注我 !!