TCP UDP

作者: Sue1024 | 来源:发表于2023-02-25 23:43 被阅读0次

TCP

Transmission Control Protocol是一种面向连接的、可靠的、基于字节流的传输层通信协议

三次握手

  1. 建立连接,客户端发送连接请求报文段,将SYN位设为1,Sequence Number设为x,然后客户端进入SYN_SEND状态,等待服务器的确认
  2. 服务器收到SYN报文段,对SYN进行确认,将AcknowledgementNumber设为x+1;同时将SYN设为1,SequenceNumber设为y,服务端将上述所有信息放到一个报文段(SYN+ACK报文段)中,一并发送给客户端,此时服务器进入SYN_RECV状态
  3. 客户端收到SYN+ACK报文段,将AcknowlegementNumber设为y+1,向服务器发送ACK报文段,这个报文段发送完毕以后,客户端和服务器端都进入ESTABLISHED状态,三次握手完成。

为什么需要三次握手

第二步,服务器端收到SYN,服务器端确认了客户端的发送能力没问题
第三步客户端收到SYN+ACK,客户端确认了服务器端的发送能力和接收能力没问题,客户端发送ACK给服务器端,服务器端确认了客户端的接收能力没有问题。

如果是两次握手

如客户端发出连接请求,但因连接请求报文丢失而未收到确认,于是客户端再重传一次连接请求。后来收到了确认,建立了连接。数据传输完毕后,就释放了连接,客户端共发出了两个连接请求报文段,其中第一个丢失,第二个到达了服务端,但是第一个丢失的报文段只是在某些网络结点长时间滞留了,延误到连接释放以后的某个时间才到达服务端,此时服务端误认为客户端又发出一次新的连接请求,于是就向客户端发出确认报文段,同意建立连接,不采用三次握手,只要服务端发出确认,就建立新的连接了,此时客户端忽略服务端发来的确认,也不发送数据,则服务端一致等待客户端发送数据,浪费资源。

四次挥手

  1. 主机1(客户端或者服务器端)设置Sequence Number和Acknowlegement Number, 向主机2发送FIN报文段,此时主机1进入FIN_WAIT_1状态,表示主机1没有数据要发送给主机2了
  2. 主机2收到FIN报文段,向主机1回一个ACK报文段,Acknowledgement Number为Sequence Number+ 1,主机2进入FIN_WAIT_2状态,主机2同意主机1的关闭请求
  3. 主机2向主机1发送FIN报文段,请求关闭连接,同时主机2进入CLOSE_WAIT状态
  4. 主机1收到FIN报文段,向主机2发送ACK报文段,然后主机1进入TIME_WAIT状态,主机2收到ACK,就关闭连接,主机1等待后没有收到回复,证明服务器端正常关闭,主机1也关闭连接

为什么需要四次挥手

因为当服务端收到客户端的SYN连接请求报文后,可以直接发送SYN+ACK报文。其中ACK报文是用来应答的,SYN报文是用来同步的。但是关闭连接时,当服务端收到FIN报文时,很可能并不会立即关闭SOCKET,所以只能先回复一个ACK报文,告诉客户端,“你发的FIN报文我收到了”。只有等到我服务端所有的报文都发送完了,我才能发送FIN报文,因此不能一起发送。故需要四次挥手。

相关文章

  • iOS 网络相关面试题

    问题:TCP、UDP TCP/UDP 传输层协议 ||—— UDP:用户数据报协议 TCP与UDP的区别: 问题...

  • TCP 与 UDP

    TCP 与 UDP(主要说TCP)TCP/UDP端口号TCP/UDP端口号TCP连接的建立TCP连接的建立发送se...

  • 网络编程

    TCP server TCP client UDP server UDP client

  • 计算机网络02 - 传输层

    目录 TCP协议和UDP协议TCP首部TCP连接管理UDP首部 1. TCP协议和UDP协议 TCP协议:面向连接...

  • 2018-09-19

    网络面试集 一、TCP/UDP 1、UDP与TCP的区别 TCP(TransmissionControl ...

  • TCP和UDP的区别

    TCP和UDP的区别: TCP协议和UDP协议特性区别总结: TCP协议可靠;UDP协议不可靠 TCP协议是面向连...

  • SOCKET,TCP/UDP,HTTP,FTP

    转。。。。。。。。 SOCKET,TCP/UDP,HTTP,FTP (一)TCP/UDP,SOCKET,HTTP,...

  • 面试题之基础部分(三)

    31.TCP报头格式,UDP报头格式,TCP/UDP区别 TCP(Transmission Control Pro...

  • TCP和UDP总结(区别、优缺点、应用实例)

    TCP和UDP的区别和优缺点以及应用实例 TCP和UDP区别总结: TCP面向连接,UDP是无连接的TCP在开始数...

  • TCP和UDP的最完整的区别

    TCP UDP TCP与UDP基本区别 1.基于连接与无连接 2.TCP要求系统资源较多,UDP较少; 3.UDP...

网友评论

    本文标题:TCP UDP

    本文链接:https://www.haomeiwen.com/subject/vfuqldtx.html