OSI七层模型中的数据链路层
图片:数据帧的格式
这里面的一个关键点是,数据的源IP和目标IP在哪里?
就在图中的“数据”里面,这个“数据”也就是网络层的数据包,如果是TCP类型的数据包,数据包里面就包含TCP类型的首部信息,如果是UDP类型的数据包,数据包里面就包含UDP类型的首部信息。
这个就是数据帧和数据包的关系。如图,数据帧是把数据包包含在内的。
1)字段解析:
-目的地址: 接收主机的MAC地址(6个字节=48个bit)
-源地址: 发送数据主机的MAC地址
-类型: 用来表示上一层使用的什么协议,如果是0x800 代表上层协议是 ip协议
-数据: 要传输的数据(包含IP包头,包含TCP包头,包含数据)
-帧校验序列: 数据校验,检查数据是否损坏,好的就接收,坏的就丢弃 2)一个数据帧的大小范围是 64字节—1518字节
数据链路层的主要设备是交换机
主要协议是vlan
vlan可以隔离广播
为什么要隔离广播,因为网络的带宽是有限的,比如一个用户办理的宽带是100Mbps,也就是每秒能传递的数据量是100兆比特,相当于12.5兆字节。而网络中的广播也是数据,所以当同一个平面的广播太多的时候,带宽就被占用了很多,能够给用户传递数据的带宽就变少,所以用户就会感觉网速很慢。
所以vlan的主要作用就是隔离广播,顺带着提高了网络中的隐私和安全,因为不同的vlan之间默认不能相互通信。
另外一个数据链路层比较重要的就是mac地址
每个数据帧上面有源mac地址和目标mac地址
当图中pc1(ip 192.168.10.10 )向pc2(ip 192.168.20.20 )发送信息的时候,
源mac地址是pc1,目标mac地址是路由器g0/0/0的mac地址
为什么?因为pc1找非同网段的ip的时候,就会把数据包给到网关,pc1上是设置了自己的网关地址的,所以发送之前,会发个arp地址解析请求,谁是我的网关的端口,然后路由器的g0/0/0,就会把自己的mac地址发送给pc1,然后pc1就会把数据帧的目标mac地址设置为路由器的g0/0/0的mac地址
然后,路由器的g0/0/1会发广播,谁是20.20,然后pc2就会回应它。
路由器就会把数据帧的源mac地址改为g0/0/1的mac地址,目标mac地址改成pc2的mac地址。
路由器是怎么知道pc2的mac地址的?
也是通过arp(address resolution protocol)问谁是20.20,把你的mac地址发过来。
数据在通过路由器转发的时候,数据包里面的IP地址是不变的,括号源ip和目标ip。
而数据帧的mac地址是变化的,包括源mac和目标mac。
这个点,对于理解lvs dr模式负载均衡技术中,所用到的地址伪装方法,
实现负载均衡器向后端服务器的请求分发,
以及后端服务器不经过负载均衡器,
直接把请求处理结果返回给客户端线路的
数据通信流程
应该有一点帮助
另外说一点,lvs-dr模式之所以性能比较优秀的原因之一,就是因为数据的返回线路不用经过负载均衡服务器。负载均衡服务器只用分发来访的数据。所以负载均衡服务器的负载差不多减少了一半。