Hub&Switch工作原理,冲突域,以太网帧结构笔记(2017年10月9日 11:15:46)

一、冲突域

网络中发送的主要是应用程序产生的数据。

数据流需要网络设备进行数据转发,任何应用程序在发送数据流之前都要进行数据封装。

比如:SMAC DMAC | SIP DIP | 报头(Source Port、Destination Port)| QQ的数据载荷(数据流)|

电信号、光信号进行发送

冲突域最早涉及的是总线型网络环境(已被淘汰)。需要使用设备集线器(HUB)(已被淘汰)。只支持半双工。

 CSMA/CD:载波侦听多路访问/冲突检测,能减少数据冲突发生的概率。

当CSMA/CD第一个收到数据碎片的端口会产生一个冲突报警信令,会开启一个随机计时器。计时器结束前,数据不能传输。

冲突域:(官方定义)当冲突产生的时候,冲突碎片所能影响到的设备的集合。

    冲突域内,任何两台主机同时发送数据,就会产生冲突。

    每一个总线型网络都是一个冲突域。(冲突域越小越好)每次冲突就是一次断网。

冲突域已经是一个历史了(现在使用的是交换)

二、数据链路层

基于线缆需要定一些规则(局域网协议LAN(Ethernet,Token Ring,FDDI),广域网协议WAN(HDLC,PPP.ATM.帧中继Frame-Relay)),优化我们的传输规则。

网络中我们传输信息, 需要一个地址信息来做一个定位。

定制 数据传输的格式(封装的格式),固定的格式,有利于索引。

当前网络主要使用以太网协议(Ethernet).(带宽会比较高,支持长的传输距离,易于开发,线材价格便宜)

现在垄断整个网络的是TCP/IP协议。

以太网定义的规则是没有规则,非常人性化。

一般定义的为MA(多路访问网络),对应的是P2P(点到点)网络。

早期的Token Ring(令牌环),整个网络中的令牌只有一个。

 ROM(read only memory);BIA(Burned in Address)烧录地址

MAC地址(介质访问控制地址 Media Access Control),以太网网卡都拥有。IANA()出售各种地址(mac、ipv4、ipv6.....网络中能见到的地址都卖),每次购买都是一段一起买(2的24次方)

MAC是48bit,有6Byte  ,前24位叫OUI(组织唯一标识符)xxxx.xx,后24位是Interface-ID xx.xxxx

xxxx.xxxx.xxxx(标准的例如cisco)   (每段都是16进制)

(xx:xx:xx:xx:xx:xx)Windows、(xx-xx-xx-xx-xx-xx)Mac&华为

 地址在网络中标识的是网卡,网卡也叫节点。

通信规则:以太网通信里必须要有 Source MAC & Destination MAC

(Source MAC描述流量是由谁发出,Destination MAC地址描述流量由谁接收。)

 中间的网络设备读取源目MAC地址信息就知道数据是由谁发的,发给谁,根据接口的连接信息,来判断流量从那个接口发送出去。

三、封装(给数据载荷添加报头的过程)

任何一种程序进行通信(数据载荷),等同于把信纸放在信封中。

Ethernet2 | IPv4 | TCP | HTTP(超文本传输协议)| FCS

TCP:端口号信息;IPv4:源目地址信息,描述是由哪个网卡发出,是由哪个网卡接收;Ethernet2:包含的源目MAC地址信息(给网络设备看的,谁发谁收)

 

Ethernet_ii :只关心帧头帧尾

     ( D_MAC:目的MAC地址信息(6Byte) S_MAC:源MACA地址信息(6Byte))---给交换机看的

     (Type:类型(2Byte)--用来给2层设备描述以太网帧(三层)使用的是什么协议 ) 

     (Data:数据       FCS:帧校验序列真伪)

三层使用的IPV4的话:所对应的值是 0X0800(0x表示十六进制,0800对应的就是IPv4)

三层用的是IPv6的话:所对应的值是0X86DD (0x表示十六进制,86DD对应的就是IPv6)

三层用的是ARP的话:所对应的值是0X8606 (0x表示十六进制,8606对应的就是ARP)

三层用的是MPOS的话:单播和主播分别对应的是(0x8847\0x8848)

Type类型字段中:散列函数  HASH(哈希)  完整性校验,得出的结果是一串定长的乱码(4Byte)----FCS。当交换机收到帧后,会对帧头进行散列计算,也得出一串乱码,然后对比计算得到的乱码跟帧携带的乱码FCS是否一致。

如果一致,则帧头没有发生任何改变,交换机就会继续进行转发处理;

如果不一致,代表帧在传输过程中出现了数据冲突,FCS会直接丢弃。

使用的是CRC(循环冗余校验)算法,但是在散列中使用得不多。

在散列中使用得最多算法的是:MD5,SHA-1,SHA-2(其中SHA-2是业界用得最多的算法)。

散列计算还包括:不等偿输入,等偿输出,雪崩效应,防止冲突,不可逆。。。。(TCP/IP协议详解)

 

以太网中有两种协议可以使用。

1、以太网二协议 ,多用于正常数据层面的流量。(数据层面流量指应用程序产生的流量(数字层面))

2、IEEE 802.3公有化协议(IEEE:电子电气工程师协会),所有控制层面的流量。(除了PC以外,比如交换机路由器等运行的协议(STP,VTP,CDP,GARP,GVRP...),用来同步参数,链路捆绑等)

这两种封装是兼容的,但是两端要一样封装。否则会出现兼容性问题。

5-6-7层:数据载荷。PC跟服务器等

4层  :标识源目应用程序的端口号。

3层  :标识的是源目地址信息。路由器等。

2层  :以太网定义的报头,源目2层地址信息(2层跟以上才可以看懂)交换机等。

1层  :物理层的HUB等(读不懂2层信息,所以泛洪)。

 

 IEEE802.3:

Length:指去掉帧头帧尾后所封装的数据包以供有多少字节(最大1500Byte),以太网卡最大传输单元 (MTU),目的是限制网卡一次性最大能发送多少字节的数值。

LLC:也叫802.2  包含:D.SAP(目的服务接入点) 、 S.SAP(源服务接入点) 、 Control (控制字段)值基本是固定不变的。

 D.SAP、 S.SAP用来描述802.3后面跟的是那种类型的帧。()

SNAP: 子网接入点,包含Org Code 、Type

怎样确定是收到的哪个类型的帧:Length/Type >=1563 (0X0600)   Ethernet_II

               Length/Type <=1500 (0X05DC)  IEEE802.3

组建的网路架构设备有HUB  SWITCH

HUB组建的是总线形网络架构。比较LOW,已经被淘汰了。

Switch 组建的以太网结构叫星形网络结构。带宽高,装法强。基本都是100M起。提供的是独享带宽。

交换机组建的骨干链路,最好使用十倍带宽的链路来进行集联,或者可能会出现瓶颈。

交换机接口的双工模式100%是全双工。全双工的环境下是绝对不会产生数据冲突的。

交换机连接的环境中,是绝对不要担心有会有冲突发生的。不再需要CSMA/CD做链路的监听。发送效率非常高。最低级也是二层设备。

能识别帧头帧尾,能判断数据发给谁,能把数据做一个精确的数据转发。(分为控制层面与数据层面)

接入层交换机是最多的。

控制层面:如何获得转发表项。MAC地址表,任何厂商交换机都有这一张表。(连接的PC的MAC地址,连接PC的自身接口标识。)

    刚开机的时候MAC地址表是空的。

    (1、管理员登录交换机进行配置命令,手工告诉交换机哪个端口获得哪个MAC,静态的MAC表项优先级是最高的(最适用的情况就是有人攻击交换机的情况下使用)。)

    (2、交换机在运作中,自动学习MAC地址表项,根据接收的帧的源MAC地址和接收接口这两样参数做绑定。会有一个冷话计时器,当表项多久没有刷新就会删除。(Aging Timer 老化计时器 思科华为默认是300s)。

对于交换机而言,一个接口只能连接一个计算机当两个接口分别学到同一个MAC地址信息时,会把后学的表项替代前面学到的表项

但是非常不靠谱,没有独立的机制来做连接的信息获悉,只能在实时的流量交互,通过接口收到帧,这个帧是PC A发的,那么就认为这个连接是PC A ,通过这样的方式来做一个连接方式的学习。

手工的优先级   >高于  自动学习的优先级

在复杂的环境中,交换机经常出现环路(按照错误的路径信息来转发数据,从而引起广播风暴,导致整个网络无法工作。)

 

根据D MAC来查找MAC地址表:

1、没有找到对应的表项:交换机会学习HUB,进行泛洪的方式来进行转发,保证接受者能收到数据。

2、找到对应的表项:那么就要看对应的表项跟接收这个帧的接口是不是同一个接口。

3、精确转发

 

交换机的二层接口具备分割冲突域的这个功能,交换机的每个接口连接的是独立的冲突域。

交换机功能:转发流量,信号放大(把帧还原成最原始最清晰的样貌),

 信号放大是所有网络设备都支持的一个功能。

 缺陷:IPV4支持Unicast (单播流量)、Multicast(组播流量)、Broadcast(广播流量)

Unicast (单播流量):一对一的流量

Multicast(组播流量):一对多的流量(一个人发,多个人收(情愿收的情况下才会收(类似收音机))),可以在不同位置。自愿性。

Broadcast(广播流量):一个范围内能英雄所有人的流量(一个人发,一个范围内的所有人都必须接收。)带有强制性

---单播地址:主要看第八位,单播为0(第二个16进制数为偶数)。标识的是一个节点,D为单,M为单

---组播地址:组播为1  (IPV4中为0100.5E)。D为单,S为组播(一组想要接收这个流量的接收者)

---广播地址:有且只有一个(FFFF.FFFF.FFFF)。D为单,S为广播

自身都是单播。交换机的MAC地址表中,学到的都是单播MAC地址表项。发送者都是一个独立的节点。对于组播和广播,会以找不到对应的MAC地址的表项来转发-----泛洪

交换机网络内任何一个节点发送组播或者广播,那么这个网络内其他所有的节点都能收到。--------广播域(Broadcast Domain):一个广播所能影响到的设备的集合。(交换机所连接的所有计算机连同交换机在内所形成的这个星型网络中的所有成员属于同一个广播域

广播域也叫网络。

广播域越小越好,广播域越小,被恶性广播影响越小,网络就越好。

切分广播域:早期通过路由器来操作(路由器装法效率低,功能也不好,接口少,价格贵

      VLAN

数据层面:如何利用转发表项中的具体内容做数据转发。

 

四、总结

1、HUB是1层设备,以泛洪的形式来转发流量,HUB连接的设备组成的是一个冲突域。

2、交换机的二层接口能识别收到的是不是冲突碎片,能分割冲突域,面对组播和广播的时候只能以泛洪的形式来转发。包括交换机在内,所连接的设备组成的是一个广播域。

3、路由器:3层设备,既能分割冲突域,也能分割广播域。早期通过交换机连接设备组成网络,路由器来分割多个网络,能尽可能减少广播域内PC的数量,增加广播域的可用性。

 

五、

网络设备如何确定以太网数据组的上层协议?

:以太网二帧的从左往右数第三个字段(类型字段)的值--直接告诉你,你的3层使用的是哪款协议。

 

终端设备接收到数据帧时,会如何处理?

:先看FCS,看看帧是否OK。OK之后,去掉帧头,得到数据载荷交给应用程序,

去掉报头:解封装

 

posted @ 2017-10-09 12:23  yeison  阅读(1270)  评论(0编辑  收藏  举报