uip1.0 ping不通解决方案

最近移植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不通解决方案,布布扣,bubuko.com

时间: 2024-10-24 05:37:35

uip1.0 ping不通解决方案的相关文章

服务器能访问共享,但是ping不通解决方案

今天发现客户反映后台连不上数据库,远程程查看之后发现机器可以访问服务器共享,但是ping网络的时候ping不通.Ip设置也没问题,网络也都连上了,而且客户反映他们那其它机器都能连上. 百度了一下,发现有两种可能: 1.防火墙没关, 随叫客户去查看防火墙是否已经关闭,没关的话就把防火墙关了. 2.端口被封了,要使用到137端口,而我用IP安全策略封了此端口 赶紧把此端口再开起来,问题彻底解决. 137端口,UDP协议,是为netbios服务开放,如果禁止,本机无法解析计算机名,但可以通过计算机名访

远程连接阿里云服务器ping不通ip解决方案

搭建了阿里云服务器,发现本地ping不通,查看半天才发现,原来是在阿里云上的安全组少了些东西.  在出入方向上新建一个安全组,就可以搞定了. 原文地址:https://www.cnblogs.com/jianxian/p/9007176.html

Ping 不通的原因分析

背景 简介 ping是常用的网络管理命令,ping也属于一个通信协议,是TCP/IP协议的一部分,适用于windows和linux以及unix 根据reply用来检查网络是否通畅&网络连接的速度(time) 主要是端对端的,针对目标ip或者目标网址 原理 给对端(目标ip)发一个数据包,对方就要返回一个同样大小的数据包,根据reply我们可以确定目标主机的存在 在windows的dos界面可以通过 ping/?来查看其参数含义 常用命令 -t 不间断给对方发包,除非ctrl+c 退出 -l 定义

开发板ping不通主机和虚拟机的看过来(转载)!

前几天在做uboot下用tftp下载文件到开发板的实验时,为了能解决开发板ping不通主机和虚拟机的问题,可谓绞尽脑汁,正所谓久病成医,虽然为了这一小问题废了我那么长时间,但我在解决问题的同时也学到了很多其他知识,算是塞公失马,焉知祸福!好了,废话不多说,如果你也ping不通,就请往下看! (以下是我解决这一问题的心得,以我开发板为例,如果你的板子跟我不一样,也没关系,道理是一样的) 一:物理设备及连接方式: 开发板:Mini2440(友善之臂): 笔记本一台(主机)(windows系统): 虚

虚拟机ping不通主机

centos ping不通主机 首先检查网络设备 ifconfig -a 如果有eth0 , 又存在 eth1 . 那么service eth1 stop  然后在ping主机.(以上前提是网络地址设置正确) 临时设置linux ip地址 ifconfig eth1/eth0 network 192.168.1.100 netmask 255.255.255.0 永久设置linux ip地址 vi /etc/sysconfig/network-script/ifcfg-eth0  设置 IPAD

【RS】关于路由器ping不通直连的几种原因(3)

3.路由策略R1int g0/0/0ip add 192.168.12.1 255.255.255.0un shR2int g0/0/0ip add 192.168.12.2 24 如果在R1或者R2上做一定的策略,是不是也会ping不通呢,答案当然是肯定的.我们知道ping是以太网探针,基于icmp协议,要是我们使用策略禁掉icmp协议包,会发生什么?<R2>dis cur# sysname R2#acl number 3002   rule 5 deny icmp source 192.1

两台主机之间单向Ping不通的问题

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px ".PingFang SC"; color: #454545 } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "Helvetica Neue"; color: #454545; min-height: 14.0px } span.s1 { font: 12.0px "Helvetica Ne

vm虚拟机nat方式ping不通主机

vm虚拟机nat方式ping不通主机 主机ip:10.10.16.69 主机上查看vmnet8虚拟网卡ip:192.168.154.1 虚拟机ip:192.168.154.128 虚拟机默认路由192.168.154.1 主机可以ping通虚拟机,虚拟机可以ping通192.168.154.1的网关.但虚拟机ping不通主机和外网. 解决方案: vm中nat方式宿主机访问虚拟机和主机的IP关系不大,你这里 vmnet8网卡地址和虚拟机地址IP是同一网段是正确的配置 尝试修改虚拟机的默认网关为19

Linux能ping通IP,ping不通域名

今天碰到个问题, 能ping通IP地址, ping不通域名, 一直以为是 DNS解析服务器的问题, 找了半天. 问题不在这里. [[email protected] postfix]# cat /etc/resolv.conf nameserver 202.96.209.133 options attempts:1 timeout:1 rotate #nameserver 10.202.72.117 nameserver 10.202.72.118 nameserver 114.114.114.