面试常问:UDP 和 TCP 的区别

更新日期: 2022-08-13阅读: 1.4k标签: 协议

TCP 与 UDP 的区别

  1. 是否面向连接 :UDP 在传送数据之前不需要先建立连接。而 TCP 提供面向连接的服务,在传送数据之前必须先建立连接,数据传送结束后要释放连接。
  2. 是否是可靠传输 :远地主机在收到 UDP 报文后,不需要给出任何确认,并且不保证数据不丢失,不保证是否顺序到达。TCP 提供可靠的传输服务,TCP 在传递数据之前,会有三次握手来建立连接,而且在数据传递时,有确认、窗口、重传、拥塞控制机制。通过 TCP 连接传输的数据,无差错、不丢失、不重复、并且按序到达。
  3. 是否有状态 :这个和上面的“是否可靠传输”相对应。TCP 传输是有状态的,这个有状态说的是 TCP 会去记录自己发送消息的状态比如消息是否发送了、是否被接收了等等。为此 ,TCP 需要维持复杂的连接状态表。而 UDP 是无状态服务,简单来说就是不管发出去之后的事情了( 这很渣男! )。
  4. 传输效率 :由于使用 TCP 进行传输的时候多了连接、确认、重传等机制,所以 TCP 的传输效率要比 UDP 低很多。
  5. 传输形式 :TCP 是面向字节流的,UDP 是面向报文的。
  6. 首部开销 :TCP 首部开销(20 ~ 60 字节)比 UDP 首部开销(8 字节)要大。
  7. 是否提供广播或多播服务 :TCP 只支持点对点通信,UDP 支持一对一、一对多、多对一、多对多;
  8. ......

我把上面总结的内容通过表格形式展示出来了!



什么时候选择 TCP,什么时候选 UDP?

  • UDP 一般用于即时通信 ,比如:语音、 视频 、直播等等。这些场景对传输数据的准确性要求不是特别高,比如你看视频即使少个一两帧,实际给人的感觉区别也不大。
  • TCP 用于对传输准确性要求特别高的场景 ,比如文件传输、发送和接收邮件、远程登录等等。

HTTP 基于 TCP 还是 UDP?

HTTP 协议是基于 TCP 协议的 ,所以发送 HTTP 请求之前首先要建立 TCP 连接也就是要经历 3 次握手。


使用 TCP 的协议有哪些?使用 UDP 的协议有哪些?

运行于 TCP 协议之上的协议:

  1. HTTP 协议 :超文本传输协议(HTTP,HyperText Transfer Protocol)主要是为 Web 浏览器与 Web 服务器之间的通信而设计的。当我们使用浏览器浏览网页的时候,我们网页就是通过 HTTP 请求进行加载的。
  2. HTTPS 协议 :更安全的超文本传输协议(HTTPS,Hypertext Transfer Protocol Secure),身披 SSL 外衣的 HTTP 协议
  3. FTP 协议 :文件传输协议 FTP(File Transfer Protocol),提供文件传输服务, 基于 TCP 实现可靠的传输。使用 FTP 传输文件的好处是可以屏蔽操作系统和文件存储方式。
  4. SMTP 协议 :简单邮件传输协议(SMTP,Simple Mail Transfer Protocol)的缩写, 基于 TCP 协议 ,用来发送电子邮件。注意 :warning::接受邮件的协议不是 SMTP 而是 POP3 协议。
  5. POP3/IMAP 协议 :POP3 和 IMAP 两者都是负责邮件接收的协议。
  6. Telent 协议 :远程登陆协议,通过一个终端登陆到其他服务器。被一种称为 SSH 的非常安全的协议所取代。
  7. SSH 协议 : SSH( Secure Shell)是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。SSH 建立在可靠的传输协议 TCP 之上。
  8. ......

运行于 UDP 协议之上的协议:

  1. DHCP 协议 :动态主机配置协议,动态配置 IP 地址
  2. DNS : 域名系统(DNS,domain Name System)将人类可读的域名 (例如, http://www. baidu.com ) 转换为机器可读的 IP 地址 (例如,220.181.38.148)。 我们可以将其理解为专为互联网设计的电话薄。实际上 DNS 同时支持 UDP 和 TCP 协议。


链接: https://fly63.com/article/detial/12006

Web开发HTTP协议知识_常用http方法、http状态码等(前端开发和面试必备))

HTTP(超文本传输协议)是一个基于请求与响应模式的、无状态的、应用层的协议,常基于TCP的连接方式,HTTP1.1版本中给出一种持续连接的机制,绝大多数的Web开发,都是构建在HTTP协议之上的Web应用。

//缺省协议的讲解,用 //代替 http:// 有什么好处?

//缺省协议的使用,代表资源访问的协议和当前页面保持一致,如果当前页面是http ,采用http协议访问,如果是https,则使用 https 协议访问。这样用就不管是http还是升级到https都不用改动代码,现在很多CDN资源都是这样引用。一般使用在内链中,外链的协议头具有不确定性的原因。

常见的网络协议有哪些?几种常用的网络协议

常用的网络协议有TCP/IP协议、HTTP协议、FTP协议、Telnet协议、FTP协议、SMTP协议、NFS协议、UDP协议等。网络协议为计算机网络中进行数据交换而建立的规则、标准或约定的集合。

IPv6特点;IPv6与IPv4共存技术

实践证明IPv4是一个非常成功的协议,它本身也经受住了Internet从数目很少的计算机发展到目前上亿台计算机互联的考验。但该协议是几十年前基于当时的网络规模而设计的。

HTTP协议无状态,到底要怎么理解?

一天,你有个需求,你要去超市买一瓶酱油。到了超市买了酱油,你告诉售货员,下次给我准备下面粉,我下次来拿。第二次,你去超市拿面粉,售货员说他不记得你什么时候说要准备面粉。

HTTP与TCP的区别和联系

手机能够使用联网功能是因为手机底层实现了TCP/IP协议,可以使手机终端通过无线网络建立TCP连接。TCP协议可以对上层网络提供接口,使上层网络数据的传输建立在“无差别”的网络之上。 建立起一个TCP连接需要经过“三次握手”

HTTP无状态协议理解

HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快

实现memcached客户端:TCP、连接池、一致性哈希、自定义协议

memcached 本身并不支持集群,为了使用集群,我们可以自己在客户端实现路由分发,将相同的 key 路由到同一台 memcached 上去即可。路由算法有很多,这里我们使用一致性哈希算法。

HTTP 协议的 8 种请求类型介绍

HTTP 协议中共定义了八种方法或者叫“动作”来表明对 Request-URI 指定的资源的不同操作方式,具体介绍如下:虽然 HTTP 的请求方式有 8 种,但是我们在实际应用中常用的也就是 get 和 post

javascript伪协议是什么?

伪协议是为关联应用程序而使用的,JavaScript伪协议实际上是把javascript:后面的代码当JavaScript来执行,并将结果值返回给当前页面。

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!