第四章 网络层
网络层负责在不同网络之间尽力转发数据包,基于数据包的IP地址转发,不负责丢失重传,不负责顺序
网络层提供的服务
网络层如何转发数据包
发送端:
- 应用程序准备要传输的文件
- 传输层 将文件分段 并编号
- 网络层 添加目标IP地址、源IP地址
- 数据链路层 两种情况:
- 使用自己的子网掩码 判断自己在哪个网段,再使用自己的子网掩码,判断目标地址在哪个网段,如果是同一网段,arp协议广播解析目标IP地址的MAC地址
- 如果不在一个网段,就要通过路由器来进行转发,这是目标地址的MAC地址就是路由器的MAC地址。
- 最后添加源MAC地址、目标MAC地址和FCS帧校验序列
- 集线器工作在物理层,只负责传递信号,可以加强信号
- 交换机工作在数据链路层,因为交换机在接收到bit流之后可以看懂帧的目的地址进行转发,负责存储转发。
- 路由器工作在网路层,它根据路由表选择出口
- 路由器再次选择路径之后,数据链路层更改目标MAC地址,再次封装
- 整个传输过程中源IP地址和目标IP地址不变,变的是源MAC地址和目标MAC地址。
网络层协议
IP协议
- RIP
- OSPF
ARP协议
将IP地址通过广播,目标MAC地址是FF-FF-FF-FF-FF-FF,解析目标IP地址的MAC地址,扫描本网段MAC地址
网际控制报文协议 ICMP
- 使用ICMP协议的命令:
- ping
- pathping:跟踪数据包路径,计算丢包情况
- tracert:Windows上跟踪数据包路径的命令
- traceroute:路由器上跟踪数据包路径的命令
- ping命令诊断网络故障
- ping(Packe Internet Grope),因特网包探索器,用于测试网络连接量的程序。Ping发送一个ICMP回声请求消息给目的地并报告是否收到所希望的ICMP回声应答。
- ping指的是端对端连通,通常用来作为可用性的检查,但是某些病毒木马会强行大量远程执行ping命令抢占你的网络资源,导致系统变慢,网速变慢。严禁ping入侵作为大多数防火墙的一个基本功能提供给用户进行选择。
- TTL是时间,也可说是耐久度,就是每经过一个路由器,TTL就减一。
- TTL默认值:Linux64,windows128,unix255.从TTL的值可以大概判断对方是什么系统。
- pathping 跟踪数据包路径,计算丢包情况
Internet组播管理协议IGMP
- 点到点
- 广播
- 组播=多播
IP数据包格式
-
版本:用来表示TCP/IP协议的版本,IPV4/IPV6
-
区分服务
-
标识:标识是一个数据包,数据包可能会在数据链路层分片,要重装就看这个标识
-
标志:占三位,目前只有前两位有意义。标志字段的最低位是MF(More Fragment)。MF=1表示后面还有分片,MF=0表示最后一个分片。标志字段中间的一位是DF(Don’t Fragment)。只有当DF=0时才允许分片。
-
网络层:数据包 65535字节
-
数据链路层:数据 1500字节,最大传输单元MTU
-
数据包,如果不分配,数据包数据最大不超过1480字节
-
首部校验和
静态路由
需要管理员告诉路由器所有没有直连的网络下一条给谁,也就是手动配置路由表,每一跳都要配置。
特点:适合于小规模网络,不能够自动调整路由
动态路由
- RIP:周期性广播路由表,选择跳数最小的,30秒更新一下路由信息,如果路由器宕机了,则删除路由信息,最大跳数15跳,超过则视为不可到达。