首先,TCP/IP 和UDP最大的区别就是:TCP/IP是面向连接的,UDP是非面向连接的。通俗一点说就是:TCP/IP管发管到,UDP管发不管到。因此,在安全性方面来说,TCP/IP更具有优越性。
第二:TCP/IP偏重的是点对点的通信,使用时服务器和客户端的区别显而易见,而UDP则可以使用组播实现一对多,通信时更像一个群聊系统,几乎没有客户端和服务器的区别,在时间和空间上具有更高的节约性。使用组播时,确定一个D类地址作为组的地址,将本机加入组中,向组内发送消息,从组中接收消息。
第三:在具体编写的代码结构上,TCP/IP是通过创建Socket对象进行连接,从连接对象上得到输入输出流,在流中读写从而通信。而UDP则是在本机创建DatagramSocket对象,将数据包装成DatagramPacket包来发送,其中包里有要发送到的地址。
TCP(Transmission Control Protocol,传输控制协议)是基于连接的协议,也就是说,在正式收发数据前,必须和对方建立可靠的连接。一个TCP连接必须要经过三次“对话”才能建立起来,其中的过程非常复杂,我们这里只做简单、形象的介绍,你只要做到能够理解这个过程即可。我们来看看这三次对话的简单过程:主机A向主机B发出连接请求数据包:“我想给你发数据,可以吗?”,这是第一次对话;主机B向主机A发送同意连接和要求同步(同步就是两台主机一个在发送,一个在接收,协调工作)的数据包:“可以,你什么时候发?”,这是第二次对话;主机A再发出一个数据包确认主机B的要求同步:“我现在就发,你接着吧!”,这是第三次对话。三次“对话”的目的是使数据包的发送和接收同步,经过三次“对话”之后,主机A才向主机B正式发送数据。
TCP协议能为应用程序提供可靠的通信连接,使一台计算机发出的字节流无差错地发往网络上的其他计算机,对可靠性要求高的数据通信系统往往使用TCP协议传输数据。
向非连接”就是在正式通信前不必与对方先建立连接,不管对方状态就直接发送。这与现在风行的手机短信非常相似:你在发短信的时候,只需要输入对方手机号就OK了。
UDP(User Data Protocol,用户数据报协议)是与TCP相对应的协议。它是面向非连接的协议,它不与对方建立连接,而是直接就把数据包发送过去!
比如,我们经常使用“ping”命令来测试两台主机之间TCP/IP通信是否正常,其实 “ping”命令的原理就是向对方主机发送UDP数据包,然后对方主机确认收到数据包,如果数据包是否到达的消息及时反馈回来,那么网络就是通的。例如,在默认状态下,一次“ping”操作发送4个数据包(如图2所示)。大家可以看到,发送的数据包数量是4包,收到的也是4包(因为对方主机收到后会发回一个确认收到的数据包)。这充分说明了UDP协议是面向非连接的协议,没有建立连接的过程。正因为UDP协议没有连接的过程,所以它的通信效果高;但也正因为如此,它的可靠性不如TCP协议高。QQ就使用UDP发消息,因此有时会出现收不到消息的情况。
附表:tcp协议和udp协议的差别
TCP协议和UDP协议各有所长、各有所短,适用于不同要求的通信环境。TCP协议和UDP协议之间的差别如附表所示。
IP协议的基本功能是提供数据传输、数据包编止、数据包路由,分段等。通过ip编止约定,可以成功的将数据通过路由传输到正确的网络或者子网。ip协议是一种无连接的协议。
面向连接的tcp,是基于连接的协议,也就是说在正式收发数据前,必须和对方建立可靠的连接,该协议能提供可靠的数据传输,保证数据准确无误的到达目的地
面向非连接的udp协议,他不对对方建立连接,而是直接把数据包发过去!该协议不能保证数据准确无误的到达。udp适合用于一次只传少量数据,对可靠要求不高的应用环境,比如,我们经常用“ping”来测试两台主机通信是否正常,其实该命令就是向对方发送udp数据包,然后对方主机确认收到数据包,如果数据包到达的信息及时返回的话,就说明网络是通的
QQ就是udp发信息的,因此有时会出现收不到信息的时候
此外,udp程序结构比较简单,tcp对系统资源的要求比udp多
udp和tcp协议是传输层的协议,而ip协议是网络层的协议
tcp的连接需要三次握手过程,断开需要4次
相关推荐
简单的说 Node.js 就是运行在服务端的 JavaScript。Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台。本例程是基于Nodejs平台的TCP/IP通讯和UDP通讯示例
TCP/IP和UDP/IP是互联网协议族中的两种主要通信协议,它们在计算机网络中扮演着至关重要的角色。TCP(传输控制协议)和UDP(用户数据报协议)分别提供了不同级别的可靠性和效率,适用于不同的应用场景。 TCP是一种...
本知识点主要聚焦于在Windows环境下,如何使用基于MFC(Microsoft Foundation Classes)的TCP/IP和UDP通信类库进行程序开发。 首先,TCP(Transmission Control Protocol)和UDP(User Datagram Protocol)是两种...
- **技巧1**:理解TCP/IP模型与OSI模型的区别及联系。了解这两个模型如何帮助我们更好地组织和思考网络通信问题。 - **技巧2**:选择合适的网络API。介绍常见的网络API(如POSIX、Winsock等)以及它们之间的差异,...
在IT领域,网络编程是构建分布式系统和网络应用的基础,其中TCP/IP协议栈和套接字(Socket)接口是核心概念。本资源包提供的是基于...同时,了解TCP和UDP的区别和应用场景,有助于在实际项目中选择最适合的通信方式。
在桌面应用中,TCP/IP和UDP可用于在本地或远程计算机之间交换数据,例如屏幕共享、远程桌面控制等。 6. **Ap2010Service**:这可能是项目中的一个服务组件或者模块,可能是用于处理TCP/IP和UDP通信的服务端程序,也...
它详细阐述了网络接口层(如以太网)、互联网层(包括IP协议、ICMP协议、ARP协议和RARP协议)、传输层(重点讨论TCP和UDP协议)以及应用层的各种协议(如FTP、Telnet、SMTP等)。通过阅读,读者可以理解网络数据如何...
在结构方面,它详细解析了各个层次的协议,如传输层的TCP(传输控制协议)和UDP(用户数据报协议),网络层的IP(互联网协议)以及ICMP(因特网控制消息协议)。同时,书中也探讨了如何通过这些协议实现不同网络的...
SocketTool是一款功能强大的网络通信测试工具,主要用于TCP/IP和UDP协议的测试与调试。它能够帮助开发者、网络管理员以及IT专业人员快速建立服务器端和客户端的连接,验证网络通信的有效性和稳定性。在本文中,我们...
《microchip TCP/IP协议栈应用笔记V3.6》是一份深入探讨Microchip公司TCP/IP协议栈实现与应用的重要文档,特别适合嵌入式系统开发者和网络通信工程师参考。Microchip TCP/IP协议栈是该公司为微控制器提供的完整网络...
C#是一种广泛用于构建桌面和Web应用程序的编程语言,它提供了强大的网络编程能力,其中包括TCP/IP协议的支持。本示例"**C# TCP/IP通信小例子**"是一个基础教程,旨在帮助新手理解如何在C#中实现TCP/IP通信。 TCP...
TCP/IP 协议簇是计算机网络中最为重要的一部分,理解 TCP/IP 协议的工作机理和每个层的作用对于程序员和网络管理员来说都是必备的基础素养。本文将从 TCP/IP 模型、数据链路层、网络层、传输层和应用层五个方面对 ...
下面将对TCP/IP的基本原理和相关知识点进行详细介绍。 首先,TCP/IP模型分为四个主要层次:应用层、传输层、网络层和数据链路层。每一层都有其特定的任务和协议,共同构成了网络通信的基础。 1. **应用层**:这是...
这份"TCP/IP协议族(第四版)习题答案"涵盖了这个领域的核心概念和实践应用,对于学习者来说,是一个宝贵的资源。 在TCP/IP协议族中,网络接口层主要负责数据在网络中的物理传输,包括以太网、令牌环等不同的局域网...
每一层都有其特定的功能和协议,如应用层的HTTP、FTP,传输层的TCP和UDP,网络层的IP,以及数据链路层的Ethernet等。理解这些协议的交互过程是网络编程的关键。 1. **TCP(传输控制协议)**:TCP是一种面向连接的、...
调试网络的工具,支持tcp/ip和UDP
- **协议详解**:深入剖析TCP、UDP、IP等协议的工作流程和特性。 - **网络配置**:如何设置IP地址、子网掩码、默认网关等网络参数。 - **网络诊断**:利用ping、traceroute等工具进行网络故障排查。 - **编程实践**...
下面我们将详细探讨TCP/IP协议栈、C语言实现TCP/IP通信的原理以及TCP与UDP的区别。 TCP/IP协议栈是一个分层模型,包括应用层、传输层、网络层和数据链路层。应用层负责定义各种网络应用,如HTTP、FTP等;传输层处理...
TCP/IP(Transmission Control Protocol/Internet Protocol)是互联网上最核心的通信协议,它定义了电子设备如何通过网络进行通信和数据传输。TCP/IP模型由四层组成:应用层、传输层、网络层和数据链路层,每个层都...
本PPT版是该书内容的提炼,旨在帮助读者快速理解和掌握TCP/IP的核心概念。 TCP/IP,全称为Transmission Control Protocol/Internet Protocol,是互联网上最广泛使用的通信协议栈。它分为四层模型:链路层、网络层、...