Topic: Java中Socket以及TCP包分析的问题。 |
Print this page |
1.Java中Socket以及TCP包分析的问题。 | Copy to clipboard |
Posted by: kingcal Posted on: 2004-04-04 19:11 各位高手,我现在想用Java来对传输层中的TCP包的数据进行分析,碰到了不少问题,想也想不通: 1、当我用Socket()建立一个Socket流时,在这个流中传输的数据是否以TCP的数据包(报文段)形式进行传 输的? 2、如果它是以TCP(报文段)的形式进行传输的,那么我要做的就是得到Socket的输入流,这可以用Socket 的getInputStream方法得到,接下来的事就是对它进行包分析了。现在我又有一个问题:getInputStream方法 得到数据,究竟是一个包,还是很多个包? 3、如果是多个包我又如何分别得到一个个单独的包,从而进得分析? 4、能不能提供TCP/UDP包报文段的详细结构?(我在书上是找到了一些,但它解释得不很不详细。) 希望各位高手能给小弟指点迷津。 网友CooAbu给我的解答: ======================= 我的个人理解, Java中Socket是封装到TCP/IP协议中应用层了,所以它不会考虑传输层是什么样格式的。 你用getINputStream得到的数据流里面其实已经是反析过来的数据,它没有TCP中的包头等信息了。 TCP/UDP包报文段的详细结构应该是在TCP/IP协议里规定的,Java中对它没有详细介绍。 ============== 网友AsiaFly给我的解答: ==================== 首先要明白一点:Java socket是对应于ISO/OSI七层模型(不是对应TCP/IP模型,有些奇怪吧)的 表示层(session layer),也就是说是在传输层之上的封装。 1、用socket建立的套接字使用的诗TCP协议,所以肯定也诗报文传输。 2、肯定分为很多包的,你从java中可以使用flush方法来使OutputStream流无延迟发送可以间接证明。 3、是否可以查看TCP报文,手头一时没有资料,不大清楚。但我知道UDP协议可以通过DatagramPacket类取得。详细用法还是到java版去问吧。 4、这个问题太大了,网上的资料很多。TCP比较复杂,而UDP的RFC本身就只有两三页,狠好理解的。 ======================= 我现在非常困惑的是单独用Java能实现对TCP数据包的分析吗?真诚希望各位高手能给小弟解答。 |
2.Re:Java中Socket以及TCP包分析的问题。 [Re: kingcal] | Copy to clipboard |
Posted by: jameszhang Posted on: 2004-04-04 21:22 应该理解SOCKET与TCP的关系,好象与JAVA没什么关系 |
3.Re:Java中Socket以及TCP包分析的问题。 [Re: kingcal] | Copy to clipboard |
Posted by: rostone Posted on: 2004-04-05 09:44 查查JavaDoc,如果api 没提供,就自己去研究协议,分析数据罗 |
4.Re:Java中Socket以及TCP包分析的问题。 [Re: kingcal] | Copy to clipboard |
Posted by: mochow Posted on: 2004-04-05 10:50 到http://www-900.ibm.com/developerWorks/cn/ 上搜索“socket”,找到“Java 套接字(socket)101” 进去学习这个教程 |
5.Re:Java中Socket以及TCP包分析的问题。 [Re: mochow] | Copy to clipboard |
Posted by: Raistlin Posted on: 2004-04-06 21:25 mochow wrote: 找不到呀 |
6.Re:Java中Socket以及TCP包分析的问题。 [Re: kingcal] | Copy to clipboard |
Posted by: NcitZhang Posted on: 2004-04-06 21:58 为何不看看sun的源码? |
7.Re:Java中Socket以及TCP包分析的问题。 [Re: kingcal] | Copy to clipboard |
Posted by: mochow Posted on: 2004-04-07 10:26 晕死,隔了一天,搜不到中文的了,不过英文的还有 http://www-106.ibm.com/developerworks/java/edu/j-dw-javasocks-i.html 免费注册一下就可以学习这个教程了。 至少把socket和tcp的关系讲清楚了。 在http://groups.yahoo.com/group/mo_chow/files/ 也放了一份 |
8.Re:Java中Socket以及TCP包分析的问题。 [Re: kingcal] | Copy to clipboard |
Posted by: pengtaoli Posted on: 2004-04-22 10:00 理解不是很深。但是从网络模型讲,socket应该是应用层的。(不知道为什么是表示层)我们用的应该都是Tcp/Ip四层模型。从这样的角度讲,socket应该可以得到tcp的包头信息。 |
9.Re:Java中Socket以及TCP包分析的问题。 [Re: kingcal] | Copy to clipboard |
Posted by: mochow Posted on: 2004-04-22 10:12 那里面所说的表示层是计算机网络的OSI的七层体系结构中的表示层: 应用层 表示层 会话层 传输层 网络层 数据链路层 物理层 tcp/ip协议栈中的四层模型: 接入层 网络层 传输层 应用层 两者的网络层和传输层是一一对应的。 其余的也可以在相应的位置对应起来, 数据链路层对应于接入层 OSI的应用层,表示层,会话层对应于tcp/ip的应用层 |
10.Re:Java中Socket以及TCP包分析的问题。 [Re: kingcal] | Copy to clipboard |
Posted by: kingcal Posted on: 2004-05-11 15:23 非常谢谢各位网友。尤其是mochow朋友。 |
Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1 客服电话 18559299278 客服信箱 714923@qq.com 客服QQ 714923 |