日期:2014-05-16  浏览次数:20700 次

协议解析软件中怎样识别非默认端口的第四层协议
最近再写一个小型的TCP/IP协议解析软件,第四层的协议我是根据TCP或者UDP头中的端口号来识别的,比如telnet的默认端口是23,但是,如果不使用23怎么办呢?因为,有些应用程序在正常数据传输时是要临时打开一个其它端口的。

------解决方案--------------------
楼主还在做这个项目呀,,
参考下wireshark呀,,难道wireshark仅仅是靠端口识别的?
这类问题属于学术上研究范畴,所以找学术文章,然后翻译成代码。
GOOGLE搜索的链接: application layer protocol identify    或者 application layer protocol detection
http://www.google.com.hk/#hl=zh-CN&newwindow=1&safe=strict&q=application+layer+protocol+identify&spell=1&sa=X&ei=iGk0UdPdJ5CTiAfL8YGYAg&ved=0CCsQvwUoAA&bav=on.2,or.r_gc.r_pw.&bvm=bv.43148975,d.aGc&fp=49ca3a6f08282d5a&biw=1440&bih=778

简单的文本协议,http这类的,直接检测下tcp数据是否匹配http协议就行了。
------解决方案--------------------
引用:
已经把默认端口的做完了,但是----就是但是-----在研究《TCP/IP》的时候发现有非默认端口的情况。之前没接触过,才知道。
  wireshark也不是都能准确的识别协议的。
  所以就看了一些学术文章,也有各种各样的算法,各有利弊。

学术上的研究的问题,,,就和一些什么人脸识别等一样的,都有正确率的问题..
那你就选择一种实现,改进,,然后看准确率了..