作者:伴月飞鸟
链接: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的区别是什么?相关推荐

  1. python中参数的位置传递和名称传递各有什么优缺点_Python开发TCP和UDP的区别是什么?优缺点对比总结...

    Python开发TCP和UDP的区别是什么?优缺点对比总结:UDP 是面向无连接的通讯协议,UDP 数据包括目的端口号和源端口号信息.TCP 是面向连接的通讯协议,通过三次握手建立连接,通讯完成时四次 ...

  2. TCP与UDP的区别是什么?

    UDP TCP 无连接 面向连接 不可靠传输,不使用流量控制和拥塞控制 可靠控制,使用流量控制和拥塞控制 支持一对一,一对多,多对一,多对多通信 只支持一对一通信 面向报文 面向字节流 首部开销小,仅 ...

  3. TCP和UDP是什么?区别是什么?

    TCP和UDP是什么?区别是什么? 1.TCP协议 传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的.可靠的.基于字节流的传输层通信协议. 字节流服务 ...

  4. 40 张图带你搞懂 TCP 和 UDP

    前言 拿下计网协议后,我就是公园里最靓的仔 TCP/IP 基础知识总结 计算机网络基础知识总结 那么下面就开始我们本篇文章,文章组织脉络如下 运输层位于应用层和网络层之间,是 OSI 分层体系中的第四 ...

  5. Java刷题知识点之TCP、UDP、TCP和UDP的区别、socket、TCP编程的客户端一般步骤、TCP编程的服务器端一般步骤、UDP编程的客户端一般步骤、UDP编程的服务器端一般步骤...

    TCP和UDP是两个传输层协议,广泛应用于网络中不同主机之间传输数据.对任何程序员来说,熟悉TCP和UDP的工作方式都是至关重要的.这就是为什么TCP和UDP是一个流行的Java编程面试问题. Jav ...

  6. IP、TCP、UDP报文头说明

    IP报文头(大端字节序) 版本: 通常值为4(IPv4) 首部长度: IP头长度 表明包含多少个32Bit 包括可选头(如果有) 值为IP头大小除以4 如:没有可选头IP头为20字节 则该值为5 服务 ...

  7. 什么是TCP和UDP?—Vecloud微云

    是否快速完整地传输数据取决于您使用的是UDP还是TCP网络协议.他们俩都做相同的工作,但是方式不同,一种更可靠,另一种更快. TCP和UDP的定义 TCP(传输控制协议)和UDP(用户数据报协议)都是 ...

  8. 宁波大学计算机网络,宁波大学计算机网络TCP与UDP题目

    波大计算机网络home work3 问题及解答: 1.端口(port)和套接字(socket)的区别是什么? 2.是否TCP和UDP都需要计算往返时间RTT? 3.在TCP传送数据时,有没有规定一个最 ...

  9. [python学习] 专题七.网络编程之套接字Socket、TCP和UDP通信实例

    很早以前研究过C#和C++的网络通信,参考我的文章:                  C#网络编程之Tcp实现客户端和服务器聊天                 C#网络编程之套接字编程基础知识   ...

  10. 【Linux网络编程】TCP 和 UDP 数据报格式详解

    TCP 报文格式 TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的.可靠的.基于字节流的传输层通信协议. TCP 报文段的报头有 10 个必需的字段和 ...

最新文章

  1. eclipse安装maven
  2. 矩阵的终极分解-奇异值分解 SVD
  3. android 从零单排 第一期 按键显示helloworld
  4. nio的epoll和selector实现流程分析
  5. 逆序输出(数组练习)
  6. 第二次启用httpd24调用mysql时出现的错误
  7. sentinel 时间窗口_Sentinel潜龙勿用篇
  8. 深度学习框架TensorFlow(3.变量)
  9. RabbitMq入门以及使用教程
  10. colab加载google drive并且调试时跳过不运行
  11. 缓冲运动之框架開始一级简单框架实例
  12. PB datawindow中的文本调整打印长度
  13. .net 反编译_向.net/Unity 程序员推荐一个十分因吹斯听的网站:sharplab.io
  14. OpenShift 4 - 定制 RHCOS Linux的Kernal参数
  15. 字符串解压缩c语言除哈夫曼,C语言实现压缩二例(示例代码)
  16. 谈用VB无窗口透明Usercontrol编写透明浮动按钮
  17. mapgis67安装输入计算机名称,MapGIS67操作手册(1-6)MapGIS67 安装使用注意事项
  18. 人工智能、机器学习、深度学习和神经网络的关系
  19. 尚学堂马士兵hibernate讲义
  20. 回溯算法原理及其应用场景

热门文章

  1. eda课程设计,求救!!!!!!!!
  2. 老板突然出现,游戏飞速隐藏,开源神器在手,摸鱼不怕被抓包
  3. Symbian操作系统
  4. 苹果app(iOS app)比较常用的URL schemes,可以用于iOS应用间相互调用
  5. matlab阶乘函数、排列组合函数、数组求和、未定义变量带入计算,简化结果值
  6. html5用本地存储做留言板,带有本地存储功能的留言板js代码
  7. 企业可以自己开发一套CRM系统吗?
  8. 64位计算机可以安装xp,64位xp系统如何安装【图解】
  9. 免拆破解电信机顶盒TY1208-Z,绝对成功
  10. 代码规范及html5+css3基础知识