三次握手和四次挥手必要性的阐述
TCP是面向连接的具有可靠性的传输,Server(服务端)收到①之后,分配资源在该连接上,Client(客户端)在收到②之后,分配资源在连接上,Client发出②表示准备好接收数据,Server收到③后,开始给Client发送数据。
第②次握手无法避免,因为服务端需要通知客户端接受到连接请求,并且准备好接受来自客户端的请求。
为了确保可靠的连接,第③次握手无法避免,因为客户端需要通知服务端已经准备好接受来自服务端的数据,如果免去第③次握手,服务端无法确定客户端已经确定建立连接,服务端发送的数据可能就没有正确的被客户端接收。
连接过程中
连接传输过程中,服务端会针对客户端每一个请求报文都返回一个包含处理结果的数据报文
服务端(Server)必须收到④才能断开连接,因为客户端收到②说明所有请求完成、收到③说明服务端已经处理完所有来自Client的请求 。
在四次挥手中,客户端收到ACK包后,进入超时等待状态,超时后断开连接。
第②、③次挥手无法合成为一次报文,其中,
第②次挥手用于通知客户端已收到第①次挥手,
第③次挥手是服务端向客户端发送的,用于告知客户端自己已经完成数据发送,准备关闭连接。
服务端收到断开连接的通知报文与处理完所有请求(即完成数据发送)之间会有延迟,因此这两个业务的回复报文无法合成为一次报文。
三次握手确保了可靠的连接。
四次挥手确保了可靠的连接断开。
TCP和UDP的区别
连接性:
TCP是面向连接的协议,它在通信双方建立连接后才进行数据传输,提供可靠的数据传输机制,包括数据的顺序传输、数据的完整性检查和重传机制等。UDP是无连接的协议,通信双方不需要事先建立连接就可以进行数据传输,但UDP不提供像TCP那样的可靠性保证,数据传输过程中可能丢失、重复或者无序。可靠性:
TCP提供可靠的数据传输,通过序号、确认和重传机制确保数据的正确性和完整性。UDP不提供可靠性保证,数据传输时可能会丢失或乱序,因此在一些对数据完整性要求不高的场景下使用较为合适,比如实时音视频传输、在线游戏等。数据量:
TCP在传输数据时会进行流量控制和拥塞控制,这使得TCP适用于大数据量传输,但也导致了一定的传输延迟。UDP没有流量控制和拥塞控制,传输速度较快,适用于对传输时延要求较高的应用场景。应用场景:
TCP适用于需要可靠传输的场景,比如网页浏览、文件下载、电子邮件等。UDP适用于实时性要求高、数据量小、丢失一些数据不会造成严重影响的场景,比如音视频通话、在线游戏、实时监控等。
以上文章为学习笔记,如有错误,感谢指正!