`
444878909
  • 浏览: 641438 次
文章分类
社区版块
存档分类
最新评论

TCP与UDP的特性和区别

 
阅读更多

前言:在了解TCP和UDP的特性之前,我们还是先了解什么是数据包的概念。

  • 1、数据包

包(Packet)是TCP/IP协议通信传输中的数据单位,一般也称“数据包”。包在包交换网络里,单个消息被划分为多个数据块,这些数据块称为包,它包含发送者和接收者的地址信息。这些包然后沿着不同的路径在一个或多个网络中传输,并且在目的地重新组合。数据包主要由“目的IP地址”、“源IP地址”、“净载数据”等部分构成,包括包头和包体,包头是固定长度,包体的长度不定,各字段长度固定,双方的请求数据包和应答数据包的包头结构是一致的,不同的是包体的定义。 数据包的结构与我们平常写信非常类似,目的IP地址是说明这个数据包是要发给谁的,相当于收信人地址;源IP地址是说明这个数据包是发自哪里的,相当于发信人地址;而净载数据相当于信件的内容。 正是因为数据包具有这样的结构,安装了TCP/IP协议的计算机之间才能相互通信。我们在使用基于TCP/IP协议的网络时,网络中其实传递的就是数据包。

  • 2、TCP特性

2.1、面向连接

“面向连接”就是在正式通信前必须要与对方建立起连接。比如你给别人打电话,必须等线路接通了、对方拿起话筒才能相互通话。TCP(Transmission Control Protocol,传输控制协议)是基于连接的协议,也就是说,在正式收发数据前,必须和对方建立可靠的连接。

2.2、三次会话

一个TCP连接必须要经过三次“对话”才能建立起来,其中的过程非常复杂,我们这里只做简单、形象的介绍,你只要做到能够理解这个过程即可。我们来看看这三次对话的简单过程:主机A向主机B发出连接请求数据包:“我想给你发数据,可以吗?”,这是第一次对话;主机B向主机A发送同意连接和要求同步(同步就是两台主机一个在发送,一个在接收,协调工作)的数据包:“可以,你什么时候发?”,这是第二次对话;主机A再发出一个数据包确认主机B的要求同步:“我现在就发,你接着吧!”,这是第三次对话。三次“对话”的目的是使数据包的发送和接收同步,经过三次“对话”之后,主机A才向主机B正式发送数据。

2.3、通信效率低、可靠性高
TCP协议能为应用程序提供可靠的通信连接,使一台计算机发出的字节流无差错地发往网络上的其他计算机,对可靠性要求高的数据通信系统往往使用TCP协议传输数据。

  • 3、UDP特性

3.1、面向非连接

“面向非连接”就是在正式通信前不必与对方先建立连接,不管对方状态就直接发送。这与现在风行的手机短信非常相似:你在发短信的时候,只需要输入对方手机号就OK了。
UDP(User Data Protocol,用户数据报协议)是与TCP相对应的协议。它是面向非连接的协议,它不与对方建立连接,而是直接就把数据包发送过去!
3.2、通信效率高、可靠性低
UDP适用于一次只传送少量数据、对可靠性要求不高的应用环境。比如,我们经常使用“ping”命令来测试两台主机之间TCP/IP通信是否正常,其实“ping”命令的原理就是向对方主机发送UDP数据包,然后对方主机确认收到数据包,如果数据包是否到达的消息及时反馈回来,那么网络就是通的。例如,在默认状态下,一次“ping”操作发送4个数据包(如图所示)。大家可以看到,发送的数据包数量是4包,收到的也是4包(因为对方主机收到后会发回一个确认收到的数据包)。这充分说明了UDP协议是面向非连接的协议,没有建立连接的过程。正因为UDP协议没有连接的过程,所以它的通信效率高;但也正因为如此,它的可靠性不如TCP协议高。QQ就使用UDP发消息,因此有时会出现收不到消息的情况。

  • 4、TCP与UDP的区别

TCP协议和UDP协议各有所长、各有所短,适用于不同要求的通信环境。TCP协议和UDP协议之间的差别如附表所示。

分享到:
评论

相关推荐

    tcp+udp完全c#通信封装

    完全使用c#编写的tcp及udp通信,支持tcp及udp下的大数据通信及文件传输。 tcp部分,服务端采用iopc,客户端普通数据传输与文件传输分离,互不干扰; udp部分,支持大数据自动分包传输,支持文件传输; 其他特性,请看...

    iperf3是一个网络带宽测试工具,iperf3可以擦拭TCP和UDP带宽质量。iperf3可以测量最大TCP带宽,具有多种参数

    iperf3可以测量最大TCP带宽,具有多种参数和UDP特性,iperf3可以报告带宽、延迟抖动和数据包丢失。 使用iperf3,你可以调整与时序、缓冲区和协议(如TCP、UDP、SCTP)相关的几个参数。它对网络性能调优操作很方便,...

    Socket编程-tcp&udp-测试用例.docx

    在OpenWrt的软路由上进行luci的自定义web界面开发,可实现自定义配置,以及其可视化修改,提供简单、易操作的配置...为了实现配置修改作用到具体的设备,还涉及到通讯方面的开发,通过局域网连接,实现tcp、udp通讯。

    串口调试、udp 调试、tcp 调试,websocket 调试,modbus等调试工具

    目前支持串口调试、udp 调试、tcp 调试及 websocket 调试等。支持 Windows、Linux、raspberry pi 等平台。 免费、开源、绿色、免安装 特性 数据转发模块添加数据持久化功能(未实现,将来重新设计转发模块) tcp...

    tsunami-udp 是一款专为网络加速诞生的小工具 用TCP进行传输控制、用UDP进行数据传输

    1. 建立TCP连接:首先,tsunami-udp通过TCP协议与远程服务器建立一个可靠的连接,用于传输控制信息和元数据。 2. 协商UDP通道:一旦TCP连接建立,tsunami-udp会与远程服务器协商创建一个UDP通道,用于实际的数据传输。 3...

    串口调试、udp 调试、tcp 调试,websocket 调试,通讯调试工具 源码

    目前支持串口调试、udp 调试、tcp 调试及 websocket 调试等。支持 Windows、Linux、raspberry pi 等平台。 特性 数据转发模块添加数据持久化功能(未实现,将来重新设计转发模块) tcp客户端添加自动重连配置功能 ...

    iot是基于netty, spring boot, redis,mqtt等开源项目实现的物联网框架, 支持tcp, udp

    基于netty, spring boot, redis等开源项目开发来的物联网框架, 支持udp, tcp底层协议和http, mqtt, modbus等上层协议. 支持对设备同步和异步的调用操作. 主要向开发人员开放了一套统一、简洁的用于操作设备的Api接口...

    USR-TCP232-Test

    1. 支持TCP和UDP协议,支持广播,工作模式TCP Server,TCP Client,UDP 2. 支持ASCII/Hex发送,发送和接收的数据可以在16进制和AscII码之间任意转换,支持发送和显示汉字。 3. 可以自动发送校验位,支持多种校验格式...

    C# UDP、TCP通信

    在使用 TCP 协议时,一般服务端进程先使用 socket 调用得到一个描述符, 然后使用 bind 调用将一个名字与 socket 描述符连接起来,对于 Internet 域就是 将 Internet 地址联编到 socket。之后,服务端使用 listen ...

    TCP IP网络编程

    《TCP/IP网络编程》涵盖操作系统、系统编程、TCP/IP协议等多种内容,结构清晰、讲解细致、通俗易懂。...4.1 理解TCP和UDP 59 4.2 实现基于TCP的服务器端/客户端 64 4.3 实现迭代服务器端/客户端 71

    USR-TCP232-Test-V1.3

    1. 支持TCP和UDP协议,支持广播,工作模式TCP Server,TCP Client,UDP 2. 支持ASCII/Hex发送,发送和接收的数据可以在16进制和AscII码之间任意转换,支持发送和显示汉字。 3. 可以自动发送校验位,支持多种校验格式...

    iperf V2.0.5 ,图形可视化版

    iperf V2.0.5 ,图形可视化版(便携版);-免安装(双击即可运行)免输入指令...iperf2是一款经典的网络性能测试工具,它能够测量TCP和UDP的最大带宽,并提供了多种参数和UDP特性,可以报告带宽、延迟抖动和数据包丢失。

    TCP-IP技术大全

    包括开放式通信模型、TCP/IP通信模型、IP网络中的命名和寻址机制、地址解析及反向地址解析协议、DNS域字服务器、WINS、地址发现协议、IPv6、IP网络中的路由协议(RIP、OSPF等)、互联网打印协议、LDAP目录服务、远程...

    Microchip TCP/IP 精简协议栈.pdf

    实现TCP/IP 精简协议栈的目的是为了向集成 ≥ 8 KB 闪存(仅UDP)和集成 ≥ 16 KB 闪存(TCP/IP)的单片机提供更优化的(占用的闪存和RAM空间较小)TCP/IP 协议栈,同时依然具备TCP/IP v4 协议栈的完整功能。...

    TCP/IP教程TCP/IP基础

    9.4.3 TCP和UDP 86 9.5 小结 86 第10章 IPv6 87 10.1 IPv6数据报 87 10.1.1 优先级分类 88 10.1.2 流标识 89 10.1.3 128位IP地址 89 10.1.4 IP扩展头 90 10.2 多IP地址主机 91 10.3 单播、组播和任一播头 91 10.4 从...

    QUIC-Quick UDP Internet Connections RFC

    QUIC(Quick UDP Internet Connections,发音'quick')是一种基于UDP的多路传输协议,它的主要目标是实现零往返时间的连接开销。Google的开发人员Robbie Shade在最近的一个视频中对QUIC做了介绍,主要有以下特性: ...

    TCP/IP技术大全

    9.4.3 TCP和UDP 86 9.5 小结 86 第10章 IPv6 87 10.1 IPv6数据报 87 10.1.1 优先级分类 88 10.1.2 流标识 89 10.1.3 128位IP地址 89 10.1.4 IP扩展头 90 10.2 多IP地址主机 91 10.3 单播、组播和任一播头 91 10.4 从...

    udp透传服务端Python

    这种特性使得UDP具有较高的效率和速度,特别适合实时传输数据的应用场景,如音视频流媒体、在线游戏等。 在这样的背景下,您编写的Linux UDP服务端可以用来处理客户端发送过来的UDP数据包,并给客户端返回响应数据...

    linux udp server简单c代码

    这种特性使得UDP具有较高的效率和速度,特别适合实时传输数据的应用场景,如音视频流媒体、在线游戏等。 在这样的背景下,您编写的Linux UDP服务端可以用来处理客户端发送过来的UDP数据包,并给客户端返回响应数据...

Global site tag (gtag.js) - Google Analytics