免费注册 查看新帖 |

Chinaunix

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

telnet的问题 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2009-12-18 16:51 |只看该作者

回复 #10 sherf 的帖子

有人知道吗?

论坛徽章:
0
12 [报告]
发表于 2009-12-18 17:24 |只看该作者

回复 #11 sherf 的帖子

还有一点感到比较疑惑的是,在另一个测试环境里(linux客户端 telnet 到 winxp服务器端),客户端每输入一个字符,都会给服务器端发一个telnet数据包(这是对的,在TCP/IP详解里提到过)。但是在我本身的调试环境里(linux客户端 telnet 到 服务器),却是等我按了“回车”之后才将整个字符串(比如“dir\r\n”)发送给服务器端。按照详解里面的提示,应该是服务器端(在收到客户端的 DO SUPPRESS GO AHEAD 之后)设置了WILL SUPPRESS GO AHEAD 和 WILL_ECHO 之后“一次一字符”的功能就打开了。但通过抓包之后发现,我已按照详解里的方法做了,但功能仍未实现。并且,在客户端上我输入的字符串居然能够回显(客户端根本就没有给服务器端发送“字符”,并且服务器端也没给客户端回送该“字符”)!原本以为是“协商功能”还需要自己去实现,但细想一下,“一次一字符”的功能在 “linux客户端”上本身就应该有的,只要启动了就行,至少抓包时能看到 客户端 发出来的数据包(里面包含刚输入的单个字符)。

是不是之前我的理解错了还是什么地方没设置好?

另,我已禁止了“一次一行”的功能(DON’T LINEMODE)。

[ 本帖最后由 sherf 于 2009-12-18 17:34 编辑 ]

论坛徽章:
3
金牛座
日期:2014-06-14 22:04:062015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:49:45
13 [报告]
发表于 2009-12-18 17:29 |只看该作者

回复 #12 sherf 的帖子

linux和windows下处理的方式肯定是不一样的,这跟终端的处理方式也有关系

论坛徽章:
0
14 [报告]
发表于 2009-12-18 17:39 |只看该作者
原帖由 dreamice 于 2009-12-18 17:29 发表
linux和windows下处理的方式肯定是不一样的,这跟终端的处理方式也有关系


但在客户端输入第一个字符时,应该能看到“客户端”将该字符发给“服务器端”的,因为这时还没进行 字符处理.........

论坛徽章:
0
15 [报告]
发表于 2009-12-19 03:01 |只看该作者

回复 #14 sherf 的帖子

问题已解决,问题是出在“确认包的大小设定”上(里面客户端是把我的确认包当作含有数据的数据包了)。

论坛徽章:
0
16 [报告]
发表于 2009-12-19 03:11 |只看该作者

回复 #15 sherf 的帖子

另,想再请教各位关于TCP连接终止的问题,如下:

1、按照TCP/IP详解里说的,客户端发出1个FIN,服务器是回应1个ACK和1个FIN,最后客户端回应一个ACK,总共4次握手(4个包)。

2、在“linux客户端”telnet “WINXP服务器端”的模拟环境里发现,

1)客户端键入“exit\r”(没有发现发出“FIN”数据包)。
2)服务器回应1个“FIN+ACK”(0x11)。
3)接着客户端回应1个“FIN+ACK”(0X11)。
4)最后服务器回应1个“ACK”(0x10),然后正常退出。

整个过程没发现谁发出“FIN”,握手也只有3次,这是怎么回事?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP