没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
2.相关知识
2.1 TCP/IP 协议
TCP/IP 协议,中译名为传输控制协议/因特网互联协议,又名网络通讯协议,
是 Internet 最基本的协议、Internet 国际互联网络的基础,由网络层的 IP 协议和
传输层的 TCP 协议组成。TCP/IP 定义了电子设备如何连入因特网,以及数据如
何在它们之间传输的标准。协议采用了 4 层的层级结构,每一层都呼叫它的下
一层所提供的网络来完成自己的需求。
TCP/IP 协议不仅是指 TCP 协议和 IP 协议,而是一个协议簇,包括与之配
套的一组相关协议,如 ARP、ICMP 和 UDP 等,其中 IP 协议是核心。本文主要
介绍 TCP/IP 协议簇中每层具有代表性的协议。
图 1 TCP/IP 协议簇相关协议
在 TCP/IP 协议簇中,数据链路层主要有三个目的:为 IP 模块发送和接收 IP
数据包、为 ARP 模块发送 ARP 请求和接收 ARP 应答、为 RARP 模块发送
RARP 请求和 RARP 应答
[1]
。
IP 协议主要是完成端到端数据通信,每个 IP 数据包首部都有一个 IP 地址来
标识网络主机,IP 数据包经过路由器的存储转发和寻路由最终到达目的主机。
IP 协议是不可靠传输协议,它只负责尽最大努力交付数据,可靠性由上层协议
保证。网络层向上只提供简单灵活的、无连接的、尽最大努力的数据报服务。
网络在发送分组时不需要先建立连接。每个分组(IP 数据报)独立发送,与其
前后的分组无关
[2]
。
TCP 协议是面向连接的端到端协议,提供可靠的全双工通信
[2]
,通过端口号
区分收发数据的进程。TCP 通信前需要经历“三次握手”建立连接,通信结束后
需要“四次挥手”释放连接。
UDP 协议是无连接的端到端的传输协议,它不提供可靠的传输服务,尽最
大努力交付数据。主要优点是传输数据前无需建立连接。
2.2 协议首部格式
进行网络协议的分析,就是将捕获到的原始比特数据,按照一定的结构进
行解析提取出有用的信息。这种结构便是网络协议的首部格式,每个字段都具
有其特殊的意义。下面是本文中要进行分析的常用网络协议结构:
图 2 Ethernet 帧结构
以太网帧结构中包含了源 MAC 地址和目的 MAC 地址,以及标识上层协议
类型的字段。其中最前面 7 字节的前导码和 1 字节的帧定界符在不包含在实际
捕获的数据中。
图 3 ARP 数据报首部
MAC address type 指数据链路层协议的地址类型,例如,如果是以太网,其
值为 1。Protocol address type 指网络层协议地址类型,例如,如果是 IP,其值为
0x0800。MAC address length:链路层协议地址长度,例如,以太网地址长度为
6。protocol address length:网络层协议地址长度,例如,IP 地址长度为
4。Operation type:指 ARP 类型,如果是 1 则为 ARP 请求数据包,如果为 2 则
为 ARP 应答数据包,如果是 RARP 请求数据包,其值为 3,如果是 RARP 应答
数据包,其值为 4。
后面紧接着 4 个地址内容,分别是 6 字节的发送端 MAC 地址,4 字节的发
送端 IP 地址,6 字节的目的端 MAC 地址,以及 4 字节的目的端 IP 地址。
图 3 IP 数据报首部
版本号占 4 位,其值为 4,然后是 4 位首部长度,以 4 字节作为单位,如果
首部长度为 20 字节,其值为 5。服务类型为 1 个字节的长度,表示 IP 数据包在
传送的时候所要求的服务质量。接下来是 IP 数据包的总长度,以字节为单位,
由于总共只有 2 个字节,所以其最大长度为 65535,它包括 IP 首部长度和 IP 数
据部分长度。标识字段为 2 个字节,用来标识 IP 数据包的,用户让目的主机判
断新来的分组属于哪个分组,属于同一分组的分段具有相同的标识值。如需分
片,偏移字段标识分段相对原始分组的偏移量。TTL 标识 IP 数据报的生存时间,
没经过一个路由器其值减 1,如果为 0 就不在继续向下传递。协议类型标识上层
协议的类型,例如,如果为 1 标识 ICMP 协议,如果是 17 标识 UDP 协议,如果
为 6 则表示 TCP 协议。
图 4 ICMP 报文首部
ICMP 的类型字段定义了是哪种 ICMP 报文,而 ICMP 代码字段更加细分了
ICMP 报文的种类,例如,类型值为 0 且代码值为 0 表示的是 ICMP 回显应答报
文,类型值为 8 且代码值为 0 表示的是 ICMP 回显请求报文。校验和则是对
ICMP 首部和 ICMP 数据进行计算校验和。
图 5 TCP 数据包首部
TCP 源端口号是指发送数据包的主机应用程序使用的端口号,而 TCP 目的
端口号是接收 TCP 数据包的主机应用程序使用的端口号。不同的端口号可以供
不同的网络应用程序进行通信,它是实现 TCP 多路复用的机制。
序列号有很多用途,在 TCP 建立和释放链接时都会用到,在数据传输的时
候也会用到。
确认 号标 识希 望接 收到 的下 一个 数据包的 序号 。标 识符 有六 种, 分别 是
URG,ACK,PSH,RST,SYN,FIN,它们都有各自的用户,如 SYN 是在
TCP 连接建立时的同步信号,FIN 表示 TCP 连接释放,ACK 表示对收到数据的
确认。
首部长度字段占 4 位,表示 TCP 首部的长度,它的单位是 4 个字节,一般
情况下其值为 5 表示 TCP 首部为 20 个字节。如果 TCP 有选项,则要加上选项
的长度,由于占 4 位,所以最长的 TCP 首部长度为 60 个字节。
图 6 UDP 数据包首部
剩余25页未读,继续阅读
资源评论
右耳朵猫(whinc)
- 粉丝: 119
- 资源: 17
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功