思科孵化项目 Day4
十六进制
十六进制(简写为hex或下标16)在数学中是一种逢16进1的进位制。一般用数字0到9和字母A到F表示,其中:AF相当于十进制的1015,这些称作十六进制数字。
例如十进制数57
,在二进制写作111001
,在16进制写作39
。
现在的16进制则普遍应用在计算机领域,这是因为将4个位元(Bit)化成单独的16进制数字不太困难。1个字节(Byte)可以表示成2个连续的16进制数字。可是,这种混合表示法容易令人混淆,因此需要一些字首、字尾或下标来显示。
Python
调用Python内置int()
函数把该字串转为数字。以下为在Python解释器编程环境下的操作示范:
把十六进制的字串转为十进制数字:
print int('ff', 16)
255
把十进制数字转换为以十六进制表示之字串,可调用内置的hex()函数:
print hex(255)
0xff
调用BinAscii模块其中的b2a_hex()函数,可把以ASCII编码的文字以十六进制表示:
print binascii.b2a_hex('A')
41
反之也可把以十六进制表示的文字,换成以ASCII编码的文字:
print binascii.a2b_hex('41')
A
MAC地址
简介
MAC地址(英语:Media Access Control Address),直译为媒体存取控制位址,也称为局域网地址(LAN Address),以太网地址(Ethernet Address)或物理地址(Physical Address),它是一个用来确认网路设备位置的位址。在OSI模型中,第三层网路层负责IP地址,第二层资料链结层则负责MAC位址。MAC地址用于在网络中唯一标示一个网卡,一台设备若有一或多个网卡,则每个网卡都需要并会有一个唯一的MAC地址。
格式
MAC位址共48位元(6个位元组),以十六进位表示。第一个byte的最低有效位元(LSB)为单播地址(0)/多播地址(1),第一个byte从最低有效位元数去第2个bit为广域地址(0)/区域地址(1)。前3~24位元由IEEE决定如何分配给每一家制造商,且不重复,后24位元由实际生产该网路设备的厂商自行指定且不重复。
ff:ff:ff:ff:ff:ff
则作为广播位址。
01:xx:xx:xx:xx:xx
是多播地址,01:00:5e:xx:xx:xx是IPv4
多播地址。
举例
假设现有一台路由器,含有一个WAN埠及四个LAN埠。它的WAN埠会有一个如61.61.61.61
的IP位址,也会有一个如00:0A:02:0B:03:0C
的MAC位址。而它的四个LAN埠会各分配到一个例如192.168.1.0/24
的IP位址,四个埠各会有一个不同的MAC位址。
实验
使用 show arp
显示ARP表中的Mac地址
Cisco-1841#show arp
Protocol Address Age (min) Hardware Addr Type Interface
Internet 10.1.1.1 - 0021.d8ae.3cdd ARPA FastEthernet0/1
Internet 10.1.1.2 - 3c2c.3099.075e ARPA
Internet 10.1.1.3 - 98fc.84e3.1024 ARPA
Internet 10.1.1.4 - 2c30.3331.c201 ARPA
Internet 10.1.1.5 38 f4ac.c197.9e40 ARPA FastEthernet0/1
Internet 10.1.1.7 0 000c.297a.26eb ARPA FastEthernet0/1
Internet 10.1.1.10 - 0024.97f0.3356 ARPA
Internet 10.1.1.250 - e45f.0180.be93 ARPA
Internet 219.217.199.75 20 000c.29cb.1c1a ARPA FastEthernet0/0
Internet 219.217.199.100 - 0021.d8ae.3cdc ARPA FastEthernet0/0
Internet 219.217.199.101 36 842b.2b60.7d00 ARPA FastEthernet0/0
Internet 219.217.199.102 35 842b.2b60.7cf8 ARPA FastEthernet0/0
Internet 219.217.199.103 229 000c.297a.26d7 ARPA FastEthernet0/0
Internet 219.217.199.162 137 3c2c.3099.075e ARPA FastEthernet0/0
Internet 219.217.199.250 - 0021.d8ae.3cdc ARPA FastEthernet0/0
Internet 219.217.199.254 18 001a.a9c3.5843 ARPA FastEthernet0/0
此处有多个Vlan,所以有不同网段的。
交换机原理
那么这里讲的交换机一般都为二层交换机,为什么叫做二层交换机呢,是因为数据被封装成数据帧来进行转发。转发的是数据帧。包括以太网。
而一般交换机都处于二层,基于数据链路层的交换机,所以叫二层交换机。
同样的三层交换机,就是网络层的交换机,一般用于核心设备,带有网络功能。
交换机是根据主机的MAC地址来查找主机并转发数据的。
而Cisco的交换机在出厂的时候有一个基本的MAC地址。
同时每一个端口还对应一个MAC地址,这是CISCO特有的智能交换机。
类型长度:
0x0800
表示ipv40x86DD
表示ipv6
帧效验序列也叫FCS
以太网的命名方法
100BASE-TX
意思是传输速率是100M,base代表基带,即物理介质为以太网专用,tx代表物理传输线缆的类型,tx代表的是五类以上的双绞线,那么对应的fx代表的是光线。
在现实生活中,我们通常说的以太网是10M的,而快速以太网是100M的。
交换机的工作原理:
www.cisco.com.cn
这是思科的中文网站。
交换机在转发数据的时候,是根据MAC地址来进行转发的。
当计算机PC发出一个数据帧要到 DESwww.cisco.com.cn
那么首先PC发出的数据帧会经过交换机SW。
而当经过交换机SW的时候,交换机SW会首先查找自己的MAC地址表,看是否有DES的MAC地址,并同时记住来自计算机PC的源MAC地址。 1)如果主机A想发送数据给主机C,主机A首先会检查自己的ARP缓存表,查看是否有主机C的IP地址和MAC地址的对应关系,如果有,则会将主机B的MAC地址作为源MAC地址封装到数据帧中。如果没有,主机A则会发送一个ARP请求信息,请求的目标IP地址是主机C的IP地址,目标MAC地址是MAC地址的广播帧(即FF-FF-FF-FF-FF-FF),源IP地址和MAC地址是主机A的IP地址和MAC地址。 2)当交换机接受到此数据帧之后,发现此数据帧是广播帧,因此,会将此数据帧从非接收的所有接口发送出去。这时候交换机就学到了A的MAC信息了。
3)当主机C接受到此数据帧后,会检查目的IP地址是否是自己的,并将主机A的IP地址和MAC地址的对应关系记录到自己的ARP缓存表中,同时C会发送一个ARP应答数据帧,其中包括自己的MAC地址。这个ARP应答数据帧在经过交换机时,交换机又学到了C的MAC地址信息了。
4)主机A在收到这个回应的数据帧之后,在自己的ARP缓存表中记录主机C的IP地址和MAC地址的对应关系。而此时交换机已经学习到了主机C和主机A的MAC地址了。
交换机的MAC地址表的老化时间是300秒
交换机如果发现一个帧的入端口和MAC地址表中源MAC地址的所在端口不同,交换机将MAC地址重新学习到新的端口。
单工、半双工、全双工
- 单工:只有一个信道,传输方向只能是单向的。(寻呼机)
- 半双工:只有一个信道,在同一时刻,只能是单向传输。(对讲机)
- 全双工:双信道,同时可以有双向数据传输。(打电话)
冲突域和广播域
冲突域
所谓冲突域是由共用传输通道导致的,如下图一,一台设备,只有一个传输通道,同一时刻该设备下的所有主机通信都需要通过“竞争”来获得传输信道的使用权,而其他设备只能等待,否则会发生冲突。
集线器(所有设备在同一个冲突域、同一个广播域。可以将集线器设备理解为单车道,同一时间只能通行一辆车。),交换机(每个接口是一个冲突域、一个广播域。可以将交换机理解为多车道)
广播域
广播域就是说,如果站点发出一个广播信号后能接收到这个信号的范围,通常来说一个局域网就是一个广播域。(用路由器连接的除外)。冲突域是一个站点向另一个站点发出信号,除目的站点外,有多少站点能收到这个信号,这些站点就构成一个冲突域。
广播域可以跨网段,而冲突域只是发生的同一个网段的。
总结
- 交换机根据收到数据帧中的源MAC地址建立该地址同交换机端口的映射,并将其写入MAC地址表中。
- 交换机将数据帧中的目的MAC地址同已建立的MAC地址表进行比较,以决定由哪个端口进行转发。
- 如数据帧中的目的MAC地址不在MAC地址表中,则向所有端口转发(除源端口)ARP请求。这一过程称为泛洪(flood)。
- 交换机在接收到数据帧以后,首先、会记录数据帧中的源MAC地址和对应的接口到MAC表中,接着、会检查自己的MAC表中是否有数据帧中目标MAC地址的信息,如果有则会根据MAC表中记录的对应接口将数据帧发送出去(也就是单播),如果没有,则会将该数据帧从非接受接口发送出去(也就是广播)。