收藏 分销(赏)

udp与tcp连接建立、数据传输、连接断开的报文分析.doc

上传人:s4****5z 文档编号:8672258 上传时间:2025-02-25 格式:DOC 页数:19 大小:718KB 下载积分:10 金币
下载 相关 举报
udp与tcp连接建立、数据传输、连接断开的报文分析.doc_第1页
第1页 / 共19页
udp与tcp连接建立、数据传输、连接断开的报文分析.doc_第2页
第2页 / 共19页


点击查看更多>>
资源描述
目录 一、UDP报文分析 …………………………………… 3 1.1 UDP报文格式 ………………………………… 3 1.2 UDP数据传输 ………………………………… 3 二、TCP报文分析 …………………………………… 5 2.1 TCP报文格式 ………………………………… 5 2.2 TCP连接的建立………………………………… 6 2.2.1第一次握手 ……………………………… 6 2.2.2第二次握手 ……………………………… 7 2.2.3第三次握手 ……………………………… 9 2.3 TCP连接的数据传输 ………………………… 11 2.4 TCP连接的删除 ……………………………… 14 2.4.1第一次再见 ……………………………… 14 2.4.2第二次、第三次再见 …………………… 15 2.4.3第四次再见 ……………………………… 17 2.5 对比总结 ……………………………………… 19 三、分析体会 ………………………………………… 19 一、UDP报文分析 TCP协议是面向连接的协议。TCP连接的建立有“三次握手”,而关闭一条TCP连接需要“四次握手”。 1.1 UDP报文格式 UDP是面向无连接的协议,在发送报文段之前,发送方与接收方的运输层之间没有进行握手。 1.2 UDP数据传输 现以某对发送方与接收方的一个来回的数据传送为例,简单地对UDP的通信过程进行分析。 UDP报文分析: User Datagram Protocol, Src Port: 65496 (65496), Dst Port: 59369 (59369) //状态行 Source port: 65496 (65496) //源端口号 Destination port: 59369 (59369) //目的端口号 Length: 26 //报文长度26比特 Checksum: 0xb130 [validation disabled] //检验和 (wireshark软件为了节约时间和资源,对UDP与TCP的检验和没有进行精确计算,只提供了近似值,故为[validation disabled]) [Good Checksum: False] [Bad Checksum: False] Data (18 bytes) //应用数据长度18比特 Data: 032f23da343f82f409acd6ee0000275dbe01 [Length: 18] 可见整个UDP报文长度为26比特,其中UDP首部占用8比特,应用数据报文长度为18比特。检验和在报文中也有明确体现。 UDP报文分析: User Datagram Protocol, Src Port: 59369 (59369), Dst Port: 65496 (65496) //状态行 Source port: 59369 (59369) //源端口号 Destination port: 65496 (65496) //目的端口号 Length: 27 //报文长度27比特 Checksum: 0xf385 [validation disabled] //检验和 [Good Checksum: False] [Bad Checksum: False] Data (19 bytes) //应用数据(19比特) Data: 03225d9d4eeb91a97378c5b30000285dbe0101 [Length: 19] 与上一个报文类似,整个UDP报文长度为27比特,其中UDP首部占用8比特,应用数据报文长度为19比特。检验和在报文中也有明确体现。 上一次传输的接收方与此次传输的发送方相同,上一次传输的发送方与此次传输的接收方相同。表示了一次完整的相互的UDP数据通信。 二、TCP报文分析 TCP协议是面向连接的协议。TCP连接的建立有“三次握手”,而关闭一条TCP连接需要“四次握手”。 2.1 TCP报文格式 2.2 TCP连接的建立 以访问说明一次完整的TCP建立的三次握手过程。 2.2.1 第一次握手 要建立TCP连接,首先需要客户机向服务器发起建立连接的请求,及第一次握手的报文。在此报文中,SYN字段置为1。由于之前连接不存在,所以没有对之前接受的确认,故ACK字段被置为0。同时由于连接还没有建立,不能发送数据,从而序列号也应该为0。 采用wireshark的过滤功能,用tcp.flags.syn==1 显示TCP中SYN字段为1的数据包,由SYN字段的定义知道这是建立TCP连接的报文。从中找到ack=0的包即表示第一次TCP握手(此处以49号数据包为TCP建立的第一次握手为例)。 由上图可以看出源IP地址为:192.168.1.100,目的IP地址为222.89.166.13。 TCP报文分析: Transmission Control Protocal, Src Port : 54132 (54132), Dst Prot: http (80), Seq: 0, Len: 0 Souce port: 54132 (54132) //源端口号 Destination prot: http (80) //目的端口号(由于端口号是80,知道这是一个http请求的连接) [Stream index: 3] //根据源和目的IP及端口号生成的一个索引号 Sequence number: 0 (relative sequence number) //序列号为0,(没有发送数据) Header length: 32 bytes //TCP报文首部长为32比特 Flags: 0x002 (SYN) 000. . . . . . . . . = Reserved: Not set . . . 0 . . . . . . . . = Nonce: Not set . . . . 0 . . . . . . . = Congestion window Reduced (CwR) . . . . . 0 . . . . . . = ECN-Echo: Not set . . . . . . 0 . . . . . = Urgent: Not set //不是紧急报文 . . . . . . . 0 . . . . = Acknowledgment: Not set //没有包含确认的报文 . . . . . . . . 0 . . . = Push: Not set //PSH标志字段没有设置 . . . . . . . . . 0 . . = Reset: Not set //RST标志字段没有设置 . . . . . . . . . . 1 . = Syn: Set //建立连接 . . . . . . . . . . . 0 = Fin: Not set //不是删除连接 Window size value: 8192 //窗口大小8192比特 [Calculated window size : 8192] Checksum: 0x78df [validation disabled] //检验和(没有传送数据) (wireshark软件为了节约时间和资源,对UDP与TCP的检验和没有进行精确计算,只提供了近似值,故为[validation disabled]) [Good Checksum: False] [Bad Checksum: False] Options: (12 bytes), Maximum segment size, No-Operation (NOP), window scale, No-Operation (NOP), SACK permittied //选项字段 通过报文分析,知道第一次握手成功。 2.2.2 第二次握手 第二次握手的报文由服务器发送,需要对第一次握手的报文进行恢复确认,因而ACK字段应该置为1。同时由于这仍然是TCP连接建立的过程,所以SYN字段置为1;没有数据传输,故而序列号为0。 接下来寻找第一次握手的报文后面ACK=1且源端口号、目的端口号与第一次握手分析的报文目的端口号、源端口号相同的报文,即表示此次TCP连接建立的第二次握手。 TCP报文分析: Transmission Control Protocol, Src Port: http (80), Dst Port: 54132 (54132), Seq: 0, Ack: 1, Len: 0 //状态行 Source port: http (80) //源端口号 Destination port: 54132 (54132) //目的端口号(与第一次握手的报文对比发现源与目的的端口号互换了) [Stream index: 3] //根据源和目的IP及端口号生成的一个索引号 Sequence number: 0 (relative sequence number) //序列号为0,(没有发送数据) Acknowledgment number: 1 (relative ack number) //确认号 Header length: 32 bytes //TCP报文首部长为32比特 Flags: 0x012 (SYN, ACK) 000. .... .... = Reserved: Not set ...0 .... .... = Nonce: Not set .... 0... .... = Congestion Window Reduced (CWR): Not set .... .0.. .... = ECN-Echo: Not set .... ..0. .... = Urgent: Not set //不是紧急报文 .... ...1 .... = Acknowledgment: Set //包含确认的报文 .... .... 0... = Push: Not set //PSH标志字段没有设置 .... .... .0.. = Reset: Not set //RST标志字段没有设置 .... .... ..1. = Syn: Set //TCP连接建立 .... .... ...0 = Fin: Not set //不是删除连接 Window size value: 5840 //窗口大小5840比特 [Calculated window size: 5840] Checksum: 0xa7b6 [validation disabled] //检验和(没有传送数据) [Good Checksum: False] [Bad Checksum: False] Options: (12 bytes), Maximum segment size, No-Operation (NOP), No-Operation (NOP), SACK permitted, No-Operation (NOP), Window scale //选项字段 [SEQ/ACK analysis] [This is an ACK to the segment in frame: 49] [The RTT to ACK the segment was: 0.043622000 seconds] 通过报文分析,知道第二次握手成功。 2.2.3 第三次握手 客户机接收到第二次握手的报文后,对服务器发送第三次握手的报文。在该报文中,需要对第二次握手的报文进行确认,即ACK字段置为1。此时连接已经建立,SYN字段被置为0,同时可以发送数据,故序列号不再为0。 采用wireshark的过滤功能,用tcp.flags.syn==0 显示TCP中SYN字段为0的包。找到第二次握手报文后ACK=1且源端口号、目的端口号与第一次握手分析的报文源端口号、目的端口号相同的报文,即为此次连接的第三次握手。 TCP报文分析: Transmission Control Protocol, Src Port: 54132 (54132), Dst Port: http (80), Seq: 1, Ack: 1, Len: 0 //状态行 Source port: 54132 (54132) //源端口号 Destination port: http (80) //目的端口号 [Stream index: 3] //根据源和目的IP及端口号生成的一个索引号 Sequence number: 1 (relative sequence number) //序列号为1,(开始发送数据) Acknowledgment number: 1 (relative ack number) //确认号为1 Header length: 20 bytes //报文首部长度为20比特 Flags: 0x010 (ACK) 000. .... .... = Reserved: Not set ...0 .... .... = Nonce: Not set .... 0... .... = Congestion Window Reduced (CWR): Not set .... .0.. .... = ECN-Echo: Not set .... ..0. .... = Urgent: Not set //不是紧急报文 .... ...1 .... = Acknowledgment: Set //包含确认的报文 .... .... 0... = Push: Not set //PSH标志字段没有设置 .... .... .0.. = Reset: Not set //RST标志字段没有设置 .... .... ..0. = Syn: Not set //TCP连接已经建立 .... .... ...0 = Fin: Not set //不是删除连接 Window size value: 4140 //窗口大小16560比特 [Calculated window size: 16560] [Window size scaling factor: 4] Checksum: 0x2dd2 [validation disabled] //检验和 [Good Checksum: False] [Bad Checksum: False] [SEQ/ACK analysis] [This is an ACK to the segment in frame: 52] [The RTT to ACK the segment was: 0.000094000 seconds] 通过报文分析,知道第三次握手成功。 至此,成功建立了一条源IP地址为:192.168.1.100,目的IP地址为222.89.166.13,源端口号为:54132 (54132),目的端口号为http (80)的TCP连接。 2.3 TCP连接的数据传输 TCP连接建立之后,即可进行数据传输。因为请求的是http网页,于是分析一个http的报文。 报文分析: Transmission Control Protocol, Src Port: 54132 (54132), Dst Port: http (80), Seq: 1, Ack: 1, Len: 316 //状态行 Source port: 54132 (54132) //源端口号 Destination port: http (80) //目的端口号 [Stream index: 3] //根据源和目的IP及端口号生成的一个索引号 Sequence number: 1 (relative sequence number) //序列号为1 [Next sequence number: 317 (relative sequence number)] //下一个数据包的序列号 Acknowledgment number: 1 (relative ack number) //确认号为1 Header length: 20 bytes //报文首部长度为20比特 Flags: 0x018 (PSH, ACK) 000. .... .... = Reserved: Not set ...0 .... .... = Nonce: Not set .... 0... .... = Congestion Window Reduced (CWR): Not set .... .0.. .... = ECN-Echo: Not set .... ..0. .... = Urgent: Not set //不是紧急报文 .... ...1 .... = Acknowledgment: Set //包含确认的报文 .... .... 1... = Push: Set //PSH设置 .... .... .0.. = Reset: Not set //RST标志字段没有设置 .... .... ..0. = Syn: Not set //不是建立连接 .... .... ...0 = Fin: Not set //不是删除连接 Window size value: 4140 //窗口大小4140比特 [Calculated window size: 16560] [Window size scaling factor: 4] Checksum: 0x64a3 [validation disabled] //检验和 [Good Checksum: False] [Bad Checksum: False] [SEQ/ACK analysis] [Bytes in flight: 316] Hypertext Transfer Protocol GET /favicon.ico HTTP/1.1\r\n //请求行, 方法字段为GET,采用HTTP1.1版协议 [Expert Info (Chat/Sequence): GET /favicon.ico HTTP/1.1\r\n] [Message: GET /favicon.ico HTTP/1.1\r\n] [Severity level: Chat] [Group: Sequence] Request Method: GET Request URI: /favicon.ico Request Version: HTTP/1.1 Host: \r\n Connection: keep-alive\r\n Accept: */*\r\n User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.874.106 Safari/535.2\r\n Accept-Encoding: gzip,deflate,sdch\r\n //可接受编码,文件格式 Accept-Language: zh-CN,zh;q=0.8\r\n //语言为中文 Accept-Charset: GBK,utf-8;q=0.7,*;q=0.3\r\n //可接受字符集为国家标准扩展码 \r\n [Full request URI: //请求的统一资源标识符 2.4 TCP连接的删除 同样以访问说明一次完整的TCP连接删除的四次再见过程。 2.4.1 第一次再见 采用wireshark的过滤功能,用tcp.flags.fin==1 显示TCP中FIN字段为1的数据包。由FIN字段的定义知道这是关闭TCP连接的报文。从中找到源端口号为:http (80),目的端口号为54132 (54132)的报文,即为关闭此条TCP连接的第一次再见(此例中为91号数据包)。 TCP报文分析: Transmission Control Protocol, Src Port: http (80), Dst Port: 54132 (54132), Seq: 1483, Ack: 317, Len: 0 //状态行 Source port: http (80) //源端口号 Destination port: 54132 (54132) //目的端口号 [Stream index: 3] //根据源和目的IP及端口号生成的一个索引号 Sequence number: 1483 (relative sequence number) //序列号为1483 Acknowledgment number: 317 (relative ack number) //确认号为317 Header length: 20 bytes //报文首部长度为20比特 Flags: 0x011 (FIN, ACK) 000. .... .... = Reserved: Not set ...0 .... .... = Nonce: Not set .... 0... .... = Congestion Window Reduced (CWR): Not set .... .0.. .... = ECN-Echo: Not set .... ..0. .... = Urgent: Not set //不是紧急报文 .... ...1 .... = Acknowledgment: Set //包含确认的报文 .... .... 0... = Push: Not set //PSH标志字段没有设置 .... .... .0.. = Reset: Not set //RST标志字段没有设置 .... .... ..0. = Syn: Not set //不是建立TCP连接的报文 .... .... ...1 = Fin: Set //关闭TCP连接的报文 Window size value: 8034 //窗口大小8034比特 [Calculated window size: 16068] [Window size scaling factor: 2] Checksum: 0xd899 [validation disabled] //检验和 [Good Checksum: False] [Bad Checksum: False] 分析报文可知,关闭TCP连接的第一次再见成功。 2.4.2 第二次、第三次再见 由关闭TCP连接的机制,知道第二次再见的报文应接在第一次再见报文的后面。分析端口号匹配后,找到第二次再见的报文。分析关闭TCP连接的机制知道,第二次与第三次再见由同一个报文包含。 TCP报文分析: Transmission Control Protocol, Src Port: 54132 (54132), Dst Port: http (80), Seq: 317, Ack: 1484, Len: 0 //状态行 Source port: 54132 (54132) //源端口号 Destination port: http (80) //目的端口号 [Stream index: 3] //根据源和目的IP及端口号生成的一个索引号 Sequence number: 317 (relative sequence number) //序列号为317 Acknowledgment number: 1484 (relative ack number) //确认号为1484 Header length: 20 bytes //报文首部长度为20比特 Flags: 0x010 (ACK) 000. .... .... = Reserved: Not set ...0 .... .... = Nonce: Not set .... 0... .... = Congestion Window Reduced (CWR): Not set .... .0.. .... = ECN-Echo: Not set .... ..0. .... = Urgent: Not set //不是紧急报文 .... ...1 .... = Acknowledgment: Set //包含确认的报文 .... .... 0... = Push: Not set //PSH标志字段没有设置 .... .... .0.. = Reset: Not set //RST标志字段没有设置 .... .... ..0. = Syn: Not set //不是建立TCP连接的报文 .... .... ...0 = Fin: Not set //FIN标志字段没有设置 Window size value: 4134 //窗口大小4134比特 [Calculated window size: 16536] [Window size scaling factor: 4] Checksum: 0xe7d5 [validation disabled] //检验和 [Good Checksum: False] [Bad Checksum: False] [SEQ/ACK analysis] [This is an ACK to the segment in frame: 91] [The RTT to ACK the segment was: 0.000031000 seconds] 分析报文可知,关闭TCP连接的第二次与第三次再见成功。 2.4.3 第四次再见 仿照上面,找到第四次再见的报文。 TCP报文分析: Transmission Control Protocol, Src Port: 54132 (54132), Dst Port: http (80), Seq: 317, Ack: 1484, Len: 0 //状态行 Source port: 54132 (54132) //源端口号 Destination port: http (80) //目的端口号 [Stream index: 3] //根据源和目的IP及端口号生成的一个索引号 Sequence number: 317 (relative sequence number) //序列号为317 Acknowledgment number: 1484 (relative ack number) //确认号为1484 Header length: 20 bytes //报文首部长度为20比特 Flags: 0x011 (FIN, ACK) 000. .... .... = Reserved: Not set ...0 .... .... = Nonce: Not set .... 0... .... = Congestion Window Reduced (CWR): Not set .... .0.. .... = ECN-Echo: Not set .... ..0. .... = Urgent: Not set //不是紧急报文 .... ...1 .... = Acknowledgment: Set //包含确认的报文 .... .... 0... = Push: Not set //PSH标志字段没有设置
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 百科休闲 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服