Commit Graph

176 Commits

Author SHA1 Message Date
nnhy 11820fb13c 修正MacAddress不严谨导致以太网驱动无法收到数据包的Bug
测试可收到DHCP数据包,但是仍然无法取得分配的IP
2015-06-18 13:31:14 +00:00
nnhy 43bc4bd49c 建立两套网络IP地址结构,协议层追求内存布局,应用层追求用户友好
编译通过,测试DHCP失败
2015-06-18 02:23:03 +00:00
nnhy d33ed42a8b 全部使用网络IP地址结构显示 2015-06-17 11:58:15 +00:00
nnhy e5a45270d6 显示IP函数封装 2015-06-17 11:38:34 +00:00
nnhy c0cc69dd56 TinyIP全面使用新的网络结构类,编译通过,测试失败 2015-06-17 10:49:02 +00:00
nnhy 3acdae119c 数据流独立,网关程序测试通过 2015-06-16 14:51:37 +00:00
nnhy 1bcb3497ab 给日志补上一个空格 2015-06-15 03:42:53 +00:00
Stone af84a06f78 本地MAC地址,使用WSWL作为前缀 2015-01-17 08:25:13 +00:00
Stone 93d17c1373 根据IP头修正数据长度,测试没有什么变化 2014-12-05 12:10:56 +00:00
Stone c847b6117f 修正Tcp::Connect中Callback的逻辑处理。
Tcp服务端测试通过,Tcp客户端丢失了 三次握手的第三个包
2014-12-05 09:23:55 +00:00
Stone 10f974ddcc 不能注释UDP这行日志,否则DHCP失效 2014-11-21 14:27:25 +00:00
Stone 2b809adc95 2014-11-21 12:49:12 +00:00
Stone cd9da5ef22 解决TinyIP死循环 2014-11-18 15:49:23 +00:00
Stone 2a1684d05b 改造2401,2860,TinyIP,编译通过,测试失败,貌似Spi功能全部失效 2014-11-18 15:38:49 +00:00
Stone c6ed568559 注释调试输出 2014-11-16 18:49:36 +00:00
Stone 5ca2761e44 都没有改校验部分的代码,莫名其妙的UDP校验就对了 2014-11-16 18:45:34 +00:00
Stone cccf7bfe6f 已经确认UDP不能用是校验和的计算有问题,怀疑TCP不能用也是校验和的问题
测试仍然未通过
2014-11-16 17:28:02 +00:00
Stone 6364194c84 !!!!!!晕死了,UDP发送的时候,不能带有校验,怎么回事??? 2014-11-16 15:27:57 +00:00
Stone 011d3b5abd UDP收发测试通过 2014-11-16 14:53:31 +00:00
Stone cc8ca04a85 规范化端口的使用,只有TCP和UDP使用端口,TinyIP类不需要端口
UDP测试未通过
2014-11-16 14:21:14 +00:00
Stone be89caea05 显示详细的IP包类型 2014-11-15 11:09:00 +00:00
Stone 88cd423321 完成UDP主动发送函数,未测试 2014-11-15 09:07:42 +00:00
Stone 99d891a5d5 TinyIP增加LoopWait架构,精简等待调用的代码 2014-11-12 16:05:45 +00:00
Stone 790e4af08e 发送IP数据包的时候,忘了针对IP修改不同的目标MAC。
测试TCP连接,抓包可抓到,但是发送端理应等待对方的Ack包。
2014-11-12 15:34:47 +00:00
Stone c99ddb0d70 改善注释 2014-11-11 08:37:54 +00:00
Stone b0d8a9b964 改善TinyIP的日志输出格式 2014-10-21 10:03:24 +00:00
nnhy a8cc5bace0 修正内存流处理Length时存在的BUG,此时指针位于0,而内容长度为缓冲区长度 2014-10-12 15:55:29 +00:00
nnhy 5b52b03fcf 不是新的ARP加入不显示日志 2014-10-09 17:43:34 +00:00
nnhy 12949d3b5b 让ARP模块能够从普通IP中学习ARP映射,以备使用 2014-10-08 13:56:04 +00:00
nnhy 92f808a306 通过DHCP获取IP期间,关闭Arp响应。测试通过 2014-10-07 20:25:19 +00:00
nnhy fe5e1ecbe1 DHCP测试通过,成功获取IP,关键在于网桥隔离,并且DHCP服务器收到Request以后发送ARP询问是否有人使用该IP。而设备得到该IP后会做出响应,又恰巧网桥隔离让服务器误以为是别的机器使用了该IP地址,从而Nak 2014-10-07 20:21:35 +00:00
nnhy 070b341609 Dhcp完成时才Ping网关,编译通过,未测试 2014-10-07 18:28:15 +00:00
nnhy 2b682af3c8 拆分Arp,测试基本功能一致 2014-10-07 18:05:22 +00:00
nnhy 3afb4094bb 拆分TinyIP为各个功能模块,编译通过,未测试 2014-10-07 17:51:25 +00:00
Stone e388b8cc19 丰富内存数据流功能,可直接读写整型数据
采用数字和指针双游标,提升读取性能
2014-09-26 02:21:35 +00:00
Stone 621c3bd53b 统一TinyIP的数据轮询处理,先拿DHCP开刀
编译通过,可运行,但是DHCP无法正常使用
2014-09-22 16:07:08 +00:00
Stone 00a377feab 删除无用注释,功能保持正常 2014-09-22 05:24:51 +00:00
Stone b4fd7ce1ec 使用MacAddress更新网络库,接受Ping通过,DHCP通过,UDP通过 2014-09-22 05:15:02 +00:00
Stone a4b2df917a 硬件地址类MacAddress测试部分通过,长整转为对象,对象相等比较都没有问题,对象转为长整可能因为调试有错,理论上没有问题 2014-09-22 04:22:44 +00:00
Stone 7cf38e14c3 Mac地址还没有好的想法 2014-09-20 15:32:54 +00:00
Stone d169bac5ff 直接使用uint表示IP地址,计算更高效编码也更方便 2014-09-20 14:46:50 +00:00
Stone d6b9436335 TCP不可用的问题初步怀疑跟数据校验有关,通过回滚可用,已经确认当前硬件没有问题。
暂时搁置
2014-09-20 13:35:17 +00:00
Stone e8ba72ac2f 在现在的硬件上,恢复到8.29的版本没有问题,说明序列号处理这部分没有问题 2014-09-20 06:47:03 +00:00
Stone c486fa561c 初始Seq=0,TCP测试仍然没有通过 2014-09-20 06:05:22 +00:00
Stone dc670f4460 不能修改主监听Socket的端口,否则可能导致收不到后续连接数据 2014-09-20 06:01:40 +00:00
Stone 01755ce183 缓冲区必须略大,否则接收数据时可能少一个字节
PC到设备的Ping通过,UDP测试通过
2014-09-20 04:00:51 +00:00
Stone e8c76bcea2 增加数据流类,使用内存数据流重构TinyIP 2014-09-20 02:49:48 +00:00
Stone 3d771313e6 UDP收发数据基础测试通过 2014-09-20 01:21:08 +00:00
Stone c61424f2a8 考虑到可能有通用端口处理器,也可能有专用端口处理器(一般在后面),这里偷懒使用倒序处理 2014-09-19 20:27:45 +00:00
Stone 4fd3365c80 修正RenewDHCP失败的错误,传递的参数应该是Tip。
UDP/TCP初始化端口为0,以处理所有数据包
2014-09-19 20:25:37 +00:00
Stone dd4a4c3fc4 修正缓冲区偏移错误,处理Ping请求成功,测试通过 2014-09-19 19:50:54 +00:00
Stone cb485cc2d5 修正列表模版的BUG 2014-09-19 19:17:40 +00:00
Stone 18af792703 成功处理ARP请求,PC段获得设备端MAC地址
PC向设备的Ping请求失败
2014-09-19 18:39:23 +00:00
Stone 4a5615cff0 修正MAC的初始化错误 2014-09-19 16:18:19 +00:00
Stone 9e6d0a8c6d 不要那么严格,只要有源MAC地址,即使不是发给本机,也可以使用 2014-09-19 16:15:05 +00:00
Stone adcaeb52d4 发送以太网数据包时,缓冲区buf的地址是以太网头部以后的地址,而不是整个以太网包的地址 2014-09-19 15:25:56 +00:00
Stone b9655f710d MAC地址首字节奇数表示组地址,这里用偶数
必须有Arp,否则无法响应别人的IP询问
2014-09-19 15:08:06 +00:00
Stone 4fe4d95ca3 有些家用路由器会发送错误的len,大于4字节,导致覆盖前后数据。
经测试,解决DHCP得不到网关地址的问题。其实就是len过长,读取DNS的时候把网关地址给覆盖了
2014-09-19 10:48:05 +00:00
Stone f32791f5bf 仅处理本连接的IP和端口。
DHCP测试可以获取IP和DNS等,但是得不到网关
2014-09-19 09:52:55 +00:00
Stone f92f0f734a 优化掉一些长整型乘除法 2014-09-09 12:13:23 +00:00
Stone d683880a97 完成TinyIP所有功能拆分,编译通过过DHCP测试通过,ARP未通过
貌似ARP代码和Ping代码未详细检查
2014-09-01 15:44:19 +00:00
Stone fce22cbcd2 拆分以后的TinyIP终于全部编译通过,未测试 2014-09-01 14:28:37 +00:00
Stone 0d1c5d19fd 逐步拆分NetPacker的功能 2014-09-01 04:08:40 +00:00
Stone 2e9774bfec 重构以太网TinyIP,编译未通过 2014-08-31 19:55:13 +00:00
Stone f85a280b95 Enc28j60实现ITransport接口,编译通过,测试未通过 2014-08-26 14:44:09 +00:00
Stone 12f2f3162d Ping测试通过,原来是需要计算校验 2014-08-25 15:40:16 +00:00
Stone e4f6aced28 ICMP校验码验证通过,收到Ping响应,抓包软件没抓到发出的包,但是抓到了响应包。
代码流程还有点问题,没有及时拿到Ping响应
2014-08-25 15:30:56 +00:00
Stone 19b6c94db8 返回值指示是否向对方发送数据包 2014-08-25 14:25:09 +00:00
Stone 046add8a0a 返回值指示是否向对方发送数据包 2014-08-25 14:16:22 +00:00
Stone c97540b52c Ping之前根据ARP解析IP得到MAC,编译通过,测试未通过。
发出的ICMP数据包,网络抓包没有抓到
2014-08-25 14:07:15 +00:00
Stone b40c836031 完善AddArp,测试通过 2014-08-25 07:52:45 +00:00
Stone 5061c40fac 可记录ARP表,内网设备太多了…… 2014-08-25 04:09:00 +00:00
Stone ccf256b0ff 增加ARP缓存表支持,编译通过,未测试 2014-08-25 03:22:52 +00:00
Stone 5b008f3491 由Sys实现显示字符串和二进制数据的函数 2014-08-21 14:50:17 +00:00
Stone 162145cc22 支持广播数据包,测试通过 2014-08-21 12:24:49 +00:00
Stone 958b4f9b86 修正内存拷贝的BUG 2014-08-21 11:54:17 +00:00
Stone 5935ebf393 DHCP租约过了一半以后重新获取IP地址 2014-08-20 04:41:49 +00:00
Stone 160defecb2 检查内存需要用到那个数组,搬回Sys里面去 2014-08-19 09:30:47 +00:00
Stone bd18d8cf0c 修正UDP协议中处理数据长度不对的BUG,测试通过 2014-08-18 12:53:07 +00:00
Stone 34b3bc7784 RST是对方紧急关闭,这里啥都不干 2014-08-18 12:35:22 +00:00
Stone 183a520786 根据新的ID格式进行调整 2014-08-18 11:21:20 +00:00
Stone a55bb3fa0f 增加主动Ping功能支持,未测试 2014-08-15 11:16:02 +00:00
Stone 5a06199c16 通过宏定义选择TinyIP关闭不需要使用的模块,默认开启所有模块 2014-08-13 15:17:03 +00:00
Stone d8d9807b12 ARP/ICMP/TCP/UDP 测试通过
简化发送数据包的函数
2014-08-13 13:58:55 +00:00
Stone 92061debde ARP/ICMP/TCP/UDP 测试通过
各种事件增加负载数据参数,方便直接使用
2014-08-13 13:12:48 +00:00
Stone e23e220cd8 增加各种事件,编译通过,未测试 2014-08-13 10:06:11 +00:00
Stone f6ddca8e8c ICMP发送数据包之前需要先加上自己头部的长度 2014-08-13 09:16:59 +00:00
Stone 02a53ae958 增加错误检测,如果SPI不对,就不启动网络 2014-08-13 08:59:09 +00:00
Stone eadc47588d 暂时先屏蔽扩展功能,编译通过,测试通过 2014-08-13 08:21:11 +00:00
Stone 6aa57b3006 增加Tcp和Udp,尝试扩展 2014-08-12 15:56:52 +00:00
Stone ebc113ab9b TCP收发正常,注意移位运算的优先级比加法还低 2014-08-12 15:31:20 +00:00
Stone 58efdec628 UDP收发都测试通过
太杯具了,收到的数据包可能有多余数据,这两个长度可能不等
修正TCP长度计算的BUG
大量增加参数断言,避免各种漏洞
TCP未通过
2014-08-12 15:19:36 +00:00
Stone be87cbe9cf UDP默认发数据也不需要校验,诡异!
DHCP使用前先清空一次更安全
2014-08-12 13:27:59 +00:00
Stone 8599e9dc09 此时指向的是负载数据后的第一个字节,所以第一个opt不许Next 2014-08-12 13:07:33 +00:00
Stone bb774c2828 收到非UDP数据包,可能会搞乱缓冲区,所以每次发送的时候,需要重新设定协议
精简无用代码
2014-08-12 11:23:25 +00:00
Stone dcedcf9ff3 优化Tcp序列号的实现,精简无用代码 2014-08-12 05:02:56 +00:00
Stone c69c02ed06 不等2860启动,直接发数据包,加上超时重试机制,这样子比等待来得更快 2014-08-11 19:27:57 +00:00
Stone 7812e5f80e 多次测试表明,对于DHCP不得不去掉UDP的校验,不知道是不是2860的配置问题 2014-08-11 18:57:51 +00:00
Stone 614be66140 2860启动需要不少时间,等待1秒,DHCP非常稳定的获取了IP地址。
最大的坑就是2860启动需要等待时间
2014-08-11 18:50:29 +00:00
Stone ee8e2dc312 在不使用UDP校验的情况下,终于收到了offer,但是发出去Request时收不到响应,手机上的DHCP是有udp检验的 2014-08-11 17:59:26 +00:00