pigeon0411 发表于 2009-8-7 16:16:49

TCP/IP的一个很诡异的问题(图片传输)

在使用ZLG/IP和UCTCP/IP的过程中遇到下面这个很诡异的问题:

同样的WEB页,使用ZLG/IP实现一个简单的WEB页面,可以正常看到图片显示,但在使用UCTCP/IP时可以显示网页但图片却显示不出来。

通过用OmniPeek抓包对比,并未发现异常。两个协议栈测试N次,UCTCP/IP就是不能正常显示图片。以下是抓包数据,请高手们帮忙解疑。

一、使用ZLG/IP正常显示图片的数据包:
zlg/ip 数据包ourdev_468396.gif(文件大小:900K,只有400K以内的图片才能直接显示) (原文件名:zlg1.gif)

下面是 HTTP的图片的头信息和图片数据的数据包清单:

(1)HTTP的图片的头信息:


Packet Info

Packet Number:      25

Flags:                0x00000000

Status:               0x00000000

Packet Length:      227

Timestamp:            15:24:20.764496000 08/07/2009

Ethernet Header

Destination:          00:24:8C:7A:A9:F5

Source:               52:54:4C:19:F7:42

Protocol Type:      0x0800IP

IP Header - Internet Protocol Datagram

Version:            4

Header Length:      5(20 bytes)

Differentiated Services:%00000000

                        0000 00.. Default

                        .... ..00 Not-ECT



Total Length:         209

Identifier:         22

Fragmentation Flags:%010

                        0.. Reserved

                        .1. Do Not Fragment

                        ..0 Last Fragment



Fragment Offset:      0(0 bytes)

Time To Live:         128

Protocol:             6TCP - Transmission Control Protocol

Header Checksum:      0x77DE

Source IP Address:    192.168.0.174

Dest. IP Address:   192.168.0.52

TCP - Transport Control Protocol

Source Port:          80http

Destination Port:   1998x25-svc-port

Sequence Number:      32452

Ack Number:         1576274426

TCP Offset:         5(20 bytes)

Reserved:             %0000

TCP Flags:            %00011000...AP...

                        0... .... (No Congestion Window Reduction)

                        .0.. .... (No ECN-Echo)

                        ..0. .... (No Urgent pointer)

                        ...1 .... Ack

                        .... 1... Push

                        .... .0.. (No Reset)

                        .... ..0. (No SYN)

                        .... ...0 (No FIN)



Window:               1460

TCP Checksum:         0xC579

Urgent Pointer:       0

No TCP Options

HTTP - Hyper Text Transfer Protocol

HTTP Version:         HTTP/1.0

HTTP Status:          200

HTTP Reason:          OK<CR><LF>

Date:                   Mon, 24 Nov 2003 01:24:17 GMT<CR><LF>

Server:               microHttp/1.0 Zlgmcu Corporation<CR><LF>

Accept-Ranges:          bytes<CR><LF>

Connection:             Keep-Close<CR><LF>

Content-Type:         image/bmp<CR><LF><CR><LF>

FCS - Frame Check Sequence

FCS:                  0xDCC474F9Calculated

(2)图片传输的数据包:



Packet Info

Packet Number:      27

Flags:                0x00000000

Status:               0x00000000

Packet Length:      500

Timestamp:            15:24:20.964443000 08/07/2009

Ethernet Header

Destination:          00:24:8C:7A:A9:F5

Source:               52:54:4C:19:F7:42

Protocol Type:      0x0800IP

IP Header - Internet Protocol Datagram

Version:            4

Header Length:      5(20 bytes)

Differentiated Services:%00000000

                        0000 00.. Default

                        .... ..00 Not-ECT



Total Length:         482

Identifier:         23

Fragmentation Flags:%010

                        0.. Reserved

                        .1. Do Not Fragment

                        ..0 Last Fragment



Fragment Offset:      0(0 bytes)

Time To Live:         128

Protocol:             6TCP - Transmission Control Protocol

Header Checksum:      0x76CC

Source IP Address:    192.168.0.174

Dest. IP Address:   192.168.0.52

TCP - Transport Control Protocol

Source Port:          80http

Destination Port:   1998x25-svc-port

Sequence Number:      32621

Ack Number:         1576274426

TCP Offset:         5(20 bytes)

Reserved:             %0000

TCP Flags:            %00011000...AP...

                        0... .... (No Congestion Window Reduction)

                        .0.. .... (No ECN-Echo)

                        ..0. .... (No Urgent pointer)

                        ...1 .... Ack

                        .... 1... Push

                        .... .0.. (No Reset)

                        .... ..0. (No SYN)

                        .... ...0 (No FIN)



Window:               1460

TCP Checksum:         0x5179

Urgent Pointer:       0

No TCP Options

HTTP - Hyper Text Transfer Protocol

Continuation of existing HTTP stream

Binary Data:

BM........v...(.42 4D B6 01 00 00 00 00 00 00 76 00 00 00 28 00

................00 00 1A 00 00 00 14 00 00 00 01 00 04 00 00 00

..@.............00 00 40 01 00 00 C4 0E 00 00 C4 0E 00 00 00 00

................00 00 00 00 00 00 00 00 00 00 00 00 80 00 00 80

................00 00 00 80 80 00 80 00 00 00 80 00 80 00 80 80

................00 00 C0 C0 C0 00 80 80 80 00 00 00 FF 00 00 FF

................00 00 00 FF FF 00 FF 00 00 00 FF 00 FF 00 FF FF

................00 00 FF FF FF 00 FF FF FF FF FF FF FF FF FF FF

................FF FF FF 00 00 00 FF FF FF FF FF FF FF FF FF FF

................FF FF FF 00 00 00 FF FF FF FF FF FF FF FF FF FF

................FF FF FF 00 00 00 FF FF FF FF FF FF FF FF FF FF

..............f.FF FF FF 00 00 00 FF FF FF FF FF FF FF F6 66 FF

...............oFF FF FF 00 00 00 FF FF FF FF FF FF FF FF FF 6F

.........ffoo.ffFF FF FF 00 00 00 FF FF FF 66 66 6F 6F FF 66 66

............o...FF FF FF 00 00 00 FF FF FF F6 FF FF 6F F6 FF F6

..........o.o...FF FF FF 00 00 00 FF FF FF FF 6F FF 6F F6 FF F6

................FF FF FF 00 00 00 FF FF FF FF F6 FF F6 F6 FF FF

o..........o..o.6F FF FF 00 00 00 FF FF FF FF FF 6F F6 FF 6F FF

o.........ff...f6F FF FF 00 00 00 FF FF FF F6 66 66 F6 FF F6 66

o............o..6F FF FF 00 00 00 FF FF FF FF FF FF FF 6F FF FF

.............o..FF FF FF 00 00 00 FF FF FF FF FF FF FF 6F FF FF

.............o..FF FF FF 00 00 00 FF FF FF FF FF FF FF 6F FF FF

................FF FF FF 00 00 00 FF FF FF FF FF FF FF FF FF FF

................FF FF FF 00 00 00 FF FF FF FF FF FF FF FF FF FF

................FF FF FF 00 00 00 FF FF FF FF FF FF FF FF FF FF

................FF FF FF 00 00 00 FF FF FF FF FF FF FF FF FF FF

................FF FF FF 00 00 00 FF FF FF FF FF FF FF FF FF FF

..........      FF FF FF 00 00 00 00 00 00 00

FCS - Frame Check Sequence

FCS:                  0xC06BDBAACalculated

以上是使用ZLG/IP传输,截到的数据包,浏览器收到以上数据包就可以正常地完整地显示一个带背景图片的简单页面。

二、使用UCTCP/IP不能显示图片的数据包:
uctcp/ip 数据包ourdev_468397.gif(文件大小:537K,只有400K以内的图片才能直接显示) (原文件名:uctcp1.gif)



下面是 HTTP的图片的头信息和图片数据的数据包清单:

(1)HTTP的图片的头信息:



Packet Info

Packet Number:      15

Flags:                0x00000000

Status:               0x00000000

Packet Length:      228

Timestamp:            15:29:57.295196000 08/07/2009

Ethernet Header

Destination:          00:24:8C:7A:A9:F5

Source:               00:50:C2:25:61:34Ieee Registration Authority:25:61:34

Protocol Type:      0x0800IP

IP Header - Internet Protocol Datagram

Version:            4

Header Length:      5(20 bytes)

Differentiated Services:%00000000

                        0000 00.. Default

                        .... ..00 Not-ECT



Total Length:         210

Identifier:         7

Fragmentation Flags:%000

                        0.. Reserved

                        .0. May Fragment

                        ..0 Last Fragment



Fragment Offset:      0(0 bytes)

Time To Live:         128

Protocol:             6TCP - Transmission Control Protocol

Header Checksum:      0xB7EC

Source IP Address:    192.168.0.174

Dest. IP Address:   192.168.0.52

TCP - Transport Control Protocol

Source Port:          80http

Destination Port:   2094nbx-au

Sequence Number:      70528

Ack Number:         1782436267

TCP Offset:         5(20 bytes)

Reserved:             %0000

TCP Flags:            %00011000...AP...

                        0... .... (No Congestion Window Reduction)

                        .0.. .... (No ECN-Echo)

                        ..0. .... (No Urgent pointer)

                        ...1 .... Ack

                        .... 1... Push

                        .... .0.. (No Reset)

                        .... ..0. (No SYN)

                        .... ...0 (No FIN)



Window:               3778

TCP Checksum:         0x5353

Urgent Pointer:       0

No TCP Options

HTTP - Hyper Text Transfer Protocol

HTTP Version:         HTTP/1.0

HTTP Status:          200

HTTP Reason:          OK<CR><LF>

Date:                   Mon, 24 Nov 2003 01:24:17 GMT<CR><LF>

Server:               microHttp/1.0 Zlgmcu Corporation<CR><LF>

Accept-Ranges:          bytes<CR><LF>

Connection:             Keep-Close<CR><LF>

Content-Type:         image/bmp<CR><LF><CR><LF><NUL>

FCS - Frame Check Sequence

FCS:                  0x3F3DB3CFCalculated

(2)图片传输的数据包:



Packet Info

Packet Number:      16

Flags:                0x00000000

Status:               0x00000000

Packet Length:      500

Timestamp:            15:29:57.299183000 08/07/2009

Ethernet Header

Destination:          00:24:8C:7A:A9:F5

Source:               00:50:C2:25:61:34Ieee Registration Authority:25:61:34

Protocol Type:      0x0800IP

IP Header - Internet Protocol Datagram

Version:            4

Header Length:      5(20 bytes)

Differentiated Services:%00000000

                        0000 00.. Default

                        .... ..00 Not-ECT



Total Length:         482

Identifier:         8

Fragmentation Flags:%000

                        0.. Reserved

                        .0. May Fragment

                        ..0 Last Fragment



Fragment Offset:      0(0 bytes)

Time To Live:         128

Protocol:             6TCP - Transmission Control Protocol

Header Checksum:      0xB6DB

Source IP Address:    192.168.0.174

Dest. IP Address:   192.168.0.52

TCP - Transport Control Protocol

Source Port:          80http

Destination Port:   2094nbx-au

Sequence Number:      70698

Ack Number:         1782436267

TCP Offset:         5(20 bytes)

Reserved:             %0000

TCP Flags:            %00011001...AP..F

                        0... .... (No Congestion Window Reduction)

                        .0.. .... (No ECN-Echo)

                        ..0. .... (No Urgent pointer)

                        ...1 .... Ack

                        .... 1... Push

                        .... .0.. (No Reset)

                        .... ..0. (No SYN)

                        .... ...1 FIN



Window:               3778

TCP Checksum:         0xDF51

Urgent Pointer:       0

No TCP Options

HTTP - Hyper Text Transfer Protocol

Continuation of existing HTTP stream

Binary Data:

BM........v...(.42 4D B6 01 00 00 00 00 00 00 76 00 00 00 28 00

................00 00 1A 00 00 00 14 00 00 00 01 00 04 00 00 00

..@.............00 00 40 01 00 00 C4 0E 00 00 C4 0E 00 00 00 00

................00 00 00 00 00 00 00 00 00 00 00 00 80 00 00 80

................00 00 00 80 80 00 80 00 00 00 80 00 80 00 80 80

................00 00 C0 C0 C0 00 80 80 80 00 00 00 FF 00 00 FF

................00 00 00 FF FF 00 FF 00 00 00 FF 00 FF 00 FF FF

................00 00 FF FF FF 00 FF FF FF FF FF FF FF FF FF FF

................FF FF FF 00 00 00 FF FF FF FF FF FF FF FF FF FF

................FF FF FF 00 00 00 FF FF FF FF FF FF FF FF FF FF

................FF FF FF 00 00 00 FF FF FF FF FF FF FF FF FF FF

..............f.FF FF FF 00 00 00 FF FF FF FF FF FF FF F6 66 FF

...............oFF FF FF 00 00 00 FF FF FF FF FF FF FF FF FF 6F

.........ffoo.ffFF FF FF 00 00 00 FF FF FF 66 66 6F 6F FF 66 66

............o...FF FF FF 00 00 00 FF FF FF F6 FF FF 6F F6 FF F6

..........o.o...FF FF FF 00 00 00 FF FF FF FF 6F FF 6F F6 FF F6

................FF FF FF 00 00 00 FF FF FF FF F6 FF F6 F6 FF FF

o..........o..o.6F FF FF 00 00 00 FF FF FF FF FF 6F F6 FF 6F FF

o.........ff...f6F FF FF 00 00 00 FF FF FF F6 66 66 F6 FF F6 66

o............o..6F FF FF 00 00 00 FF FF FF FF FF FF FF 6F FF FF

.............o..FF FF FF 00 00 00 FF FF FF FF FF FF FF 6F FF FF

.............o..FF FF FF 00 00 00 FF FF FF FF FF FF FF 6F FF FF

................FF FF FF 00 00 00 FF FF FF FF FF FF FF FF FF FF

................FF FF FF 00 00 00 FF FF FF FF FF FF FF FF FF FF

................FF FF FF 00 00 00 FF FF FF FF FF FF FF FF FF FF

................FF FF FF 00 00 00 FF FF FF FF FF FF FF FF FF FF

................FF FF FF 00 00 00 FF FF FF FF FF FF FF FF FF FF

..........      FF FF FF 00 00 00 00 00 00 00

FCS - Frame Check Sequence

FCS:                  0xAC53E1C3Calculated

以上为UC/TCPIP发送一个简单页面的数据包,经过分析数据包,其实可以看到发送到浏览器端的HTTP的信息头以及图片的数据都是一样的,但是使用ZLG/IP的就可以看到图片,而使用UCTCP/IP测试N次都显示不出图片,我试了多次单机对单机测试同样收不到图片。

不知道是怎么回事,请各路高手给指点指点吧。


2009-08-07 PM

pigeon0411 发表于 2009-8-7 17:36:15

自己顶一下
这里发的格式不太清楚,换个地址
http://blog.csdn.net/pigeon0411/archive/2009/08/07/4422954.aspx
页: [1]
查看完整版本: TCP/IP的一个很诡异的问题(图片传输)