网络层
基本概念
负责在不同网络上转发数据包,基于数据包的IP地址来转发,不负责丢失重传,不负责顺序
决定改怎么走
- 路由器是三层设备,根据IP地址来选择路径
网关默认使用第一个地址,是连接不同网络的网口
网络设备和OSI参考模型关系
-
发送端 传输之前的准备工作
-
应用程序准备要传输的文件
-
传输层将文件分段编号(段)
-
网络层加上源ip地址,目标ip地址(包)
-
路由器 三层设备
- 根据IP来选择下一个出口怎么走
-
-
链路层
- 使用自己的子网掩码判断自己在哪个网段
- 使用自己的子网掩码判断目标地址在哪个网段
- 如果是同一个网段,直接使用arp协议广播解析目标地址的mac地址
- 如果不是 一个网段,将数据发给路由器来转发。arp广播路由器的mac地址,然后将数据转发到路由器,由路由器继续转发。如果不配网关,计算机则没办法和其他网段的计算机进行通信
- 加上源mac 下一跳的mac(帧)
- 交换机能看懂mac并决定从哪一个口转发数据包,二层设备,存储转发
-
物理层
- 二进制流传输(bit)
-
ARP协议(广播来解析mac地址)
ARP为IP提供服务,IP为ICMP,IGMP提供服务
将IP地址通过广播 目标mac地址是FF-FF-FF-FF-FF-FF 解析目标IP的mac地址 ,只能解析本网段的
mac地址欺骗
-
故意将自己的mac地址发送给请求主机,截获到数据包之后再将数据包转发给目标主机
-
防止arp欺骗
- 静态双向绑定mac地址,两主机通信就不用arp了
- arp防火墙
ICMP
测试网络层是否畅通,ping
-
查看网络延迟
-
TTL 网络包的生存时间
- 每过一个路由器就-1,变成0之后会被丢弃,避免转圈,出现循环
- Linux 64
- windows 128
- Unix 255
-
一般ping 4个包就结束,加-t一直ping到Ctrl+C结束
-
ping /?查看所有指令介绍
-
qq登录不需要域名解析
-
排除网络故障
-
挨个去ping机器,如果同时畅通且同时出现故障,则就是网络有问题不是服务器的问题
-
网络堵塞:网络中有很多广播包
-
网络畅通的条件
- 请求超时:数据包回不来,找不到返回的路由器
- 目标地址不可达:数据包不知道怎么去,路由表找不到
-
pathping
- 查询到具体是哪一个路由器出的问题
- 没有问题的话,经过的路由器都能查到
tracert
- windows上跟踪数据包路径的命令
traceroute
- 在路由器上跟踪数据包路径的命令
IGMP
组播(多播)
- 按照分组来转发,使用多播IP地址
周期性地扫描哪些计算机在使用多播地址,如果没有机器绑定多播地址,则不接受传来的流媒体
IP
IP数据包首部
-
首部,固定长度,20字节
-
0-4bit 版本 用来表示TCP/IP是哪个版本的v4,v6
-
4-8bit 首部长度 说明是否有可变的部分
-
8-16 区分服务
-
16-31 总长度
- 分片后的长度,不是包的长度
-
标识
- 标识是第几个分片
-
标志
- 3个bit,最低位MF=1(还有分片)MF=0(最后一个分片),中间位DF=0(允许分片)
-
片偏移
- 表明该分片在原来数据包中的位置编号
-
生存时间
- 每过一个路由器TTL-1,TTL<1被路由器扔掉,控制了数据包能够过多少个路由器,避免网络循环堵塞爆炸
- windows默认128
- Linux默认64
- unix默认255
-
协议
- 标识用的是什么协议,标识数据部分应该交给谁来处理
- ICMP 协议号1
- IGMP 协议号2
- TCP 协议号6
- UDP 协议号17
- IPV6 协议号41
- OSPF 协议号89
-
首部检验和
- 检查首部是否出现了错误
- 反码算数运算求和(先求和再取反码)
- 如果结果为0则保留,否则丢弃
-
源地址
-
目标地址
-
-
数据部分,可变部分
IP数据包数据部分
IP协议
-
OSPF
-
所有能够让路由器学习到路由表的协议都叫IP协议
-
静态路由(管理员手动配置路由表)
- 需要管理告诉路由器所有没有直接连接的路由器下一条给谁
- 适合小规模网络,不能自动调整网络的变化
-
动态路由(路由器自己学习路由表)
-
RIP
- 周期性(30s)的在网上发广播,路由器自动学习,最大跳数16跳
- 经过的路由器越少越好
-
-
XMind: ZEN - Trial Version