当前位置:
文档之家› TCPIP几种协议数据报格式简介
TCPIP几种协议数据报格式简介
的 16 次方减 1,即:65535 个字节。因此,在以太网中能够传输的最大 IP 数据包为 65535 个字节。
5、 16 位标识号 Ide百度文库tification。该部分占 16 个 BIT,以十进制数表示。
6、 3 位 Flags,表示片标志,占 3 个 BIT。各位含义分别为:第一个“0”不用,第二个“0”为分片标志位,“1”表
IP 数据报中依次包括以下信息: 1、 4 位版本 Version。该部分占 4 个 BIT 位。 一般为 4(IPv4) 2、 4 位包长度 Header Length。该部分占 4 个 BIT 位,单位为 4 个字节,因此,一个 IP 包头的长度最长为“1111”, 即 15*4=60 个字节。 3、 8 位服务类型 Type of Service,该部分用二个十六进制值来表示,共占 8 个 BIT。
4、 32 位确认号 Next Expected SEQ Numbe。对方返回的 ACK 值。该部分占 32 个 BIT。
5、 4 位数据偏移 Data Offset。表示数据偏移的大小。该部分占 4 个 BIT。
6、 6 位保留位 Reserved Bites:保留位,此处不用。该部分占 6 个 BIT。
协议采用分层结构,因此,数据报文也采用分层封装的方法。下面以应用最广泛的以太网为例说明其数据报 文分层封装,如下图所示:
任何通讯协议都有独特的报文格式,TCP/IP 协议也不例外。对于通讯协议编程,我们首先要清楚其报文格式。 由于 TCP/IP 协议采用分层模型,各层都有专用的报头,以下就简单介绍以太网下 TCP/IP 各层报文格式。
示分片,“0”表示不分版本。第三个 0 为是否最后一片标志位,0 表示最后一片,1 表示还有更多的片。
7、 13 位偏移 Fragment Offset。该部分占 13 个 BIT。
8、 8 位生存时间 Time to Live。该部分占 8 个 BIT。
9、 8 位协议类型 Proctol。几种协议类型 TCP:6;UDP:17;ICMP:1。
1、 16 位源端口 Source Port。该部分占 16 个 BIT。通过此值,可以看出发起连接的计算机源端口号。
2、 16 位目的端口 Destination Port。该部分占 16 个 BIT。通过此值,可以看出要登录的目的端口号。
3、 32 位序列号 Initial Sequence Number。表示初始连接的请求号,即 SEQ 值。该部分占 32 个 BIT。
“硬件类型”域指发送者本机网络接口类型(值“1”代表以太网)。“协议类型”域指发送者所提供/请求的 高级协议地址类型(“0x0800”代表 IP 协议)。“操作”域指出本报文的类型(“1”为 ARP 请求,“2”为 ARP 响应,“3”为 RARP 请求,“4”为 RARP 响应)。
z IP 数据报头格式如下图:
8 个 BIT 的含义是:
000
前三位不用
0
表示最小时延,如 Telnet 服务使用该位
0
表示吞吐量,如 FTP 服务使用该位
0
表示可靠性,如 SNMP 服务使用该位
0
表示最小代价
0
不用
4、 16 位总长度 Total Length。该部分占 16 个 BIT,单位为 Byte。由此可见,一个 IP 数据包的最大长度为 2
7、 Flags。该值用两个十六进制数来表示。该部分长度为 6 个 BIT,6 个标志位的含义分别是:
0
URG,紧急数据标志,为 1 表示有紧急数据,应立即进行传递。
0
ACK,确认标志位,为 1 表示此数据包为应答数据包
0
PSH,PUSH 标志位,为 1 表示此数据包应立即进行传递。
0
RST:复位标志位。如果收到不属于本机的数据包,则返回一个 RST。
z 以太网帧格式如下图:
8 字节的前导用于帧同步,CRC 域用于帧校验。这些用户不必关心其由网卡芯片自动添加。目的地址和源地址 是指网卡的物理地址,即 MAC 地址,具有唯一性。帧类型或协议类型是指数据包的高级协议,如 0x0806 表示 ARP 协议,0x0800 表示 IP 协议等。
z ARP/RARP(地址解析/反向地址解析)报文格式如下图:
10、16 位包头校验和 Header Checksun。该部分占 16 个 BIT,用十六进制表示。
11、32 位源 IP 地址 Source Addres。该部分占 32 个 BIT。
12、32 位目标 IP 地址 Destination Addres。该部分占 32 个 BIT。
13、选型 No Option。当需要记录路由时才使用该选项。。
z ICMP(网间网控制报文协议)协议
ICMP 应用广泛。在此仅给出最常见的回应请求与应答报文格式,用户命令 ping 便是利用此报文来测试信 宿机的可到达性。报文格式如下图所示:
类型 0 为回应应答报文,8 为回应请求报文。整个数据包均参与检验。注意 ICMP 封装在 IP 数据包里传送。 z UDP 报文格式如下图:
z TCP 报文格式如下图:
TCP 是面向连接的可靠数据传输协议,因此比较复杂,在此仅作简单介绍。“序号”指数据在发送端数据流中 的位置。“确认号”指出本机希望下一个接收的字节的序号。与 IP 校验不同的是 TCP,UDP 校验采用伪头标加整个 报文一同校验的方法。TCP 协议工作原理另行介绍。
TCP 数据报中依次包括以下信息:
TCP/IP 协议是一个比较复杂的协议集,有很多专业书籍介绍。在此,我仅介绍其与编程密切相关的部分:以 太网上 TCP/IP 协议的分层结构及其报文格式。我们知道 TCP/IP 协议采用分层结构,其分层模型及协议如下表:
应用层 HTTP、Telnet、FTP、SMTP、SNMP
(Application) 传输层 TCP、UDP (Transport) 网 间 网层 IP【ARP、RARP、ICMP】 (Internet) 网络接口层 Ethernet、X.25、SLIP、PPP (Network)
0
SYN:连接请求标志位。为 1 表示为发起连接的请求数据包。
0
FIN:结束连接请求标志位。为 1 表示是结束连接的请求数据包。
8、 16 位窗口大小 Window。该部分占 16 个 BIT。
9、 16 位校验和 CheckSum。该部分占 16 个 BIT,用十六进制表示。
10、16 位紧急指针 Urgent Pointer。该部分占 16 个 BIT。