
1. 交换机和路由器之间的区别
交换机主要用于构建局域网,而路由器负责将主机连接到外部网络.
2. 局域网之间的通信
示例1:
1. 当PC1与PC2通信时,在PC1计算机中,应用层生成的数据将被移交给传输层. 传输层执行数据分段以使数据大小适合在网络上传输,并根据应用层上不同软件生成的数据选择不同的协议. 堆栈封装TCP或UDP,然后封装不同的服务端口号(用于例如: WWW 80,FTP 21),然后将其传递到网络层;网络层将源IP和目的IP封装在数据包的报头中,并根据上层协议栈进行标识. 不同的协议号,当IP报头封装TCP时,协议号为6,UDP协议号. 是17,用于标识上层使用的协议,并继续传递给数据链路层;数据链路层将帧封装在数据包头中,封装源MAC和目标MAC. 由于目的MAC地址未知,因此将封装ARP广播数据包. 完整的F类型字段是0X0806广播数据包,并传递到物理层. 物理层被转换为电信号(位流)并发送到交换机;

2. 交换机收到发现为ARP的广播报文后,进行解封装并学习PC1的MAC地址,继续封装并在接收端口以外的其他端口再次广播ARP;
3. 路由器从交换机接收ARP广播并将其解封装. 可以看到数据包中的type字段是0X0806,它是ARP广播包,并做出了响应. 源MAC是路由器(网关)的MAC,目标MAC是PC1的MAC. 类型字段为0X0806,数据通过物理层转换为电信号(比特流)并发送至交换机;
4. 交换机收到报文后,进行解封装,学习到源MAC(路由器的MAC),发现目的MAC已经存在于自己的MAC表中,检查目的MAC对应的端口,并从对应的端口发送给PC1;
5. PC1收到数据包后,进行解封装,了解路由器(网关)的MAC,在数据链路层将目标MAC封装为路由器(网关)的MAC,类型字段为0X0800,并在以下位置封装FCS数据帧的末尾进行校准验证数据的完整性,然后将其传递到较低层到物理层. 物理层将数据帧转换为电信号(位流)并将其发送到交换机;
(注意: 对于不同网段的通信,PC首先将数据传输到网关)
6. 交换机接收数据包,检查目的MAC已经存在于自己的MAC表中,并根据自己的MAC表中对应的端口发送出去;

7. 路由器收到数据包后,将其解封装并在数据包的标头中找到目标ip. 它在路由表条目中搜索相应的端口并重写数据. 由于不知道目标主机的MAC地址,因此路由器将发送ARP广播. PC2接收数据包并将其解封装. 发现这是ARP广播,类型字段为0X0806.
然后封装并回复它,源MAC是PC2的MAC,目标MAC是路由器的MAC,路由器在接收到它后,会将与PC2对应的MAC地址和端口记录在MAC表中,
8. 当pc2接收到该信息时,它将对数据进行解封装,发现目标IP是针对其自身的,然后继续解封装,然后将数据发送到应用qq. 然后回复路由,在传输层中将源端口号设置为8000,将目标端口号设置为4000,并封装udp标头. 在网络层将源IP设置为192. 168.2.1,目标ip设置为192.168.1.2,协议号为17,源mac设置为12 3s,目标mac设置为12 1s,类型字段为0x0800,封装了FCS,并且物理层将数据转换为位并将其传输到路由器. 路由器搜索路由表并重写数据,从f0 / 0传输数据,解封装交换机,搜索mac表,然后封装数据,并将其从f0 / 0传输到pc1. 交流完成.
示例2:
1)HostA将来自上层的数据包封装为网络层的IP数据包,其中源IP地址是其自身,目标IP地址是HostB. HostA将使用由此计算机“ And”操作配置的24位子网掩码和目标地址,得出的结论是目标地址与该计算机的网段不同,因此发送给HostB的数据包需要通过网关路由A.

2)HostA通过ARP请求获取网关路由器A的E0端口的MAC地址,并将路由器E0接口的MAC地址封装为链路层的目标MAC地址,源MAC地址本身就是其自身.
3)路由器A可以从E0接收数据帧,删除数据链路层的封装,并检查是否存在与目标IP地址网段(即192.168.2.2的网段)匹配的项. 路由表根据路由表中记录到192.168.2.0网段的数据,请将其发送到下一跳地址10.1.1.2,以便将数据重新封装在路由器A的E1端口上. ,源MAC地址是路由器A的E1接口的MAC. 封装的目标MAC地址是路由器2的E1接口的MAC地址.
4)路由B从E1端口接收数据帧,并且还删除数据链路层的封装,检测目标IP地址,并将其与路由表进行匹配. 此时,发现目标地址的网段正好在自己的E0端口的直连网段上,路由器B通过ARP广播获知了主机B的MAC地址. 此时,数据包将重新封装在路由器B的E0接口上. 源MAC地址是路由器B的E0接口MAC地址,目的MAC地址是HostB的MAC地址. 封装完成后,直接从路由器的E0接口发送到HostB.
5)只有这样,主机B才会接收主机A发送的数据.
3. 内网通信
ARP协议: ARP协议是在网络层工作的协议. 它负责将IP地址解析为MAC地址.

1)如果主机A要向主机B发送数据,则主机A将首先检查其自己的ARP缓存表,以查看主机B的IP地址和MAC地址之间是否存在对应关系. 如果是这样,主机B的MAC地址将封装在数据帧中作为源MAC地址. 如果不是,主机A将发送ARP请求消息,请求的目标IP地址是主机B的IP地址,目标MAC地址是MAC地址的广播帧(即FF-FF-FF-FF- FF-FF),源IP地址和MAC地址是主机A的IP地址和MAC地址.
2)交换机收到该数据帧后,发现该数据帧是广播帧,因此它将从所有非接收接口发送此数据帧.
3)主机B收到该数据帧后,将检查IP地址是否是其自己的,并在其自己的ARP缓存表中记录主机A的IP地址和MAC地址之间的对应关系,并发送ARP回复,包括自己的MAC地址.
4)主机A收到响应数据帧后,将主机B的IP地址和MAC地址之间的对应关系记录在其自己的ARP缓存表中. 此时,交换机已经学习了主机A和主机B的MAC地址.
4. 摘要
1)每个主机都有一个ARP表.
2)交换机主要转发数据. 根据MAC表,将其转发到指定的接口. 如果MAC表不可用,则会从非接收接口(即广播)将其发送出去.
3)LAN中的通信是通过交换机(相同的功能)进行的. 如果主机ARP表中没有目标MAC地址,则向交换机发送ARP请求信息. 如果有开关,它将直接返回. 如果不是,它将广播并等待目标返回. 更新ARP表. 源主机获取目标MAC并重新填充数据包,然后将其发送到交换机以转发到目标主机.
4)LAN之间的通信通过路由器,并且目标主机在另一个网络上. 在这里,路由器可以看到目标主机. 源主机向交换机->路由器发送ARP请求,然后路由器返回以更新交换机和源主机的MAC表. ARP表,源主机向路由器发送数据,检查路由表是否有与目标网段匹配的表项,重新封装报文,源MAC为路由MAC,目标MAC为目标路由2MAC,当到达路由2时,目标IP地址执行检测并与路由表匹配. 此时,发现目标地址的网段恰好是其自己的E0端口的直接连接网段. 路由器B通过ARP广播获取主机B的MAC地址. 此时,数据包在路由器B的E0处. 接口被再次封装,源MAC地址是路由器B的E0接口的MAC地址,目的MAC地址是HostB的MAC地址. 封装完成后,直接从路由器的E0接口发送到HostB.
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxingongju/article-291567-1.html