数据包
计算机网络将要传输的报文分割成一个个小的数据片段,称为“分组”,在每一个分组的数据前加上传输数据所必需的信息“报头”,就构成了网络数据传输的基本部件“数据包”。
应用层的主要任务是将被传输的信息转换成符合网络传输规范的二进制数据块。常用的应用层协议有:超文本传输协议HTTP、文件传送协议FTP、远程登录协议TELNET、简单邮件传送协议SMTP、域名解析协议DNS、简单网络管理协议SNMP、动态主机配置协议DHCP、以及微软媒体服务器协议MMS等。
传输层的主要任务是将数据包传输到目的地,为此,传输层为应用层上的应用提供两类截然不同的服务:第一类服务是可靠的面向连接服务,确保正确无误地把消息从源端传送到目的地,使用的协议是TCP协议。第二类服务是不可靠的无连接服务,使用的协议是用户数据包协议UDP。
以太网接口卡可以被设置成如下4种工作模式:
(1)广播:数据帧可以发向网络中所有计算机。任何设置为广播模式的网卡都接收目的地址为广播地址的数据帧。通常所有的网卡被配置为接收广播帧
(2)多播:发往一组计算机的帧称为多播帧,使用特定的多播地址作为目的地址。这些计算机的组构成了多播组。这样,多播组里的任何一个成员计算机将会接收具有多播目的地址的帧.
(3)直接:发往特定计算机的帧具有特定计算机的物理地址。具有特定物理地址的计算机将接收特定的帧,丢弃其它的帧。网卡可以设置为仅仅接收直接帧。
(4)混杂:设置为这个模式的网卡接收所有收到的数据包,任何到达此网卡的信息都不丢弃。这个模式是网络监测应用程序的关键模式。
在网络监听情况下,要想监听到被监听主机之间的通信信息,也要满足以下的两点基本要求:
SnifferPortable共有8个下拉菜单:
文件菜单:打开和保存各种记录数据文件;软件系统工作模式的设定;打印各种报表或报告;运行脚本程序等。
监视器菜单:选择设定系统监视对象和监视的任务,可以定义过滤器对监视的对象有选择的做出显示,也可以察看报警日志。
捕获菜单:可以启动或停止捕获操作。可以按照不同的工作需求设置捕获过滤器,也可以为捕获操作设置触发条件。这些功能可以极大地提高捕获工作效率。
显示菜单:显示捕获数据的内容,可以对显示内容进行搜索与过滤。
工具菜单:包含了一些系统工具。如系统配置选项,监视对象地址簿,数据包自动发送工具等。
数据库菜单:对保存数据的数据库进行整理维护。
窗口菜单:按不同的工作需要显示或隐藏不同的窗口。
帮助菜单:提供系统帮助。
开始按钮:启动捕获程序,开始捕获数据包。
暂停按钮:暂时停止捕获数据。
停止按钮:停止捕获工作。
停止和显示按钮:停止捕获工作,自动转到显示捕获数据包窗口。
显示按钮:显示捕获数据包的内容。
定义过滤器按钮:设置过滤条件,有选择的进行捕获。
第三层运输层,主要为两台主机上的应用程序提供端到端的通信。在TCP/IP协议中,有两个互不相同的传输协议:即面向连接的TCP协议和非连接的UDP协议。
第四层应用层,由不同的应用程序实现特定的应用目的。如:
(1)前导码:8个字节,用于同步和起始标志。在SnifferPortable中不显示。
(2)目的地址:6个字节,目的主机MAC地址。
(3)源地址:6个字节,源主机MAC地址。
(4)类型域:2个字节,标识了在以太网上运行的客户端协议。即表明上层(网络层)的协议。如IP、IPX等网络层协议。
(5)数据:46~1500字节,这里是真正要传输的数据。如果长度不够46字节则由DLC协议自动补齐为46字节。
(6)帧校验序列:4个字节,利用的是CRC循环冗余校验法,在SnifferPortable中不显示。
在DLC头部:共显示6行信息,其中第3-5行显示内容是DLC真实内容,其它行是SnifferPortable添加的状态信息.
第一行:SnifferPortable添加的DLC起始标志。
第二行:SnifferPortable添加的帧序号、捕获日期、时间、帧的长度等信息。以上2行内容在数据包中是没有的。
第三行:DLC真实内容。目标主机的MAC地址。占6个字节,帧内地址00-05H。
第四行:DLC真实内容。源主机的MAC地址。占6个字节,帧内地址06-0BH。
第五行:DLC真实内容。数据包的类型(即上层协议的类型)。占2个字节,帧内地址0C-0DH。上层协议的类型主要有0800为IP协议,0806为ARP协议等。
第六行:SnifferPortable添加的DLC结束标志。
网络层协议主要有:
网际协议(IP):
地址0E:1字节。高4位是IP协议版本号,低4位是本包IP首部长度。此例中0EH地址内容为45H。4代表IP协议版本号为4,即IPv4,此包所经过的各个路由器等网络设备均按IPv4格式对数据包进行解读与处理。5为此数据包IP首部长度代码。实际首部长度为此代码乘以4,本例中首部长度为5×4=20字节。首部最大长度为0FH×4=15×4=60(字节)
地址0F:1字节。服务类型定义IP协议包的处理方法,它包含如下子字段
过程字段:3位,设置了数据包的重要性,取值越大数据越重要,取值范围为0(正常)~7(网络控制)
延迟字段:1位,取值0(正常)、1(低延迟)
流量字段:1位,取值0(正常)、1(高流量)
可靠性字段:1位,取值0(正常)、1(高可靠性)
成本字段:1位,取值0(正常)、1(最小成本)
未使用:1位
地址10H-11H:2字节。IP包总长度。此例中IP包总长度为0052H,即82字节。从0EH到5FH,包含了IP包头及数据长度。
地址12H-13H:2字节。IP报文标识字段,每一个IP数据包都有一个与分组过程相关的唯一标识,做为到达目标后恢复数据时组合的依据。此例中标识为78FAH
地址14H的高3位:有关数据分段的标识。
地址14H的低5位-15H:段偏移。当数据分组时,它和更多段位进行连接,帮助目的主机将分段的包组合。
地址16H:1字节。IP包生存时间TTL。由于IP包发出后就不再对它进行管理,任其*寻找目标主机。如果网络或目标主机出现故障造成IP包无法到达目的主机,此数据包就会不断在网上游逛,形成网络数据包孤儿。网络孤儿大量存在就会占用网络资源,严重影响正常的网络通信。因此,如果IP包经过一定时间还无法找到目标主机就应该让它自动消亡。这个时间就是TTL。当某一网络设备发出IP包的同时要给IP包设定一个生存时间常数,每经过一个路由器此时间常数自动减一,当TTL值减为0还无法找到目标主机就自动消亡。
地址17H:1字节。协议代码。表示此IP包携带的是何种协议报文。
常见的有:
1:ICMP
6:TCP
17:UDP
地址18H-19H:2字节。首部校验和。用于校验和纠错。
地址1AH-1DH:4字节。源IP地址。此例为DBH、85H、3FH、36H。用点分十进制表示即为219.133.63.54。
地址1EH-21H:4字节。目标IP地址。此例为C0H、A8H、01H、64H。用点分十进制表示即为192.168.1.100。
地址解析协议(ARP):
地址0D-0EH:2字节。硬件类型,以太网为“0001H”。
地址10-11H:2字节。上层协议类型,0800H为IP协议。
地址12H:硬件地址长度。MAX地址长度恒为6字节。
地址13H:协议地址长度。IP地址恒为4字节。
地址14-15H:操作。请求包恒为1,应答包恒为2。此例是请求包,值为1。
地址16-1BH:源主机的MAC地址。此例为00-0D-60-8A-F0-3F。
地址1C-1FH:源主机协议地址。此例为192.168.1.100。(十六进制表示为C0H、A8H、01H、64H)。
地址20-25H:目标主机MAC地址。此例为ARP请求包,地址为0。
地址26-29H:目标主机协议地址。此例为192.168.1.101。(十六进制表示为C0H、A8H、01H、65H)。
地址2A-3BH:DLC将数据包不足长度部分补足。
网际控制报文协议(ICMP):
地址00-0DH:DLC包头。
地址0EH-21H:IP包头。
地址22H:1字节。ICMP数据包类型字段。不同的代码代表此数据包内容的类型。
地址22H:1字节。代码。据前一字节设定不同类型下此字节含义不同。详细解释请查阅ICMP协议手册。此例中为0。
地址23H-24H:2字节校验和。用于校验数据包的正确性
地址25H-26H:标识。
地址27H-28H:2字节。发送二进制位序列号。
地址29H-结束:发送探测包内容。使用Windows系统的Ping命令时内容为英文小写字母a-w循环发送,直到达到命令要求的字节数为止。默认字节数为32。
传输层协议主要有:
传输控制协议(TCP):
地址00-0DH:DLC包头。
地址0EH-21H:IP包头。
地址22H-23H:2字节。源主机端口号,此例为使用HTTP协议访问网页,默认端口号为80(0050H)。
地址24H-25H:2字节。目标主机端口号,由应用程序随机产生。此例为3545(0DD9H)。
地址26H-29H:4字节。序号指明了段在即将传输的段序列中的位置。TCP连接是可靠的,而且保证了传送数据包的顺序,保证顺序是用序号来保证的。此例中序号为2938112427(AF2009ABH)。
地址2AH-2DH:4字节。确认号作为收到数据的响应,连接成功后传输数据过程中此号为请求包序号+应答数据包长度,若不进行通信仅进行连接时长度为1字节同步字节。此例为648543792+1=648543793(26A7FE31H)。
地址2EH:1字节。高4位为首部长度,值为首部字节数/4。低4位保留未用。此例TCP首部长度20字节,故此此字节高4位值=20/4=5。
地址2FH:1字节。高2位保留未用。低6位为标志位。
地址30H-31H:2字节。窗口指定发送端能传输下一段的大小。此例为65259(FEEBH)。
地址32H-33H:2字节。校验和。用来校验段头和数据部分的可靠性。此例为082DH
地址34H-35H:2字节。紧急。指明段中包含紧急信息,只有当URG标志置1时紧急指针才有效。此例为0。
用户数据报协议(UDP):
地址00-0DH:DLC包头。
地址0EH-21H:IP包头。
地址22H-23H:2字节。源主机端口号,此例为53124(CF84H)。
地址24H-25H:2字节。目标主机端口号,此例为53124(CF84H)。
地址26H-27H:2字节。UDP部分数据长度,此例为835B(0343H)。
地址28H-29H:2字节。校验和。
地址2AH-结束:UDP数据段。此例为网络电视数据。
1、解释
计算机网络将要传输的报文分割成一个个小的数据片段,称为“分组”,在每一个分组的数据前加上传输数据所必需的信息“报头”,就构成了网络数据传输的基本部件“数据包”。
在计算机网络中,传输的信息是以数据包为基本传输单位的,数据包的内容是被分割后的信息块,在每个数据包上附加了多层包头。在一个数据包里,信息内容往往是不完整的,而在每一个数据包头部,完整地包含了传送此数据包所需的全部来源及目标的地址信息。
在基于TCP/IP的网络中,数据包是最基本的数据传输单位,里面包含着具体的数据信息。对于很多用户而言,包这个概念听起来可能非常抽象,它似乎是一种看不见摸不到的东西。其实通过一定的技术手段,用户是可以感知到数据包的存在的。最简单的办法就是在WindowsXP系统中双击系统托盘的网络连接图标(网络连接必须被启用,并且已经正常接入网络),在打开的“本地连接状态”对话框中就能看到“发送×××,收到×××”的提示。
另外通过一些专用的数据包捕获软件也可以捕获到数据包,例如借助体积小巧的网络数据包捕获工具“网络数据捕获手”就可以方便地捕获到网络中数据包的活动情况。从程序窗口中能够清楚地观察到所捕获到的数据包的活动时间、协议类型、源地址、源端口、目的地址、目的端口以及数据包大小。通过分析这些捕获到的数据包,用户可以得知在某一个时间段内网络中数据包的活动情况。
2、信息传输过程与数据包结构
数据包的结构通常是按照不同的网络协议分层套接的。在OSI协议层次中,高层协议面向被传输的对象,低层协议面向传输的过程。
应用层的主要任务是将被传输的信息转换成符合网络传输规范的二进制数据块。常用的应用层协议有:超文本传输协议HTTP、文件传送协议FTP、远程登录协议TELNET、简单邮件传送协议SMTP、域名解析协议DNS、简单网络管理协议SNMP、动态主机配置协议DHCP、以及微软媒体服务器协议MMS等。
传输层的主要任务是将数据包传输到目的地,为此,传输层为应用层上的应用提供两类截然不同的服务:第一类服务是可靠的面向连接服务,确保正确无误地把消息从源端传送到目的地,使用的协议是TCP协议。第二类服务是不可靠的无连接服务,使用的协议是用户数据包协议UDP。
网络层的任务是将源主机发出的信息经过适当的路径送到目的主机。在Internet上网络层协议使用的是IP协议。IP协议允许不同种类的操作系统和计算机使用网络并选择最佳的传输途径。
数据链路层的任务是将在网络层交下来的IP数据报组装成帧,在两个相邻结点间的链路上传送以帧为单位的数据。主要功能有链路管理、差错控制、流量控制等。根据不同的传输媒介和传输方式,使用不同的链路层协议,这些协议被统称为数据链路控制(DLC)协议。
物理层是OSI参考模型的最低层,其任务就是为它的上一层提供一个传输数据的物理连接。在这一层,数据仅作为原始的比特流进行处理在一个数据包最里层是被传输的数据。在数据的外面首先由处理此数据的应用程序将数据片断外包裹上应用层的协议,然后交给网络通信系统软件,网络通信系统软件根据此数据包的传输方式,为数据包裹上传输层协议,交给下一层协议。下面的网络层协议根据数据包的路由地址,为其包裹上网络层协议,并交给下一层协议。下面的链路层协议为数据包加上来源和目标物理地址的链路层协议后交给下一层协议。在物理层,由网络通信硬件系统按照通信设备的要求将数据包转换成一个个符合物理层协议的电脉冲,通过网络接口电路发送的网络传输媒介上。
这一串串电脉冲沿着传输媒介到达下一个网络节点。在每一个网络节点上,节点设备将收到的电脉冲还原为数字信号,并对数字信号进行判读和分析,了解此数据包的最终目的地,并根据节点上的路由表为此数据包选择一个到达目的地的最佳路由,并对此数据包进行必要的修改和签章后再次发送到网络传输媒介上。
数据包就这样通过一个个网络节点,最终到达了信息传输的目的地在目标主机上,依据网络协议,逐层地对数据包进行签收和校验,如果数据包未出现差错,则剥除此层的协议,将数据向上层递交。通过如此逐层剥除与递交,最终在应用层由应用软件系统将一个个还原后的数据包拼接还原为原始的状态,完成了数据的传输过程。
3、捕获与分析
截获原理
以太网接口卡可以被设置成如下4种工作模式:
(1)广播:数据帧可以发向网络中所有计算机。任何设置为广播模式的网卡都接收目的地址为广播地址的数据帧。通常所有的网卡被配置为接收广播帧
(2)多播:发往一组计算机的帧称为多播帧,使用特定的多播地址作为目的地址。这些计算机的组构成了多播组。这样,多播组里的任何一个成员计算机将会接收具有多播目的地址的帧.
(3)直接:发往特定计算机的帧具有特定计算机的物理地址。具有特定物理地址的计算机将接收特定的帧,丢弃其它的帧。网卡可以设置为仅仅接收直接帧。
(4)混杂:设置为这个模式的网卡接收所有收到的数据包,任何到达此网卡的信息都不丢弃。这个模式是网络监测应用程序的关键模式。
网卡的缺省工作模式包含广播模式和直接模式,即它只接收广播帧和发给自己的帧。如果采用混杂模式,网卡将接受所有到达本网卡网络端口的信号。
截获方法
在网络监听情况下,要想监听到被监听主机之间的通信信息,也要满足以下的两点基本要求:
要将监听计算机与被监听主机使用集线器相连。
要将监听计算机上网卡的工作模式设置为混杂模式。
通常情况下,当使用专用嗅探软件进入监听模式时会自动将网卡设为混杂模式。
网络监听可以使用Windows2000Server自带的《网络监视器》程序,也可以使用专用的网络监视软件。通常专用的网络监视软件具有更强的数据捕获与过滤功能,是网络管理员手中的重要工具软件。
SnifferPortable软件介绍
Windows中的网络监视器出于安全考虑,仅允许捕获进出本机的数据包,禁止捕获与本机无关的主机间数据包。
SnifferPortable是一款专用网络监视软件,可以捕获一切到达本机网络端口的数据包。
SnifferPortable是NETWORKGENERAL公司推出的功能强大的协议分析软件。可以工作于Windows2000及WindowsXP系统中。它以被动的方式默默的监视和捕获每一个在网络中广播的数据包,并可对数据包的内容进行过滤、分析、存储。
主要功能
(1)捕获网络流量进行详细分析
(2)利用专家分析系统诊断问题
(3)实时监控网络活动
(4)收集网络利用率和错误等
主界面
SnifferPortable共有8个下拉菜单:
文件菜单:打开和保存各种记录数据文件;软件系统工作模式的设定;打印各种报表或报告;运行脚本程序等。
监视器菜单:选择设定系统监视对象和监视的任务,可以定义过滤器对监视的对象有选择的做出显示,也可以察看报警日志。
捕获菜单:可以启动或停止捕获操作。可以按照不同的工作需求设置捕获过滤器,也可以为捕获操作设置触发条件。这些功能可以极大地提高捕获工作效率。
显示菜单:显示捕获数据的内容,可以对显示内容进行搜索与过滤。
工具菜单:包含了一些系统工具。如系统配置选项,监视对象地址簿,数据包自动发送工具等。
数据库菜单:对保存数据的数据库进行整理维护。
窗口菜单:按不同的工作需要显示或隐藏不同的窗口。
帮助菜单:提供系统帮助。
SnifferPortable软件主界面
捕获与过滤
SnifferPortable的启动
SnifferPortable的启动
捕获
开始按钮:启动捕获程序,开始捕获数据包。
暂停按钮:暂时停止捕获数据。
停止按钮:停止捕获工作。
停止和显示按钮:停止捕获工作,自动转到显示捕获数据包窗口。
显示按钮:显示捕获数据包的内容。
定义过滤器按钮:设置过滤条件,有选择的进行捕获。
数据包捕获
读取与分析
SnifferPortable捕获到的数据包被暂存在内存里,点击“显示”或“停止和显示”按钮可以把捕获的数据包内容显示出来。在数据显示窗口中,通过窗口标签可以选择多种显示模式。
(1)专家模式
(2)解码显示模式
(3)矩阵显示模式
(4)主机列表显示模式
过滤
点击SnifferPortable捕获工具栏上的“定义过滤器”按钮,可以打开“定义过滤器”对话框。在对话框中可以设置按制定的地址及在制定地址上数据传输方向进行过滤。
数据包过滤
数据包过滤
数据包过滤
数据的分析
TCP/IP协议
第一层链路层,也被称为网络接口层。定义了数据传输设备和传输媒体或网络间的接口。这一层涉及到对于传输媒介的特性、信号的特性、数据传输率和相关内容的确定。本层主要网络有DLC帧协议(数据链路控制)。
第二层网络层,也被称作互连网层,处理分组在网络中的活动,例如分组的路由选择。在TCP/IP协议组件中,网络层协议包括IP协议(网际协议),ICMP协议(Internet互连网控制报文协议),以及IGMP协议(Internet组管理协议)。
第三层运输层,主要为两台主机上的应用程序提供端到端的通信。在TCP/IP协议中,有两个互不相同的传输协议:即面向连接的TCP协议和非连接的UDP协议。
第四层应用层,由不同的应用程序实现特定的应用目的。如:
Telnet远程登录协议
FTP文件传输协议
SMTP简单邮件传输协议
SNMP简单网络管理协议
……
利用SnifferPortable分析网络协议
窗口工作区三个窗格
上面的窗格显示数据包列表。每一行代表一个数据包。可以看到每一个数据包在这批数据中的编号、此数据包的来源与目标地址,数据包内容摘要等。
下面窗格显示当前选中的数据包中的具体内容。用十六进制和ASCII码显示。
中间窗格显示出当前选中的数据包中包含哪些网络协议,及各协议报头在数据包中的位置。用鼠标选中窗格中的一个协议后,在下面窗格中就会用灰色底纹将此与协议相关的内容突出显示出来。
窗口工作区被分为三个窗格
DLC帧
(1)前导码:8个字节,用于同步和起始标志。在SnifferPortable中不显示。
(2)目的地址:6个字节,目的主机MAC地址。
(3)源地址:6个字节,源主机MAC地址。
(4)类型域:2个字节,标识了在以太网上运行的客户端协议。即表明上层(网络层)的协议。如IP、IPX等网络层协议。
(5)数据:46~1500字节,这里是真正要传输的数据。如果长度不够46字节则由DLC协议自动补齐为46字节。
(6)帧校验序列:4个字节,利用的是CRC循环冗余校验法,在SnifferPortable中不显示。
其中2~4称为帧头,6称为帧尾。
DLC帧实例
在DLC头部:共显示6行信息,其中第3-5行显示内容是DLC真实内容,其它行是SnifferPortable添加的状态信息.
第一行:SnifferPortable添加的DLC起始标志。
第二行:SnifferPortable添加的帧序号、捕获日期、时间、帧的长度等信息。以上2行内容在数据包中是没有的。
第三行:DLC真实内容。目标主机的MAC地址。占6个字节,帧内地址00-05H。
第四行:DLC真实内容。源主机的MAC地址。占6个字节,帧内地址06-0BH。
第五行:DLC真实内容。数据包的类型(即上层协议的类型)。占2个字节,帧内地址0C-0DH。上层协议的类型主要有0800为IP协议,0806为ARP协议等。
第六行:SnifferPortable添加的DLC结束标志。
DLC结束标志之后是此帧的所要传输信息的真实内容。此帧内容包括IP和TCP协议2部分。其中IP协议内容长度为20字节,TCP协议内容长度为20字节。内容总长度40字节。
帧的最后一行是DLC填充段。因为此数据帧内容长度不足46字节,DLC自动添加了6个字节的“00”将其补足为46字节。
网络层协议报头结构
网络层协议主要有:
网际协议(IP)
地址解析协议(ARP)
网际控制报文协议(ICMP)
网际协议(IP):
地址0E:1字节。高4位是IP协议版本号,低4位是本包IP首部长度。此例中0EH地址内容为45H。4代表IP协议版本号为4,即IPv4,此包所经过的各个路由器等网络设备均按IPv4格式对数据包进行解读与处理。5为此数据包IP首部长度代码。实际首部长度为此代码乘以4,本例中首部长度为5×4=20字节。首部最大长度为0FH×4=15×4=60(字节)
地址0F:1字节。服务类型:定义IP协议包的处理方法,它包含如下子字段
过程字段:3位,设置了数据包的重要性,取值越大数据越重要,取值范围为:0(正常)~7(网络控制)
延迟字段:1位,取值:0(正常)、1(低延迟)
流量字段:1位,取值:0(正常)、1(高流量)
可靠性字段:1位,取值:0(正常)、1(高可靠性)
成本字段:1位,取值:0(正常)、1(最小成本)
未使用:1位
本例中均取正常值“0”
地址10H-11H:2字节。IP包总长度。此例中IP包总长度为0052H,即82字节。从0EH到5FH,包含了IP包头及数据长度。
地址12H-13H:2字节。IP报文标识字段,每一个IP数据包都有一个与分组过程相关的唯一标识,做为到达目标后恢复数据时组合的依据。此例中标识为78FAH
地址14H的高3位:有关数据分段的标识。
地址14H的低5位-15H:段偏移。当数据分组时,它和更多段位进行连接,帮助目的主机将分段的包组合。
地址16H:1字节。IP包生存时间TTL。由于IP包发出后就不再对它进行管理,任其*寻找目标主机。如果网络或目标主机出现故障造成IP包无法到达目的主机,此数据包就会不断在网上游逛,形成网络数据包孤儿。网络孤儿大量存在就会占用网络资源,严重影响正常的网络通信。因此,如果IP包经过一定时间还无法找到目标主机就应该让它自动消亡。这个时间就是TTL。当某一网络设备发出IP包的同时要给IP包设定一个生存时间常数,每经过一个路由器此时间常数自动减一,当TTL值减为0还无法找到目标主机就自动消亡。
地址17H:1字节。协议代码。表示此IP包携带的是何种协议报文。
常见的有:
1:ICMP
6:TCP
17:UDP
此例中协议代码值为6,表示报文是TCP协议。
地址18H-19H:2字节。首部校验和。用于校验和纠错。
地址1AH-1DH:4字节。源IP地址。此例为DBH、85H、3FH、36H。用点分十进制表示即为219.133.63.54。
地址1EH-21H:4字节。目标IP地址。此例为C0H、A8H、01H、64H。用点分十进制表示即为192.168.1.100。
地址解析协议(ARP):
ARP是一种将IP转化成以IP对应的网卡的物理地址的一种协议,或者说ARP协议是一种将IP地址转化成MAC地址的一种协议,它靠在内存中保存的一张表来使IP得以在网络上被目标机器应答。
在源主机在发送一个IP包之前,它要到该转换表中寻找与目标主机IP包相对应的MAC地址,如果没有找到,该源主机就发送一个ARP广播包,即目的MAC为FF-FF-FF-FF-FF-FF,目的IP为目标主机,再带上自己的源IP,和源MAC。
数据包前14个字节为DLC包头,ARP协议包从偏移地址0DH开始到29H结束。
地址0D-0EH:2字节。硬件类型,以太网为“0001H”。
地址10-11H:2字节。上层协议类型,0800H为IP协议。
地址12H:硬件地址长度。MAX地址长度恒为6字节。
地址13H:协议地址长度。IP地址恒为4字节。
地址14-15H:操作。请求包恒为1,应答包恒为2。此例是请求包,值为1。
地址16-1BH:源主机的MAC地址。此例为:00-0D-60-8A-F0-3F。
地址1C-1FH:源主机协议地址。此例为192.168.1.100。(十六进制表示为C0H、A8H、01H、64H)。
地址20-25H:目标主机MAC地址。此例为ARP请求包,地址为0。
地址26-29H:目标主机协议地址。此例为192.168.1.101。(十六进制表示为C0H、A8H、01H、65H)。
地址2A-3BH:DLC将数据包不足长度部分补足。
网际控制报文协议(ICMP):
ICMP协议用于在主机、路由器之间传递控制消息以检查网络是否通畅、主机是否可达、路由是否可用等。ICMP包并不传输用户数据,但是对于用户数据的传递起着重要的作用。ICMP常被黑客利用成为网络攻击的重要手段。
在网络维护管理中经常会使用到ICMP协议,比如经常使用的用于检查网络连通性的Ping命令,跟踪路由的Tracert命令等。
地址00-0DH:DLC包头。
地址0EH-21H:IP包头。
地址22H:1字节。ICMP数据包类型字段。不同的代码代表此数据包内容的类型。
类型代码类型描述
0响应应答(ECHO-REPLY)
3不可到达
4源抑制
5重定向
8响应请求(ECHO-REQUEST)
11超时
12参数失灵
13时间戳请求
14时间戳应答
15信息请求(*已作废)
16信息应答(*已作废)
17地址掩码请求
18地址掩码应答
此例中代码08,响应请求。
地址22H:1字节。代码。据前一字节设定不同类型下此字节含义不同。详细解释请查阅ICMP协议手册。此例中为0。
地址23H-24H:2字节校验和。用于校验数据包的正确性
地址25H-26H:标识。
地址27H-28H:2字节。发送二进制位序列号。
地址29H-结束:发送探测包内容。使用Windows系统的Ping命令时内容为英文小写字母a-w循环发送,直到达到命令要求的字节数为止。默认字节数为32。
传输层协议报头结构
传输层协议主要有:
传输控制协议(TCP)
用户数据报协议(UDP)
传输控制协议(TCP):
TCP协议在传输层提供面向连接的可靠传输服务。
TCP的工作主要是建立连接,然后从应用层程序中接收数据并进行传输。TCP采用虚电路连接方式进行工作,在发送数据前它需要在发送方和接收方建立一个连接,数据在发送出去后,发送方会等待接收方给出一个确认性的应答,否则发送方将认为此数据丢失,并重新发送此数据。
发送和接收方TCP实体以数据报的形式交换数据。一个数据报包含一个固定的20字节的头、一个可选部分以及0或多字节的数据。
地址00-0DH:DLC包头。
地址0EH-21H:IP包头。
地址22H-23H:2字节。源主机端口号,此例为使用HTTP协议访问网页,默认端口号为80(0050H)。
地址24H-25H:2字节。目标主机端口号,由应用程序随机产生。此例为3545(0DD9H)。
地址26H-29H:4字节。序号:指明了段在即将传输的段序列中的位置。TCP连接是可靠的,而且保证了传送数据包的顺序,保证顺序是用序号来保证的。此例中序号为2938112427(AF2009ABH)。
地址2AH-2DH:4字节。确认号:作为收到数据的响应,连接成功后传输数据过程中此号为请求包序号+应答数据包长度,若不进行通信仅进行连接时长度为1字节同步字节。此例为648543792+1=648543793(26A7FE31H)。
地址2EH:1字节。高4位为首部长度,值为首部字节数/4。低4位保留未用。此例TCP首部长度20字节,故此此字节高4位值=20/4=5。
地址2FH:1字节。高2位保留未用。低6位为标志位。
URG紧急指针有效。
ACK确认序号有效。
PSH接收方应该尽快将这个报文段交给应用层。
RST重建连接。
SYN同步序号用来发起一个连接。
FIN发端完成发送任务。
此例ACK位被置位,表示这是一个确认连接包。
地址30H-31H:2字节。窗口:指定发送端能传输下一段的大小。此例为65259(FEEBH)。
地址32H-33H:2字节。校验和。用来校验段头和数据部分的可靠性。此例为082DH
地址34H-35H:2字节。紧急。指明段中包含紧急信息,只有当URG标志置1时紧急指针才有效。此例为0。
以下地址若有选项则连续32字节选项。此例没有选项字段。后面内容全部为被传输的数据。此例为以HTTP协议传输的超文本网页信息,全部以明文方式传输。
用户数据报协议(UDP):
用户数据报协议UDP也是传输层协议,和TCP协议处于一个分层中,但是与TCP协议不同,UDP协议并不提供超时重传,出错重传等功能,是不可靠的协议。
UDP将数据的校验交给应用软件来完成,大大提高了信息传输的灵活性,由应用软件判断数据报是否可以丢弃。对于可以忽略的部分应用软件可以自主将其丢弃,以保障信息传递的时效性。因此,UDP协议广泛应用于时效性要求高的场合,比如网络电话、网络电视、视频监控等。
地址00-0DH:DLC包头。
地址0EH-21H:IP包头。
地址22H-23H:2字节。源主机端口号,此例为53124(CF84H)。
地址24H-25H:2字节。目标主机端口号,此例为53124(CF84H)。
地址26H-27H:2字节。UDP部分数据长度,此例为835B(0343H)。
地址28H-29H:2字节。校验和。
地址2AH-结束:UDP数据段。此例为网络电视数据。