网络层
1.网络层的功能
网络层负责在不同网络之间转发数据包, 基于数据包的IP地址转发. 如果数据丢失,不负责丢失重传, 也不负责顺序处理. 路由器就工作在网络层
数据包在互联网中传送时, 在物理层中有各种不同的介质. 因为既有局域网的广播传输, 又有广域网的点对点传输. 所以在局域网使用CSMA/CD协议, 在路由器间使用PPP协议
2.网络设备和OSI参考模型间的关系
计算机通信过程
发送端 :
- 1.应用程序准备要传输的文件,
- 2.传输层 将文件分段 并编号
- 3.在网络层对分段数据加上源, 目标IP地址
- 4.在数据链路层 : 两种情况, 使用自己的子网掩码判断源IP和目标IP是否在同一网段
1>本网段通信
若在同一网段, 则直接使用ARP协议, 广播解析目标地址的MAC地址. 然后用对方的MAC地址封装成数据帧
2>跨网段通信
如果不是一个网段,则先通过ARP协议广播获取网关(路由器)的MAC地址, 再传送到路由器(借助路由表), 通过点对点传输到另一网段, 再进行传输.
3.网络层协议
1>ARP协议
-
1.将IP地址通过广播, 目标MAC地址是全F, 解析目标IP地址的MAC地址
无论是在网段内通信还是跨网段通信, 都要获取目标段的MAC地址或网关的MAC, 这时就通过ARP向网段内所有设备发送广播, 接收到广播的设备判断该IP地址是否是自己的, 如果是, 则将自己的MAC地址返回给发送端. 发送端将这个MAC地址缓存下来, 之后再发送就直接用这个MAC地址.
-
2.ARP欺骗 : 我们之前说过交换机有存储功能, 维护了一个MAC地址表, 如果目标MAC地址确定, 并存在与交换机的MAC地址表中, 交换机就只将数据发送给目的MAC地址的设备, 而不发送给其他接口的设备. 网段内M1与M2进行通信, M1发送ARP广播, M2收到后检测目标地址是自己的IP, 就把自己的MAC地址发送给M1, 但是这时M3(欺骗者), 将自己的MAC地址也发给M1. 这时M1里缓存的MAC地址就是M3的MAC地址, 并把数据发送给M3, M3再把源MAC地址改成自己的,然后将数据转发给M2, 这样M1,M2之间通信就会经过一层M3, 这就是ARP欺骗
2>ICMP协议
依赖于IP协议, 多用于测试网络畅通
应用 : ping(Packet Internet Group), 因特网包探索期 , 用于测试网络连接量的程序. TTL 表示数据包的生存时间
3>IGMP
配置在路由器上, 周期性扫描网段中有没有计算机绑定多播地址, 只要有一个计算机绑定多播地址, 就会有数据发送过来. 但如果网段内没有计算机绑定多播地址, 就会停止发送数据包, 用于多播
4.IP数据包结构
一个IP数据包由首部和数据两部分组成
- 首部的前一部分是 固定长度, 共20字节, 是所有IP数据包必须具有的
- 在在首部的固定部分的后面是一些可选字段, 长度是可变的
版本 : TCP/IP协议版本 v4,v6
首部长度 : 若没有可选字段, 只有固定长度的20字节, 则值为5 (单位为4字节)
区分服务 : 设定服务的优先级, 让一些需要即时服务的数据包先传输. 实现这种服务叫QOS
总长度 : 用于表示整个数据包的长度, 最大65536字节, 但数据链路层最大传输单元1500字节. 若数据包过大,则会在分片后传送到 数据链路层.
标识 : 如果数据包分片了, 数据包里就需要标识来指定多个分片是同一个数据包
标志 : 占e3位, 只有 前两位有意义. 最低位是MF(More Fragment), MF = 1表示后面还有分片. MF = 0表示最后一个分片. 标志字段中间的一位是DF(Don’t Fragment), 只有当DF = 0时才允许分片
片偏移 : 分片处的字节值/8 (8字节/1偏移)
生存时间 : TTL每过一个路由器减1. TTL变为1,就不能再转发到其他网段了(无法再路由), 作用 : 防止路由环路.linux默认TTL64,windows默认 TTL 128
协议 : 标识协议号, 数据包中的数据 是什么 协议的数据, 协议字段指出应该将数据部分交给哪一个进程
ICMP : 1; IGMP : 2; TCP : 6; UDP : 17; IPv6 : 41
首部检验和 : 接收端进行校验, 对首部信息进行校验
源地址和目的地址 : 两个32位的IP地址
5.IP协议
路由器在网络层的作用就是在不同网段之间转发数据包, 如何判断该选择哪条路径? 路由表, 路由表通过静态路由或动态路由获取
静态路由 : 管理员配置路由表,适合晓得网络
网络畅通条件 : 数据包有去有回(有网关,知道来回路由器上下一跳去哪)
动态路由 : RIP ,OSPF等协议自动学习, 可以随着网络状态变化自动调整
RIP : 周期性向周围发广播, 告诉其他路由器自己连着哪个网段(自己的路由表). 过得路由器越少, 就越优. 周期性更新