uip1.0 ping不通解决方案
来源:互联网 发布:南京淘宝招聘网 编辑:程序博客网 时间:2024/05/17 03:57
最近移植uip1.0到stm32上,能udp收发数据,但是ping不通。感觉到很奇怪。以前移植的0.9都能ping通。
于是通过抓包分析。发现icmp echo reply返回的校验值为incorrect。如下图:
ping request
ping reply:
较uip 1.0和uip 0.9移植比较。在uip-conf.h里多了一个
#define CHECKSUM_BY_HARDWARE //add by eric 当然是我自己罗。
也就是说由硬件来完成校验和计算。然后再看stm32数据参考手册第667页的 TCP/UDP/ICMP校验和章节。有下面一段文字
然后将
#define CHECKSUM_BY_HARDWARE 注释掉 编译下载。ping通了。 但既然有硬件校验检测,为什么不采用呢,于是将这一行重新打开。并在uip核心代码上uip_process
函数里icmp报文计算校验和时作出如下修改
ICMPBUF->type = ICMP_ECHO_REPLY;
#ifdef CHECKSUM_BY_HARDWARE //////////////////////////
ICMPBUF->icmpchksum = 0; //////add by eric/////////
#else ////////////////////////////////
if(ICMPBUF->icmpchksum >= HTONS(0xffff - (ICMP_ECHO << 8))) {
ICMPBUF->icmpchksum += HTONS(ICMP_ECHO << 8) + 1;
} else {
ICMPBUF->icmpchksum += HTONS(ICMP_ECHO << 8);
}
#endif
/* Swap IP addresses. */
编译下载。 ping通了。。。。。。。。。。。。。。。。。。。。ho~ho~
- uip1.0 ping不通解决方案
- win10 ping不通解决方案
- VMWare 虚拟机系统 ping 不通主机解决方案
- VMWare 虚拟机系统 ping 不通主机解决方案
- VMWare 虚拟机系统 ping 不通主机解决方案
- maven ping不通repol.maven.org解决方案
- 开发板与虚拟机ping不通解决方案
- 本地机器ping不通虚拟机解决方案
- VMWare 虚拟机系统 ping 不通主机解决方案
- ping不通
- ping 不通
- ping不通
- Ping不通
- 开发板与主机ping不通的解决方案(mini2440)
- vmware虚拟机NAT模式主机ping不通虚拟机解决方案
- uIP1.0用户手册中文版第一章
- uip1.0 学习笔记--NUC472
- 主机 ping 不通虚拟机,虚拟机可以ping通主机。解决方案。(ssh连接、linux、vmware)
- maven 学习地址
- 一些不错的文章
- 算法导论 第4章 源程序 分治策略 最大子数组 Strassen算法
- SQL Server 定时访问url激活数据同步
- ubuntu下启动tomcat问题
- uip1.0 ping不通解决方案
- struts1.2 + spring2.5 + hibernate3.2框架搭建三之后台代码
- 算法导论 第六章 堆排序
- jboss关于内存溢出的问题java.lang.OutOfMemoryError: PermGen space
- uptime命令详解——linux性能分析
- poj 1837 Balance (DP)
- 用友盟的组件实现分享内容到新浪微博,微信,朋友圈
- SmartDeblur 2.2 中文破解版绿色版_智能去模糊工具
- 桌面UI框架 LomoX