TCP和Udp的区别是什么?
作者:伴月飞鸟
链接:https://www.zhihu.com/question/47378601/answer/276353285
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
OSI 和 TCP/IP 模型在传输层定义两种传输协议:TCP(或传输控制协议)和 UDP(或用户数据报协议)。
UDP:
UDP 与 TCP 的主要区别在于 UDP 不一定提供可靠的数据传输。事实上,该协议不能保证数据准确无误地到达目的地。UDP 在许多方面非常有效。当某个程序的目标是尽快地传输尽可能多的信息时(其中任意给定数据的重要性相对较低),可使用 UDP。ICQ 短消息使用 UDP 协议发送消息。
许多程序将使用单独的TCP连接和单独的UDP连接。重要的状态信息随可靠的TCP连接发送,而主数据流通过UDP发送。
TCP:
TCP的目的是提供可靠的数据传输,并在相互进行通信的设备或服务之间保持一个虚拟连接。TCP在数据包接收无序、丢失或在交付期间被破坏时,负责数据恢复。它通过为其发送的每个数据包提供一个序号来完成此恢复。记住,较低的网络层会将每个数据包视为一个独立的单元,因此,数据包可以沿完全不同的路径发送,即使它们都是同一消息的组成部分。这种路由与网络层处理分段和重新组装数据包的方式非常相似,只是级别更高而已。
为确保正确地接收数据,TCP要求在目标计算机成功收到数据时发回一个确认(即 ACK)。如果在某个时限内未收到相应的 ACK,将重新传送数据包。如果网络拥塞,这种重新传送将导致发送的数据包重复。但是,接收计算机可使用数据包的序号来确定它是否为重复数据包,并在必要时丢弃它。
TCP与UDP区别总结:
1、TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接
2、TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付
3、TCP面向字节流,实际上是TCP把数据看成一连串无结构的字节流;UDP是面向报文的
UDP没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低(对实时应用很有用,如IP电话,实时视频会议等)
4、每一条TCP连接只能是点到点的;UDP支持一对一,一对多,多对一和多对多的交互通信
5、TCP首部开销20字节;UDP的首部开销小,只有8个字节
6、TCP的逻辑通信信道是全双工的可靠信道,UDP则是不可靠信道
TCP和Udp的区别是什么?相关推荐
- python中参数的位置传递和名称传递各有什么优缺点_Python开发TCP和UDP的区别是什么?优缺点对比总结...
Python开发TCP和UDP的区别是什么?优缺点对比总结:UDP 是面向无连接的通讯协议,UDP 数据包括目的端口号和源端口号信息.TCP 是面向连接的通讯协议,通过三次握手建立连接,通讯完成时四次 ...
- TCP与UDP的区别是什么?
UDP TCP 无连接 面向连接 不可靠传输,不使用流量控制和拥塞控制 可靠控制,使用流量控制和拥塞控制 支持一对一,一对多,多对一,多对多通信 只支持一对一通信 面向报文 面向字节流 首部开销小,仅 ...
- TCP和UDP是什么?区别是什么?
TCP和UDP是什么?区别是什么? 1.TCP协议 传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的.可靠的.基于字节流的传输层通信协议. 字节流服务 ...
- 40 张图带你搞懂 TCP 和 UDP
前言 拿下计网协议后,我就是公园里最靓的仔 TCP/IP 基础知识总结 计算机网络基础知识总结 那么下面就开始我们本篇文章,文章组织脉络如下 运输层位于应用层和网络层之间,是 OSI 分层体系中的第四 ...
- Java刷题知识点之TCP、UDP、TCP和UDP的区别、socket、TCP编程的客户端一般步骤、TCP编程的服务器端一般步骤、UDP编程的客户端一般步骤、UDP编程的服务器端一般步骤...
TCP和UDP是两个传输层协议,广泛应用于网络中不同主机之间传输数据.对任何程序员来说,熟悉TCP和UDP的工作方式都是至关重要的.这就是为什么TCP和UDP是一个流行的Java编程面试问题. Jav ...
- IP、TCP、UDP报文头说明
IP报文头(大端字节序) 版本: 通常值为4(IPv4) 首部长度: IP头长度 表明包含多少个32Bit 包括可选头(如果有) 值为IP头大小除以4 如:没有可选头IP头为20字节 则该值为5 服务 ...
- 什么是TCP和UDP?—Vecloud微云
是否快速完整地传输数据取决于您使用的是UDP还是TCP网络协议.他们俩都做相同的工作,但是方式不同,一种更可靠,另一种更快. TCP和UDP的定义 TCP(传输控制协议)和UDP(用户数据报协议)都是 ...
- 宁波大学计算机网络,宁波大学计算机网络TCP与UDP题目
波大计算机网络home work3 问题及解答: 1.端口(port)和套接字(socket)的区别是什么? 2.是否TCP和UDP都需要计算往返时间RTT? 3.在TCP传送数据时,有没有规定一个最 ...
- [python学习] 专题七.网络编程之套接字Socket、TCP和UDP通信实例
很早以前研究过C#和C++的网络通信,参考我的文章: C#网络编程之Tcp实现客户端和服务器聊天 C#网络编程之套接字编程基础知识 ...
- 【Linux网络编程】TCP 和 UDP 数据报格式详解
TCP 报文格式 TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的.可靠的.基于字节流的传输层通信协议. TCP 报文段的报头有 10 个必需的字段和 ...
最新文章
- eclipse安装maven
- 矩阵的终极分解-奇异值分解 SVD
- android 从零单排 第一期 按键显示helloworld
- nio的epoll和selector实现流程分析
- 逆序输出(数组练习)
- 第二次启用httpd24调用mysql时出现的错误
- sentinel 时间窗口_Sentinel潜龙勿用篇
- 深度学习框架TensorFlow(3.变量)
- RabbitMq入门以及使用教程
- colab加载google drive并且调试时跳过不运行
- 缓冲运动之框架開始一级简单框架实例
- PB datawindow中的文本调整打印长度
- .net 反编译_向.net/Unity 程序员推荐一个十分因吹斯听的网站:sharplab.io
- OpenShift 4 - 定制 RHCOS Linux的Kernal参数
- 字符串解压缩c语言除哈夫曼,C语言实现压缩二例(示例代码)
- 谈用VB无窗口透明Usercontrol编写透明浮动按钮
- mapgis67安装输入计算机名称,MapGIS67操作手册(1-6)MapGIS67 安装使用注意事项
- 人工智能、机器学习、深度学习和神经网络的关系
- 尚学堂马士兵hibernate讲义
- 回溯算法原理及其应用场景