【剧前爆米花--爪哇岛寻宝】网络原理——ip地址管理,路由选择和数据链路层数据帧

news2024/11/11 23:09:14

作者:困了电视剧

专栏:《JavaEE初阶》

文章分布:这是一篇关于网络原理的文章,在这篇文章中我会具体介绍ip地址的分配管理,信息传输的路由选择以及以以太网来举例的数据链路层数据帧,希望对你有所帮助!

 

目录

地址管理

ip地址的分配

动态分配ip地址

NAT机制

IPv6

ip地址的组成

ip地址分类(ABCDE)

子网掩码

路由选择

数据链路层数据帧

最大载荷长度MTU


地址管理

ip地址的分配

上图是ip协议的协议头格式,由此表可以看出,IP地址本质上是一个32位的整数,在表示的时候,我们通常会将这个32位的整数用点分十进制的方式进行表示,即三个点,把这个整数分成4个部分,每个部分一个字节。

设备需要进行通信,就必须有ip地址的参与,32位整数最多能表示32亿九千万个不同的地址,这个数字看上去很庞大,但是全世界有很多的电脑,服务器和手机等,在这个数字面前,32亿又显得十分渺小,那么该如何解决上述问题呢?ip协议采用了如下的几个方法。

动态分配ip地址

设备上网才分配,不上网就不分配,这样就可以省下一大批的ip地址了。

不过,这种方法并没有增加ip地址的总数,只能一定程度的缓解,并不能解决问题。

NAT机制

NAT机制是将所有的ip地址分成两大类,即内网ip和外网ip,这里的内网和外网分别指的是一定范围内的局域网和这个范围之外一定范围的广域网。

所以,外网ip必须是唯一的,而内网ip则可以重复出现,尤其是在不同的局域网中。

内网设备如果要访问外网,会给他分配一个外网ip,但是这个外网ip不是这个设备独占的,而是这个内网中所有的设备都共用这一个外网ip。

这样说可能有点抽象,我们现在用快递的方式来举个栗子:

比如说现在有一个小区叫比奇堡小区,然后这个小区设有一个菜鸟驿站,我是比奇堡的一员,我现在要从淘宝上买一个东西,我在填收货地址的时候我一定填的是比奇堡菜鸟驿站,不光是我,整个比奇堡所有的居民填的收货地址都是比奇堡菜鸟驿站,这里就可以将比奇堡中的居民抽象成内网ip,把菜鸟驿站抽象成那个唯一的外网ip,这样一个外网ip就可以代表一系列的设备了。

理解完这点后我用实际运转的过程进行举例:

现在有甲乙两台主机,甲主机需要从百度上搜小哥哥看,乙主机需要从百度上搜小姐姐看,于是他们都发了一个数据报,源ip是他们自己的ip地址,而目的ip是百度服务器的ip地址,现在他们的数据报需要经过一个路由器,这个路由器的在收到他们的数据报后,会将源ip改为路由器自己本身的ip地址,这个ip地址是外网的ip地址,然后通过这个外网的ip地址与百度服务器进行通信,百度服务器也会将数据返回给这个路由器。

 那这个路由器又是怎么区分这些主机的呢?本来端口号是用来区分同一个主机的不同程序的,那能用端口来区不同主机的不同的程序吗?当然可以,路由器通过这些不同的端口来识别不同的主机,然后再将信息发送给正确的主机上。

这个过程也直接说明了:外网的设备是无法直接访问内网的设备的。

IPv6

IPv6从根本上解决了ip不够用的问题。

IPv4是传统的IP协议,使用4个字节,32位来表示ip地址,IPv6是更新一些的IP协议,使用16个字节,128位来表示ip地址,这样一共就可以表示2的128次方个ip地址,这个数字太大了,完全有能力将每一个设备都附上一个不同的ip地址。

ip地址的组成

ip地址分为两个部分,即网络号和主机号。

网络号:标识网段(标识一个局域网),保证相互连接的两个网段具有不同的标识;

主机号:标识主机(标识了一个局域网中的主机),同一网段内,主机之间具有相同的网络号,但是必须有不同的主机号。

注:一个路由器具有两个ip地址,分别是在不同的局域网中,一个路由器的作用就是将两个局域网连接起来。

现在问题来了,一个ip地址中,哪个部分是网络号,哪个部分是主机号,对于网络号和主机号的划分主要采用了如下的两种分类方式:

ip地址分类(ABCDE)

理论中的划分方式,现实中几乎已经淘汰的方式。

如图,IP地址会被划分为ABCDE五类,每一类都有一个固定的划分方式,然后通过前缀来区分这个ip地址是哪一类的。

弊端:AB类的主机号太长了,实际上很少有这么大的局域网。

子网掩码

子网掩码是真实的划分方式。

子网掩码,站在二进制的角度来看也是一个32位的整数(ip地址也是32位),只不过子网掩码左侧都是1,右侧都是0,不会出现1010这种混合出现的情况。

左侧有几个1,就代表ip地址的哪些位是网络号

 255转换成二进制就是1111,所以这个子网掩码的意思就是,前12位都是网络号,后4位是主机号。

拓,特殊的ip地址,假定子网掩码是255.255.255.0:

1.主机号为全1的ip,比如:192.168.0.255,一般为广播地址,往这个地址上发送udp数据报,这个数据报就会被转发给整个局域网中的所有主机(TCP不支持广播)

2.ip为127开头的成为环回ip,比如127.0.0.1,环回ip对应特殊的虚拟网卡lo,通过环回ip传输的数据,走这个虚拟网卡(这个过程没有IO操作,纯内存操作),要比一般的这种普通ip的数据传输的要快。

3.主机号为1,比如192.168.0.1,一般称为“网关ip”,局域网的出入口。

路由选择

有一个问题,我的一条信息从A 发到B ,具体路线应该怎么走?互联网存在大量的冗余,A和B之间存在很多种不同的路线,具体走哪条?路由选择要做的事情就是这个。

听上去比较像高德地图,但不同的是,高德地图是站在上帝视角,即对于整个地区的地图是非常清晰的,但是在网络上,则没有那么容易,因为网络环境太复杂了,所以某个路由器无法将整个网络环境都记录下来,路由器只能记录周围的情况(路由器中使用路由表这样的数据结构来记录邻居的信息)。

实际的转发过程是渐进式的,类似于“问路一样”,逐渐接近最终目标,举个栗子:

比如说A想到达B,A的周围有C,于是A就问C,B在哪里,C表示我也不知道,但我知道D在哪,D知道的比我多,你可以去问问他,于是A按照C的指引找到了D,D说我也不知道,但我知道E在哪,E懂得比我多,于是A又按照D的指引找到了E,最终E说B我知道,于是A在E的指引下找到了B,结束。

ip数据报,在进行网络转发的过程中,就是一个“逐渐问路”的过程,每个路由器只能认识周围的情况,很可能问的目标并不知道(不知道指的是:目的ip在路由表中,没有匹配结果的),此时就会走路由器给你指出的一条默认的路径(这个路径是路由表中的“下一跳表项”)。

这个“下一跳表项”会把咱们的数据报指引向更上一级的路由器,越上级的路由器,见识就越广。

数据链路层数据帧

"以太网" 不是一种具体的网络,而是一种技术标准;既包含了数据链路层的内容,也包含了一些物理层的内容。例如:规定了网络拓扑结构,访问控制方式,传输速率等,以太网是当前应用最广泛的局域网技术;和以太网并列的还有令牌环网,无线LAN等。

所以我们这里通过以太网来进行举例:

如图,此图就是以太网数据帧的结构,这里的目的地址和源地址都是mac地址,什么是mac地址?mac地址是网卡的硬件地址,由于mac地址占用6个字节,比4个字节大了6w多倍,所以相比于不够用的ipv4,mac地址目前还是够用的,当前mac地址是可以做到每个设备都是唯一的,并且mac地址也不需要动态分配,一般都是在出厂的时候就写死的。

这个图中有一个1500,1500的意思是,一个以太网数据帧,载荷最大长度就是1500字节,注意:这里的1500只是以太网规定的1500,不同的数据链路层协议对应不同的硬件物理设备,为什么要这样设置呢?这些数据都需要利用网线这个硬件设备进行传输,网线一次传输的量是有限的,所以每一个数据帧的大小放小一点有利于数据的传输。

最大载荷长度MTU

我们把这个数据链路层数据帧的最大载荷长度成为MTU。

如果承载的数据长度超过了MTU,就会在ip层进行分包(ip的一个工作就是完成这个分包/组包),使每个分出来的结果都能在MTU之内。

16位标识:一个大的ip数据报,拆成多个小的数据报之后,这些小的数据报的标识都是相同的。

3位标志:有一位不用,有一位标识是否分包了,还有一位表示当前这个分包是否是最后一个(结束标记)。

13位片偏移:表示每个小的数据报之间的先后顺序,用来组包的。

具体过程可参考该图;

 以上就是本篇博客的全部内容,如有疏漏,欢迎指正!

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

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

相关文章

IDE /Qt Creator 文本编辑器之文件编码设置

文章目录 概述"QtCreator 文件编码" 配置项的使用效果将代码文件修改为GB2312编码"QtCreator 文件编码" 配置项的功能不会影响qml文件的加载方式改动pro文件的编码格式?其他 概述 在 Qt Creator 工具 - 选项 - 文本编辑器 - 行为选项卡中,存在…

RabbitMQ入门指南

人生永没有终点。只有等到你瞑目的那一刻,才能说你走完了人生路,在此之前,新的第一次始终有,新的挑战依然在,新的感悟不断涌现。 文章目录 一、MQ与RabbitMQ概述1. MQ简述2. MQ的优势3. MQ的劣势4. 常见的MQ产品5. Rab…

【Redis】Redis高可用

目录 主从复制1. 全量复制2. 增量复制3. 主从复制的问题(1). 主从复制延迟(2). 读到过期数据(3). 主从配置不一致导致数据丢失(4). 全量复制性能损耗大(5). 主…

机器人动力学与控制学习笔记(十五)——机器人路径规划

十五、机器人路径规划 15.1 机器人运动规划 机器人运动规划包含三个层次的内容:即路径规划、轨迹规划、轨迹跟踪或轨迹控制。路径规划是确定不含时间信息的几何路径。一般的工业机器人中都含有点到点,直线,圆弧及样条曲线等常用轨迹的路径…

【进程】进程概念及相关函数实现

目录 0. 进程概述 1. 创建进程 1.1 进程的创建:fork函数 1.2 进程的等待:wait()、waitpid() 1.3 特殊进程:僵尸进程、孤儿进程、守护进程 1.4 进程的终止:exit和_exit函数 1.5 进程退出清理:atexit函数 1.6 进…

【我的创作纪念日】关于某站的音频爬虫+GUI

文章目录 一、前言&机遇二、爬虫代码三、爬虫GUI四、文件打包五、结果展示未来可期 一、前言&机遇 许久没看私信内容,一上线就看到了官方的私信,我已经来到CSDN1024天啦! 想到注册这个号的初衷是学习记录爬虫,后面渐渐变…

抖音产业带服务商哪些类目在招募?开通需要什么条件?

5月,刚刚结束的抖音电商生态大会上,抖音电商总裁魏雯雯披露,近一年平台GMV增幅超80%。其中,商城GMV同比增长277%,电商搜索GMV同比增长159%,货架场景GMV在平台GMV占比超30%。过去一年,抖音电商直…

数据结构与算法——树与二叉树

😊数据结构与算法——树与二叉树 🚀前言🚀树🚢树的定义🚢树的基本术语🚢有序树和无序树🚢森林 🚀二叉树🚢二叉树的定义🚢二叉树的性质🚢满二叉树&…

【VUE】Element UI 表单校验出现async-validator: [‘discipline is required‘]报错

问题:async-validator: [discipline is required] 选择器已经获取到数值,却显示获取到 解决办法如下

线性规划算法

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家:点击跳转 本文部分内容来自网友博客 一,线性规划 例如,一个企业“生产计划”的线性规划模型如下: 是subjec…

​如何优雅的卸载Edge浏览器

如何优雅的卸载Edge浏览器 由于Edge浏览器越来越复杂,功能越来越繁琐我是真的一刻也用不下去了。虽然我主力是火狐浏览器,Edge用来访问一些只能使用Chromium内核的网页作为备用。 但是我现在一打开Edge浏览器我就窝火,也懒得再去调整优化&a…

【表格树状】jqgrid表格树状折叠效果实现(附代码,留邮箱发demo)

【写在前面】有段时间没好好的整理一篇前端文章了,之前的6月城市活动也结束了,期待下周的榜单公布,其实这个月还有一个东西也让我牵肠挂肚的,就是软考的成绩也会在这个月的中旬公布,也是感觉很悬。既成定局&#xff0c…

【中间件-Openjob】高性能任务调度框架Openjob简介及快速搭建

介绍基础基础信息任务调度框架对比 特性高可靠高性能定时调度分布式计算延迟任务工作流程权限管理告警监控跨语言 安装访问docker-compose安装在线访问 总结 介绍 一款分布式高性能任务调度框架,支持多种定时任务、延时任务、工作流设计、轻量级分布式计算、无限水平…

el-form动态嵌套表单验证

v-for 遍历的表单校验 根据官网的介绍&#xff0c;是在 el-form-item 中使用 :rules 属性&#xff0c;同时 prop 属性直接定位到具体循环元素。这个用法的前提是在循环外面包裹一个 el-form 元素&#xff0c;v-for 位于 el-form-item 中。 <template><el-form:model…

深入浅出对话系统——对话管理与对话生成

引言 对话管理 我们知道对话管理主要包括状态追踪(DST)和策略优化(DPO)。 对话管理模块包含两个子任务&#xff1a; 对话状态追踪(Dialogue State Tracking) 根据用户输入和对话历史识别对话状态&#xff1b;策略学习(Policy Learning) 根据识别到的对话状态选择合适的下一步…

BC SU21 对象 ZJHD_LGO 已交付;只能进行有限更改

ECC 升级S4 库位从ECC的唯一库位 → S4 工厂 库位才能唯一。 那原先的 依据库存地 控制库位的zjhd打印机的权限需要新增工厂字段。 但是su21的修改的时候 提示 &#xff1a;对象 ZJHD_LGO 已交付&#xff1b;只能进行有限更改 查了一下&#xff0c;SAP官方说只能 把该权限…

HCIP第二次作业

要求&#xff1a;R1-R2-R3-R4-R5 RIP 100运行版本2 R6-R7 RIP 200 运行版本1 1.使用合理IP地址规划网络&#xff0c;各自创建环回接口 2.R1创建环回 172.16.1.1/24 172.16.2.1/24 172.16.3.1/24 3.要求R3使用R2访问R1环回 4.减少路由条目数量&#xff0c;R1-R2之间增加路由传递…

部署springboot项目读取外部配置文件

我们在部署springboot项目的时候&#xff0c;经常会遇到这样的情况&#xff1a;测试环境与生产环境的配置不一样&#xff0c;这就导致每次部署的时候都要修改配置文件再打包&#xff0c;即使用了nacos进行配置管理&#xff0c;但测试环境与生产环境的nacos部署的地方肯定不一样…

MyBatis简单入门

文章目录 快速入Mapper代理开发具体步骤使用mapper代理中的包扫描 查询字段名称不一致问题方法一&#xff1a;对SQL语句起别名方法二&#xff1a; 采用resultMap映射 条件查询单条件查询SQL中特殊字符的处理 多条件查询方式一&#xff1a;散装参数方式二&#xff1a;对象参数方…

ABAP:ABAP解析xml文件的方法

目前我在ECC的系统找到两种实现XML解析的办法&#xff0c;第一种是通过strans创建转化例程&#xff0c;然后在程序中调用转化例程来转化xml&#xff0c;第二种是调用方法按照node解析xml。 要转化的xml文件demo如下 <?xml version"1.0" encoding"Windows-…