0%

传输层网络协议

协议

TCP

基于连接的协议

  • 使用TCP协议之前,先建立TCP连接,形成传输数据通道
  • 采用三次握手方式,是可靠的连接
  • TCP协议进行通信的两个应用进程:客户端、服务端
  • 在连接中可进行大数据量的传输
  • 传输完毕,需释放已建立的连接,效率低

三次握手

三次握手

第一次握手:客户端发送连接请求报文段,将SYN位置为1,并发送一个seq序列号;然后,客户端进入SYN_SENT状态,等待服务器的确认; 此时服务端知道自己的收发能力没问题

第二次握手:服务器收到客户端的SYN报文段,需要对这个SYN报文段进行确认,设置ACK为x+1(确认序号为收到序号+1);同时,自己还要发送SYN请求信息,将SYN位置为1,并发送一个新的seq序列号;服务器端将上述所有信息放到一个报文段(即SYN+ACK报文段)中,一并发送给客户端,此时服务器进入SYN_RECV状态; 此时客户端知道自己的收发能力没问题,但是服务端并不知道自己发出去的消息客户端能不能收到,即不知道服务端的发送能力和客户端的接收能力服务端并不知道,所以需要第三次握手

第三次握手:客户端收到服务器的SYN+ACK报文段,然后将ACK设置为y+1(确认序号为收到序号+1),向服务器发送ACK报文段,这个报文段发送完毕以后,客户端和服务器端都进入ESTABLISHED状态,完成TCP三次握手。

完成了三次握手,客户端和服务器端就可以开始传送数据。

四次挥手

第一次挥手:主动关闭方发送一个FIN,用来关闭主动方到被动关闭方的数据传送,也就是主动关闭方告诉被动关闭方:我已经不会再给你发数据了,但是,此时主动关闭方还可以接受数据

第二次挥手:被动关闭方收到FIN包后,发送一个ACK给对方,确认序号为收到序号+1

第三次挥手:被动关闭方发送一个FIN,用来关闭被动关闭方到主动关闭方的数据传送,也就是告诉主动关闭方,我的数据也发送完了,不会再给你发数据了

第四次挥手:主动关闭方收到FIN后,发送一个ACK给被动关闭方,确认序号为收到序号+1,至此,完成四次挥手

UDP

基于非连接的协议

  • 将数据、源、目的封装成数据包,不需要建立连接
  • 每个数据报的大小限制在64K内
  • 由于无需连接,所以是不可靠的连接
  • 发送数据结束时无需释放资源,速度快