`
liwenge
  • 浏览: 79381 次
  • 性别: Icon_minigender_1
  • 来自: 山西
社区版块
存档分类
最新评论
阅读更多

       转自http://www.cnblogs.com/jay-xu33/archive/2008/03/27/1126191.html

      TCP和UDP是TCP/IP协议中的两个传输层协议,它们使用IP路由功能把数据包发送到目的地,从而为应用程序及应用层协议(包括:HTTP、SMTP、SNMP、FTP和Telnet)提供网络服务。TCP提供的是面向连接的、可靠的数据流传输,而UDP提供的是非面向连接的、不可靠的数据流传输。面向连接的协议在任何数据传输前就建立好了点到点的连接。ATM和帧中继是面向连接的协议,但它们工作在数据链路层,而不是在传输层。普通的音频电话也是面向连接的。

      可靠的传输协议可避免数据传输错误。其实现方式是:在构造数据包时在其中设置校验码,到达目的地后再采用一定的算法重新计算校验码,通过比较二者,就可以找出被破坏了的数据。因为需要重发被破坏了的和已经丢失的数据,所以在需要重发数据时协议必须能够使目的地给出源头的一个确认信号。有些数据包不一定按照顺序到达,所以协议必须能够探测出乱序的包,暂存起来,然后把它们按正确的次序送到应用层中去。另外,协议还必须能够找出并丢弃重复发送的数据。一组定时器可以限制针对不同确认的等待时间,这样就可以开始重新发送或重新建立连接。 

     数据流传输协议不支持位传输。TCP不能在一个包内以字节或位为单位构造数据,它只负责传输未经构造的8位字符串。 

     非面向连接的传输协议在数据传输之前不建立连接,而是在每个中间节点对非面向连接的包和数据包进行路由。没有点到点的连接,非面向连接的协议,如UDP,是不可靠的连接。当一个UDP数据包在网络中移动时,发送过程并不知道它是否到达了目的地,除非应用层已经确认了它已到达的事实。非面向连接的协议也不能探测重复的和乱序的包。标准的专业术语用“不可靠”来描述UDP。在现代网络中,UDP并不易于导致传输失败,但是你也不能肯定地说它是可靠的。 

面向连接的TCP 
     TCP(Transmission Control Protocol,传输控制协议)是基于连接的协议,也就是说,在正式收发数据前,必须和对方建立可靠的连接。一个TCP连接必须要经过三次“对话”才能建立起来,其中的过程非常复杂,我们这里只做简单、形象的介绍,你只要做到能够理解这个过程即可。我们来看看这三次对话的简单过程:主机A向主机B发出连接请求数据包:“我想给你发数据,可以吗?”,这是第一次对话;主机B向主机A发送同意连接和要求同步(同步就是两台主机一个在发送,一个在接收,协调工作)的数据包:“可以,你什么时候发?”,这是第二次对话;主机A再发出一个数据包确认主机B的要求同步:“我现在就发,你接着吧!”,这是第三次对话。三次“对话”的目的是使数据包的发送和接收同步,经过三次“对话”之后,主机A才向主机B正式发送数据。 
     TCP协议能为应用程序提供可靠的通信连接,使一台计算机发出的字节流无差错地发往网络上的其他计算机,对可靠性要求高的数据通信系统往往使用TCP协议传输数据。 

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

分享到:
评论

相关推荐

    TCP 和 UDP区别

    介绍和解释TCP , UDP, 他们之间的区别是什么,是我们更清楚他们之间的区别

    TCP_UDP_PerformanceTest 测试工具

    总结来说,TCP_UDP_PerformanceTest工具是评估和比较TCP与UDP性能的实用工具,通过对两种协议的实际测试,帮助开发者和网络管理员理解不同协议在实际环境中的表现,优化网络服务的性能和效率。对于从事网络编程和...

    TCP&UDP测试工具_tcp&udp_TCP/UDP测试工具_TCP工具_

    TCP/UDP测试工具是用于评估网络性能和调试网络问题的软件,它们可以帮助开发者和网络管理员了解网络通信的质量和效率。这些工具通常包含以下功能: 1. **服务器和客户端模拟**:工具可以模拟TCP或UDP服务器和客户端...

    tcpudp 2.1.1 TCP/UDP 调试软件

    "tcpudp 2.1.1 TCP/UDP 调试软件"是一款专门用于分析和调试TCP与UDP协议的工具,对于初学者来说,它可以帮助理解这两种协议的工作原理,以及如何在实际应用中使用它们。该软件可能包含了如下的功能特性: 1. 数据包...

    TCP和UDP socket调试工具V2.2

    在计算机网络编程中,TCP(Transmission Control Protocol)和UDP(User Datagram Protocol)是两种常见的传输层协议,它们在数据传输方面各自有着独特的特性和应用场景。本文将针对“TCP和UDP Socket调试工具V2.2”...

    tcp,udp测试工具

    在IT行业中,网络协议是构建通信系统的基础,TCP(传输控制协议)和UDP(用户数据报协议)是其中最常用且至关重要的两种协议。本文将深入探讨这两种协议以及相关的测试工具,以帮助理解和优化网络通信。 TCP(传输...

    TCP-UDP服务管理 3.01

    理解TCP和UDP的区别以及如何管理和使用这两种服务对于任何IT专业人员来说都是至关重要的。 TCP是一种面向连接的、可靠的传输协议。它确保了数据的完整性和顺序,通过三次握手建立连接,通过序列号和确认应答机制...

    TCP和UDP的区别和优缺点

    TCP 和 UDP 的区别和优缺点 TCP(Transmission Control Protocol,传输控制协议)和 UDP(User Datagram Protocol,用户数据报协议)是两种常用的传输层协议,它们之间存在许多区别,了解这些区别对于网络编程和...

    TCP/UDP网络调试工具

    在IT行业中,网络通信是软件开发中的重要环节,TCP(传输控制协议)和UDP(用户数据报协议)作为两种主流的传输层协议,被广泛应用于各种网络应用中。本篇将详细阐述TCP/UDP网络调试工具及其在开发过程中的作用。 ...

    netty搭建TCP、UDP服务

    它简化了网络编程,特别是对于TCP和UDP协议的处理,使得开发者能够轻松地搭建面向物联网(IoT)设备的上行和下行通信服务。 在TCP(传输控制协议)方面,Netty提供了全面的API来创建服务器和客户端。TCP是一种面向...

    TCP与UDP的区别

    下面我们将详细讲解TCP和UDP的区别。 TCP的特点 TCP是一种面向连接的、可靠的字节流服务。在客户和服务器之间传输数据前,必须先建立一个TCP连接,然后才能传输数据。TCP提供了超时重发、丢弃重复数据、检验数据、...

    TCP_UDP_PerformanceTest.exe

    "TCP_UDP_PerformanceTest.exe"就是一款专用于测试TCP和UDP通信性能的工具,它能够帮助开发者和网络管理员深入理解网络性能瓶颈,优化通信效率。 首先,TCP协议以连接为基础,采用三次握手建立连接,确保数据的可靠...

    小飞机-TCP-UDP测试工具.zip

    "小飞机-TCP-UDP测试工具"就是这样一个专门用于网络通信数据包测试的实用软件,它可以帮助我们对TCP(传输控制协议)和UDP(用户数据报协议)进行精准的测试,以优化网络性能和解决通信问题。 TCP和UDP是互联网协议...

    TCP&UDP;调试工具(ZLG)

    周立功开发的“TCP&UDP调试工具”是一个实用的软件,它帮助开发者和网络管理员对这两种协议进行测试和调试,以确保网络应用的稳定性和效率。 TCP是一种面向连接的、可靠的传输协议。它通过三次握手建立连接,提供...

    TCP/UDP socket 调试工具

    TCP/UDP socket 调试工具 TCP/UDP socket 调试工具 SocketTool调试软件是一款网络TCP/UDP通信调试工具,本工具集功能强大与简单易用为一体,是无需安装的免费绿色软件。她可以帮助网络编程人员、网络维护人员检查所...

    TCP&UDP测试工具使用教程

    在IT领域,网络通信是至关重要的部分,TCP(传输控制协议)和UDP(用户数据报协议)是两种主要的传输层协议。TCP提供可靠的数据传输服务,而UDP则以更低的延迟和更高的效率进行无连接的数据传输。对于网络编程人员和...

    TCP-UDP数据包自动发送工具V3.01版本

    使用TCP-UDP数据包自动发送工具V3.01,不仅可以加深对TCP和UDP协议原理的理解,还可以用于实际项目中的网络调试、性能评估和问题诊断。例如,在开发网络应用程序时,可以通过发送特定的数据包来测试服务器的响应;在...

    TCP和UDP连接

    在IT行业中,网络通信是至关重要的一个领域,TCP(传输控制协议)和UDP(用户数据报协议)是两种主要的传输层协议,它们为应用程序提供数据传输服务。本篇文章将详细探讨TCP和UDP连接,以及如何通过工具如TCPView来...

    TCP与UDP区别(socket编程)

    一、TCP 和 UDP 的区别 1. 连接方式:TCP 是面向连接的协议,在任何数据传输前就建立好了点到点的连接,而 UDP 是非面向连接的协议,在数据传输之前不建立连接。 2. 可靠性:TCP 是可靠的传输协议,可以避免数据...

    面试必备TCP&UDP;区别

    面试中经常会被问到TCP与UDP的区别,这是网络编程的基础问题,也是考察求职者对网络协议理解和掌握程度的关键点。本文将详细介绍TCP和UDP的区别,并且包含面试中可能遇到的相关知识点。 TCP(传输控制协议)是一种...

Global site tag (gtag.js) - Google Analytics