TCP/IP
三次握手
- 客户端发送一个带SYN标志的TCP报文到服务器
- 服务器回应一个带ACK标志和SYN标志的报文给客户端。表示对刚才SYN报文的回应。另外询问客户端,是否准备好进行数据通信。
- 客户端再发送一个ACK报文。这个时候就可以进行数据通信了。
假如是两次
- 可能导致已过期的连接再次被连接到主机(先发一次没收到,再发一次。然后第一次发的延迟收到)
- 可能导致死锁的发生。(A发送确认应答。B在没收到之前,会一直等待A发送的信息。陷入死循环。)
客户端的状态:
- SYN_SENT 客户端向服务器发送SYN之后,客户端进入此状态。
服务器的状态:
- CLOSED 初始状态
- LISTEN 服务器端的某个SOCKET处于监听状态,可以接受连接了
- SYN_RCVD 服务器收到SYN报文后的一个短暂状态(很短暂)。
- ESTABLISHED 连接上的状态
四次挥手
- TCP客户端发送一个FIN,用来关闭客户端到服务器的数据传送
- 服务器收到这个FIN,然后发回一个ACK(收到的序号+1)。
- 服务端关闭客户端的连接,发送一个FIN给客户端。
- 客户端发送一个ACK(确认序号为收到的序号+1)给服务器端。
客户端的状态
- FIN_WAIT_1 主动关闭连接的一方,发送了一个FIN报文。进入此状态(很短暂,因为会里面收到回应)。
- FIN_WAIT_2 发送给服务的报文,等收到服务的ACK回应之后,进入此状态
- TIME_WAIT表示收到的FIN报文,也回应了ACK。就等2MSL之后进入CLOSED状态。如果FIN_WAIT_1状态时候,收到了服务的FIN标志和ACK标志。可以直接进入此状态。
服务器的状态
- CLOSE_WAIT 指收到客户端的FIN报文之后,里面回应了一个ACK。进入此状态。 在此状态的时候,需要服务去关闭连接。
- LAST_ACK 被动关闭的一方,在发送FIN报文之后,进入此状态。
- CLOSED 收到客户端的ACK报文之后,进入此状态。
参考链接:
TCP协议三次握手连接四次握手断开和DOS攻击
TCP连接中TIME_WAIT连接过多
网络基础概念
http相关:
- RE:文章主要介绍了http的概念。以及请求报文、相应报文。
通用抱头、请求报头、相应报头、实体报头
链接:http://blog.csdn.net/itachi85/article/details/50982995
1.volley框架、okhttp框架、
2.https、tcp/ip udp http
相关文章链接: