计算机网络—局域网
MAC地址
封装在链路帧中的地址,作为每一个接口的地址。(一般是48bit大小)
MAC地址是刻画到我们物理接口上的,我们的网卡一旦出厂之后就会携带一个唯一的物理地址,网卡到哪这个MAC地址就跟到哪,IP地址就是不可携带的地址,只有你在哪个局域网内就会分配给你对应的IP地址。
ARP协议
ARP表存储的是IP地址与MAC地址之间的映射关系:
<IP地址,MAC地址,TTL>,存活时间是20min
- 广播目的MAC地址
FF-FF-FF-FF-FF-FF
-
下面模拟同一局域网中两个节点利用ARP协议传输数据的过程
- A 希望给 B 发送数据,但是在A的路由其中的ARP表没有存B的MAC地址,因此需要广播目的地址
- 在该局域网中全部结点都会受到该目的地址,但是只有匹配成功的B会给应答
- B匹配成功之后会用单播帧的方式给A应答,这时候到达A那边后A会存下B的IP与MAC地址的映射关系,然后就可以传输数据了。
-
下面模拟不同Lan之间如何用ARP协议进行数据传输
- A有B的IP地址
- A首先要将数据发送到边缘路由器(这里就是利用网关)
- 但是A不知道网关接口的MAC,那么这时候就用ARP协议进行广播获取网关接口的MAC地址
- 收到MAC地址之后,将数据往这个方向上传输
- 网关路由现在有两种可能
- 一种是网关路由两边都是公网地址,那么直接转发到另一边即可,第二种是私有网络往另一个私有网络或者公网上发布数据,那么这时候就需要NAT转换表进行转换。
- 然后转到另一边后,我们依旧不知道B的MAC地址只知道IP地址,所以继续利用ARP协议进行广播获取B的MAC地址, 拿到MAC地址之后就可以传输数据了(这就是一个完整的过程,之后B想要给A回数据也是一样的流程)
注意:以上是假定路由器不知道MAC地址,如果知道的话就不用广播了,直接传输即可
以太网
- 以太网网络拓扑结构
- 说明:交换机是链路层设备,而集线器是物理层设备
- 说明:交换机是链路层设备,而集线器是物理层设备
- 无连接
由于是在数据链路层的,因此没有做连接服务,所以是无连接服务。 - 不可靠
如果帧检测出错了就直接丢弃(不可靠)
也正是因为这种小型以太网网络中没有路由器,所以他们之间是不可靠传输。 - CSMA/CD二进制指数退避算法
以太网中也使用CSMA/CD算法,只不过退避的时候有些许不同,因此叫做二进制指数退避- 监听信道
空闲就发数据,忙就 1坚持 监听信道 - 假定发送过程中检测到发生冲突
如果发生冲突次数为m,首先选择一个数字 N = max{m,10},
然后计算K= 2N-1,我们就选择退避时间为:512×K bit 的传输时间后继续监听信道等待发送。 - 当然,一直发生冲突的时候不会一直傻傻的退避,如果连续超过16次冲突,就不再监听信道了。向上层报告差错。
- 监听信道
以太网帧结构
-
前导码(preamble)
这个是用于发送端与接收端进行一个时钟同步的操作
也就是帧头部加上8个bit的二进制数字,并且这个二进制数就跟军训一样喊得口令,前面七个bit是1010101,再加上最后一个是1,整个前导码就是:010101011。 -
CRC
在以太网中他的CRC校验码占4个字节 -
详细介绍如下图
交换机
-
存储转发以太网帧
-
使用CSMA/CD算法进行发送数据
-
交换机是透明的,主机一般是不知道交换机的存在的,并且不会减少数据的TTL
-
通过自学习就可以连通各个主机之间的链路
自学习就很简单了,可以通过在某个主机发送数据的时候将其MAC地址和接口记录下来,假如没有目的IP地址的MAC地址交换机就会进行泛洪操作,以此类推只要发送一次数据就基本维护好了一个交换表了。(以上前提是:目的地址属于可达网段,否则直接丢弃不进行泛洪操作) -
在一台交换机中可以连接多个主机进行并行的通信
-
交换机维护着一个交换表
该表存的是连接该交换机的各个主机的MAC地址,并且这个MAC地址是连接后交换机通过自学习维护好的,不需要我们人工介入(交换机好啊,对于我们这种非商业行的人来说杠杠好) -
多个路由器之间也是同样通过自学习记录交换表的信息
-
常用的交换机与路由器的网络拓扑,以下是没有冲突域的,主机都是直接连通交换机,当然现实中可能有很多冲突域,这时候就结合传输层所学的各种解决冲突的问题便可解决。
-
交换机只检测帧的数据头部(再次印证了他是链路层的设备)
-
综上所述,我们可以很明显的知道交换机属于数据链路层的设备。
交换机的端口划分
- 需求:有时候我们一个单位分很多个部门,这时候一个交换机就像一个单位,就需要我们对端口进行部门划分了
- 使用VLAN技术
VlAN技术就是将端口划分到不同的VLAN中,VLAN之间不可以直接进行通信,即使是同一个交换机也不可以 - 那么VLAN之间到底如何进行通信呢?
使用第三层设备:路由器
使用路由器将两个VLAN端口连接起来(这时候可能需要为我们的VLAN分配IP子网网段,然后路由器将两个网段互联) - 中继端口(trunk port)
- 有时候可能不同交换机之间有一样的VLAN时候也需要互联
这时候我们需要用到一个技术trunk port,在交换机配置的时候可以通过该指令将连接两个交换机之间的线路设置为trunk port,即可完成不同交换机之间的相同VLAN互联
- 有时候可能不同交换机之间有一样的VLAN时候也需要互联
PPP协议
- 主要学习的是字节填充
除了帧定界允许出现连续的6个1外,其他一概不允许出现,一旦数据中出现发现有五个连续的1,在1后立即填充一个0
❀点击学习PPP协议
这边给出以为博主写的字节填充博文,实在是写的太好了,这不是偷懒,确实是写的很好。
本文来自博客园,作者:竹等寒,转载请注明原文链接。