在介绍完TCP/IP协议族后,接下来为大家介绍TCP与UDP协议。
在介绍之前我们先来了解一下协议的意思,协议呢就像是规章制度,只不过它是由计算机规定的规章制度,在规章制度上有很多的条例需要去遵守,例如怎么建立连接,怎么相互识别等等。当然在计算中有许多协议,TCP协议和UDP协议只是其中的两个协议,它们都存在于TCP/IP模型中,如下图。
如图所示TCP协议和UDP协议都在传输层中,传输层就是进行数据传输以及纠正错误的。在简单的介绍后我们进入正题。
TCP协议:
TCP协议英文全拼为Transmission Control Protocol,中文意思是传输控制协议,提供的是面向连接、可靠的字节流服务。当客户和服务器彼此交换数据前,必须先在双方之间建立一个TCP连接,之后才能传输数据。比如说用手机打电话必须等对方接通后才能聊天,所以说TCP连接就只适合双方的通信。从这个分析可以看出,建立连接可以在需要在双方建立一个传递信息的通道,在发送方发送请求连接信息接收方响应后才能开始传递信息,而且是在一个通道中传送,因此接受方能比较完整地收到发送方发出的信息,即信息传递的可靠性比较高。但也正因为需要建立连接,使资源开销加大(在建立连接前必须等待接受方响应,传输信息过程中必须确认信息是否传到及断开连接时发出相应的信号等),独占一个通道,在断开连接钱不能建立另一个连接,即两人在通话过程中第三方不能打入电话。通信TCP提供超时重发,丢弃重复数据,检验数据,流量控制等功能,保证数据能从一端传到另一端。
UDP协议:
UDP协议英文全拼为User Datagram Protocol,中文意思是用户数据报协议,是一个简单的面向数据报也就是面向无连接的传输层协议。UDP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但是并不能保证它们能到达目的地,比如用手机发短信,不用等对方应答,由于UDP在传输数据报前不用在客户和服务器之间建立一个连接,且没有超时重发等机制,故而传输速度很快。但是因为它是先不需要接受方的响应,因而在一定程度上也无法保证信息传递的可靠性了,也就像写信一样,我们只是将信寄出去,却不能保证收信人一定可以收到。
TCP与UDP区别小结:
现在我们来总结一下TCP与UDP的区别。TCP:面向连接(如手机通话)、稳定、需要资源多、保证数据正确性、保证数据顺序。UDP:面向无连接(如手机发短信)、不稳定、需要资源少、不保证数据顺序。我们要实现的功能是计算机双方消息准确地接收。因此我们选择的TCP协议的Socket编程。
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程