以太网学习日志
将最近学习的内容进行记录,如果能对你有所启发,那再好不过了,有问题欢迎交流。关键词解析如下,
以太网
以太网帧格式
MAC地址
交换机
VLAN
VLAN的帧结构
FDB
二层转发
网络层
IP地址
子网
VLSM和CIDR
路由
三层转发
以太网
以太网是一种协议格式,编号为802.3。就像Wi-Fi的协议标准为802.11一样,每种协议都有自己的编号。
计算机网络模型有两种,一种是OSI参考模型,这是最标准的。TCP/IP模型是实际使用时候最常见的模型。至底向上为一至五层,以太网即是作用于物理层和数据链路层的协议。
以太网帧格式
以太网帧格式,物理层这部分可以不用理会,主要关注链路层。链路层只要知道自身和目标的物理地址,即可进行通信。
MAC地址
MAC地址即物理地址,表示的是网卡的物理设备地址,可以人为修改。
其中MAC地址的第一字节的最低位为1,表示为组播地址;最低位为0,表示单播地址。单播表示一对一,组播表示一对一组,广播表示一对所有。
交换机
在网络中,两个设备很可能不是直接连接的,需要一些中转设备。作用在二层的中转设备就有网桥。网桥:两个端口,从一端接收数据,进行校验后,从另一端转发出去。
网桥一般只有两个端口,而交换机具有高密度端口,且速率更快。可以说交换机就是多功能网桥。
VLAN
二层交换机在转发报文的时候,是进行直接广播的。当设备较多时候,占有资源也较多。于是有了VLAN(虚拟局域网),即在软件层面对设备进行分组,只接收自己组的报文,不接收其他组的报文。
使用VLAN有两大好处:
1、安全。不属于同一个VLAN端口不能进行通信。可以将不同类别主机划分为不同VLAN端口,保证两者不接触。
2、便捷。当网络中拓扑结构发生变化时候,不需要去拔插端口来进行更换,通过修改VLAN就可以管理组。
VLAN的帧结构
VLAN的帧格式,即在以太网的帧格式中加入了4Bytes,TPID为VLAN的标识,固定为0x8100,VLAN的协议号为802.1Q。TCI中包含了VLAN的优先级和VLAN ID,即区分不同VLAN的端口号。
FDB
有不同的VLAN后,交换机在进行转发报文的时候需要一定的策略。MAC Filter Database,也称为MAC地址表,用于储存报文向哪个端口转发/过滤的决策。在报文转发的时候需要关注三个表项:MAC表、ARP表、路由表。
二层转发
以一个例子来描述二层转发的过程。PC1 ping PC2的流程:
1、PC1先通过目的地址和掩码进行“与”操作,得到PC2与自己在同一个子网内。“10.10.10.2”&“255.255.255.0”==“10.10.10.1”&“255.255.255.0”。
2、PC1要发送到PC2,需要知道PC2的MAC地址,于是PC1以广播的形式发送ARP包。ARP协议即通过IP获取MAC地址的协议。
3、交换机接收到PC1的ARP包,对它进行继续转发广播。同时交换机的MAC表进行更新,因为已经知道PC1和交换机哪个端口对应了,即PC1的MAC+VLAN 10->output:端口1。
4、PC2在广播中收到了ARP包,学习了PC1的MAC地址和IP地址,更新PC2的ARP表,即10.10.10.1<->PC1的MAC。同时PC2对ARP表进行回应,同时放入自己的MAC地址。
5、交换机转发,同时更新MAC表:PC2的MAC+VLAN10->output:端口2。
6、PC1收到PC2的ARP包,就知道PC2的MAC地址了,可以进行通信了。同时更新PC1的ARP表,即10.10.10.2<->PC2的MAC。
网络层
网络层即L3层,主要功能为:提供主机到主机的传输服务,包括寻址和路由。
IP地址
IP地址分类如下,记住A、B、C类即可。A与B类分界线为128;B与C类分界线为192;C与D类分界线为224;D与E类分界线为240。
子网掩码
在A、B、C类中网络号和主机号固定死了,有些时候需要的网络数可能介于两类地址之间,为了不造成IP地址的浪费,于是催生了子网掩码。
举例:IP地址 192.168.100.100
子网掩码:255.255.255.0
则网络地址为:192.168.100.0
处于同一个子网内的地址,网络地址都是一致的。
VLSM和CIDR
VLAM和CIDR都具有对子网掩码重新划分的能力。对一个A类地址10.10.10.1,子网掩码为255.255.240.0。即正常子网掩码为8位,但是现在为20位,这就是网络号向主机号借了12位。子网掩码比原来的长称为VLAM,相对的,子网掩码比原来的短称之为CIDR。
举例:一个企业分配IP地址为128.45.0.0,现需要10个子网,则子网掩码是多少?前10个子网是多少?
解:由于需要10个,最接近的即2^4=16,所以还需要4位子网掩码。而B类自带掩码是16位,所以最终子网掩码为255.255.240.0。
子网从255.255.0000 0000.0、255.255.0001 0000.0、255.255.0010 0000.0、255.255.0011 0000.0一直往后,即255.255.0.0、255.255.16.0、255.255.32.0、255.255.48.0……
路由
在二层转换中,通过交换机进行转发。如果要实现不同VLAN间的通信,则需要路由,路由位于L3层。路由的功能可以由路由器或者三层交换机来实现。路由表即表示这个IP地址发来的数据报应该往哪个方向发。
路由表由3部分组成:D(目标IP)、M(掩码)、N(下一跳位置),路由器B的路由表如下
子网掩码 要达到的网络 下一路由器
255.255.0.0 10.2.0.0 直接投递
255.255.0.0 10.3.0.0 直接投递
255.255.0.0 10.4.0.0 10.3.0.7
三层转发
二层转发只经过交换机、不需要跨VLAN;三层转发需要跨VLAN,必须经过网络层,即通过网关(路由器/三层交换机)来转发。
网关,表示是子网的关卡,子网外的时候要先经过网关才能进入子网,子网内的数据要先经过网关才能出去。
PC1与PC2处于两个不同的子网,PC1要与PC2进行通信需要进行的操作。
简略来写:
1、PC1与子网掩码“与”操作后发现PC2不在同一个子网,于是向PC1的默认网关1.1.1.1发ARP包。
2、PC1和交换机连通后,PC1发送ICMP包。
DMAC:三层交换机
SMAC:PC1
SIP:1.1.1.1
DIP:2.1.1.2
3、三层交换机找到2.1.1.2应该从2.1.1.1的端口出去,但是不知道PC2的MAC,于是三层交换机也要向PC2发一次ARP包。
4、PC2和交换机连通后,交换机转发ICMP包到PC2。
DMAC:PC2
SMAC:三层交换机
SIP:1.1.1.1
DIP:2.1.1.2
注意点:在路由转发ICMP包过程中,MAC地址会变,但是IP地址是不变的。发送ARP包时候MAC地址、IP地址都会变。