本链接转载自:https://www.cnblogs.com/chensiqiqi/p/9163011.html
仅供自学使用。
一,ARP协议
使用ARP协议可以查出擅自更改IP地址主机的MAC地址。在学习ARP协议前需要了解广播和广播域的相关概念。
1.1 广播与广播域
在超市找人时,如果不知道对方的位置就需要到服务台通过广播进行找人,当知道对方的位置时就可以直接到对方所在位置。在网络中也存在这种情况。如果不知道对方的地址就需要进行广播。即发送广播帧;而知道对方的地址就发送单播到对方处。所以,广播通信是“一对所有”的通信形式。而单播通信是“一对一”的通信形式。所有听到找人广播的范围就是广播域。广播和广播域的具体定义如下:
- [x] 广播:将广播地址作为目的地址的数据帧
- [x] 广播域:网络中能接收到同一个广播的所有节点的集合
1.1.1 MAC地址广播
MAC地址的广播地址:FF-FF-FF-FF-FF-FF
MAC地址的广播域是所有相连接的交换机或集线器的集合。如果一台主机发送一个MAC地址广播。则这个广播将转发到所有相连的交换机或集线器的所有端口。收到广播帧的主机会比较数据帧包中的目的IP地址是否为自身IP地址。如果是,则继续处理数据包中的承载数据;如果不是,则丢弃数据。
交换机转发MAC地址广播,而路由器会阻挡MAC地址广播。
1.1.2 IP广播
iP网段的最后一个地址为广播地址,即主机部分全部为1.在数据帧中,目的MAC地址是FF-FF-FF-FF-FF-FF,目的IP地址是IP网段的广播地址。
1.2 解析MAC地址的过程
(1)查找ARP缓存表
(2)发送ARP广播
(3)ARP应答
(4)添加ARP缓存记录
二, 路由原理
路由器工作在OSI参考模型的网络层,它的重要作用是为数据包选择最佳路径,最终送达目的地。那么路由器是怎样选择路径的呢?
-
[x] 在只有一个网段的网络中,数据包可以很容易地从源主机到达目的主机。但是如果一台计算机要和非本网段的计算机进行通信,数据包可能就要经过很多路由器。主机A和主机B所在的网段被许多路由器隔开,这时主机A和主机B的通信就要经过这些中间路由器,这就要面临一个很重要的问题--如何选择到达目的地的路径。
-
[x] 数据包从A到达B有很多条路径可供选择,但是很显然,这些路径中在某一时刻总会有一条路径是最好(最快)的。因此,为了尽可能地提高网络访问速度,就需要有一种方法来判断从源主机到达目标主机所经过的最佳路径,从而进行数据转发,这就是路由技术。
2.1 路由器的工作原理
- 对于普通用户来说,通过在PC上设置默认网关就可以使局域网的计算机与Internet进行通信。其实在PC上所设置的默认网关就是路由器以太口的IP地址。
- 如果局域网的计算机要和外面的计算机进行通信,只要把请求提交给路由器的以太口即可,接下来的工作就由路由器来完成。
- 因此可以说路由器就是互联网的中转站,网络中的数据包就是通过一个一个的路由器转发到目的网络的。
- 那么路由器是如何进行数据包的转发的呢?就像一个人如果要去某个地方,他的脑海里一定要有一张地图一样,在每个路由器的内部也有一张地图,这张地图就是路由表。
- 在这个路由表中,包含该路由器掌握的所有目的网络地址,以及通过此路由器到达这些网络的最佳路径
- 正是由于路由表的存在,路由器才可以高效地进行数据包的转发。
###2.2 静态路由
###2.3 默认路由
###2.4 路由器转发数据包的封装过程
三,学云计算必会的网络数据传输原理
3.1 同网段下(同广播域),两台主机通信过程
我们知道两主机要通信传送数据时,就要把应用数据封装成IP包(因为我们的网络大多都是TCP/IP的以太网),然后再交给下一层数据链路层继续·封装成帧;之后根据MAC地址才能把数据从一台主机,准确无误的传送到另一台主机。
当NO要和N1通信时,
1)假如NO知道N1的IP但却不知道它的MAC地址,那NO就会发送一个ARP的广播请求(里面源IP是NO目标IP是N1源MAC是N0目标MAC是12个F)给同一广播域中的所有成员。
2)当交换机SW0从自己的1接口上收到这个广播包,然后它会读取这个帧的源MAC地址和目标MAC地址,由于交换机SW0刚启动加电时,它的MAC表为空的。所以它会把NO的MAC地址与之相对应的接口1放到一张表里,这张表就是MAC地址表。
3)然后SW0再从别的接口广播这个数据帧,当别的主机收到这个广播时,查看目标IP不是自己的,就会丢弃此包。如果N1接收到这个数据帧,它检查目标IP和这个的IP是一样的,就会回应这个ARP请求,把自己的IP和MAC封装成源IP和源MAC,N0的IP和N0的MAC地址为目标IP与目标MAC,并记录N0的MAC与IP,放进自己的ARP缓存表中。
4)此时,这个应答包经过交换机SWO时,它又会检查源MAC,目标MAC,把N1的MAC和自己接口2放进MAC地址表中,再查看自己的MAC地址表,发现存在目标MAC与自己的1接口对应(由于刚开始有记录过N0的MAC),那它就会直接把这个应答包从接口1送出去了。
5)主机N0收到这个包后发现目标MAC是自己,就会处理这个包。并把N1的MAC与IP放进自己的ARP缓存表中。这时主机N0就知道N1的MAC地址了,
6)后续的发送数据任务,就会直接把N1的IP与MAC封装进帧中进行点对点的发送了。
3.2 跨路由(不同网段)数据传输过程
当N0要和N2通信时
1)N0会先检查N2的IP地址和自己是否处于同一网段,由于N2和自己处在不同网段,因此,N0会把数据包给它的网管,也就是R0上的F0/0接口了。
2)当这个数据包到达R0时,路由器R0会查看目标IP是否是自己的,由于目标不是自己,所以会查看自己的路由表,找出到达N2网段的路由;(如果找不到就会丢弃数据包)
3)当R0查看路由表发现到达N2网段的出接口是F0/1.于是,把数据包转到F0/1接口上,再由接口F0/1传给R1.这个过程,数据包的源IP是N0源MAC是F0/1目标IP是N2目标MAC是R1的F0/1接口IP
4)当R1收到这个数据包后,同样也要检查包的目标IP是否自己,它会主动查找自己的路由表,发现目标IP跟自己F0/0接口处在同一网段,于是就把包传到F0/0接口上去发给N2。)