网络层提供的服务
有了地址的数据才叫数据包(IP数据报)
网络层不管数据包的顺序和丢包重传,只负责选路,数据的顺序由传输层来负责。负责在不同网络之间尽力转发数据包,基于IP地址转发数据包。每个数据包是单独选择路径的,关心路径选择是不是最优的,是不是最近的。路由器是三层设备,通过分层,屏蔽了物理层和数据链路层的复杂性,以后只要物理层没问题、数据链路层没问题,那接下来排错的就是网络层的问题。
验证网络层功能
一个交换机对应一个局域网。
中间那个是广域网接口。
网关地址就是第一个出口路由器的地址,如果不配网关的话,就不知道该给哪个路由器,更不可能知道怎么发送出去了,所以必须得配网关。一个网段中所有配置的子网掩码必须都是相同的。
先测试局域网通不通,再测试广域网通不通。路由器如何选择路径,完全由路由表来决定。
网络层如何转发数据包
发送端:
- 1. 应用程序准备要传输的文件
- 2. 传输层 将文件分段 并编号
- 3. 网络层 添加目标IP地址源IP地址
- 4. 数据链路层(ARP协议属于网络层的协议:利用广播的通信方式:两种情况
- 使用自己的子网掩码 判断目标地址在哪个网段 为什么使用自己的子网掩码呢?只是想判断和我是不是在同一个网段,而你到底在哪个网段我并不关心。
- 使用自己的子网掩码 判断自己在哪个网段
- 如果是同一个网段 利用arp协议广播解析目标IP地址的MAC地址
- 如果不是一个网段 ;需要给路由器了,也就是目的IP地址为配置的网关地址,同样利用ARP协议广播得到路由器对应网关口的MAC地址。
点到点链路上的MAC地址是固定的,是全FF的。计算机要想跨网段通信,必须得配网关。
- 交换机只看MAC地址,然后决定从哪个接口出去(存储转发)。因为只能看懂数据链路层和物理层的信息,所以也叫做二层设备。看到数据帧的流动。
- 路由器从网卡接受到数据,先看数据链路层的MAC地址,判断是否是发送给自己,是的话去掉MAC地址相关的数据,然后查看IP地址,根据IP地址和路由表来决定接下来从路由器的哪个出口出去。路由器是网络层设备:是因为可以看懂MAC地址、IP地址和比特流。只看到数据包的流动
- 集线器什么也看不懂,和网线一样,只属于物理层设备。
- 物理层看到的是比特流的流动。
- 在接收端,一层一层把自己不需要使用的数据去掉,直到最后收到实际的数据。
思考题:交换机和路由器会中病毒么?
不会,因为病毒是一段代码,在传输的时候都需要被分解成一段段的,交换机和路由器都属于网络设备,只负责转发数据,不具备运行代码的能力。但是病毒会影响网络设备,让电脑使劲在网络上发送数据包,然后交换机就会一直很忙很忙,影响其正常工作,带宽被占用了。
网络层协议
ARP协议为IP协议服务,IP协议为ICMP和IGMP协议服务。
ARP协议
ARP协议是数据通行之前的协议,只会发送第一次数据,之后就会把对应的MAC地址给缓存起来。所以也有上下服务的关系,而不是并列的关系。
将IP地址通过广播 目标MAC地址是FF-FF-FF-FF-FF-FF 解析目标IP地址的MAC地址。
只要ping通了,在arp表里面就有对应的IP地址和MAC地址的映射条目。(利用arp -a命令就可以查看)
ARP欺骗
A想要知道B的MAC地址,发送广播,交换机转发给B, B收到后把自己的MACB地址回复给A, 虽然交换机不会把请求转发给C,但是C可以把自己的MACC地址发送给A,用自己的地址替换B的MAC地址,结果导致A缓存了一个错误的MAC地址, 然后接下来每次A想和B通信,都得先经过C。
网络执法官和ARP防火墙
- 静态绑定 :arp -s 192.168.80.1 00-0C-29-53-48-C3
- 查看所有缓存的MAC内容 :arp - a
- 清除缓存: 本地连接 修复