TCP与UDP的区别
在介绍TCP和UDP协议之前,有必要先了解下TCP/IP模型,TCP/IP中的两个具有代表性的传输协议:TCP和UDP。 TCP/IP 是互联网相关的各类协议族的总称,比如:TCP,UDP,IP,FTP,HTTP,ICMP,SMTP 等都属于 TCP/IP 族内的协议。TCP/IP模型是互联网的基础,它是一系列网络协议的总称。这些协议可以划分为四层,分别为链路层、网络层、传输层和应用层。TCP协议全称是传输控制协议,是一种面向连接、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。流就是指不间断的数据结构,可以想象成水管中的水流。TCP 在传送数据之前必须先建立连接,数据传送结束后要释放连接。TCP 不提供广播或多播服务。由于 TCP 要提供可靠的,面向连接的运输服务(TCP 的可靠体现在 TCP 在传递数据之前,会有三次握手来建立连接,而且在数据传递时,有确认、窗口、重传、拥塞控制机制,在数据传完后,还会断开连接用来节约系统资源),这难以避免增加了许多开销,如确认,流量控制,计时器以及连接管理等。这不仅使协议数据单元的首部增大很多,还要占用许多处理机资源。最初客户端和服务端都处于CLOSED(关闭)状态,客户端主动打开连接,服务端被动打开连接。--- 为了防止已经失效的连接请求又突然被服务端接收,从而产生错误。比如:A发出的第一个连接请求报文段并没有丢失,而是在网络结点时间长了,以致于延误到连接释放以后的某个时间段才到达B,但是B收到此失效的请求后,就误以为A又发出一次新的连接请求,于是就向A发出确认报文段,同意建立连接。出现失效的连接请求报文段被服务端接收的情况,从而产生错误。UDP协议全称是用户数据报协议,在网络中它与TCP协议一样用于处理数据包,是一种无连接的协议。在OSI模型中,在第四层——传输层,处于IP协议的上一层。UDP有不提供数据包分组、组装和不能对数据包进行排序的缺点,也就是说,当报文发送之后,是无法得知其是否安全完整到达的。UDP在传送数据之前不需要建立连接,远地主机在收到UDP报文后,不需要给出任何确认。虽然UDP不提供可靠交付,但在某些情况下,UDP却是最有效的一种比如QQ语音、QQ视频、直播等即时通信应用。因此 UDP 的头部开销小,只有八字节,相比 TCP 的至少二十字节要少得多,在传输数据报文时是很高效的1、连接的区别TCP面向连接,即发送数据之前先建立连接。UDP是无连接的,即发送数据之前是不需要建立连接的。2、安全方面的区别TCP是全双工的可靠通信,提供可靠的服务,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达。使用流量控制和拥塞控制。UDP是不可靠传输,尽最大努力交付,即不保证可靠交付。3、传输效率的区别TCP传输效率较低。UDP传输效率高,适用于对高速传输和实时性有较高要求的通信或广播通信。4、连接对象数量的区别TCP连接只能是点到点,一对一的。UDP支持一对一,一对多,多对一和多对多的交互通信。5、传输方式的区别TCP面向字节流,实际上是TCP把数据看成一连串无结构的字节流。适用于要求可靠传输的应用比如文件传输等。UDP面向报文,没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低,对实时应用很有用比如实时视频会议等。6、首部开销TCP首部开销最小20字节,最大60字节。 UDP首部开销小,只有8个字节。

【网络】TCP的连接建立
TCP是面向连接的协议。运输连接是用来传送TCP报文的。TCP运输连接的建立和释放是每一次连接通信过程中必不可少的。因此,运输连接就有三个阶段:连接建立,数据传送和连接释放。需要解决以下3个问题:连接建立这个过程,需要在客户端和服务器之间,交换3个TCP报文段,也就是三次握手????x3。????请注意,在本例中,A主动打开连接,B被动打开连接一开始,B就在准备接受客户进程的连接请求,然后服务器进程就处于 LISTEN (收听)状态,等待客户的连接请求。如有,即作出响应。A的TCP客户进程像B发出连接请求报文段,这时,首部中的同步位SYN = 1,同时选择一个初始序号 seq = x 。TCP规定????,SYN报文段不能携带数据,但要消耗掉一个序号。这时,TCP客户进程进入SYN-SENT(同步已发送)状态。B收到连接请求的报文段后,如同意建立连接,则向A发送确认。在确认报文段中,应把SYN位和ASK位都置1,确认号是 ack = x + 1 ,同时也为自己选择一个初始序号 seq = y 。请注意,这个报文段也不能携带数据。但同样要消耗掉一个序号。这时,TCP服务器进程进入SYN-RCVD(同步收到)状态。TCP客户进程收到B的确认后,还要向B给出确认。确认报文段的ACK置1,确认号 ack = y + 1 ,而自己的序号 seq = x + 1 。TCP的标准规定????,ACK报文段可以携带数据。但如果不携带数据则不消耗序号,在这种情况下,下一个数据报文段的序号仍是 seq = x +1 。这时,TCP连接已经建立????,A进入ESTABLISHED(已建立连接)状态。当B收到A的确认后,也进入ESTABLISHED(已建立连接)???? Q:为什么A最后还有发送一次确认呢?????A:主要是为了防止已失效的连接请求报文段突然又传送到B,因而产生错误。所谓“已失效的连接请求报文段”是这样产生的。????考虑一种正常情况,A 发出连接请求????,但因连接请求报文丢失而未收到确认。于是A再重传一次连接请求。后来收到了确认,建立了连接。数据传输完毕后,就释放了连接。A共发出了两个连接请求的报文段,其中第一个丢失????,第二个到达了B????,没有“已失效的连接请求报文段”。????现假定出现一种异常情况,即A发出的第一个连接请求报文段并没有丢失,而是在某个网络节点长时间的滞留????,以至延误到连接释放以后的某个时间才到达B。本来这是一个 早已失效的报文段 ,但是B收到此时小的连接请求的报文段之后,误以为是A又发出一次新的连接请求。于是向A发出确认报文段,同意建立连接。假定不采用报文握手。那么只要B发出确认之后,新的连接就建立了。由于现在A并没有发出建立连接的请求,因此不会理睬B的确认????,也不会向B发送数据,但B确以为新的运输连接已经建立,并一直等待A发来的数据。B的许多资源就这样白白浪费了。

gb28181-2016tcp主动和tcp被动区别
UDP服务端监听UDP端口,通过INVITE信令告知设备端口,设备主动向服务端发起流传输TCP 被动服务端监听TCP端口,通过INVITE信令告知设备端口,设备向服务端发起流传输TCP 主动设备端告知服务端监听的TCP端口情况,服务端主动向设备拉流,此种场景较少,且设备所在网络可以被服务所在网络访问(如下级设备与上级GB28181服务在同一个局域网,或者都在公网上能相互访问)。

tcp 主动打开与被动打开的区别是什么?
主动打开的的一方称为客户端,被动打开的一端称为服务端。 主动打开就是指利用TCP报文请求建立连接的一方。就比如你给别人打电话,你先拨号,你就是主动打开。 被动打开就是接受的另一方的请求报文并同意建立连接的一方。就比如你给别人打电话过去,对方接听了,打就是被动打开。

tcp的全称是什么?
传输控制协议( TCP ) 是Internet 协议套件的主要协议之一。起源于最初的网络实现,它补充了Internet 协议(IP)。因此,整个套件通常称为TCP/IP。TCP在通过 IP 网络通信的主机上运行的应用程序之间提供可靠的、有序的和经过错误检查的八位位组(字节)流传输。主要的互联网应用程序,例如万维网、电子邮件、远程管理和文件传输依赖于 TCP,它是TCP/IP 套件传输层的一部分。SSL/TLS通常运行在 TCP 之上。TCP 是面向连接的,在发送数据之前,客户端和服务器之间建立了连接。在建立连接之前,服务器必须正在侦听(被动打开)来自客户端的连接请求。三向握手(主动打开)、重传和错误检测增加了可靠性,但延长了延迟。不需要可靠数据流服务的应用程序可以使用用户数据报协议(UDP),它提供了一种无连接 数据报服务,它优先考虑时间而不是可靠性。TCP 采用网络拥塞避免。但是,TCP 存在漏洞,包括拒绝服务、连接劫持、TCP 否决和重置攻击。网络功能传输控制协议在应用程序和 Internet 协议之间提供中间级别的通信服务。它在Internet 模型的传输层提供主机到主机的连接。应用程序不需要知道通过链接将数据发送到另一台主机的特定机制,例如为容纳传输介质的最大传输单元所需的IP 分段。在传输层,TCP 处理所有握手和传输细节,并通常通过网络套接字接口向应用程序提供网络连接的抽象。在协议栈的较低级别,由于网络拥塞、流量负载平衡或不可预测的网络行为,IP 数据包可能会丢失、重复或乱序传送。TCP 检测到这些问题,请求重新传输丢失的数据,重新排列乱序数据,甚至帮助最小化网络拥塞以减少其他问题的发生。如果数据仍未交付,则会通知源此失败。一旦 TCP 接收器重新组合了最初传输的八位字节序列,它就会将它们传递给接收应用程序。因此,TCP从底层网络细节中 抽象出应用程序的通信。

本文由 在线网速测试 整理编辑,转载请注明出处。