TCP与UDP区别:
-
TCP面向连接的协议,UDP是无连接的协议
传输层:
OSI下3层的主要任务是数据通信,上3层的任务是数据处理。而传输层是OSI模型的第4层。因此该层是通信子网和资源子网的接口和桥梁,起到承上启下的作用该层协议为网络端点主机上的进程之间提供了可靠、有效的报文传送服务。
传输层协议:
- UDP
- TCP
无连接不可靠的服务(UDP)
提供不可靠的数据传输,又称“尽力而为”的服务
在UDP收发双方之间,无需握手建立连接
数据丢失(可能)
写信:只管发,不确定能不能发到,甚至不知道收件人是否存在
是面向连接的(TCP),可靠的进程到进程通信的协议
打电话
三次握手原理:
客户端向服务器发送SYN同步请求,请求与服务器建立连接,服务器收到此SYN同步请求后,会针对客户端的SYN同步请求进行ACK响应的同时也会发送一个SYN同步请求,当客户端收到服务器发过来的SYN同步请求时,会给予一个ACK响应。
大白话如下所示:
四次挥手原理:
客户端向服务器发送FIN断开请求,服务器接收到此请求后,回复一个ACK。服务器向客户机发送FIN断开请求,客户机收到此请求后,回复一个ACK。
大白话来说就是以下:
三次握手握三次,为什么断开要断四次?
TCP建立连接时之所以只需要"三次握手",是因为在第二次"握手"过程中,服务器端发送给客户端的TCP报文是以SYN与ACK作为标志位的。SYN是请求连接标志,表示服务器端同意建立连接;ACK是确认报文,表示告诉客户端,服务器端收到了它的请求报文。即SYN建立连接报文与ACK确认接收报文是在同一次"握手"当中传输的,所以"三次握手"。
当服务端收到FIN报文时,很可能并不会立即关闭SOCKET,所以只能先回复一个ACK报文,告诉客户端,“你发的FIN报文我收到了”。只有等到我服务端所有的报文都发送完了,我才能发送FIN报文,因此不能一起发送。故需要四次挥手。
2,TCP的协议是可靠的,UDP是“尽力传输”
TCP的传输可靠性:
- 确认机制
- 重传机制
- 排序机制
- 流控机制(滑动窗口机制)
窗口值大小:同时发数据包的个数