重点内容
IP数据包格式
ICMP协议介绍
ARP协议介绍
ARP攻击原理
网络层功能
1、定义了基于IP协议的逻辑地址
2、连接不同的媒介类型
3、选择数据通过网络的最佳路径
IP数据包的格式
版本号 (4bit):是指IP协议版本,要求版本号一致(目前我们使用的版本号是IPv4)
首部长度(4bit):IP数据包的包头长度
优先级与服务类型(8bit):表示数据包的优先和服务类型。通过在数据包中划分一定的优先级,用于实现QoS(服务质量)的要求
总长度(16bit):定义IP数据包的总长度,最长字节为65535,其中包括包头和数据(一般为20字节)
标识符(16bit):用于表示IP数据包的标识符,当IP对上层数据进行分片时,会给所有分片分配一组编号,然后将这些编号放入标识符字段中,以保证分片不会被错误的重组。标识符字段用于标志一个数据包,以便接收节点可以重组被分片的数据包
标志(3bit):和标识符一起传递,指示不可以被分片或者最后一个分片是否发出
段偏移量(13bit):在一个分片序列中如何将个分片按照什么顺序连接起来
TTL(8bit):生命周期可以防止一个数据包在网络中无限循环转发没经过一个路由器时TTL-1,当生命周期为0时,该数据包将会被丢弃
协议号(8bit):封装的上层协议,其中ICMP:1;TCP:6;UDP:17
首部校验和(16bit):该字段只检验数据报的首部,不包括数据部分,因为每经过一次路由器时都需要重新计算首部校验和(其中有的字段:TTL、标志、偏移量都可能发生变换)
源地址(32bit):源IP地址
目标地址(32bit):源MAC地址
可选项:可选项字段会根据实际情况变化,可以和IP一起使用的选项有多个(例如:可以输入创建该数据包的时间等)
数据:即上层数据
ICMP协议
功能要用于在IP网络中发送控制消息,提供可能发生在通信环境中的各种问题反馈。通过这些反馈信息管理员就可以对所发生的问题做出判断,然后采取适当的措施去解决。
ICMP报文的两种类型差错报告报文和查询报文
ICMP协议的封装
在检查网络连通性时,最多使用的就是ping命令
ping命令
命令格式
ping [-t] [-l 字节数] [-a] [-i] IP_Address|target_name
ping命令参数
-t Ping 指定的主机,直到停止。 -a 将地址解析为主机名。 -i TTL 生存时间。 -l size 发送缓冲区大小。 ##其中我们还可以通过tracert命令来追踪IP路径,查询错误网段
ping不通的几种情况
1、主机有一个默认网关,如果ping其它网段的地址到不了的话会显示请求超时(request timeout),此时他把ICMP包发给网关,至于后面的事就与他无关,如果没有包回应,就显示request timeout
2、当一个主机没有默认网关或者配置了网关但是和网关不通时,如果他ping其它网段的地址,显示的是Destination host unreachable (此时可通过发送ARP请求包请求网关的MAC地址)
3、当一个路由器ping他路由表中没有的地址时,如果没有回应,则显示request timeout(此时不发任何包)
4、当路由器ping一个路由表中存在的地址时,如果没有回应,则显示request timeout(此时发送ARP请求包,请求目标IP的MAC地址)
ARP协议
概述将已知的IP地址解析成MAC地址
与网卡有及其密切的关系
如何工作
1、当PC1想要发送数据给PC2,首先在自己的本地ARP缓存表中检查主机PC2的匹配MAC地址
2、如果PC1缓存中没有找到相应的条目,他将询问主机PC2的MAC地址,从而将ARP请求帧广播到本地网络的所有主机,该帧中包络源主机PC1的IP、MAC地址,本地网络中的所有主机都收到了ARP请求,并且检查是否与自己的IP地址相匹配,如果发现请求中IP地址与自己的IP不匹配,则丢弃数据
3、主机PC2确定ARP请求中的IP地址与自己的IP地址匹配,则将主机PC1的IP地址与MAC地址添加到本地缓存表中
4、主机PC2将包含其MAC地址的ARP回复消息直接发送回主机PC1(实现数据帧的单播)
5、主机PC1收到PC2发送的ARP回复,将PC2的IP地址和MAC地址添加到自己的ARP缓存表中,本机缓存是有生存周期的,默认ARP缓存表有效期为120s。当超过该有效期后,将会重复上面操作(主机PC2的MAC地址一旦确定,主机PC1就能像主机PC2发送IP信息)