《TCP/IP详解卷1:协议》笔记--TCP紧急通知
2014-04-14 16:37
260 查看
下面是一个涉及到TCP紧急方式(TCP中的URG标志)的例子。
在主机sun上运行rlogin客户进程,然后登录到主机bsdi,向终端输出一个大文本文件,然后键入control s终端输出,当输出
停止时,我们键入中断键以异常方式终止该进程。
下面这些要点关于客户、服务器和链接的状态的概述:
1.键入control s以停止终端的输出。
2.用于终端的输出缓存很快被填满,所以rlogin的客户向终端的写操作被阻塞。
3.此时客户也不能从网络连接上读取数据,所以客户的TCP接收缓存也将被填满。
4.当接收缓存已满时,客户进程的TCP会向服务器进程的TCP通告现在的接收窗口是0.
5.当服务器收到客户的窗口为0时,将停止向客户发送数据,这样,服务器的发送缓存也被填满。
6.由于发送缓存已满,所以Rlogin服务器进程将停止。这样,Rlogin服务器将不能从服务器运行的cat处读取数据。
7.当cat程序的输出缓存被填满时,cat也将停止。
8.然后我们用终端键来终止服务器上cat程序,这个命令从客户的TCP传输到服务器的TCP,因为该方向的数据传输没有被
流量控制所终止。
9.cat程序收到终端命令并且终止。这使得它的输出缓存被清空,这将唤醒Rlogin服务器进程,然后Rlogin服务器进入紧急
方式,向客户进程发送清仓输出命令。虽然接收窗口还是0,但是在客户进程内部,由于客户进程的TCP接收到了对方的
紧急通知,它把该通知告诉客户进程,客户进程就知道服务器进程已经进入了紧急方式。
10.客户进程开始读取已经在输入缓存中等待被读取的数据,接收窗口就会被重新打开,然后服务器进程就开始正常发送
数据,当客户进程收到包含紧急数据的报文段,它就丢弃重新打开窗口后接收到的报文,并且清空终端的输出缓存。最后
服务器发送两个字节中断键的回显“^?”。
在主机sun上运行rlogin客户进程,然后登录到主机bsdi,向终端输出一个大文本文件,然后键入control s终端输出,当输出
停止时,我们键入中断键以异常方式终止该进程。
下面这些要点关于客户、服务器和链接的状态的概述:
1.键入control s以停止终端的输出。
2.用于终端的输出缓存很快被填满,所以rlogin的客户向终端的写操作被阻塞。
3.此时客户也不能从网络连接上读取数据,所以客户的TCP接收缓存也将被填满。
4.当接收缓存已满时,客户进程的TCP会向服务器进程的TCP通告现在的接收窗口是0.
5.当服务器收到客户的窗口为0时,将停止向客户发送数据,这样,服务器的发送缓存也被填满。
6.由于发送缓存已满,所以Rlogin服务器进程将停止。这样,Rlogin服务器将不能从服务器运行的cat处读取数据。
7.当cat程序的输出缓存被填满时,cat也将停止。
8.然后我们用终端键来终止服务器上cat程序,这个命令从客户的TCP传输到服务器的TCP,因为该方向的数据传输没有被
流量控制所终止。
9.cat程序收到终端命令并且终止。这使得它的输出缓存被清空,这将唤醒Rlogin服务器进程,然后Rlogin服务器进入紧急
方式,向客户进程发送清仓输出命令。虽然接收窗口还是0,但是在客户进程内部,由于客户进程的TCP接收到了对方的
紧急通知,它把该通知告诉客户进程,客户进程就知道服务器进程已经进入了紧急方式。
10.客户进程开始读取已经在输入缓存中等待被读取的数据,接收窗口就会被重新打开,然后服务器进程就开始正常发送
数据,当客户进程收到包含紧急数据的报文段,它就丢弃重新打开窗口后接收到的报文,并且清空终端的输出缓存。最后
服务器发送两个字节中断键的回显“^?”。
相关文章推荐
- 计算机网络面试大纲
- 数据存储之网络访问
- 一体化网络的挑战—整合有线和无线网络
- 谈谈网络中的连接设备
- 浅谈HTTP中Get与Post的区别
- android下载网络图片
- 网络连接故障处理六部曲
- 笔记本电脑上网出现问题的解决方法
- 实现开启和关闭android移动网络
- TCP协议相关属性设置-FIONBIO属性
- ARP 故障排查
- /proc/sys/net/ipv4/配置Linux网络参数
- 网络故障及解决的办法
- Hessian实现Webservice
- Linux网络配置
- 网络编程基础(2)----------UDP客户端与服务器
- http status 500,http 500,500错误
- http status 400,http 400,400 错误
- Google揭露“仙女座”虚拟网络,及分散和集中架构之辩
- TCP/IP各层的数据包长度