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

网络2--MAC地址,IP地址的理解

引入:

每一张主机都会有一张网卡,每一张网卡都有一个48bit位的序列号

8ded3a7d141b4c4bbe2264850d3821a4.jpeg

当我们的热点被连上,你查看时,就会出现MAC地址,IP地址

那么他们两个是什么呢???

MAC地址

在同一个局域网中,有很多个主机,两个主机数据相互传输时,可以直接传输,凭的就是每个主机MAC地址不同,当报文到达链路层时,会凭借目的地址(接收的主机的MAC地址)找到相应的主机。

cc5009ac94dc48fc8770e07ea24ea581.png

在同一个局域网中,会有很多个主机,将数据发到局域网之前:

bcddedafa24a4545847dfb3e68ba72ae.png

发出之后在同一个局域网上的网卡都收到了,在硬件层次上收到了,

8b86dea39b0b4995a758633e23bfa297.png

发出去之后的包文在局域网中每一个主机都能收到,只不过会判断是否发送正确(在链路层),对包文进行分析,如果目标mac地址不是目标地址,就会直接将该包文丢弃

 

mac地址保证在局域网中的唯一性

在这个时候就有可能发生数据碰撞问题

以太网发生数据碰撞问题:多个主机在同一个局域网上发送消息

问题的提出

在一个局域网中只允许一个主机,发送越多的主机碰撞的概率就越大,我们看起来这个怎么可能。

可是,任何时刻只允许一个主机发消息,这个时刻特别短

问题的解决

为了解决这个问题时,我们发明了交换机,他的作用是交换机:划分碰撞域,把发生碰撞的主机放到和目标主机的不同层(目的是为了减少碰撞)

局域网可以看作共享资源,多台主机所共享的临界资源,一台主机发送时候,其他主机不能访问

IP地址

fffc1fcb0ebd4f789bb2bb5c250ac48d.png

 

这里的令牌环网和以太网一样,只不过是用令牌来控制主机发送数据的,令牌相当于一个锁,有令牌的主机才可以发送消息,只不过我们不叫锁罢了。

ip地址保证在全网中的唯一性(公网ip是唯一的,私有ip可能重复)

ip地址是一个32位比特位,4个字节大小的,整数,风格类似于192.166.1.1

8de1a6e5bc88429390e4698bd38708f3.png

深入理解

先来讲一个故事没让我们了解ip地址和mac的差异和特点

当我们旅游时候,假设我们从吉林到云南,这个是我们终极计划,这个就是ip地址,第二步我们到达河北,下一步是从河北到陕西。再从陕西到四川,再从四川到云南,在这个过程中,只有我们的终极计划没有改变,这就是IP地址,这些变化的小计划一直在变化,就是MAC地址。

情景再现

让我们再在特定场景中看一下12148abd37e242cbb54425efb141143b.png

 

从图中我们看出,两个主机传输数据,为什么会用到路由器呢?我们讲过,在同一个局域网下,我们可以直接传输,但我们两个主机在不同的局域网下,该怎样传输呢,这就该我们的路由器登场了。

 

一个局域网中有多个主机,路由器也是其中的一个设备,为什么不交给其他的主机,(目的ip判定要交给路由器)两个主机之间传输信息,靠路由器传输,路由器相当于中介。

情景解析:

主机a是以太网下的,主机b是令牌环网下的,主机a传输数据给b,将数据传到链路层,最后到达路由器,路由器解包(以太网中协议),再将有效载荷封装(令牌环网协议),到达b的链路层,再解包到达b的网络层,此时,b的网络层的有效载荷和a的有效载荷一样。即是链路层往上的层的有效载荷一样。

得出结论:

1.ip协议屏蔽了底层网络(链路层)的差异化,靠的是工作在ip层的路由器

2.ip实现了全球主机的软件虚拟层,一切皆是ip报文

3.ip地址,尤其是目的ip,一般都是不会改变的,协助我们进行路径选择,

4.mac地址,出局域网之后,源和目的都要被丢弃,让路由器重新封装

 

 

http://www.lryc.cn/news/349207.html

相关文章:

  • 类型的转换
  • memset函数
  • Java面向对象——多态
  • python 对矩阵与矩阵之间对应位置的元素,做softmax操作,代码实战
  • Angular前端项目在Apache httpd服务器上的部署
  • Oracle 更改数据文件位置的几种常用方式
  • 【opencv】图像畸变校正
  • Charger之二输入电压动态电源原理(VIN-DPM)
  • 【半夜学习MySQL】表结构的操作(含表的创建、修改、删除操作,及如何查看表结构)
  • 曲线救国:window 安装 docker
  • 番外篇 | 利用PyQt5+YOLOv5来搭建目标检测系统(附可视化界面+功能介绍+源代码)
  • Pascal Content数据集
  • 【Unity】使用Resources.LoadAll读取文件的顺序问题
  • pdf怎么标注红色方框?五种PDF标注红色方框方法
  • C++字符串细节,面试题06
  • AutoModelForCausalLM.from_pretrained 函数调用本地权重报错
  • 【qt】动态属性
  • Git知识点总结
  • 【数据库】数据库指令
  • 设计模式——状态模式(State)
  • 理解打包好的vue项目结构dist包
  • 24深圳杯C题18页高质量论文+可执行代码+图表
  • Midjourney Imagine API 申请及使用
  • 电子邮箱是什么?怎么申请一个电子邮箱?
  • C++ 并发编程指南(11)原子操作 | 11.4、通过内存序实现顺序模型
  • 【数据结构】栈和队列专题
  • 2024年程序员最应该关注的几件事?
  • 【初阶数据结构】单链表基础OJ题讲解
  • 基于Java的俄罗斯方块游戏的设计与实现
  • Hadoop 3.4.0+HBase2.5.8+ZooKeeper3.8.4+Hive+Sqoop 分布式高可用集群部署安装 大数据系列二