常州网站建设机构,傻瓜wordpress,阿里云安装网站,wordpress4.7好难用TCP服务的特点 #xff08;1#xff09;面向连接#xff1a;使用TCP协议通讯的双方必须先建立连接#xff0c;然后才能开始数据的读写。双方都必须为该连接分配必要的内核资源#xff0c;以管理连接的状态和连接上数据的传输。TCP链接是全双工的#xff0c;即双方的数据读… TCP服务的特点 1面向连接使用TCP协议通讯的双方必须先建立连接然后才能开始数据的读写。双方都必须为该连接分配必要的内核资源以管理连接的状态和连接上数据的传输。TCP链接是全双工的即双方的数据读写可以通过一个连接完成。完成数据交换之后双方必须断开连接以释放系统资源。 这种连接是一对一的所以基于广播和多播目标是多个主机地址的应用程序不能使用TCP服务。而无连接的UDP则非常适合。 2字节流发送端执行的写操作次数和接收端执行的读操作次数之间没有任何数量关系。当发送端应用程序连续多次执行多次写操作时TCP模块先将数据放入TCP缓冲区中当TCP模块真正开始发送数据时发送缓冲区中这些被接受到的数据可能被封装成一个或多个TCP报文段发出。下面会用图片表示出字节流服务和数据报服务的不同。 3可靠传输首先TCP协议采用发送应答机制即发送端发送的每个TCP报文段都必须得到接受方的应答才认为这个TCP报文段传输成功。其次TCP协议采用超时重传机制发送端在发送出一个TCP报文段之后启动定时器如果在定时时间内未收到应答它将重发该报文段。最后因为TCP报文段最终是以IP数据报发送的而IP数据包到达接收端可能会乱序重复所以TCP协议还会对接收到的TCP报文段重排、整理再交给应用层。 UDP服务的特点 1无连接即通信双方不会保持一个长久的联系因此应用程序每次发送数据都要明确指出接收端的地址。 2基于数据报服务是相对于字节流服务而言每个UDP数据包都有一个长度接收端必须以该长度为最小单位将其所有内容一次性读出否则数据将被截断。 3不可靠这意味着UDP协议无法保证数据从发送端正确的传送到目的端。如果数据在中途丢失或者目的端通过数据校验发现数据错误而将其丢弃则UDP协议只是简单地给应用程序通知发送失败。 字节流与数据报 TCP为了实现可靠传输是以浪费部分带宽牺牲实时性为代价 。UDP则报头小效率高代价小可以在应用层自己实现与应答确认、快速重传等类似的功能来提高自己的可靠性。那么既然TCP是可靠的为什么不直接用它就好还要提高UDP的可靠性呢 UDP实现的可靠协议基本都会对TCP的某一部分进行加强另外一部分进行削弱。因为”实时性可靠性公平性“ 三者不能同时保证因此可以牺牲TCP的局部公平性来换取更好的实时性、或者浪费点带宽来实现更低的延迟。 目前已经有一些实现UDP可靠传输的机制比如UDT(UDP-based Data Transfer Protocol) UDT是一个高性能的基于UDP协议的数据传输协议它是为支持高速广域网上海量数据传输设计的为解决TCP的效率和公平问题同时提供可靠的数据流和报文传输。主要目的是针对“TCP在高带宽长距离网络上的传输性能差”的问题尽可能全面支持BDP网络上的海量数据传输。UDT是建立与UDP之上的面向双向的应用层协议引入了新的拥塞控制算法和数据可靠性控制机制。它不仅可以支持可靠的数据流传输STREAM 类型TCP和部分可靠的数据报DGRAM类似网络上发广播消息传输也可以应用在点对点技术防火墙穿透多媒体数据传输等领域。 引入UDT的原因 互联网上的标准数据传输协议TCP在高带宽长距离网络上性能很差且无法充分的利用带宽。其原因主要有一下几点 1现行的tcp拥塞窗口机制在高带宽长距离的环境下无法很好的工作拥塞窗口太小而且增加过于缓慢直接导致吞吐 率不高无法充分利用带宽。 此外TCP的AIMD拥塞控制算法过激地降低拥塞窗口的大小但是不能快速回复到高位充分利用带宽。 2目前的tcp拥塞控制算法在BDP网络下具有较差的RTT公平性rtt会影响拥塞窗口的增长越不容易达的链接的拥塞 窗口增加得越慢其发送速度越慢因此会导致越远的链接发送速率越慢。 转载于:https://www.cnblogs.com/97-5-1/p/8379245.html