TCP连接中半打开和半关闭连接的区别是什么
2个回答
展开全部
这是一个不能望文生义的词,“半”字也许会很难理解。要理解拍大这个“半”,我们还得先理解什么是“全”。TCP本身是全双工(Full-Duplex)的协议,这就是“全”的概念。而“半”就允许TCP把自己当做单工的来使用,这就是半开与半关闭的概念。
单工就相当于二极管,数据只能从一端流向另一端。全双工就相当于一个完整的电路,数据可以从A流到B,也可以从B流动会到A,他们甚至还可以同时进行。
在计算机连接的另一端发送FIN包时socket不会自动发送FIN包。它为被标识为不可读但可写的状态。
把socket标识为可写不可读的状态就意味着它并没源贺则有断开,只是认为对方告诉自己将不再发送数据了而已。如果是Socket程序,就需要手动调用方法去关闭这个连接,否则它会一直工作。有些恶意攻击的程序就利用这个机制让没有限制半开连雹棚接的服务器打开大量的半开连接,使对方的连接数消耗殆尽。所以很多操作系统都自带了半开连接数的使用限制。
单工就相当于二极管,数据只能从一端流向另一端。全双工就相当于一个完整的电路,数据可以从A流到B,也可以从B流动会到A,他们甚至还可以同时进行。
在计算机连接的另一端发送FIN包时socket不会自动发送FIN包。它为被标识为不可读但可写的状态。
把socket标识为可写不可读的状态就意味着它并没源贺则有断开,只是认为对方告诉自己将不再发送数据了而已。如果是Socket程序,就需要手动调用方法去关闭这个连接,否则它会一直工作。有些恶意攻击的程序就利用这个机制让没有限制半开连雹棚接的服务器打开大量的半开连接,使对方的连接数消耗殆尽。所以很多操作系统都自带了半开连接数的使用限制。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询