IP数据包格式与ICMP协议的常用命令

IP数据包格式与ICMP协议的常用命令

  • 一、IP数据包格式
    • 1、IP协议字段
    • 2、协议字段实例
  • 二、ICMP协议
    • 1、ICMP主要功能介绍
    • 2、ICMP的基本使用
      • (1)ping命令的返回信息
      • (2)ping命令的常用参数
      • (3)跟踪路由路径命令

一、IP数据包格式

网路层负责定义数据通过网络流动所经过的路径。主要功能为:
1、定义了基于IP协议的逻辑地址
2、选择数据通过网络的最佳路径
3、连接不同的媒介类型
下面来看一下IP数据包头的格式,各字段的含义如下:

1、IP协议字段

1、版本(Version):该字段包含的是IP的版本号,4bit。目前IP的版本为4(即IPv4)。
2、首部长度(Header Length):该字段用于表示IP数据包头长度,4bit。IP数据包头最短为20字节,但是其长度是可变的,具体长度取决于可选项字段的长度。
3、优先级与服务类型(Priority & Type of Service):该字段用于表示数据包的优先级和服务类型,8bit。通过在数据包中划分一定的优先级,用于实现Qos(服务质量)的要求。
4、总长度(Total Length):该字段用以指示整个IP数据包的长度,16bit。最长为65535字节,包括包头和数据。
5、标识符(Identification):该字段用于表示IP数据包的标识符,16bit。当IP对上层数据进行分片时,它将给所有的分片分配同一组编号,然后将这些编号放入标识符字段中,保证分片不会被错误地重组。 路由器将一个包拆分后,所有拆分开的小包被标记相同的值,以便目的端设备能够区分哪个包属于被拆分开的包的一部分。
6、标志(Flags):标志字段,3bit。对当前的包不能进行分片(当该包从一个以太网发送到另一个以太网时),或当一个包被分片后用以指示在一系列的分片中,最后一个分片是否已发出。
7、段偏移量(Fragment Offset):该字段用于表示段偏移量,13bit。段偏移量中包含的信息是指在一个分片序列中如何将各分片重新连接起来。
8、TTL(Time to Live):该字段用于表示IP数据包的生命周期,8bit。一个数据包每经过一个路由器,TTL将减去1。当TTL的值为0 时,该数据包将被丢弃。可以防止一个数据包在网络中无限循环地转发下去。
9、协议号(Protocol):协议字段,8bit。该字段用以指示在IP数据包中封装的是哪一个协议,是TCP还是UDP,TCP的协议号为6,UDP的协议号为17。
10、首部校验和(Header Checksum):该字段用于表示校验和,16bit。接收方和网关用来校验数据有没有被改动过。错误即重传或丢弃。
11、源IP地址(Source IP Address):该字段用于表示数据包的源地址,32bit。发送端地址。
12、目标IP地址(Destination IPAddress):该字段用于表示数据包的目的地址,32bit。接收端地址。
13、可选项(Options):可选项字段根据实际情况可变长,可以和TP一起使用的选项有多个。例如,可以输入创建该数据包的时间等。在可选项之后,就是上层数据。
IP数据包格式与ICMP协议的常用命令_第1张图片

2、协议字段实例

Wireshark抓包数据实例
IP数据包格式与ICMP协议的常用命令_第2张图片

二、ICMP协议

ICMP协议(Internet Control Message Protocol)的全称是“Internet控制消息协议”,主要用于在IP网络中发送控制消息,提供在通信环境中可能发生的各种问题的反馈。

1、ICMP主要功能介绍

ICMP采取“错误侦测与回馈机制”,通过IP数据包封装,用来发送错误和控制消息。其目的是使管理员能够掌握网络的连通状况。
IP数据包格式与ICMP协议的常用命令_第3张图片

ICMP属于网络层协议,因为传输ICMP信息时,要先封装网络层的IP报头,再交给数据链路层,即ICMP报文对应IP层的数据;
IP数据包格式与ICMP协议的常用命令_第4张图片

2、ICMP的基本使用

在网络中,ICMP协议的使用是靠各种命令来实现的。下面以ping命令为例,介绍ping命令的使用以及返回的信息。
ping命令的基本格式如下:

C:\>ping [-t][-l字节数][-a][-i]IP_Address| target_name

其中[ ]中的参数为可选参数。

(1)ping命令的返回信息

在检查网络连通性时,ping命令是用得最多的。ping命令能够检测两台设备之间的双向连通性,即数据包能够到达对端,并能够返回。
1、连通的应答
如图,从返回的信息可知,从源主机向目标主机共发送了4个32字节的包,而目标主机回应了4个32字节的包,包没有丢失,源主机和目标主机之间的连接正常。
IP数据包格式与ICMP协议的常用命令_第5张图片
2、不能建立连接的应答
ICMP的返回信息为“无法访问目标主机”,说明两台主机之间无法建立连接;
IP数据包格式与ICMP协议的常用命令_第6张图片
3、应答为未知主机名
ICMP返回信息为“找不到主机”,说明DNS无法进行解析。
4、连接超时的应答
返回信息为“请求超时”,说明在规定的时间内没有收到返回的应答消息。
IP数据包格式与ICMP协议的常用命令_第7张图片

(2)ping命令的常用参数

1、-t:参数会一直不停的执行ping
在Windows操作系统中,默认情况下发送4个ping包。-t命令则会让系统一直不停的ping下去。
IP数据包格式与ICMP协议的常用命令_第8张图片

2、-a:参数可以显示主机名称
IP数据包格式与ICMP协议的常用命令_第9张图片
3、-l:参数可以设定ping包的大小
一般情况下,ping包的大小为32字节,有时为了检测大数据包的通过情况,可以使用参数改变ping包的大小;
IP数据包格式与ICMP协议的常用命令_第10张图片
4、-n:指定发送包的个数
IP数据包格式与ICMP协议的常用命令_第11张图片

5、-s:指定源IP去ping
IP数据包格式与ICMP协议的常用命令_第12张图片

在Linux系统下为:
1、-s:参数可以设定ping包的大小
2、-c:指定发送包的个数
3、-I:指定源IP去ping

(3)跟踪路由路径命令

WIN: tracert IP/域名
IP数据包格式与ICMP协议的常用命令_第13张图片

Linux: traceroute IP/域名

你可能感兴趣的:(网络,网络,linux,网络协议)