gprs调试过程中关于TCP连接的问题

147802802   2010-1-21 16:09 楼主
在TCP三次握手的过程中,mc35发送第一次握手,服务器应答第二次握手,但是mc35发送的第三次握手服务器始终收不到
通信过程中的数据如下:

第一次握手数据:(这只是列出了最后的两个,只是IP的标示和TCP的序号在递增,其他首部数据都是一样的)
FF 03 00 21 45 00 00 30 01 D4 40 00 80 06 6E 7C 0A 1D D4 AA 3B 24 62 9A 07 83 00 50 00 00 00 73 00 00 00 00 70 02 40 00 BE 53 00 00 02 04 05 B4 01 01 04 02 A2 5D 7E

FF 03 00 21 45 00 00 30 01 D6 40 00 80 06 6C 7C 0A 1D D4 AA 3B 24 62 9A 07 83 00 50 00 00 00 74 00 00 00 00 70 02 40 00 BE 52 00 00 02 04 05 B4 01 01 04 02 3E 0E 7E

第二次握手数据:
FF 03 33 2145 00 00 3056 1D 00 00 71 06 77 25 3B 24 62 9A 0A 1D D4 AA 00 50 07 83  CB BD 02 4E 00 00 00 6D 70 12 40 00 F0 3D 00 00 02 04 05 B4 01 01 04 02 70 6D 7E

第三次握手数据:
FF 03 00 21 45 00 00 28 01 D8 40 00 80 06 72 7C 0A 1D D4 AA 3B 24 62 9A 07 83 00 50 00 00 00 6D CB BD 02 4F 50 10 40 00 1D 02 00 00 F1 32 7E

FF 03 00 21 45 00 00 28 01 DA 40 00 80 06 70 7C 0A 1D D4 AA 3B 24 62 9A 07 83 00 50 00 00 00 6D CB BD 02 4F 50 10 40 00 1D 02 00 00 65 69 7E

发送第三次握手时的数据也只是在IP的标示在递增变化,其他数据都一样

但是第三次握手服务器端死活收不到,用Ethereal监控接收端口只能收到1个第一次握手的数据和应答的第二次握手的数据,而且第二次握手的数据在发送3次后就停止发送(估计是默认3次未响应就自动断开)。为了避免是因为GPRS丢包导致没有收到,于是在发送第三次握手的时候采用了死循环不停发送,但是服务器端还是收不到

希望大家来共同探讨一下,希望得到高手的指点
在此谢过各位

回复评论 (5)

希望大家帮帮忙,谢谢
点赞  2010-1-21 16:40
先帮顶下。

MARK.
点赞  2010-1-21 16:45
怎么没有人关注呢?
希望高手能出现帮帮忙
谢谢
点赞  2010-1-22 09:17
mc35发送第三次握手,服务器没有收到,说明移动网络不是专线专用,可能已经断掉了。
点赞  2010-1-24 10:24
结帖了,问题找到了,是因为校验和忘了进行大小端转换,导致服务器在等待时间内没有收到正确的第三次握手
感谢亚细亚
点赞  2010-1-26 10:38
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复