TCP详解
1:三次握手和四次挥手:
TCP建立连接的本质是为了确保服务端和客户端各自拥有发送数据和接收数据的能力,保证交流的畅通。
比如A和B,A确认A的发送接收能力,A也要确认B的发送接收能力;
三次握手过程:
1)A发送给B,B返回,这是两次握手
对于A来说:可以确定A的发送能力、接收能力和B的发送能力、接收能力
对于B来说:可以确定B的接收能力
2)A再发送消息给B:
对于B来说:可以确定A的发送能力、接收能力、B的发送能力
四次挥手:
1)A发送给B,告诉B我要断开连接,B马上给一个回复说我收到了,但是我需要一点时间做一些收尾工作(2次挥手)
2)B结束收尾工作之后,发送给A说我可以断开了,A收到之后,发送给B,说我知道了,B关闭连接(2次挥手)
2:Http、TCP\IP、Socket之间的关系
-
HTTP属于应用层协议,而TCP则是传输层协议。Socket并不是一个协议,它是一个编程接口,用于在应用层与传输层之间建立通信通道,通常用于便捷地使用传输层协议,如TCP或UDP。
-
HTTP通常使用TCP作为其传输层协议,TCP默认支持长连接,允许保持连接状态以进行连续的数据传输。相比之下,UDP通常与自己对应的应用层协议一起使用。
-
长连接和短连接是传输层的概念,例如,在TCP协议中,经过三次握手建立连接后,如果保持连接并持续进行数据传输,这被称为长连接。应用层的协议本身并不涉及连接的建立或断开,它们只是在已建立的连接上进行数据传输。