1、tcp和http的区别和联系
http是应用层协议,是基于tcp的,http主要解决的问题是数据如何包装
tcp应用于传输层,主要解决如何数据如何传输的问题
2、tcp如何建立连接
tcp经过三次握手建立连接
1、客户端发送syn(SYN=j)并进入SYN_SEND状态,等待服务器确认
2、服务端收到syn包,确认客户端的syn包(ACK=j+1)同时发送自己的syn包(SYN=k)即SYN+ACK包 服务器进入 SYN_RECV
第三次握手是为了防止失效的请求又传送到服务端造成错误
http是应用层协议,是基于tcp的,http主要解决的问题是数据如何包装
tcp应用于传输层,主要解决如何数据如何传输的问题
2、tcp如何建立连接
tcp经过三次握手建立连接
1、客户端发送syn(SYN=j)并进入SYN_SEND状态,等待服务器确认
2、服务端收到syn包,确认客户端的syn包(ACK=j+1)同时发送自己的syn包(SYN=k)即SYN+ACK包 服务器进入 SYN_RECV
3、客户端收到SYN+ACK包 像服务器发送确认ACK包(ACK=k+1)服务器和客户端进入 ESTABLISHED状态
第三次握手是为了防止失效的请求又传送到服务端造成错误
socket是一个针对tcp和udp编程的一种接口api他并不是一种协议,是对tcp/ip的一种封装
3、tcp如何断开连接
tcp经过四次握手断开连接,这四次握手描述为:
- 第一次握手:A告诉B,“我要关闭连接了”。
- 第二次握手:B回复A,“我知道你要关闭了,但是请等一下,我还有数据没有传完,你等我消息”。
- 第三次握手:B告诉A,“我的数据发完了,你可以关闭连接了”。
- 第四次握手:A回复B,“好的,你先关吧,我2MSL时间后再关”。