龙空技术网

阿里云物联网平台使用心得(二)TCP和UDP

超子说物联网 460

前言:

今天大家对“udp如何模仿tcp可靠”都比较看重,小伙伴们都需要学习一些“udp如何模仿tcp可靠”的相关内容。那么小编也在网络上网罗了一些关于“udp如何模仿tcp可靠””的相关资讯,希望姐妹们能喜欢,姐妹们一起来学习一下吧!


题目


大家好,物联网爱好小组成员超子,又和大家见面了,超子我能力有限,水平不高,有什么错误的地方,欢迎板砖。紧跟《阿里云平台使用心得(一)网络通信基本概念》一文继续往下说说TCP和UDP。我们先看看TCP和UDP在百科中的描述。


TCP和UDP

TCP是Transmission Control Protocol 的简称,是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。在简化的计算机网络OSI模型中,它完成第四层传输层所指定的功能。

UDP 是User Datagram Protocol的简称,中文名是用户数据报协议,是OSI 参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。

是不是晦涩难懂,如果不是从事相关方面工作的技术人员,很难理解这些理论。事实上,的确有很多的物联网爱好者不是从事这方面工作的技术人员,所以超子还是秉承一贯的风格,我们来想想怎么把它们类比成一些大家容易理解的事物。

当我们遇到事情想要和某位朋友联系的时候,我们可以选择打电话或是发短信,然后你俩之间就可以沟通了,这个过程,可以类比成我们连接上阿里云物联网平台后,我们给平台发送数据以及平台给我们下发数据的过程。所以我们可以把电话通信这种方式类比成TCP,把短信通信类比成UDP,简而言之,如果你想找阿里云平台说说话(发数据或收数据),要么你打电话找它(TCP),要么发短信找它(UDP)。记住这点之后,我们再看为什么TCP是电话而UDP是短信。

我们看看文章开头那些理论描述,我们总结一下,TCP和UDP都是OSI 参考模型中的传输层通信协议,和电话或是短信一样,都可以联系到我们想要联系的人。而他们的区别是TCP是面向连接的可靠的,UDP是无连接的不可靠的,我们想想是不是又能对应上电话和短信的特点。

TCP(电话),你想查话费,拨打10086总机号+11分机号(IP+端口号),假设突然你没信号了,尴尬吧,你肯定打不通,无法同10086建立连接。又或是说10086出问题了,那么所有人包括你肯定也无法联系到10086,连接无法建立。所以说TCP是面向连接的,只有接通物联网平台(10086)建立TCP连接(电话通了)之后,才能正常的收发数据(办理业务)。而且你也能清楚的知道电话是否接通了。

UDP(短信),还是查话费,你可以给10086发短信 ,正常情况下10086会给你回短信,但是我们假设10086比较顽皮,把自己玩坏了,所有人信息都不能回了,又或是偏偏就没有看到你的短信,又或是看到了就不想给你回。因为不像TCP(电话)是面向连接的,UDP的话你只能知道你发了,对方什么个情况你完全不知道,也许他没信号,也许他没开机,也许他没看到或是看到了不想回,等等情况都反映出UDP相对于TCP的不可靠。

总而言之吧,我们现阶段就把TCP(电话)和UDP(短信)理解成传输数据(办理业务)的方式。因为连接阿里云时不同的协议比如MQTT,HTTP,CoAP使用的方式就不同,HTTP和MQTT使用TCP电话的方式在阿里云上办理业务,而CoAP使用UDP短信的方式在阿里云上办理业务。现在大家可能会有一个疑问,HTTP,MQTT,CoAP也是协议,TCP和UDP也是协议,有什么不同吗?这个超子下篇文章单独给大家说。

本篇文章最后再说一个问题,就是服务器和客户端,服务器大家可能经常听到,我们这里感性的理解下,提供服务的一方我们叫服务器,好比10086就是服务大众通信业务的服务器,所有10086的用户都是寻求服务的客户,我们就叫做客户端。TCP是面向连接的,所以TCP服务器和TCP客户端,有严格的角色区分,TCP是电话通信的方式,所以TCP服务器类比成被叫,TCP客户端类比成主叫,就像打电话一样,都是主叫拨打被叫的电话,寻求建立连接,所以说连接的方向是,由TCP客户端发起连接(主动拨号),TCP服务器侦听连接(注意听电话响铃)。至于UDP短信方式,没有建立连接的过程,也就无所谓被发和主发的严格区分了。

好啦,我们今天就先说这些吧,下一遍文章,超子介绍下HTTP,MQTT,CoAP协议和TCP,UDP的区别。期待和大家的下次见面。

标签: #udp如何模仿tcp可靠