wKioL1NZuT3z6UBXAABqhquZSn8190.jpg



如图为路由器通讯的基本架构,那么C1是如何与C2联系的呢?


假设C1 IP192.168.1.2         C2 IP192.168.2.2


首先,C1将想发送的数据在网络层进行封包,裹上IP报头,内含源IP地址和目标IP地址。交给数据链路层,数据链路层裹上帧头,交给物理层。因为目标IP与源IP地址不在同一网段,因此C1将数据包交给默认网关R1E0口,此时目标Mac地址为E0Mac地址。


R1E0口接收数据包后,拆开帧头,Mac报头,根据目标的IP地址查找路由表是否有相应路径进行传输。由于事先已经给R1指定好路径,根据下一跳的地址,R1将数据包转给E1口。E1口将数据重新进行封包,裹上R2E1口的Mac地址,为目标Mac,R1E1口成为源Mac地址。


R2E1口接收了数据包后,拆开Mac报头,查看里面的目标IP地址,发现目标IP段与自己E0口相连的IP段相符,于是将数据包转给E0口,进行广播,随后收到C2的回应,找到了目标C2Mac地址,由R2E0口进行重新封装,以C2Mac地址为目标Mac地址,E0口的Mac地址为源Mac地址进行传输,将数据传输给了C2


C2收到数据后给出答复,通过同样的路径,回到C1,不再重复。