网络层的作用
定义了基本IP协议的逻辑地址,IP地址;链接不同的媒介,选择通过最佳路径完成逻辑地址。
也就是源IP地址 —— 目标IP地址
IP数据包格式
数据包简单来说就是在数据封装时,封装的IP头部所形成的IP数据包。
它的格式如下图:
- 版本:(4bit)该字段包含的是IP的版本号。目前IP的版本为4(即IPV4)表示为01100
- 首部长度(Head Length):(4bit(不包括数据))该字段包含的是IP数据包长度,IP数据包头最短为20字节,但是其长度是可变的,具体长度取决于选项字段的长度。
- 优先级与服务类型:(8bit)该字段用于表示数据包的优先级和服务类型。通过在数据包中划分一定的优先级,用于实现 QOS(服务质量)的要求。优先级从高到低的默认值依次是:0 1 2 3 4 5 6 7
- 总长度(Total Length):(16bit)该字段用以指示整个IP数据包的长度,最长65535字节,包括包头和数据。
- 标识符(Identification):(16bit)该字段用于表示IP数据包的标识符。当IP对上层数据进行分片时,他将给所有的分片分配一组编号,然后将这些编号放入标识符字段中,保证分片不会被错误的重组。
- 标志(flags):(3bit) 标志字段,对当前的包不能进行分片(当该包从一个以太网发送到另一个以太网时),或当一个包被分片后用以指示在一系列的分片中,最后一个分片是否已发出。
- 段偏移量(Fragment offset): (13bit) 该字段用于表示段偏移量.段偏移量中包含的信息是指在一个分片序列中如何将各分片重新连接起来。
- TTL(time to live)生命周期:(8bit) 该字段用于表示IP数据包的什么周期。一个数据包每经过一个路由器,TTL将减去1,当TTL的值为0时,该数据包将被丢弃。可以防止一个数据包在网络中无限循环的转发下去。
通过TTL的返回值确定你的系统类型:Win 128左右,Linux 64左右。- 协议号(Protocol Number):(8bit) 是协议字段。该字段用以指示在IP数据包中封装的是哪一个协议,是TCP还是UDP。TCP的协议号为6,UDP的协议号为17。
- 首部校验和(head checksum): (16bit) 该字段用于表示校验和,接收方和网关用来校验数据有没有被改动过。
- 源IP地址(Source address):(32bit) 该字段用于表示数据包的源地址。
- 目标IP地址(Destination address):(32bit) 该字段用于表示数据包的目的地址。
- 可选项:提供额外的控制和信息,可选项字段不是必须的。
- 时间戳:可以帮助网络故障排除
- 路由记录:数据包在传输过程中经过的路由器和跳数
- 选项协议:可传输额外的协议信息
服务质量QOS :
网络能够为不同类型流量提供不同传输质量、服务保障以为满足用户需求和应用场景。
- 带宽:保证各类流量得到足够的带宽,满足传输需求。
- 延迟:在线游戏、会议等,QOS保证延迟空载合理范围内。
- 丢包率:视频网站QOS保证丢包率尽可能的低。
- 抖动:音频流、视频流QOS保证抖动尽可能的小。
- 优先级:保证各种流量得到合理的优先级服务。从高到低的等级:0-7。
nginx服务 查错方法:
- ping自己的硬件回环地址(127.0.0.1),看是否能拼同
- ping网关地址
- 检查双方的地址是否配置错误
- 看端口,端口通信是否正常
其命令:telent 地址 22 - 看防火墙策略
ICMP协议(Internet Contrl Message Protocol)
是错误侦测与回馈机制,通过IP数据包封装,用来发送错误和控制信息。
功能ping:ping是网络设备,Windows,Unix和Linux平台上的一个命令,其实是一个小巧而实用的应用程序,该应用基于ICMP协议。ping常用于探测到达目的节点的网络可达性
ARP协议
用于将网络层(ipv4)的地址转换为数据链路层的mac地址。
ARP通过维护IP地址和mac地址的对应关系来实现转换及数据转发。
静态ARP:人工绑定的,或默认自带
动态ARP:通过网络通信活动获取到的,有一定生命周期到一定时间会刷新掉
ARP工作原理
- 主机A发送数据给主机B,先看自己ARP缓存表有无主机B的mac地址,有则直接转发。
- 没有则主机A发送ARP请求(泛洪广播)
- 所有主机收到ARP请求,只有主机B应答该请求。其他主机则丢弃。
- 主机A把主机B的mac地址保存到ARP缓存表中并转发数据——动态ARP
Address Resolution Protocol (request):请求
Hardware type:硬件类型 Ethernet:以太网
Protocol type ipv4:ipv4的协议类型
Harware size 6:硬件地址大小(单位:bit)
Protocol size 4:协议地址大小(单位:bit)
Opcode:request:响应码(请求)
Send mac/ip address:源主机mac/ip地址
Target mac/ip address:回应后的主机mac/ip地址
ARP攻击与欺骗
ARP攻击
ARP攻击发送的是ARP应答,但是ARP应答中的MAC地址为虚假地址,所以在其他主机想要进行通信时,会将目的MAC地址设置成此虚假MAC地址导致无法正常通信。
例如:如果希望被攻击主机无法访问互联网,就需要对网关发送或被攻击主机发送虚假的ARP应答。当网关接收到虚假的ARP应答更新ARP条目后,如果网关再发数据给PC1时,就会发送到虚假的MAC地址导致通信故障。
ARP欺骗
ARP欺骗的原理和ARP攻击基本相同,但是效果不一样。ARP攻击最终的结果是导致网络中断,而ARP欺骗的最终结果是使得流量通过自身达到监控或控制的目的。
防范ARP攻击欺骗的措施
动态ARP为了防止ARP攻击,可以采取以下几种措施
防火墙:配置防火墙,限制ARP数据包的广播范围,防止攻击者发送伪造的ARP数据包。
ARP缓存表维护:定期清理ARP缓存表,防止攻击者通过ARP缓存中毒攻击。
静态ARP绑定:在网络中的设备上设置静态ARP绑定,将MAC地址和IP地址绑定在一起,防止攻击者伪造MAC地址。
ARP监控:使用ARP监控工具,监控网络中的ARP数据包,及时发现和防止ARP攻击。
ARP命令
1、windows中如何查看ARP相关命令
apr-a:查看arp缓存表
arp-d:清除arp缓存
arp-d【IP】:加ip,只删除改IP
arp-s IP MAC:删除arp静态绑定
2、华为系统中的ARP命令
[Huawei]dis mac-address 查看mac地址信息
[Huawei]arp static<IP> <MAC> 绑定ARP
[Huawei]undo arp static<IP> <MAC> 解绑定
<Huawei>reset arp all 清除mac地址表
Ping的一些基本命令
ping -t 地址:会一直无限制的ping下去
ping -n 10 地址:指定发包的个数(发10次)
ping -a 地址:显示主机名
查看MTU:netsh interface ipv4 show subinterfaces (在Linux系统下)