为什么要这样做呢,那是因为要确定这个数据包应该从路由器上的那个接⼝上转发出去,很明显路由的每⼀条可⽤的路由都和路由嚣上的接⼝是对应的,就这样⼀个数据包就离开了这个路由器。事情就是这样。看见楼上有⼀个不太正确的说法,IP 数据包头⾥的源IP和⽬标IP都不会被改变,如果改变数据包不可能到达或者回来,但只有⼀种情况,源和⽬标IP是被改变的,那就是NAT.
路由器转发数据包不会对它的IP源地址和⽬标地址做修改,只会修改MAC.
具体路由器转发规则如下:
当主机A发向主机B的数据流在⽹络层封装成IP数据包,IP数据包的⾸部包含了源地址和⽬标地址。主机
A会⽤本机配置的24位IP⽹络掩码255.255.255.0与⽬标地址进⾏与运算,得出⽬标⽹络地址与本机的⽹络地址是不是在同⼀个⽹段中。如果不是将IP数据包转发到⽹关。
在发往⽹关前主机A还会通过ARP的请求获得默认⽹关的MAC地址。在主机A数据链路层IP数据包封装成以太⽹数据帧,然后才发住到⽹关……也就是路由器上的⼀个端⼝。
当⽹关路由器接收到以太⽹数据帧时,发现数据帧中的⽬标MAC地址是⾃⼰的某⼀个端⼝的物理地址,这时路由器会把以太⽹数据帧的封装去掉。路由器认为这个IP数据包是要通过⾃⼰进⾏转发,接着它就在匹配路由表。匹配到路由项后,它就将包发往下⼀条地址。
文素利路由器转发数据包就是这样,所以它始终是不会改IP地址的。只会改MAC.宋仲基胖了
当有数据包传到路由器时,路由器⾸先将其的⽬的地址与路由表进⾏对⽐,如果是本地⽹络,将不会进⾏转发到外⽹络,⽽是直接转发给本地⽹内的⽬的主机,改变的只是数据包的源地址,(原源地址MAC变为了路由器的MAC);当然其中的过程关系到相关的协议的使⽤,像什么ARP,IP等。但是如果⽬的地址经路由表对⽐,发现不是在本⽹中,有nat就将改变源地址的IP(原源地址的Ip地址改为了路由器的IP地址),路由器将熟数据包转发到相应的端⼝,进⾏通信。
与桥有关的故事如:A访问B,⾸先对⽐是否同⼀⼦⽹,如果是,检查ARP表,有B的MAC就直接发送,没有就发送A国庆放假时间表2022
RP请求.如果否,发送到默认⽹关C,源IP为A,源MAC为A,⽬的IP为B,⽬的MAC地址为C,C接收到这个包,检查路由表,发送到下⼀跳D,源IP为A,源MAC为C,⽬的IP为B,⽬的MAC为D.....如此循环,直到发送到B.NAT为特殊应⽤,会修改源IP为⽹关⾃⼰外⽹IP。
当交换机收到⼀个数据包时;
会将这个数据包包头的⽬的MAC信息提取出来,与⾃⾝的MAC地址表⽐较;
情况⼀:如果到对应项,则按MAC表进⾏转发;
情况⼆:如果没到对应项,则在除了接收到数据包以外的所有端⼝进⾏转发(⼴播);
解释:MAC地址表是MAC地址与端⼝对应的关系表;即某个MAC地址连接在某个端⼝;
问题:当情况⼆发⽣时,需要在其他所有端⼝进⾏⼴播(这样做其实很不好),这个⼴播会到什么地⽅结束呢?答:——路由器。
为什么到路由器就会结束了呢?
当接收到⼀个数据包时,⼯作过程如下:
苹果刷机教程
⾸先提取数据包头的⽬的MAC信息,与⾃⾝MAC表⽐较:
情况⼀:如果到对应项,则按MAC表进⾏转发(与交换机⼀样);
情况⼆(亮点来了):如果没到则提取数据包头的⽬的IP信息,则与⾃⾝的路由表进⾏⽐较(⼜分两种情况)情况⼆。1到了对应的路由表,则按着路由表转发(与查到MAC表很像啊)。
情况⼆。2没到对应路由表,则按着缺省路由转发(发现了吗⾃始⾃终没有出现过⼴播)
解释:路由表和MAC的区别在于,路由表存放的是⽬的IP下⼀步要去的地⽅的IP。
⼴播在路由器能够结束,原因就是路由器会在查不到对应MAC表时,根据⽬的IP进⾏路由。路由过程的两种情况都不存在⼴播。
发布评论