3: MAC.最终地址
其实MAC的东西也说不好.也没什么好说的,我一直在考虑是否需要安排,不过既然说2~3层.肯定还是要写的
首先.我先介绍一个抓包软件 Ethereal 此软件为自由软件.当然类似的sniffer软件还有sniffer pro等等,但是从效率上还有轻便性来说.Ethereal都比同类软件好许多.可以通过www.ethereal.com 来下载此软件.我们今后的试验基本上都是基于这个软件的.
安装以后.我们就可以通过capture菜单下面的start来抓包了你会发现就算你没有进行任何网络操作的时候.也会有许多包进来.是的.因为网络上面充满广播.今后我们讲到ARP的时候还有其他协议的时候你们就会了解到即使你不进行任何操作.整个网络内也会充满许多广播.
好了.MAC地址在我们第一讲的时候介绍过.他是标识网卡的唯一地址所有的网卡在整个世界上都有唯一性的一个标识.MAC地址是固化在芯片中的.
现在我们在抓包的状态下ping一下局域网内的另一台服务器
然后停止抓包
这个时候主界面上就会有许多包了
找到Protocol为ICMP的.
对了.一个是ECHO(ping)request
一个是ECHO(ping)reply
一个是请求.一个是响应
点击其中一个包.我们可以看到详细内容,如图一
在软件的第二栏内就是给你分析好的数据
第三栏内是原始的数据包
我们看第一项
FRAME 58
恩.这里一项就是FRAME.
对了.FRAME就是2层的东西
这里显示的是统计信息
我们选择了FRAME可以看到最后的原始包里面数据是全选的
说明FRAME是包的最终形式.
接着我们选择Ethernet II
可以看到前14个字节被选中了
也就是第二层在第三层前面加上的头就是这个14个字节
接着往下选择.
选择Destination一项
这项是说明帧的目的地址
可以看到相应的原始包的包头前6个字节就是目的地址
对应的00:e0:4c:32:3a:0b 其实就是目标机器的网卡的MAC地址哟.
再看看Source源地址验证一下
源地址是00-20-ED-5C-7D-94
我们在命令模式下面使用ipconfig /all命令验证一下
Ethernet adapter Local Area Connection:
Connection-specific DNS Suffix . :
Description . . . . . . . . . . . : Realtek RTL8139/810x Family Fast Ethernet NIC
Physical Address. . . . . . . . . : 00-20-ED-5C-7D-94
Dhcp Enabled. . . . . . . . . . . : No
IP Address. . . . . . . . . . . . : 192.168.0.13
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : 192.168.0.250
DNS Servers . . . . . . . . . . . : 202.96.199.133
202.96.209.5
Yahoo~完全吻合.正是从我们网卡发出的.
别急
最后下面还有一个Type
我们点击以后
FRAME的最后2个字节用来标识上层的协议类型
这里PING包是IP层的.
所以Type里面是IP(0x800)
如果GOOGLE搜索一下查看IP的类型代码的话
可以知道正是0x0800(16进制)哟.
下面还有好多哦.
别急
下面就是IP层的内容了.我们下次才会讲解到的.
接下来就是在2层的网络里面网卡如何相互通讯呢?
在正常情况下
每台机器并不知道别的机器的MAC地址
所以在每次的包
都是一个单播群发的包
目的MAC地址的机器会接受
而其他不是这个MAC地址的机器会丢弃
这样的情况就是用HUB的情况
所以大家可以想到
这种情况下面
1.所有的包都是群发的.非常消耗带宽,是很浪费的.
2.所有的机器都可以收到别人发给另外一个人的包.非常的不安全
对于第二点.大家就知道为什么我们在HUB的情况下面可以抓到所有网络上面通讯的包了.
这样的情况太差了.所以有了交换机的出现
我们第一章说过.交换机一是防止"冲突"
二就是加强了效率了.
在交换机内.
维护着一张CAM表(Content-Addressable Memory)
表内就记录着曾经通讯过的机器的MAC地址和对应的端口
第一次交换机不知道双方的位置,还是会单播群发那个包.
第二次目的方返回包的时候,交换机就会记录端口号和对应的MAC地址了
这样的情况下
1.所有的包不是所有的人都收到.带宽降低
2.别人无法接受到其他人之间的通讯.因为FRAME都是在固定的物理链路里面传输
这些大家知道为什么交换网络内sniffer是无法生效的 了吧.
当然.还有特殊的方法可以让交换网络可以侦听所有的包,就是把交换机的某个端口设置成为"混杂模式 ".
这里大家看到.数据包都是计算机生成以后发送出去的
所以可以任意修改里面的内容,只要符合规范就行.
大家一般所知的修改MAC地址也就是将包内的MAC地址进行替换,软性的修改.
而网卡的MAC地址则是固化的,无法修改的.
也正是由于数据包的这种可篡改性.导致了我们实际中的TCP/IP并不安全.