网络层有四个协议:ARP、IP、ICMP、IGMP
负责在不同网络之间尽力转发数据包,不负责丢失重传,也不负责顺序。基于数据包的IP地址转发
通过APR协议广播来得到各设备的mac地址。根据自己的子网掩码与目标IP进行与运算,如果一致,则局域网内转发,如果不一致,则目标MAC地址改为网关MAC地址。
- 集线器: 作用是信号加强,因为双绞线最多100M
- 交换机: 链路层设备,用于存储转发(根据目标MAC地址决定从那个口出)
- 左路由器: 网络层设备,解析出目标IP,查询路由表,进行转发,由于使用点对点通信,所以源MAC=目标MAC地址。
- 右路由器: 网络层设备,通过目标IP查询路由表,得出目标MAC地址。然后进行转发
- 问:交换机与路由器能中病毒吗?答: 不能。因为数据被切割成很多块儿,病毒是一个应用,被切割后不起作用。不过病毒能通过不停的发广播来影响设备忙于转发无用请求,使正常请求不能访问。
网络层协议
ARP协议
- ARP协议: IP地址通过广播,目标MAC地址是FF-FF-FF-FF-FF-FF,解析目标IP地址的MAC地址。(只解析/广播本网段的设备,路由器隔绝。 cmd -> arp -a)
- ARP欺骗: 即将IP对应的正确MAC地址修改掉。ARP欺骗工具: 网络执行官可通过手动修改MAC地址来破解(一重启就没了,可写脚本,然后开机运行来解决):arp -s [ip] [mac]、或安装ARP防火墙
网际控制报文协议 ICMP
- ICMP: 在IP协议之上,又在传输层协议(TCP/UDP)之下。用来测试网络层是否畅通,网络是否有故障。如有故障,该协议可报告故障。可通过PING命令表达
- TTL: 表示存活周期,每过一个路由器就-1;可根据TTL大概判断对方是什么系统,linux(64) windows(128) Unix(255)
- ping命令ping <ip> -l <字节数> : 使用大字节来ping地址ping <ip> -i <路由序号>:更改数据包的TTL时间,能够跟踪数据包途径的路由器
- pathping: 跟踪数据包路径、计算丢包情况
- tracert: 能够查看沿途的路由器(目前看比pathping 好用)
IGMP协议和多播组播
IGMP协议的作用就是周期性扫描本网段内有没有主机在访问多播数据包。
点到点通信:广播:目标MAC地址全是F,目标IP地址全是255,也就是全是1.全网广播不能跨越路由器。组播=多播:分组广播。使用多播一般用于直播,网络会议,能够节省带宽。
IP数据包格式
- 版本: 用来表示 TCP/IP 协议的版本 v4 v6
- 数据包大小(超了就要分片):网络层最大 2的十六次减1=65535字节链路层最大1500字节针对数据包的分包模式,有一种专门的攻击方式叫泪滴攻击;
- 常见协议ICMP 协议号为1(十进制)IGMP 协议号为2TCP 协议号为6UDP 协议号为 17IPV6 协议号为41OSPF协议号为 89
首部检验和
使用抓包工具排查网络故障
IP协议
网络畅通的条件(数据包有去有回,查看路由表、网关)
- 静态路由:由管理员来设置网络怎么走。告诉路由器所有没有直连的网络吓一跳给谁
- 动态路由: 通过IP协议,自己学习网络怎么走RIP: 周期性广播路由表给其他路由器,条数少的则是最优路径。30S更新更新一次,最大跳数15跳,过了16就是不可达;OSPF:以带宽为判断标准;