TCP通信
TCP叫传输控制协议,一种面向连接、可靠的、基于IP的传输协议。
- 面向连接:数据传输之前客户端和服务器端必须建立连接
- 可靠的:数据传输是有序的 要对数据进行校验
- 全双工通信:任何一个主机都可以向另一个主机发送数据,
数据是双向流通的
TCP协议如何保证可靠传输:发送应答机制和超时重传机制。
UDP通信
UDP叫用户数据报协议,一种无连接、不可靠的协议,它只是简单地实现从一端主机到另一端主机的数据传输功能。
- 无连接、不可靠
- 尽可能交付数据,出现差错直接丢弃,无反馈。
- 传输速度快
三次握手
第一次握手:客户端尝试连接服务器,向服务器发送syn包,syn=j,客户端进入SYN_SEND状态等待服务器确认。
第二次握手:服务器接收客户端syn包并确认(ack=j+1),同时向客户端发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态。
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。
举个例子:
阿荣和阿祖在两个天台上喊话
阿荣:阿祖,是我,听得到吗? (第一次握手)
阿祖:听到了,阿荣,你能听到吗? (第二次握手)
阿荣:能听到了。 (第三次握手)
交互信息:
收手吧阿祖 外面全是警察!
四次挥手
第一次挥手:客户端发出挥手请求,要求关闭连接。
第二次挥手:服务端收到了请求,并确认同意客户端请求。
第三次挥手:服务端要求客户端请求关闭连接。
第四次挥手:客户端收到请求,关闭连接。
举个例子:
阿荣和阿祖下天台投降
阿祖:好的,那我下楼了? (第一次挥手)
阿荣:好的,那你下楼吧。 (第二次挥手)
阿荣:那我也下楼吧? (第三次挥手)
阿祖:好的,你下楼吧。 (第四次挥手)
(结束)