当前位置: 首页 > news >正文

ip与mac-数据包传输过程学习

你管这破玩意叫网络?

内容来源于飞天闪客,以前没有学习过网络的相关基础知识,只会去瞎设置,现在终于是弄明白了。

多台电脑之间想要通信,可以直接通过一条网线进行连接。但是随着网线的增加,这个就会比较繁杂了。
在这里插入图片描述
所以就有了集线器这样的设备。
在这里插入图片描述
集线器会将包不做任何处理的分给每个设备。这样的话就不知道包是谁发给谁的了,但是每个设备都有自己的mac物理地址,数据中再加上从哪个mac来,发送到目标mac地址就好了。
在这里插入图片描述
当然,这个时候,其他电脑其实还是可以看到不属于自己的包的数据的内容,所以就有了新的需求:将包只发给一个设备就好了——更加智能的集线器:交换机。
在这里插入图片描述
交换机内部维护着一张mac地址表,记录了每个设备的mac地址和对应的交换机端口号。这个时候包在传递的时候就会根据包信息,将包数据传输给对应的端口。
但是最开始的时候mac表是空的,是怎么样一点点维护起来的呢?
在这里插入图片描述
一开始的时候交换机就是一个集线器,不过它知道学习,把流经自己的数据包携带的信息记录下来了,然后就学习到对应的mac映射表:
在这里插入图片描述
这基本就是现在常用的单交换机的形式,但是交换机的端口也不够用了怎么办呢?于是就有了多个交换机之间的通信。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这个时候一个端口对应的mac地址也就会变多了,所以要维护的mac地址表也就会逐渐增加,此时应该怎么办呢?
那这时就又有了新的设备了,在交换机与交换机之间连接一个新的设备。没错,就是大家非常常见的路由器了。
在这里插入图片描述
它的功能就是作为一台独立的mac地址设备,将数据包作一次性转发。路由器每个端口都是由独立的mac地址。
左边的端口6对应路由器的mac地址,那问题是端口6的数据怎么先发给路由器的呢(原本是要发给E,F,G,H这四个设备的)?
此时就引入了ip地址的概念了192.168.0.1。此时我们再来看完整的发布过程:
在这里插入图片描述
一包数据带有对应的源mac,目标mac。源ip,目标ip等信息。
a与b通信时,直接可以通过交换机获得信息,通过源mac和目标mac就可以传递。
a与c通信时,a需要先把数据发给路由器,然后再转交给c。
a要给c,过程中先给到路由器,所以数据链路层的目标mac要是路由器的mac地址,网络层的ip必须时a的ip到c的ip。
先看传给路由器的时候,数据是:
在这里插入图片描述
由于数据先给路由器,此时的目标mac和目标ip对应如上所示。接下来路由器给到c的时候,有个神奇的过程,它会把目标mac自动变成目标ip对应的mac地址。
在这里插入图片描述
那么问题就来了,如果a给c发送数据,怎么知道需要路由器转发数据呢?
这里就涉及到子网的概念,如果源ip与目标ip再同一个子网,直接将包通过交换机发出去。如果源ip与目标ip不在同一个子网,就会交给路由器去处理。是否在同一个子网又是通过掩码去判断的,也就是说192.68.0开头的就是同一个子网,否则就不是同一个子网。
掩码常用255.255.255.0,将原ip与掩码进行与运算,相等就是同一个子网。计算结果如下:
在这里插入图片描述
第二个问题,a怎么知道哪个是路由器的呢?
有一个默认网关的概念,默认网关就是一个ip地址。当遇到不是在同一个子网的电脑时,先把包发给默认网关对应的ip地址,所以就会先给路由器的ip地址。
在这里插入图片描述
还有一个问题,数据包在发送时是需要mac地址和ip地址的,现在虽然有了ip的相关数据了,但是没有mac地址。

此时是一个叫ARP协议的东西,这个机制会把ip与mac地址进行对应,同样,需要先进行一次映射。这个协议是广泛使用的,交换机和路由器都会要通过ARP协议维护一个ip与mac的映射表。
在这里插入图片描述
对于交换机来说,还有一个路由表,对应的是ip和端口,把目标ip范围得到,查表得到端口。当然也是存在ARP协议的,将mac地址获取到。
在这里插入图片描述
最后我们来完整看一下数据包的传输过程。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
涉及到的三张表分别是mac地址表(交换机)-映射mac地址和端口,路由表-映射ip和端口,arp缓存表(电脑和路由器中都有)-映射ip和mac地址

相关文章:

  • 社交平台推出IP关联机制:增强用户体验与网络安全的新举措
  • 紫光同创FPGA实现AD9238数据采集转UDP网络传输,分享PDS工程源码和技术支持和QT上位机
  • 解决报错 Flask-SQLAlchemy TypeError: ‘float‘ object is not callable
  • Linux内核深入学习(4)——内核常见的数据结构之链表
  • WebRTC技术EasyRTC嵌入式音视频通信SDK助力智能电视搭建沉浸式实时音视频交互
  • 正点原子STM32新建工程
  • 容器化-K8s-镜像仓库使用和应用
  • 【Linux学习】Ubuntu对用户进行管理
  • 云原生安全:错误策略S3存储桶ACL设置为Everyone:FullControl
  • CSS新增表单属性及结构伪类选择器(nth-child)
  • 深入探究AKS Workload Identity
  • AT 指令详解:基于 MCU 的通信控制实战指南AT 指令详解
  • Linux多进程 写时拷贝 物理地址和逻辑地址
  • MATLAB中NLP工具箱支持聚类算法
  • 第 1 章:数字 I/O 与串口通信(GPIO UART)
  • 音视频之H.265/HEVC率失真优化
  • 7-2 银行业务队列简单模拟
  • HarmonyOS:应用及文件系统空间统计
  • 山东大学计算机图形学期末复习13——CG14上
  • 智能投影仪行业2025数据分析报告
  • 新华每日电讯:把纪律的螺丝拧得紧而又紧
  • 甘肃省白银市一煤矿发生透水事故,3人失联
  • 第1现场|俄媒称乌克兰网上出售北约对乌军培训手册
  • 专访|金七猫奖得主:以非遗为舟,在现实题材中疗愈与成长
  • 上海发文加强直播经济技能人才培养:三年新培养持证直播技能人才5万名
  • 南京艺术学院博导、雕塑家尹悟铭病逝,年仅45岁