xiaolin88 发表于 2012-11-5 10:29:45

stm32 与以太网芯片ENC28J60联接,STM32作为客户端,PC作为服务端

社区各朋友:
   与神州III开发板联接一样,但是他们用的是STM32作为服务端,PC作为客户端,没有实际意义。
现在我用用STM32与以网芯片ENC28J60联接作为客户端,PC作为服务端。STM32发出ARP给PC,PC返回成功的ARP数据包,说明已查到PC的MAC地址。
STM32 发送SYN 数据包给PC,PC回复ACK。请问PC怎么不回复SYN ACK是什以原因?
以下是通信数据。
stm32号发送SYN包响应
发送SYN 相应包数据len=:66
0x0, 0x26, 0x6c, 0x6a, 0x78, 0xd8,
0x32, 0x12, 0x35, 0x11, 0x1, 0x51,
0x8, 0x0,
0x45, 0x0, 0x0, 0x34,
0x2, 0x4, 0x40, 0x0,
0x40, 0x6, 0xb6, 0xfc,
0xc0, 0xa8, 0x0, 0xf,
0xc0, 0xa8, 0x0, 0x64,
0xb, 0xb8, 0x1f, 0x40,
0x75, 0x89, 0x22, 0x13,
0x0, 0x0, 0x0, 0x0,
0x80, 0x2, 0x0, 0x0,
0x2a, 0xc0, 0x0, 0x0,
0x2, 0x4, 0x5, 0xb4,
0x1, 0x3, 0x3, 0x0,
0x1, 0x1, 0x4, 0x2,
 
 接收到目的地址为本机IP的合法的IP包.
 收到主机IP包数据len=60:
 0x32, 0x12, 0x35, 0x11, 0x1, 0x51,
0x0, 0x26, 0x6c, 0x6a, 0x78, 0xd8,
0x8, 0x0,
0x45, 0x0, 0x0, 0x28,
0x3, 0x1f, 0x40, 0x0,
0x40, 0x6, 0xb5, 0xed,
0xc0, 0xa8, 0x0, 0x64,
0xc0, 0xa8, 0x0, 0xf,
0x1f, 0x40, 0xb, 0xb8,
0xbe, 0xdf, 0xa4, 0x7f,
0x75, 0x89, 0x22, 0x14,
0x50, 0x10, 0xff, 0xff,
0x8, 0x1c, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0,
0x0, 0x0,
STM32接收到TCP包,端口为80。
包类型为ACK.

xiaolin88 发表于 2012-11-6 20:32:32

RE:stm32 与以太网芯片ENC28J60联接,STM32作为客户端,PC作为服务端

怎么坛里没有人愿意回覆!!!!还是都没有做过!!
都是来下载的和转载的。

zykzyk-93033 发表于 2012-11-6 22:27:17

RE:stm32 与以太网芯片ENC28J60联接,STM32作为客户端,PC作为服务端

TCP状态转移图
假设有两台主机A、B和入侵者控制的主机X。假设B授予A某些特权,使得A能够获得B所执行的一些操作。X的目标就是得到与B相同的权利。为了实现该目标,X必须执行两步操作:首先,与B建立一个虚假连接;然后,阻止A向B报告网络证实系统的问题。主机X必须假造A的IP地址,从而使B相信从X发来的包的确是从A发来的。
我们同时假设主机A和B之间的通信遵守TCP/IP的三次握手机制。握手方法是:
A→:SYN(序列号=M)
B→A:SYN(序列号=N),ACK(应答序号=M+1)
A→B:ACK(应答序号=N+1)
:D

xiaolin88 发表于 2012-11-8 11:39:42

RE:stm32 与以太网芯片ENC28J60联接,STM32作为客户端,PC作为服务端

没有人回覆,这几天都有进这个坛。现在以太网通信调好了放松一下,进来看看。与上面朋友说得一样是序号和确认的问题。要谢谢这位朋友!!!!!!!!!!!!!!
页: [1]
查看完整版本: stm32 与以太网芯片ENC28J60联接,STM32作为客户端,PC作为服务端