进制转换方法

网络中的数据可以采用二进制、十进制、或十六进制来表示,了解这些进制对理解IP网络基础知识很有必要。每种进制使用不同的基值表示每一位的数值。二进制每一位只有0和 1两个值,基值为2,二进制数的每一位都可以用2的x次幂来表示,x表示二进制数的位数。十六进制的每一位可以有16个数值,范围为0-F(即0-9和A-F),A对应十进制的10,F对应十进制的15(二进制的1111)。

1、 二进制转换成十进制:展开求和方法

2、 十进制转换成二进制:除2取余方法

3、 十进制转换成十六进制:除16取余方法


4、 二进制转换成十六进制:从右边开始4位分组法

IPV4地址用到是点分十进制表示方法:主要涉及二进制和十进制转换

MAC地址和IPV6地址都会用到十六进制表示

MAC地址

数据链路层基于MAC地址进行帧的传输:

以太网卡的物理地址就是MAC地址。大多数网卡厂商把MAC地址烧入了网卡的ROM 中。

如同每一个人都有一个名字一样,每一台网络设备都用物理地址来标识自己,这个地址就是MAC地址。网络设备的MAC地址是全球唯一的。MAC地址长度为48比特,通常用十六进制表示。MAC地址包含两部分:前 24 比 特 是 组 织 唯 一 标 识 符 ( OUI ,

Organizationally  Unique Identifier),由IEEE统一分配给设备制造商。例如,华为的网络产品的MAC地址前24比特是0x00e0fc。后24位序列号是厂商分配给每个产品的唯一数值,由各个厂商自行分配(这里所说的产品可以是网卡或者其他需要MAC地址的设备)。

单播MAC地址:MAC地址的高8位为0:

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

组播MAC地址:MAC地址的高8位为1:

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

广播MAC地址:48位全是1:

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

以太网帧格式

数据包在以太网物理介质上传播之前必须封装头部和尾部信息。封装后的数据包称为称为数据帧,数据帧中封装的信息决定了数据如何传输。以太网上传输的数据帧有两种格式,选择哪种格式由TCP/IP协议簇中的网络层决定。

数据链路层控制数据帧在物理链路上传输

以太网上使用两种标准帧格式。第一种是上世纪80年代初提出的DIX v2 格式,即

Ethernet II帧格式。Ethernet II后来被IEEE 802标准接纳,并写进了IEEE 802.3x-1997的

3.2.6节。第二种是1983年提出的IEEE 802.3 格式。这两种格式的主要区别在于,Ethernet

II格式中包含一个Type字段,标识以太帧处理完成之后将被发送到哪个上层协议进行处理。

IEEE802.3格式中,同样的位置是长度字段。

不同的Type字段值可以用来区别这两种帧的类型,当Type字段值小于等于1500(或者十六进制的0x05DC)时,帧使用的是IEEE  802.3格式。当Type字段值大于等于1536 (或者十六进制的0x0600)时,帧使用的是Ethernet II格式。以太网中大多数的数据帧使用的是Ethernet II格式。

以太帧中还包括源和目的MAC地址,分别代表发送者的MAC和接收者的MAC,此外还有帧校验序列字段,用于检验传输过程中帧的完整性。

Ethernet_II的帧中各字段说明如下:

1、 DMAC(Destination MAC)是目的MAC地址。DMAC字段长度为6个字节,标识帧的接收者。

2、 SMAC(Source MAC)是源MAC地址。SMAC字段长度为6个字节,标识帧的发送者。

3、 类型字段(Type)用于标识数据字段中包含的高层协议,该字段长度为2个字节。类型字段取值为0x0800的帧代表IP协议帧;类型字段取值为0806的帧代表ARP协议帧。 4、数据字段(Data)是网络层数据,最小长度必须为46字节以保证帧长至少为64字节,数据字段的最大长度为1500字节。

5、循环冗余校验字段(FCS)提供了一种错误检测机制。该字段长度为4个字节。

IEEE802.3帧格式类似于Ethernet_II帧,只是Ethernet_II帧的Type域被802.3帧的 Length域取代,并且占用了Data字段的8个字节作为LLC和SNAP字段。

1.  Length字段定义了Data字段包含的字节数。

2.  逻辑链路控制LLC(Logical Link Control)由目的服务访问点DSAP( Destination

Service Access Point ) 、源服务访问点SSAP (Source Service Access Point)和 Control字段组成。

3.  SNAP(Sub-network Access Protocol)由机构代码(Org Code) 和类型

(Type)字段组成。Org code三个字节都为0。Type字段的含义与Ethernet_II帧中的 Type字段相同。IEEE802.3帧根据DSAP和SSAP字段的取值又可分为以下几类: 1) 当DSAP和SSAP都取特定值0xff时,802.3帧就变成了Netware-ETHERNET 帧,用来承载NetWare类型的数据。

2) 当DSAP和SSAP都取特定值0xaa时,802.3帧就变成了ETHERNET_SNAP帧。

ETHERNET_SNAP帧可以用于传输多种协议。

3) DSAP和SSAP其他的取值均为纯IEEE802.3帧。

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

交换机基本原理

常见的以太网设备包括hub、交换机等。交换机工作在数据链路层,它有效的隔离了以太网中的冲突域,极大地提升了以太网的性能。

随着企业网络的发展,越来越多的用户需要接入到网络,交换机提供的大量的接入端口能够很好地满足这种需求。同时,交换机也彻底解决了困扰早期以太网的冲突问题,极大地提升了以太网的性能,同时也提高了以太网的安全性。

交换机工作在数据链路层,对数据帧进行操作。在收到数据帧后,交换机会根据数据帧的头部信息对数据帧进行转发。

接下来我们以小型交换网络为例,讲解交换机的基本工作原理。

交换机中有一个MAC地址表,里面存放了MAC地址与交换机端口的映 射关系。MAC 地址表也称为CAM(Content Addressable Memory)表。如图所示,交换机对帧的转发操作行为一共有三种:泛洪(Flooding),

转发(Forwarding),丢弃(Discarding)。

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

(注意,“所有其它的端口”是指除了这个帧进入交换机的那个端口以外的所有端口)。

2.  转发:交换机把从某一端口进来的帧通过另一个端口转发出去(注意,“另一个端口”不能是这个帧进入交换机的那个端口)。

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

交换机的基本工作原理可以概括地描述如下:

1.  如果进入交换机的是一个单播帧,则交换机会去MAC地址表中查找这个帧的目的

MAC地址。

1)如果查不到这个MAC地址,则交换机执行泛洪操作。 2)如果查到了这个MAC地址,则比较这个MAC地址在MAC地址表中对应的端口是不是这个帧进入交换机的那个端口。如果不是,则交换机执行转发操作。如果是,则交换机执行丢弃操作。

2.  如果进入交换机的是一个广播帧,则交换机不会去查MAC地址表, 而是直接执行泛洪操作。

3.  如果进入交换机的是一个组播帧,则交换机的处理行为比较复杂, 超出了这里的学习范围,所以略去不讲。另外,交换机还具有学习能力。当一个帧进入交换机后,交换机会检查这个帧的源MAC地址,并将该源MAC地址与这个帧进入交换机的那个端口进行映射,然后将这个映射关系存放进MAC地址表。

初始状态下,交换机并不知道所连接主机的MAC地址,所以MAC地址表为空。本例中,SWA为初始状态,在收到主机A发送的数据帧之前,MAC地址表中没有任何表项。

主机A发送数据给主机C时,一般会首先发送ARP请求来获取主机C的MAC地址,此

ARP请求帧中的目的MAC地址是广播地址,源MAC地址是自己的MAC地址。SWA收到该帧后,会将源MAC地址和接收端口的映射关系添加到MAC地址表中。缺省情况下,X7系列交换机学习到的MAC地址表项的老化时间为300秒。如果在老化时间内再次收到主机A 发送的数据帧,SWA中保存的主机A的MAC地址和G0/0/1的映射的老化时间会被刷新。此

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

本例中主机A发送的数据帧的目的MAC地址为广播地址,所以交换机会将此数据帧通过

G0/0/2和G0/0/3端口广播到主机B和主机C。

主机B和主机C接收到此数据帧后,都会查看该ARP数据帧。但是主机B 不会回复该帧,主机C会处理该帧并发送ARP回应,此回复数据帧的目的MAC地址为主机A的MAC地址,源MAC地址为主机C的MAC地址。SWA收到回复数据帧时,会将该帧的源MAC地址和接口的映射关系添加到MAC地址表中。如果此映射关系在MAC地址表已经存在,则会被刷新。然后SWA查询MAC地址表,根据帧的目的MAC地址找到对应的转发端口后,从G0/0/1 转发此数据帧。

交换机是工作在数据链路层得设备,对于通信终端来说,属于透明不可见,通信双方是感觉不到交换机的存在的;

交换机的接口工作在混杂模式(promiscuous mode),当收到一个数据帧的时候,如果数据帧的目的MAC地址不是自己接口的MAC地址,也要做处理决定,所以,这和路由器接口,网卡接口是不一样的。