免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
1234
最近访问板块 发新帖
楼主: yulc
打印 上一主题 下一主题

如何探测目标主机的udp端口是否在监听? [复制链接]

论坛徽章:
0
31 [报告]
发表于 2007-01-31 10:18 |只看该作者
原帖由 lovesaka 于 2007-1-30 18:36 发表

哦对不起我的表达方式可能有点不妥
的确我犯了一个错误
当主机在不同网段的时候ICMP是由未端路由产生这点我给突略了
如果主机是在同一个网段时由内核产生这点我并没有说错
当对方主机不存在无论如何这个报文 ...



错字百出呀, 而且不知道你为什么从不打标点..
"如果主机是在同一个网段时由内核产生"  想问一下你这说的是由内核产生什么?
"当对方主机不存在无论如何这个报文是会产生" 哪个报文?rarp 还是icmp?

我的结论是
主机B和A如果在同一网段,且主机B开着,那么在arp请求中,rarp是肯定会回复给A的,但如果不在同一网段,rarp都不会到A来,更别说icmp. 所以,A根本没有办法判断B是否还活着, 也没有办法判断主机B是否在那里等A(在监听A发送的端口)

论坛徽章:
0
32 [报告]
发表于 2007-01-31 10:48 |只看该作者
原帖由 wuqing 于 2007-1-31 08:42 发表


基于UDP协议传输,除了可以获得最大的传输效率以外得很多特性如可靠性需要由用户来解决,UDP的协议包头部比较小巧。你可以在UDP协议之上通过前面很多朋友阐述的那样,从应用层解决这个心跳的问题。但是麻烦的 ...



主机B分两类型, 一种是可控的pc主机,windows程序;另一种是不可控的嵌入式设备. 所以,为了兼容, 我不能更改接收端的程序. 所以心跳包,守护进程,协议头标记的方案通通pass.  
从项目来考虑, 其实这个问题不解决也没有关系,100M的网络,这么点冗余数据还是吃得消的..

论坛徽章:
0
33 [报告]
发表于 2007-01-31 11:22 |只看该作者
最好的做法就是做定时发送的keep alive报活,不明白为什么B端的程序不好修改,如果这是最好的做法为什么不去做呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP