文章目录
一、网络层
1、网络层的功能
- 定义了基于IP协议的逻辑地址
- 连接不同的媒介类型
- 选择数据通过网络的最佳路径
二、IP数据包格式
- 协议字段
- 版本(4bit):该字段包含的是IP的版本号。目前IP的版本为4(即IPv4),表示为0100
- 首部长度(4):用于表示IP数据包头长度
- 优先级与服务类型(8):用于表示数据包的优先级和服务类型。通过在数据包中划分一定的优先级,用于实现Qos(服务质量)的要求。
- 总长度(16):用以指示整个IP数据包的长度,最长为65535字节,包括包头和数据。
- 标识符(16):该字段用于表示IP数据包的标识符,当IP对上层数据进行分片时,它将给所有的分片分配同一组编号,然后将这些编号放入标识符字段中,保证分片不会被错误重组。
- 标识(3):和标识符一起传递,对当前的包不能进行分片(当该包从一个以太网发送到另一个以太网时),或当一个包被分片后用以指示在一系列的分片中,最后一个分片是否已发出。
- 段偏移量(13):在一个分片序列中如何将各分片连接起来,按什么顺序连接起来。
- TTL生命周期(8):一个数据包每经过一个路由器,TTL将减去1。当TTL的值为0时,该数据将被丢弃。可以防止一个数据包在网络中无限的转发下去。
- 协议号(8):该字段用以指示在IP数据包中封装的是哪一个协议,是TCP、ICMP还是UDP,TCP:1、TCP:6、UDP:17
- 首部校验和(16):这个字段只检验数据包的首部,不包括数据部分。这是因为数据包每经过一次路由器,都要重新计算一下首部校验和(因为一些字段如生存时间、标志、片偏移等可能发生变化)
- 源地址(32):源IP地址,表示接收端的IP地址
- 目标地址(32):目标IP地址,表示接收端的IP地址
- 可选项:可选项字段根据实际情况可变长,可以和IP一起使用的的选项有多个。例如,可以输入创建该数据包的时间等。在可选项之后,就是上层数据。
三、ICMP协议(Internet控制报文协议)
- ICMP是一个“错误侦测与回馈机制”
- 通过IP数据包封装
- 用来发送错误和控制信息
ICMP协议的封装
- ICMP协议属于网路层协议
- ICMP数据的封装过程
首先将ICMP头部和ICMP数据
Ping命令
Ping的常用命令
- -I参数可以设定pnig包的大小(可用于简单的测试通讯质量)
- -a参数可以显示主机名称
- t参数会一直不停的执行ping(调试故障或需进行持续连通性测试时应用)Ctrl+C可以中断命令
- -n count 要发送的回显求数
四、arp协议
1、什么是arp
ARP协议是地址解析协议是通过解析IP地址得到MAC地址的。
2、IP地址解析为MAC地址
- PC1发送数据给PC2,查看缓存没有PC2的MAC地址
- PC1发送ARP请求消息(广播)
- 所有主机收到ARP请求信息
- PC2回复ARP应答(单播)
- 其他主机丢弃
- PC1将PC2的MAC地址保存在缓存中,发送数据
简单来说:PC1想发送数据给PC2,会先检查自己的ARP缓存表,如果发现要查找的MAC地址不在缓存表中,就会发送一个ARP请求广播,用于发现目的地的MAC地址。ARP请求中包括PC1的IP地址和MAC地址以及PC2的IP地址和MAC地址。然后向除了PC1以外所有主机发送ARP请求。PC2收到ARP的信号,知道是寻找自己的,然后在自己的ARP缓存表中记录PC1的IP地址和MAC地址,然后以单播的方式和PC1回应,PC1也会记录PC2的IP地址和MAC地址,而其他主机则丢弃此ARP请求。
3、Windows系统中的ARP命令
- arp-a:查看ARP缓存表
- arp-d:清楚ARP缓存
- ARP绑定
4、ARP攻击与欺骗
攻击原理
- 欺骗其他所有主机
- 欺骗被攻击计算机
ARP攻击
ARP攻击发送的时arp应答,但是ARP应答中的MAC地址为虚假地址,所以在其他主机想要进行通讯时,会将目的MAC地址设置成此虚假MAC地址导致无法正常通讯。
列如:张三要给李四打电话,他首先要知道李四的电话号码,这时有人告诉他李四的电话号码时12345678(不存在的号码),于是张三就把电话打到了12345678,这样就找不到李四了。
ARP欺骗
ARP欺骗的最终结果是使得流量通过自身达到监控或控制的目的。
五、总结
IP数据包格式重点理解各字段的含义,ICMP用来发送错误信息和控制消息,ARP协议用于实现IP到MAC地址的解析,ARP协议通过广播查询目标主机MAC地址,ARP攻击是通过伪造ARP应答进行欺骗攻击。