TCP和UDP比較

一、TCP/IP协议

TCP/IP协议,你一定常常听说吧,当中TCP(Transmission Control Protocol)称为传输控制协议,IP(Internet Protocol)称为因特网互联协议。

事实上TCP/IP协议,是一个协议簇,就是一大堆协议的集合。

这一大套协议定义了整个互联网通信的基础,比方一次网络链接要经过哪些步骤,一块传输数据过程中应该怎样解释,这块数据该怎样展示给编程者等等问题。

举个样例:就好比小时候玩过家家的游戏。谁负责当爸。谁负责当妈,谁负责当儿子,都有明白的指派,谁负责买菜,买菜之后的钱交给谁来管理。假设没花了,怎么办,每天应该几点起床。起床之后应该谁叠被。都会明白指出,每一个人都会默默遵从人物角色和规则。

TCP/IP整个协议集合大概做的就是这个事情,他包括了非常多个不同的角色(相应于协议),并定义好了数据怎样传输,不同角色之间怎样协商。

理解了TCP/IP是什么,时时刻刻觉得,它里面包涵非常多个协议,这些协议就是一整套规则,它定义了整个互联网怎样连接,怎样协商的最基础规则。

TCP/IP协议又分为了4层,分别为:应用层,传输层,IP层,物理层。

二、重点介绍下传输层,也就是TCP,UDP两个协议。

TCP和UDP(User Datagram Protocol)这两个协议,是用来传输数据的,由于他们叫传输层嘛,那不做这个事情。毫无用处了。

我们想象一个场景,网络中随意两个端要通信。会採用什么样的传输方式呢?

想象下人类之间的通信吧。

第一种是拨电话。我拨通了你的手机号码,直到你回答“喂,你好”,我听到了这个话之后。我们之间才继续进行交谈。

另外一种是发短信。我给你的手机号码发送一条短信,然后就没有然后了,有可能你没收到,有可能你收到了一会儿又给我回复。

第一种相应的就是TCP,另外一种相应的是UDP,TCP是须要对方确认的,也就是传输之前须要进行“三次握手”(这里又是一个专有名词,就是传输的两端要经过三次确认。才干開始通信)。UDP是比較粗暴的,无论对方什么情况,直接发送。不须要确认过程。

非常多博客和书籍中说的。TCP是可靠的链接(由于中间有个Control的单词。带上了这个单词。以为着更可靠哦),UDP是不可靠的链接就是这个意思。

可靠的链接带来的是效率的下降。比方一次网络请求非常大一部分时间都是浪费在互相确认的过程当中,资源消耗比較多,可是保证了数据的传输是可靠的,而且传输数据是有序的。不可靠的链接带来的是效率的提升,但可能服务质量有下降。

要摆脱一种人为的误区,不要以为UDP不可靠。就没有什么应用场景。据说QQ发送数据就是靠UDP发送的呢,尽管是不可靠的链接,可是还是用了非常多校验算法保证了数据质量的稳定,同一时候保证了效率。TCP尽管耗时,可是对于稳定性优先的场景,还是应该有限选用TCP,比方浏览器中訪问网页用的就是TCP。此外在一些长连接系统里面。比方微信,连接通道应该也是用TCP建立的。由于要维护一条稳定的信息传输通道。

详细协议是怎样控制的,数据包是怎样传输的,怎么校验数据的正确性。还有重传特性。这些都是协议中重要的控制过程,可是不做详述了,不但枯燥。而且对于实际的产品并没有什么卵用。详细选用什么样的传输数据方式,应该依据场景而定。

安全的东西往往不快。反之也是如此,而TCP和UDP他们之间也是这种:

  • TCP(传输控制协议)

    是基于连接的。在正式收发数据之前必须要与对方建立连接。这之间须要经过三次“对话”,首先A主机须要和B主机之间建立数据的收发,A须要发送一个请求,询问B:“我须要连接”,B收到询问后会给A发送一个回应:“能够连接”,这时A主机得到B主机的回应后。他们之间就建立了连接,就能够进行数据的传输了。

  • UDP(用户数报协议)它与TCP相相应的协议,是面向非连接的,不与对方建立连接。直接把数据包发送出去,UDP适用于一次传输少量的数据。对可靠性要求不高的应用环境。日常生活中使用的ping命令測试两台主机是否通信正常,其原理就是通过UDP实现的。

三、理解TCP和UDP

TCP(Transmission Control Protocol,传输控制协议)是基于连接的协议。也就是说,在正式收发数据前,必须和对方建立可靠的连接。

一个TCP连接必须要经过三次“对话”才干建立起来,当中的过程非常复杂。我们这里仅仅做简单、形象的介绍,你仅仅要做到能够理解这个过程就可以。

三次对话:

我们来看看这三次对话的简单过程:主机A向主机B发出连接请求数据包:“我想给你发数据,能够吗?”。这是第一次对话;主机B向主机A发送允许连接和要求同步(同步就是两台主机一个在发送,一个在接收,协调工作)的数据包:“能够。你什么时候发?”,这是第二次对话。主机A再发出一个数据包确认主机B的要求同步:“我如今就发,你接着吧!

”,这是第三次对话。三次“对话”的目的是使数据包的发送和接收同步,经过三次“对话”之后。主机A才向主机B正式发送数据。

UDP(User Data Protocol,用户数据报协议)是与TCP相相应的协议。

它是面向非连接的协议,它不与对方建立连接,而是直接就把数据包发送过去!

UDP适用于一次仅仅传送少量数据、对可靠性要求不高的应用环境。

比方,我们常常使用“ping”命令来測试两台主机之间TCP/IP通信是否正常。事实上“ping”命令的原理就是向对方主机发送UDP数据包。然后对方主机确认收到数据包,假设数据包是否到达的消息及时反馈回来。那么网络就是通的。

比如,在默认状态下,一次“ping”操作发送4个数据包。

大家能够看到。发送的数据包数量是4包,收到的也是4包(由于对方主机收到后会发回一个确认收到的数据包)。这充分说明了UDP协议是面向非连接的协议。没有建立连接的过程。正由于UDP协议没有连接的过程,所以它的通信效果高;但也正由于如此,它的可靠性不如TCP协议高。QQ就使用UDP发消息,因此有时会出现收不到消息的情况。

四、适用场合

TCP:Transfer Control Protocol,传输控制协议。

这是一个全双工的、面向连接的、可靠的而且是精确控制的协议。

主要是用在那些实时性不强、但要求不能出错的应用。比方说,网页的浏览、文件的下载(不是BT、电驴下载)、邮件的收发等场合,就须要TCP协议进行传输(由于不会出错)。

当然,它在网络方面的开销是昂贵的。

UDP:User Datagram Protocol。用户数据报协议。

这是一个不可靠的传输协议。由于它不排序所要发送的数据段、不关心这些数据段到达目的方的顺序(所以它才不可靠),所以它在网络的开销要比TCP小非常多。因此UDP适合用在那些实时性强、允许出错的场合。

比方说:即时通信(MSN、QQ),视频,语音等方面。

时间: 2024-11-11 00:42:39

TCP和UDP比較的相关文章

TCP和UDP的区别

TCP和UDP的区别 TCP协议与UDP协议的区别 首先咱们弄清楚,TCP协议和UCP协议与TCP/IP协议的联系,很多人犯糊涂了,一直都是说TCP/IP协议与UDP协议的区别,我觉得这是没有从本质上弄清楚网络通信! TCP/IP协议是一个协议簇.里面包括很多协议的.UDP只是其中的一个.之所以命名为TCP/IP协议,因为TCP,IP协议是两个很重要的协议,就用他两命名了. TCP/IP协议集包括应用层,传输层,网络层,网络访问层. 其中应用层包括: 超文本传输协议(HTTP):万维网的基本协议

理解TCP和UDP协议

目录 TCP 协议 UDP协议 TCP和UDP的区别 TCP和UDP的使用场景 一 TCP协议 1.TCP的头部格式 理解TCP协议,首要的就是TCP协议的头部格式 ·        Source Port和Destination Port:分别占用16位,表示源端口号和目的端口号:用于区别主机中的不同进程,而IP地址是用来区分不同的主机的,源端口号和目的端口号配合上IP首部中的源IP地址和目的IP地址就能唯一的确定一个TCP连接: ·        Sequence Number:用来标识从T

TCP和UDP基本原理

TCP和UDP基本原理 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 传输层的主要任务就是建立应用程序间的端到端连接,并且为数据传输提供可靠或不可靠的通信服务,TCP/IP协议族的传输层协议主要包括TCP和UDP ,TCP是面向连接的可靠的传输层协议,它支持在不可靠网络上实现面向连接的可靠的数据传输 ,UDP是无连接的传输协议,主要用于在相对可靠的网络上的数据传输,或用于对延迟较敏感的应用等. 1.传输层的作用 a>.提供面向连接或无连接的服务 b>.维护连接状态 c>

Http、TCP、UDP

1 理清概念: TCP/IP是一个大的协议族(只不过TCP和IP是super star所以就这么命名了),它包括了: 应用层协议:FTP.HTTP.TELNET.SMTP.DNS(协议): 传输层协议:TCP.UDP(协议) 网络层协议:IP.ICMP.ARP.RARP.BOOTP(协议) 其中:HTTP(超文本传输协议)是基于TCP在两台主机间传递信息的协议. Sockct:是实用了TCP/IP协议的一种实现,用以开发TCP/IP网络上的应用. UDP:无链接的不安全的网络协议.ping就是基

TCP、UDP、HTTP、SOCKET之间的区别

IP:网络层协议: TCP和UDP:传输层协议: HTTP:应用层协议: SOCKET:TCP/IP网络的API. TCP/IP代表传输控制协议/网际协议,指的是一系列协议. TCP和UDP使用IP协议从一个网络传送数据包到另一个网络.把IP想像成一种高速公路,它允许其它协议在上面行驶并找到到其它电脑的出口.TCP和UDP是高速公路上的"卡车",它们携带的货物就是像HTTP,文件传输协议FTP这样的协议等.TCP和UDP是FTP,HTTP和SMTP之类使用的传输层协议.虽然TCP和UD

HTTP、TCP、UDP以及SOCKET之间的区别/联系

一.TCP/IP代表传输控制协议/网际协议,指的是一系列协组. 可分为四个层次:数据链路层.网络层.传输层和应用层. 在网络层:有IP协议.ICMP协议.ARP协议.RARP协议和BOOTP协议. 在传输层:中有TCP协议与UDP协议. 在应用层:有FTP.HTTP.TELNET.SMTP.DNS等协议. TCP和UDP使用IP协议从一个网络传送数据包到另一个网络.把IP想像成一种高速公路,它允许其它协议在上面行驶并找到到其它电脑的出口.TCP和UDP是高速公路上的"卡车",它们携带的

通信协议------Http、TCP、UDP

CP   HTTP   UDP: 都是通信协议,也就是通信时所遵守的规则,只有双方按照这个规则“说话”,对方才能理解或为之服务. TCP   HTTP   UDP三者的关系: TCP/IP是个协议组,可分为四个层次:网络接口层.网络层.传输层和应用层.在网络层有IP协议.ICMP协议.ARP协议.RARP协议和BOOTP协议.在传输层中有TCP协议与UDP协议.在应用层有FTP.HTTP.TELNET.SMTP.DNS等协议.因此,HTTP本身就是一个协议,是从Web服务器传输超文本到本地浏览器

[转]TCP、UDP区别

转自:http://zhangjiangxing-gmail-com.iteye.com/blog/646880 TCP协议与UDP协议的区别    首先咱们弄清楚,TCP协议和UCP协议与TCP/IP协议的联系,很多人犯糊涂了,一直都是说TCP/IP协议与UDP协议的区别,我觉得这是没有从本质上弄清楚网络通信!TCP/IP协议是一个协议簇.里面包括很多协议的.UDP只是其中的一个.之所以命名为TCP/IP协议,因为TCP,IP协议是两个很重要的协议,就用他两命名了.TCP/IP协议集包括应用层

socket、tcp、udp、http 的认识及区别

一.先来一个讲TCP.UDP和HTTP关系的 1.TCP/IP是个协议组,可分为三个层次:网络层.传输层和应用层. 在网络层有IP协议.ICMP协议.ARP协议.RARP协议和BOOTP协议. 在传输层中有TCP协议与UDP协议. 在应用层有FTP.HTTP.TELNET.SMTP.DNS等协议. 因此,HTTP本身就是一个协议,是从Web服务器传输超文本到本地浏览器的传送协议. 2.HTTP协议是建立在请求/响应模型上的. 首先由客户建立一条与服务器的TCP链接,并发送一个请求到服务器, 请求