Notes on TCP/IPv2 Ch.26

1. Rlogin 是专为unix系统设计的。(page.389)

2. Rlogin 和 telnet都只使用了一个tcp连接,所以需要通过特殊的手段区分数据和命令。(page.390)

3. Rlogin使用明文传输密码,新版本会尝试进行加密。(page.392)

4. 流量控制一般在客户端实现,否则当用户按下流量控制键(ctrl+s/ctrl+q)时,需要等到服务端收到这个操作,才进行停止输出,这段时间客户端的屏幕上会有大量的数据输出。(page.393)

5. rlogin当服务端运行的程序需要特殊处理流量控制键时(例如vim),会通过命令告知客户端不要处理流量控制键。(page.393)

6. 因为在一般情况下,客户端到服务端的数据不会很大,所以客户端到服务端的命令不需要使用紧急模式。(page.393)

7. 服务端到客户端的命令会使用紧急模式,因为服务端到客户端的数据可能因为流量控制被block住,而紧急指针是在任何时候都可以发送出去的,这样就可以保证数据发送给到客户端。(page.394)

8. rlogin服务端到客户端有4中命令,通过紧急模式发送;客户端到服务端只有一个命令:告知窗口大小的命令,通过0xff,0xff,s,s,rows,cols,x-pixels,y-pixels发送,这个命令的转义是不完美的,可能会被错误解释。(page.395)

9. rlogin的流量控制是这样实现的:客户端ctrl+s->客户端停止读取数据->客户端tcp接受buffer满->关闭窗口->服务器不能发送数据->服务器发送buffer满->程序写buffer满。(page.398)

10. 当链接的一方处于紧急模式时,发送者每收到一个数据,就马上回复一个带紧急指针的报文,这个报文既不ack任何数据,也不带有任何数据。(page.400, 418)

11. ascii字符为一个byte的前7个bit所构成的所有字符(0~127)。(page.401)

12. Telnet的双方都是用相同的方式发送命令,双方都可以发送相同的命令,这个和rlogin不同;telnet的命令都使用0xff(IAC)这个字节作为转义符。(page.401)

13. Telnet通常使用ASCII字符(见11),在不使用二进制选项的前提下,不会发送超过127的的字符。(page.402)

14. Telnet的WILL, WONT, DO, DONT用于协定选项,对于WILL和DO可以拒绝,对于WONT和DONT必须接受;选项的具体内容(是否启用、内容)都必须在对方同意之后才能进一步发送。(page.403, 404)

15. Telnet有4种不同的工作模式:半双工(基本废)、character at a time(和rlogin的一样)、Line at a time、linemode(line at a time的加强版。(page.405)

16. DM(data mark)是用来做同步信号的命令,telnet只有这个命令会以紧急模式发送出去;当一端收到紧急指针后,就会开始读取数据,直到读取到紧急指针。这里DM的用法和rlogin的server端的命令一样,利用紧急指针的特性:即使窗口被关闭的时候任然能够发送。(page.406)

17. 多个telnet选项/命令能够在同一个报文中同时发送,选项/命令也可以和数据在同一个报文中一起发送,因为telnet会逐个字节地对收到的数据进行处理。(page.409)

18. 使用telnet时,如果指定的不是telnet的专有端口(23),那么telnet不会进行任何选项协定,只会以文本协议的方式发送数据。(page.411)

19. Rlogin和telnet都使用keep-alive,以保证客户端挂掉的时候能够发现。(page.417)

20. 由于rlogin和telnet实际在开发的时候用得不多,只是作为一个了解性质的学习,所以本章的笔记并没有详细地去记录这两个远程登录协议的具体工作细节。

posted on 2012-04-14 22:50  Qwertycen  阅读(228)  评论(0编辑  收藏  举报

导航