网络原理(五):IP 协议

news2024/10/4 16:59:27

目录

认识IP 地址

子网掩码

作用

动态分配IP 地址

NAT 机制

认识MAC地址

MAC地址如何工作


认识IP 地址

概念:

IP地址(Internet Protocol Address)是指互联网协议地址,又译为网际协议地址。

作用:

IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。

格式:

IP地址是一个32位的二进制数,通常被分割为4个“8位二进制数”(也就是4个字节),如:
01100100.00000100.00000101.00000110
通常用“点分十进制”的方式来表示,即 a.b.c.d 的形式(a,b,c,d都是0~255之间的十进制整数)。如:    100.4.5.6。

 IP 有两个版本,IPV4 和 IPV6 ;IPV4 是四个字节表示,IPV6 并不是六个字节,而是16 个字节2^128 ,地球上每一粒沙子都可以被完全覆盖。

随着时代的发展,目前的 IPV4 有点不够用了,4个字节毕竟太小;那为啥当初设计的时候不直接多给几个字节?  这主要就是时代的局限性,放在当时,每一个字节都很珍贵,其次就是当时使用设备的人太少了,42亿9千万 足够他们使用了。

而 IPV6 就完美的解决了这个问题,2 ^128 也不知道啥时候能用完。

组成:

IP地址分为两个部分,网络号和主机号

  1. 网络号:标识网段,保证相互连接的两个网段具有不同的标识;
  2. 主机号:标识主机,同一网段内,主机之间具有相同的网络号,但是必须有不同的主机号;

通过合理设置网络号和主机号,就可以保证在相互连接的网络中,每台主机的IP地址都是唯一的。

那么,如何划分网络号和主机号呢?

分类:

过去曾经提出一种划分网络号和主机号的方案,把所有IP 地址分为五类,如下图所示

A、B、C三类及特殊D、E。全0和全1的都保留

  1. A:(1.0.0.0-126.0.0.0)(默认子网掩码:255.0.0.0        
    1. 网络号取值于1~126
    2. 大型网络。
  2. B:(128.0.0.0-191.255.0.0)(默认子网掩码:255.255.0.0
    1. 该类IP地址的最前面为“10”,
    2. 网络号取值于128~191
    3. 中等规模
  3. C:(192.0.0.0-223.255.255.0)(子网掩码:255.255.255.0
    1. 该类IP地址的最前面为“110”,
    2. 网络号取值于192~223
    3. 小型网络。
  4. D:是多播地址。
    1. 该类IP地址的最前面为“1110”,所以地址的网络号取值于224~239之间。
    2. 用于多路广播用户
  5. E:是保留地址。
    1. 该类IP地址的最前面为“1111”,
    2. 网络号取值240~255

 这种划分只会出现在课本上(AB类主机号太长了,很少有这么大的局域网),现实中根本不会这么来表示,而是使用子网掩码等方式来表示 IP 地址。

目前为止,已经出现了 IP 地址不够用的情况,在此基础上有好几个缓解方法,后面会提到。

我们来看看子网掩码:

子网掩码

格式

子网掩码格式和IP地址一样,也是一个32位的二进制数。其中左边是网络位,用二进制数字“1”表示,1的数目等于网络位的长度;右边是主机位,用二进制数字“0”表示,0的数目等于主机位的长度。
子网掩码也可以使用二进制所有高位1相加的数值来表示,如以上子网掩码也可以表示为24。

作用

其作用是:减少网络上的通信量;节省IP地址;便于管理;解决物理网络本身的某些问题。使用子网掩码划分子网后,子网内可以通信,跨子网不能通信,子网间通信应该使用路由器,并正确配置静态路由信息。划分子网,就应遵循子网划分结构的规则。

Classless Inter-Domain Routing(CIDR):

  CIDR 叫做无类域间路由,ISP 常用这样的方法给客户分配地址,ISP 提供给客户1 个块(block size),类似这样:192.168.10.32/28,这排数字告诉你你的子网掩码是多少,/28 代表多少位为1,最大/32.但是你必须知道的一点是:不管是A类还是B类还是其他类地址,最大可用的只能为/30,即保留2 位给主机位。

CIDR 值:

  • 掩码255.0.0.0:/8(A 类地址默认掩码)
  • 掩码255.255.0.0:/16(B 类地址默认掩码)
  • .掩码255.255.255.0:/24(C 类地址默认掩码)

计算方式:

将 IP 地址和子网掩码进行“按位与”操作(二进制相同位,与操作,两个都是1结果为1,否则为0),得到的结果就是网络号。
将子网掩码二进制按位取反,再与 IP 地址位与计算,得到的就是主机号。
举例:

二进制二进制
IP地址180.210.242.13110110100.11010010.11110010.10000011
子网掩码255.255.248.011111111.11111111.11111000.00000000
网络号180.210.240.010110100.11010010.11110000.00000000
主机号0.0.2.13100000000.00000000.00000010.100000

聊到这里还是没有能解决IP地址不够的问题,那么究竟该如何解决IP 地址不够用的问题?

动态分配IP 地址

东半球的黑夜就是西半球的白天,那么对方的很多设备也就不在线,这样就空出了很多IP 地址了。

那么在此基础上,提出了:只有上网才会分配地址,不上网就不分配。    那么这样就可以省下一大批地址。但是这样还无法解决问题。

NAT 机制

我们既然无法解决问题,我们就退而求其次

我们将所有网络分为两部分:外网和内网

  1. 内网IP:192.168.*   ; 10.*    ; 172.16.* - 172.31.*
  2. 其余的都属于外网。

那么什么叫外网,什么叫内网呢?

外网的ip 都是唯一的,而内网的ip 是可以重复的(通常局域网都属于内网)。

如果内网想要访问外网,那么就会给他分配一个 ip ,但是这个 ip 不是这个设备独占的,这整个局域网内的所有设备共享一个 ip 。

那好问题来了,如果我两个设备同时想要访问外网,那么该怎么办呢?

举例:

我们假设有两个主机,内网ip 分别是:192.168.0.1 和 192.168.0.2;目的 ip 都是 1.2.3.4

我们想要出这个局域网,得先经过 路由器吧(这个路由器也是个 NAT 设备);两个主机在路由器上做一个记录(具体内部干了啥我也不知道,反正交给路由器解决), 这个路由器有一个外网ip (假设为 4.3.2.1);那么此时就转换为: 4.3.2.1 的 ip 访问 1.2.3.4 的 ip 。

两个主机可能是不同的 端口号发送出去的数据,也或者是其他的。

我们上面说的只是内外网之间的访问,内网之间的访问,内网的ip 地址还是很有用的。

这样一个外网ip 就可以代表一大批内网设备了。

我们现实世界目前是使用 动态分配IP 地址 和 NAT 机制两种方式来提高 ip地址的利用率;然而这并不能完全解决问题(地址不够用);解决问题的唯一方法就是 IPv6。

认识MAC地址

MAC地址,即 Media Access Control Address,用于标识网络设备的硬件物理地址。

  1. 主机具有一个或多个网卡,路由器具有两个或两个以上网卡;其中每个网卡都有唯一的一个MAC地址。
  2. 网络通信,即网络数据传输,本质上是网络硬件设备,将数据发送到网卡上,或从网卡接收数据。
  3. 硬件层面,只能基于MAC地址识别网络设备的网络物理地址。

它们是 12 位字母数字,格式非常独特。一个例子是 A1:2B:C3:4D:E5:6F。从一开始就是这样,因为有 2 48 个(或 281,474,976,710,656)个可能的地址,我们很快就不需要其他方法了。

由于 MAC 地址是在工厂永久分配的,因此人们通常将其称为烧录地址或硬件地址。您甚至可以在直接贴在某些设备上的贴纸上找到 MAC 地址。

MAC地址如何工作

MAC 地址通过帮助网络上的事物将数据发送到正确的设备来发挥作用。您的手机或计算机在 Internet 上发送请求。当您的路由器收到该数据时,它会使用您的 MAC 地址来了解将数据发送到哪里。

但是,有一些细微差别。MAC 地址专门用于将同一网络中的设备标识为另一设备。当你通过蓝牙连接到某个东西时,唯一能获得你的 MAC 地址的就是你连接的那个东西。同样,当您连接到家庭 Wi-Fi 时,只有连接到家庭 Wi-Fi 的设备才能看到您设备的 MAC 地址。

总的来说,除了少数例外,互联网上的网站和其他设备看不到您的 MAC 地址。这些实体会获取您的 IP 地址。与 MAC 地址不同,IP 地址不是永久的,而是在您上网时分配的。因此,很少有设备真正有机会看到您设备的 MAC 地址。

上述来自:什么是 MAC 地址?你需要知道的一切 (baidu.com)

ok,目前为止我们所学的内功心法就到这里,目前都是为了做网站打下基础,接下来就要学外功招式(前端和后端了);前端主要是为了扫盲,而不是真正吃透。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/510319.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

遗传算法(GA)

理论: 遗传算法是一种通过模拟生物进化的方式来寻找最优解的一类优化算法。这种算法主要依靠遗传、突变和自然选择的机制对问题求解进行高效的迭代搜索。 遗传算法的基本思想是将问题的解表示成一个个个体,然后根据适应度函数的定义来评估每个个体的适…

【数组排序算法】

目录 一、数组排序算法1、冒泡排序算法1.1、图形解释1.2、冒泡算法的脚本写法 二、直接选择排序1.1、动态图解1.2、直接选择排序算法的脚本编写 三、直接插入排序1.1、基本思想:1.2、动态图解1.3、直接插入排序的算法脚本编写 四、反向序列算法1.1、反向序列算法的脚…

linux:文件替换的三种方式sed、awk、perl

文章目录 背景sed语法问题1、加个空字符串2、下载gnu-sed awk语法举例 perl语法示例 总结 背景 linux 文件内容替换,网上看了下大致就这三种 sed、awk、perl,今天挨个使用一下看看怎么样 sed 语法 Linux sed 命令是利用脚本来处理文本文件。详细文档…

网络基础认知(上)

如今使用过计算机的人们都接触过网络,但是网络究竟是什么,计算机又是怎样通过网络来进行互相之间通信的,这还需要我们深入了解。 目录 网络发展 初识协议 什么是协议 为什么需要协议? 网络协议初识 协议分层 为什么网络协议要…

澳鹏与Reka AI强强联合,构建高质量的多模态LLM应用

近日,澳鹏Appen官宣与AI新兴公司Reka AI合作,以实现世界级数据服务与多模态语言模型的结合。 ChatGPT等创新应用的崛起让大型语言模型(LLM)实现了突飞猛进的发展。LLM可以助力企业提升运营效率,并为最终用户提供耳目一…

Java基础--->JVM(3)【垃圾回收】

文章目录 垃圾回收(GC)什么内存需要回收(什么样的对象是垃圾)?为什么要进行垃圾回收?内存溢出和内存泄露的区别,如何解决分区收集思想 Minor GC、Major GC、Full GC垃圾回收相关算法引用计数算法…

如何搭建产品操作手册

对于企业来说,拥有一份完备的产品操作手册无疑是至关重要的。操作手册不仅是新员工学习产品使用及维护的重要参考,也是产品售后服务与客户支持的必备文件。在手册编写上,应清晰明了地介绍产品的功能、配置及故障排除等信息,使用户…

统计学下的假设检验

由于本人才疏学浅,再加上时间仓促,难免有疏漏之处,恳请批评指正. 1,预备知识 数理统计:以概率论为基础,研究如何有效的去搜集、整理、分析带随机性影响的数据 总体与样本:研究对象的全体就称为总体 样本&a…

VTK交互-vtkBoxWidget2

VTK交互Widget widget包含两个重要的组成部分:Interaction和Representation. Interaction是一些名叫vtk*Widget的类(比如vtkBoxWidget2)。它包含了交互的所有选项和事件处理。 Representation是显示并与之交互的一类对象,以名叫v…

origin 拟合计算酶的Kcat Km 值

origin拟合计算Kcat Km值 横坐标为底物浓度,纵坐标为反应速率 全选X 与Y坐标数据,然后选择菜单栏Analysis: Fitting: Nonlinear Curve Fit:Open Dialog 在Setting:Function Selection页面内的Category选择Pharmacology, Functi…

计算机网络基础知识(三)—— 什么是OSI七层模型?

文章目录 00 | 🛸发展史🛸01 | 🛸OSI七层参考模型🛸02 | 🛸OSI七层参考模型的信息流向🛸 OSI七层模型是Open Systems Interconnection Reference Model的缩写,是由国际标准化组织(IS…

vue3使用keep-alive组件,包含动态组件使用

vue3使用keep-alive组件,包含动态组件使用 本文目录 vue3使用keep-alive组件,包含动态组件使用组件不使用keep-alive组件中使用v-if切换component动态组件切换因注释导致的意外错误动态组件的使用完整示例 路由不使用keep-alive路由中使用keep-alive生命…

公司数字化转型,如何选择高效的知识管理工具?

随着企业数字化转型的加速,知识管理工具的重要性也日益凸显。好的知识管理工具可以帮助企业提高工作效率、降低成本、提高创新能力和竞争力。但是,市场上的知识管理工具繁多,如何选择高效的知识管理工具成为了企业面临的一大难题。本文将从以…

Jenkins 入门系列之Role-based Strategy配置Gitlab Group管理用户组

目录 背景步骤1. 安装插件2. 配置Gitlab Group3. 配置 Jenkins 授权策略4. 配置 Jenkins 角色与授权5. 验证 背景 版本 Jenkins Version:Jenkins 2.403Gitlab Version: Gitlab 15.6部署环境:群晖NAS Docker 部署JenkinsGitlab 上一篇文章Jenkins 入门…

HTML详解

HTML是什么 html是一门语言,所有的网页都是用它编写出来的。 他是一门超文本标记语言。可以定义图片,音频,视频等。由标签组成。 HTMl仅仅定义了网站的接口。 具体的表现还需要css来实现,也就是css让网页变得更加好看。 网页…

智能聊天机器人ChatGPT商业版

作为一个智能聊天机器人,我是由OpenAI开发的。目前,我的商业版需要通过OpenAI的合作伙伴计划进行许可和部署,以确保我被用于适当的商业用途。如果您对商业使用感兴趣,请联系OpenAI以获取更多信息。 智能聊天机器人是一种能够自…

如何优化golang gc

目录 一.理解GO GC机制 1.1GC的耗时 1.2堆大小对GC的影响 1.3GC算法 二 如何查看GC信息 2.1使用GODEBUG"gotrace1" 2.2 go tool trace 2.3 debug.ReadGCStats ​编辑2.4 runtime.ReadMemStats 三 GC优化技巧 2.1并发GC 一.理解GO GC机制 GO语言采用的是三…

学习网络安全的拦路虎!你遇到几个?

很多零基础的同学想要学习网络安全,前期会各种寻找学习资料。最后发现资料一大堆,但无从下手,于是千辛万苦收集的资料就去收藏夹吃灰了。开始学习的小伙伴们通常也会越学越迷茫,毕竟资料并不是完整的,而是东拼西凑出来…

Docker时区问题

背景 当前docker容器技术应用越来越广泛,但在启动容器后,容器内部的时间并不是东八区 Docker的基础镜像设置大多是UTC,也就是标准的UTC 时间,所以要简单的调整一下,变成中国标准时间CST(China Standard Time UTC8:0…

OpenCL编程指南-1.2OpenCL图形API

OpenCL与图形 OpenCL的出现是对GPCPU编程的一个响应。人们用GPU处理图形,并且开始使用GPU完成工作中的非图形部分。基于这种趋势,异构计算(已经存在很长时间)与图形发生冲突,因此迫切需要一个行业标准。 OpenCL一直与…