示意图如下:理解TCP与UDP的区别以及三次握手和四次挥手然后我们来说一下TCP和UDP的区别。TCP保证以与服务器发送给用户的顺序相同的方式传递数据,反之亦然。序列TCP传输数据包的顺序与接收到的顺序相同。两种协议区别和应用UDP常用于一次性传输比较少量数据的网络应用中,UDP也常用于多媒体应用(如IP电话、实时视频会议、流媒体等),显然,可靠数据传输对于这些应用来说并不是最重要的,但TCP的拥塞控制会导致数据出现较大的延迟,这是它们不能容忍的,我们最熟悉的视频通话大部分就是用的UDP协议。

TCP和UDP各有什么特点,两者有什么区别?

TCP和UDP各有什么特点,两者有什么区别

数据传输——传输层协议原理在互联网上,每个网络数据包的传输都遵循以下五层结构: TCP(传输控制协议)和UDP(用户数据报协议)都是传输层协议,是一组在Internet上使用的通信协议,用于在网络内或网络之间传递服务或数据包。它通常称为Internet协议套件。· 传输层提供一个网络连接以同时允许多个应用程序。

就像街道名称带有门牌号码一样,传输层在每个网络连接中的计算机上创建65000个端口。· 这些端口可以被计算机上的应用程序保留和使用。· 一个应用程序可以根据需要同时使用多个端口。传输层协议实现目的例如,应用程序保留了端口12437,以将消息发送到其他计算机上的端口80。每当应用程序层创建消息时,都会在传输层上传递消息。

在这一层中将消息包装在一个段中。该段包含一些其他信息,例如源端口和目标端口。创建段后,该段将传递到网络层以进行进一步处理。 · 当它从网络层传递到传输层时,网段将显示在接收方。· 将检查网段以确定目标端口。· 然后,将邮件解包并传递到端口80。 传输协议的重点是使通信独立于底层网络技术,只需关注端到端通讯,而不用考虑路由或媒体访问。

什么是TCP?TCP是一种面向连接的点对点传输通信协议,它以有序顺序将数据包作为非结构化字节流发送。TCP通过使用序列号和确认消息,从发送节点提供有关传输到目标节点的数据包的传递的信息。TCP确保数据的可靠性,端到端传递,重新排序和重传,直到达到超时条件或接收到数据包的确认为止。此外,TCP提供流控制机制来维持通过高速网络传输的高数据包,并且TCP协议通过触发数据包的重传直到接收到无错误的确认,从而提供错误检测和丢失的数据功能。

TCP协议与应用程序层协议(例如(FTP)文件传输协议,(SMTP)简单邮件传输协议和(HTTP)超文本传输协议)保持通信。 什么是UDP?用户数据报协议(UDP)是一种无连接的传输层通信协议,用于建立低容忍和丢失等待时间的连接,以在网络内或网络之间传递服务或数据包。它与Internet协议套件结合在一起,可以替代TCP协议。

UDP会构造一个数据报包,并使用IP端口号和数据包以及可选的校验和功能来寻址该数据报包,以验证完整数据到达的接收。由于UDP协议是简单协议,可以在发送方端决定是否重发数据包,以在数据传输上以低延迟换取高可靠性。由于网络广播功能可以将数据包广播到同一网络上的某些计算机,UDP减少了总体网络通信量,并且无需在网络上进行重复。

由于UDP是无连接协议,数据内容包的传递或顺序会有所不同。UDP与更高级别的协议(例如琐碎的文件传输协议,实时流协议,简单的网络协议和域名系统查找)结合使用,以管理整个网络上的数据传输服务。TCP Vs UDP协议(1)两者类比UDP:有人向快递员传递了一条消息,该消息会在他们走开之前尽力向接收者的方向扔。

TCP:有人向快递员传递消息,然后在信笺上写上序号,进行复印,然后将原件尽可能向接收者方向扔,然后等待答复,然后将其递回给发送者。如果他们没有收到答复,则他们再制作一份并发送。当他们收到答复时,将其交给发件人,并丢弃其副本。如果答复不正确,则在将其交给发件人之前,他们会按正确的顺序排列它们。在UDP情况下,发件人在邮件传递中承担更多责任。

在TCP情况下,快递员承担更多责任。在TCP情况下,发件人必须向快递员“支付更多”的内存,延迟和开销。在某些情况下,为保证消息传递而增加的成本是不值得的。(2)两者区别(3)连接建立方式TCP具有类似的建立协议,称为“三向握手”。“客户端”(有人要求连接)将向正在监听这些消息的“服务器”发送“SYN”(同步请求)消息;如果服务器决定接受该请求,它将发送回“SYN/ACK”消息,以确认先前的请求并请求其自己的通信“返回通道”。

然后,客户端发送回“ACK”消息,以确认服务器的请求,并建立双向通信通道。可以将UDP视为对讲机。按下一个按钮并开始通话,任何听过该频率的人都将听到它,除非他们也使用相同的频率进行通话。 (4)区别总结 数据传输功能TCP支持在两个主机之间建立牢固的连接以交换流中的数据。TCP保证以与服务器发送给用户的顺序相同的方式传递数据,反之亦然。

TCP是一种面向连接的协议。UDP是无连接的,并且非专用协议不会检查接收方主机的准备情况。 可靠性TCP的可靠性相对较高,因为它可以确保在传输过程中丢失数据部分的情况下进行消息确认和数据重传。机不会丢失任何丢失的数据。另一方面,UDP不提供消息确认,超时或重传功能的概念。不存在有关分组是否已到达接收方或在传输中丢失的通信。

序列TCP传输数据包的顺序与接收到的顺序相同。万一数据包以错误的顺序到达,TCP会对它们重新排序并以正确的顺序传递。在UDP的情况下,以特定顺序发送的消息可能会或可能不会在交付主机时得到维护。传输分组的顺序或顺序是不可预测的。连接TCP连接非常重要,它需要将近三个数据包才能进行适当的套接字连接,并且可以处理拥塞控制和可靠的传递。

另一方面,UDP连接是轻量级的,可传输通过特定IP设计的层。没有连接正在跟踪或排序消息。数据流传输控制协议以字节流的形式读取数据,并将消息传输到段边界。UDP消息包含一一发送的数据包,并在到达时检查其完整性。传输速度与UDP相比,TCP的速度较慢,因为它检查错误并重新传输数据包。标头大小标头的TCP大小为20个字节,而UDP为8个字节。

但是,它们具有公共标头字段,即源点,目标点和校验和。其他协议的使用由其他协议使用FTP,SMTP,HTTP,HTTP,Telnet,TCP协议和TFTP,SNMP,DNS,DHCP,RIP,VOIP使用UDP协议。错误检测传输控制协议通过校验和检测错误并执行错误恢复。如果有任何数据包有误,则接收者不会确认它们,进而触发主机/发送者的重新传输。

这种机制称为PAR(带重传的肯定确认)。由于TCP比UDP慢,TCP适用于不需要高速或传输时间较长的应用程序。关于错误检测和错误恢复,UDP会尽力而为。该协议还支持错误检测。但是,校验和检测到的错误数据包将被丢弃。UDP不会尝试重新传输数据包。UDP不尝试重发数据包的原因是该协议通常用于对时间敏感的应用程序,例如语音传输,游戏等。

尝试进行重发时,恢复尝试毫无意义,并且数据包被接收,它们将无用。总结TCP/UDP协议,是传输层的标准协议,根据应用的场景和需求来决具体使用何种协议,是网络编程的基本规律,根据不同场景选择合适的协议。TCP应用场景:效率要求相对低,但对准确性要求相对高的场景。例如:文件传输、收发邮件、远程登录。UDP应用场景:效率要求相对高,对准确性要求相对低的场景。

UDP和TCP的socket一般分别用在什么地方?

UDP和TCP的socket一般分别用在什么地方

Socket是网络通讯经常采用的一种方式,它不是一个具体的物件也不是想http类的通讯协议。你可以把它看成是一组基于TCP和UDP通信协议的接口,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议。

Socket基本概念在了解Socket之前你需要对计算机通讯的分层有个大概的了解,具体讲解我在这里就不讲了,放一张很好的图分享给大家:上面图详细讲了基本整个计算机通信的分层架构,很多我也不了解没我们只看我们关心的TCP/IP,其分层简化图示如下:理解Socket好,了解了基本分层机构后,我们现在来形象的理解一下Socket到底是什么。

我这里有一个很形象的实例可以帮助我们很好的理解Socket,这也是我当初在学习Socket编程时自己领悟出来的,那就是物流。我们要传送的数据就是物流中的货物,ip就是发货人和收货人的联系方式,那么Socket是什么?大家想想这送货这这一流程还缺少啥?对呀,物流公司啊,对吧!物流公司就是那个Socket,他负责帮你处理送货的琐碎事情,比如你的货物该怎么打包、该怎么防止易碎物品破碎、该用什么方式运输、等等,如果是境外货物还牵涉到报关等等一系列复杂琐碎的事情,这些物流公司(Socket)帮你处理好了。

示意图如下:理解TCP与UDP的区别以及三次握手和四次挥手然后我们来说一下TCP和UDP的区别。前面讲到Socket就相当于是物流公司,那么TCP协议就相当于是:假设你是寄货方,你要寄给你朋友一份礼物,你首先得去物流公司去寄,这样你再物流公司就相当于建立了一个事物(Socket实例)。然后物流公司有两种服务方式让你选择(TCP和UDP)。

先说TCP,TCP这个协议它比较保守,物流公司说我必须确保你朋友会接收这份礼物,不然它不送。于是物流公司就回去联系你朋友。然后联系内容大致如下:物流:你好,我这里有个你朋友寄的礼物要给你,你收吗?你朋友:OK,收,什么时候发,多久到?物流:现在就发,大概要12小时到。然后物流才开始发货,并且会给你们一个物流单号,这个单号就是关于这份货物你和你朋友的发货收货凭证。

这就是所谓的三次握手。示意图:物流发送完后还会联系你朋友,大致对话内容:物流:你好,货物已发送,请注意查收你朋友:好的。货物送到,你朋友:OK,货物收到,你们可以结案物流:好的,我结案了。这就是所谓的四次挥手(拜拜);(注释:三次握手四次挥手这都是Socket在你建立的时候根据你选择的协议确定好的)这样是不是很麻烦,估计也就顺丰有这服务了,其他大部分公司还是没有这么贴心的服务的,他们可能就是UDP协议方式了。

UDP比较简单,当你用物流(Socket)寄货物的时候物流公司并不会管你朋友是否能联系上,是否愿意接收,它只负责将你的货物发出去就完事。这中间是不需要通知你朋友的,你和你朋友也不需要有连接,这就是所谓的无连接。两种协议区别和应用UDP 常用于一次性传输比较少量数据的网络应用中,UDP 也常用于多媒体应用(如 IP 电话、实时视频会议、流媒体等),显然,可靠数据传输对于这些应用来说并不是最重要的,但 TCP 的拥塞控制会导致数据出现较大的延迟,这是它们不能容忍的,我们最熟悉的视频通话大部分就是用的UDP协议。

TCP面向连接,即发送数据之前需要建立连接,并且TCP是拥有拥塞机制的,当前部分数据还没有被接收完,后部分的数据会被阻塞知道前部分数据传递OK后才会继续传递后半部分,所以通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;在数据完整性、安全性要求较高的场景需要使用TCP协议,比如你传送重要办公文件、图片等,这些东西丢包都是会影响数据品质的。


文章TAG:TCP  UDP  tcp  udp  
下一篇