首页 > 其他分享 >数据帧传输

数据帧传输

时间:2023-05-27 18:35:42浏览次数:34  
标签:组播 主机 地址 传输 MAC 交换机 转发 数据

数据帧传输

1.数据帧如何传输

数据帧传输_单播



1.数据链路层基于MAC地址进行帧的传输。
2.以太网在二层链路上通过MAC地址来唯一标识网络设备,并且实现局域网上网络设备之间的通信。
3.MAC地址也叫物理地址,大多数网卡厂商把MAC地址烧入了网卡的ROM中。
4.发送端使用接收端的MAC地址作为目的地址。
5.以太帧封装完成后会通过物理层转换成比特流在物理介质上传输。

2.以太网的MAC地址

数据帧传输_单播_02



1.MAC地址由两部分组成,分别是供应商代码和序列号。
2.网络设备的MAC地址是全球唯一的。
3.MAC地址长度为48比特,通常用十六进制表示。
4.MAC地址包含两部分:
5.前24比特是组织唯一标识符(OUI,Organizationally Unique Identifier),由IEEE统一分配给设备制造商。
6.后24位序列号是厂商分配给每个产品的唯一数值,由各个厂商自行分配(这里所说的产品可以是网卡或者其他需要MAC地址的设备)。

3.单播

数据帧传输_数据帧_03



1.局域网上的帧可以通过三种方式发送。
2.第一种是单播,指从单一的源端发送到单一的目的端。
3.每个主机接口由一个MAC地址唯一标识,MAC地址的OUI中,第一字节第8个比特表示地址类型。对于主机MAC地址,这个比特固定为0,表示目的4.MAC地址为此MAC地址的帧都是发送到某个唯一的目的端。
5.在冲突域中,所有主机都能收到源主机发送的单播帧,但是其他主机发现目的地址与本地MAC地址不一致后会丢弃收到的帧,只有真正的目的主机6.才会接收并处理收到的帧。

4.广播

数据帧传输_单播_04



1.第二种发送方式是广播,表示帧从单一的源发送到共享以太网上的所有主机。
2.广播帧的目的MAC地址为十六进制的FF:FF:FF:FF:FF:FF,所有收到该广播帧的主机都要接收并处理这个帧。
3.广播方式会产生大量流量,导致带宽利用率降低,进而影响整个网络的性能。
4.当需要网络中的所有主机都能接收到相同的信息并进行处理的情况下,通常会使用广播方式。

5.组播

数据帧传输_数据帧_05



1.第三种发送方式为组播,组播比广播更加高效。
2.组播转发可以理解为选择性的广播,主机侦听特定组播地址,接收并处理目的MAC地址为该组播MAC地址的帧。
3.组播MAC地址和单播MAC地址是通过第一字节中的第8个比特区分的。组播MAC地址的第8个比特为1,而单播MAC地址的第8个比特为0。
4.当需要网络上的一组主机(而不是全部主机)接收相同信息,并且其他主机不受影响的情况下通常会使用组播方式。

6.数据帧的发送和接收

数据帧传输_单播_06



1.当主机接收到的数据帧所包含的目的MAC地址是自己时,会把以太网封装剥掉后送往上层协议。
2.帧从主机的物理接口发送出来后,通过传输介质传输到目的端。共享网络中,这个帧可能到达多个主机。
3.主机检查帧头中的目的MAC地址,如果目的MAC地址不是本机MAC地址,也不是本机侦听的组播或广播MAC地址,则主机会丢弃收到的帧。
4.如果目的MAC地址是本机MAC地址,则接收该帧,检查帧校验序列(FCS)字段,并与本机计算的值对比来确定帧在传输过程中是否保持了完整性。
5.如果帧的FCS值与本机计算的值不同,主机会认为帧已被破坏,并会丢弃该帧。
6.如果该帧通过了FCS校验,则主机会根据帧头部中的Type字段来确定将帧发送给上层哪个协议处理。
7.本例中,Type字段的值为0x0800,表明该帧需要发送到IP协议上处理。在发送给IP协议之前,帧的头部和尾部会被剥掉。

交换机的基本原理

1.小型交换网络

数据帧传输_单播_07

交换机的转发行为

数据帧传输_组播_08

1、交换机中有一个MAC地址表,里面存放了MAC地址与交换机端口的映射关系。

MAC地址表也称为CAM(Content Addressable Memory)表。

2、交换机对帧的转发操作行为一共有三种:

泛洪(Flooding),转发(Forwarding),丢弃(Discarding)。



1.泛洪:交换机把从某一端口进来的帧通过所有其它的端口转发出去。

2.转发:交换机把从某一端口进来的帧通过另一个端口转发出去。

3.丢弃:交换机把从某一端口进来的帧直接丢弃。

2.交换机初始状态

数据帧传输_单播_09

1.初始状态下,交换机并不知道所连接主机的MAC地址,所以MAC地址表为空。SWA为初始状态

在收到主机A发送的数据帧之前,MAC地址表中没有任何表项。


数据帧传输_组播_10

2.交换机将收到的数据帧的源MAC地址和对应接口记录到MAC地址表中

主机A发送数据给主机C时,一般会首先发送ARP请求来获取主机C的MAC地址,此ARP请求帧中的目的MAC地址是广播地址,源MAC地址是自己的MAC地址

SWA收到该帧后,会将源MAC地址和接收端口的映射关系添加到MAC地址表中。

缺省情况下,交换机学习到的MAC地址表项的老化时间为300秒。

如果在老化时间内再次收到主机A发送的数据帧,SWA中保存的主机A的MAC地址和G0/0/1的映射的老化时间会被刷新。

此后,如果交换机收到目标MAC地址为00-01-02-03-04-AA的数据帧时,都将通过G0/0/1端口转发。


3.转发数据帧

数据帧传输_单播_11

1.数据帧的目的MAC地址不在MAC表中,或者目的MAC地址为广播地址时,交换机会泛洪该帧。

主机A发送的数据帧的目的MAC地址为广播地址,所以交换机会将此数据帧通过G0/0/2和G0/0/3端口广播到主机B和主机C。


数据帧传输_组播_12

2.交换机根据MAC地址表将目标主机的回复信息单播转发给源主机。

主机B和主机C接收到此数据帧后,都会查看该ARP数据帧。

但是主机B不会回复该帧,主机C会处理该帧并发送ARP回应,此回复数据帧的目的MAC地址为主机A的MAC地址,源MAC地址为主机C的MAC地址。SWA收到回复数据帧时,会将该帧的源MAC地址和接口的映射关系添加到MAC地址表中。

如果此映射关系在MAC地址表已经存在,则会被刷新。然后SWA查询MAC地址表,根据帧的目的MAC地址找到对应的转发端口后,从G0/0/1转发此数据帧。


标签:组播,主机,地址,传输,MAC,交换机,转发,数据
From: https://blog.51cto.com/u_16133006/6362798

相关文章

  • 读取WINCC归档数据-WPF程序-2
       读取WINCC归档数据-可以读取实时WINCC数据和以往的数据,本文介绍读取实时数据的方法。  读取实际运行PLC的方法要简单些,这里介绍的是仿真读取。  1.运行博图并仿真程序 2.运行WINCC 3.用MicrosoftSQLServerManagementStudio18监视连接  ......
  • Doris(二) -- 基本概念和数据表模型
    字段类型数据类型字节范围TINYINT1字节-2^7+1~2^7-1SMALLINT2字节-2^15+1~2^15-1INT4字节-2^31+1~2^31-1BIGINT8字节-2^63+1~2^63-1LARGEINT16字节-2^127+1~2^127-1FLOAT4字节支持科学计数法DOUBLE......
  • 自定义导出Excel表列数据(根据所选的列,选几列导出几列数据,不选则全部导出)
       ......
  • 读<Wireshark数据包分析实战-第3版>之流量分类
    目录广播流量广播流量在各个网络层的地址是?对广播地址一直发送数据包,会导致整个局域网网络堵塞吗?组播流量单播流量广播流量广播流量是指在计算机网络中,发送者将数据包(通常是单播)传输给局域网内所有设备的通信方式。广播流量数据包具有特殊的目标地址,即“广播地址”,这使得接收......
  • aws athena创建库表读取s3数据并查询
    建表CREATEEXTERNALTABLEtestlogdb.testlog(`date`string,`log`string)PARTITIONEDBY(yearint,monthint,dayint)ROWFORMATSERDE'org.openx.data.jsonserde.JsonSerDe'WITHSERDEPROPERTIES('ignore.malformed.json'='true......
  • 记一次redis数据库RDB内存事故排查处理
    事故表现:redis状态正常,但客户端不能使用,定位日志结论,redis内存申请不通过,导致中断用户操作解决办法1.解锁相关配置(不能解决根本问题,根本原因来源于开发使用姿势不对)两种解决办法一.打开系统层始终同意分配内存(不建议)编辑文件/etc/sysctl.conf添加vm.overcommit_memory=1内核参......
  • 读<Wireshark数据包分析实战-第3版>之网络设备
    集线器集线器(Hub)是网络硬件设备,用于连接多个以太网设备,使它们可以在一个局域网(LAN)内通信。集线器接收来自连接设备的数据包,并将这些数据包广播到所有连接的设备上。集线器工作在OSI模型的第一层,即物理层。相较于交换机和路由器,集线器对流量处理能力较弱,容易产生冲突和拥塞。现如......
  • 数据库系统原理-实验二
    一、实验目的:掌握使用SQL语言进行各种查询的操作和视图的操纵方法。二、实验要求:在现有的数据库上进行各种查询操作,对视图的创建、使用等操作。三、实验步骤:1、开始→程序→MicrosoftSQLServer→SQLServerManagementStudio。2、在“连接到服务器”对话框中,选择......
  • 基于JAVA的sprinboot+vue车辆充电桩,附源码+数据库+论文+PPT
    1、项目介绍利用springboot、Java、idea和mysql数据库等知识点,结合相关设计模式、以及软件工程的相关知识,设计一个车辆充电桩管理系统,来进行记录用户的信息,以及系统信息的增删改查的功能,根据实现需求,系统需完成这些基本功能:(1)系统合理显示系统首页界面,管理员界面,用户界面和维修员......
  • 【pandas基础】--数据类型
    数据类型是计算机编程中将不同类型的数据值分类和定义的方式。通过数据类型,可以确定数据的存储方式和内存占用量,了解不同类型的数据进行各种运算的能力。使用pandas进行数据分析时,最常用到的几种类型是:字符串类型,各类文本内容都是字符串类型数值类型,包括整数和浮点数,可用于计......