JavaDriver JavaDriver
首页
  • 基础
  • 并发
  • JVM
  • 设计模式
  • 计算机网络
  • 操作系统
  • 数据结构
  • 算法
  • MYSQL
  • REDIS
  • Netty
  • Kafka
系统设计
非技术
关于
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

YoungAnn

西二旗Java老司机一枚 致力于社会主义添砖Java
首页
  • 基础
  • 并发
  • JVM
  • 设计模式
  • 计算机网络
  • 操作系统
  • 数据结构
  • 算法
  • MYSQL
  • REDIS
  • Netty
  • Kafka
系统设计
非技术
关于
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 计算机网络

    • 简述 TCP 三次握手以及四次挥手的流程。为什么需要三次握手以及四次挥手?
    • 简述常见的 HTTP 状态码的含义
    • 从输入 URL 到展现页面的全过程
    • HTTP 中 GET 和 POST 区别
    • TCP 怎么保证可靠传输
    • 什么是 TCP 粘包和拆包?
    • 简述 HTTPS 的加密与认证过程
    • 简述对称与非对称加密的概念
    • TCP 与 UDP 在网络协议中的哪一层,他们之间有什么区别?
      • TCP 与 UDP 的区别(重要)
      • 什么时候选择 TCP,什么时候选 UDP?
      • HTTP 基于 TCP 还是 UDP?
      • 使用 TCP 的协议有哪些?使用 UDP 的协议有哪些?
    • 如何解决 TCP 传输丢包问题?
    • TCP 长连接和短连接有那么不同的使用场景?
    • TCP 的 keepalive 了解吗?说一说它和 HTTP 的 keepalive 的区别?
    • HTTP 与 HTTPS 有哪些区别?
    • TCP 中常见的拥塞控制算法有哪些?
    • 简述 HTTP 1.0,1.1,2.0 的主要区别
    • 从系统层面上,UDP如何保证尽量可靠?
    • TCP 挥手时出现大量 CLOSE_WAIT 或 TIME_WAIT 怎么解决?
    • 简述 TCP 滑动窗口
    • 简述TCP重传机制
    • 简述 JWT 的原理和校验机制
    • 为什么需要序列化?有什么序列化的方式?
    • 简述 iPv4 和 iPv6 的区别
    • TCP 中 SYN 攻击是什么?如何防止?
    • 简述 DDOS 攻击原理,如何防范它?
    • 什么是 ARP 协议?简述其使用场景
    • 什么是跨域,什么情况下会发生跨域请求?
    • Cookie 和 Session 的关系和区别是什么?
    • 简述 WebSocket 是如何进行传输的
    • DNS 查询服务器的基本流程是什么?DNS 劫持是什么?
    • RestFul 是什么?RestFul 请求的 URL 有什么特点?
    • 简述 HTTP 报文头部的组成结构
  • 操作系统

  • 数据结构

  • 算法

  • 剑指Offer题解

  • 计算机基础
  • 计算机网络
YoungAnn
2022-09-21
目录
TCP 与 UDP 的区别(重要)
什么时候选择 TCP,什么时候选 UDP?
HTTP 基于 TCP 还是 UDP?
使用 TCP 的协议有哪些?使用 UDP 的协议有哪些?

TCP 与 UDP 在网络协议中的哪一层,他们之间有什么区别?

# 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 支持一对一、一对多、多对一、多对多; ...... 我把上面总结的内容通过表格形式展示出来了!
TCP UDP
是否面向连接 是 否
是否可靠 是 否
是否有状态 是 否
传输效率 较慢 较快
传输形式 字节流 数据报文段
首部开销 20 ~ 60 bytes 8 bytes
是否提供广播或多播服务 否 是

# 什么时候选择 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 协议,用来发送电子邮件。注意 ⚠️:接受邮件的协议不是 SMTP 而是 POP3 协议。

  5. POP3/IMAP 协议: POP3 和 IMAP 两者都是负责邮件接收的协议。

  6. Telent 协议:远程登陆协议,通过一个终端登陆到其他服务器。被一种称为 SSH 的非常安全的协议所取代。

  7. SSH 协议 : SSH( Secure Shell)是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。SSH 建立在可靠的传输协议 TCP 之上。 ...... 运行于 UDP 协议之上的协议 :

  8. DHCP 协议:动态主机配置协议,动态配置 IP 地址

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

编辑 (opens new window)
上次更新: 2022/09/26, 09:00:38
简述对称与非对称加密的概念
如何解决 TCP 传输丢包问题?

← 简述对称与非对称加密的概念 如何解决 TCP 传输丢包问题?→

最近更新
01
电商-商品系统设计
12-17
02
关于如何写OKR
12-09
03
对事不对人 vs 对人不对事
12-09
更多文章>

Gitalking ...

Theme by Vdoing | Copyright © 2022-2025 YoungAnnn | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式