TCP与UDP是什么?
TCP协议和UDP协议都是属于TCP/IP协议簇中的协议,且都是传输层中的协议。
TCP协议
TCP协议是面向连接的协议。TCP传输有三个步骤:建立连接、传输数据、关闭连接。在TCP协议中规定用户在收发数据之前必须和对方建立连接,在结束收发数据后要断开连接。这个建立连接的过程称为“三次握手”,断开连接的过程称为“四次挥手”。
三次握手过程如下:
第一次握手:由发送方发送带有请求数据连接信息的数据段给接收方,意思是“我能向你发信息吗”。
第二次握手:由接收方发送带有确认信息的数据段回复发送方,如果接收方同意连接,就进行第三次握手,否则连接到此结束。
第三次握手:发送方收到接收方回复的数据段后再次发送带有确认信息的数据段,表示收到回复,即将发送信息,意思是“收到收到,我要发送信息了”。
四次挥手过程如下:
第一次挥手:发送方发送完数据后,向接收方发送停止连接的请求数据段,意思是“我的数据发送完毕,请关闭连接”。
第二次挥手:接收方收到停止连接的数据段后,就会发送一段数据段,表示“我已关闭连接”。
第三次挥手:由于TCP连接提供的是双向连接,第二次挥手只是关闭了发送方到接收方方向的连接,此时就需要接收方再次发送一段请求发送方关闭连接的数据段。
第四次挥手:发送方收到接收方的数据段后,就会将这个方向的连接关闭,并且再次发出数据段通知接收方,表示“我已关闭连接”,至此TCP的连接通道就全部关闭了。
TCP协议的主要特点:
1.面向连接:TCP通信需要建立连接通道,每一条通道都是点对点的连接。
2.可靠性传输:TCP在使用下层服务时,如果下层网络是不可靠的,TCP就要屏蔽下层网络的不可靠性,为上层的应用层提供一条可靠通道。
3.流量控制:TCP连接的两端都有一个缓存窗口来缓存接收的数据,通过滑动窗口机制来控制发送方发送数据的速率,防止接收方缓存窗口溢出。
4.拥塞控制:当网络出现拥塞时,TCP通过门限值、慢启动算法和拥塞避免算法能减少向网络注入数据的速率和数量,缓解拥塞。
5.全双工通信:TCP提供双向的数据传输服务,TCP在通信双方的应用程序都设有缓存池,用来临时存放双向通信的数据,使得任何一方在发送数据时也可以接收数据,接收数据时也可以发送数据。
6.面向字节流:TCP把数据块看成一连串的字节流,并将每个字节进行编号。
UDP协议
UDP协议是无面向连接的协议,该协议也是起到传输数据的作用,且只能提供应用进程寻址和简单的差错检测。UDP接收到应用层的数据后,加上UDP的首部后封装成UDP数据报。
UDP的主要特点:
1.无连接:UDP传输时,通信双方不需要建立连接,也不用释放连接,因此减少了开销和发送数据之前的时延。
2.尽力而为:UDP提供的是不可靠的传输服务,在传输途中出现重复、丢失、乱序的情况它一概不理,只交给上层应用层处理。一旦检测出UDP数据报出错就会将其丢弃。
3.高效快速:UDP一旦收到上层的应用层报文后,不拆分也不合并,直接加上UDP首部后就将其发送。同样UDP一旦收到下层报文后就直接上交给应用层。这样就使得UDP的效率非常高,在一些传输可靠性高的网络中,UDP工作表现更好。
TCP与UDP的联系:
1.都是TCP/IP协议簇中的成员。
2.都是传输层中的协议。
TCP与UDP的区别:
1.TCP面向连接,UDP无连接。
2.TCP面向字节流,UDP面向数据报。
3.TCP有流量控制和拥塞控制,UDP没有。
4.TCP提供全双工通信可靠性通道,UDP提供不可靠通道。
5.TCP报文首部固定20字节,UDP报文首部8个字节。
6.TCP数据报复杂,UDP结构简单。
7.TCP消耗资源多,UDP消耗资源少。
这是我对TCP与UDP的一点理解,欢迎在底下留下你的评论哦。。。
标签:UDP,区别,TCP,发送,接收,数据,连接 From: https://www.cnblogs.com/HBB666/p/16771354.html