第五篇:从物理层到MAC层

第一层:物理层

两台电脑如何组建一个局域网:

电脑直接连电脑,然后配置IP地址,子网掩码、默认网关,配置成同一个网络内的,这两台机器就可以通了。

 

两台电脑之间的网络包,包含MAC层吗?

答:当然包含,要完整。IP层要封装了MAC层才能将包放入物理层。

 

那么三台电脑如何连在一起呢?

答:交换机,再早以前用集线器(Hub),它有多个端口,集线器它没有大脑,完全在物理层工作。它会将自己收到的每一个字节,都复制到其他端口上去。

 

第二层:数据链路层

使用hub时,大家都在发包,会不会产生混乱?有没有谁先发、谁后发的规则?

答:解决这个问题的规则叫做多路访问,有三种方式实现:

1、信道划分:分多个车道。每个车走一个车道,你走你的,我走我的。

2、轮流协议:今天单号出行,明天双号出行,轮着来。

3、随机接入协议:不管三七二十一,先出去,发现特别堵,就回去。错过高峰再出。以太网就是用的随机接入协议。

 

hub收到数据包之后,发给谁,谁接收?

答:这里用到了一个物理地址,也叫链路层地址,也叫做MAC地址。

数据包格式:第二层的最开始,就是目标MAC地址和源的MAC地址,然后是数据类型。

有了这个MAC地址之后,数据包在链路上广播,MAC的网卡才能发现,网卡收到包之后,解IP,发现也是自己的,在解协议类型,发现端口也是自己的,然后给到此端口对应的服务。

也就是从数据链路层获取到数据包(MAC地址),解完之后,到网络层(IP地址),解完之后,到传输层(TCP\UDP 端口),再到应用层(对应的服务程序)。

 

如果数据包发送的时候,出现了错误怎么办?

答:对于以太网,第二层的最后面是CRC,也就是循环冗余检测。通过XOR异或的算法,来计算整个包是否在发送的过程中出现了错误,主要解决这个问题。

 

对于同一个局域网内,当源机器知道目标机器的IP地址时,如何知道它的MAC是什么?

答:ARP协议。源机器发送一个广播包,也就是ARP请求,对应目标地址的机器就做出应答。

发送与接收的报文像下面这样:

 

 

为了避免每次都用ARP请求,机器本地也会进行ARP缓存。当然机器会不断的上下线,IP也可能会变,所以ARP的MAC地址缓存过一段时间就会过期。

 

对于Hub来说,它的特点是广播的,它会将所有接收到的数据转发到所有主机上,然后让主机自己判断是否是自己需要的,这样局域网内的主机数多了之后就很容易产生冲突,而且把不需要的包转发过去,纯属浪费。

这个时候就出现了交换机,交换机有学习能力,它会记住局域网中其他机器的MAC地址,当进行过一次传输之后,它就会记住此IP地址的MAC地址,下次再去传输的时候,就直接往这个MAC地址对应的机器上发包。过了一段时间之后,交换机就有整个网络的一个结构了,就可以准确转发了。当然,每个机器的IP地址也会变,所在的口也会变,因而交换机上的学习结果,我们称为转发表,是有过期时间的。

 

 

总结:

1、MAC层是用来解决多路访问的堵车问题的;

2、ARP是通过发送ARP包来寻找目标MAC地址的,获取之后会记住一段时间,这个叫做缓存。

3、交换机有MAC地址学习能力,学完了就知道谁的MAC在哪,下次传输就不用广播了。

 

参考内容:趣谈网络协议

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值