关于网络通信协议HTTP、HTTPS、TCP、UDP

简介: 简单说,没有第三次握手有可能导致服务器收到过期连接请求,从而导致服务器一直等待客户端发送数据,造成资源的浪费。

一、TCP和UDP的核心区别

1、TCP

(1)是面向连接的,通过3次握手建立连接、4次挥手断开连接,是可靠传输。

(2)TCP数据传输方式是面向字节流的

(3)TCP保证数据按序到达(序列号机制)

(4)TCP的通信模式仅支持点对点(一对一)

(5)TCP典型应用包括http、https、ftp、smtp、数据库连接等

2、UDP

(1)是无连接的,是不可靠传输。

(2)UDP数据传输是面向报文传输。

(3)UDP不保证报文到达的顺序(可乱序到达)

(4)UDP的通信模式支持一对一、一对多和多对多

(5)UDP典型应用包括DNS、视频会议、在线游戏、直播等

一句话总结,TCP是打电话,先拨通再说话;UDP是发短信,发出去就不管,效率高但并不保证接收。

二、TCP是如何保证可靠传输的

通过4大机制保证。

1、三次握手建立连接、四次挥手断开连接

客户端发起sync -> 服务端回复sync+ack ->客户端发送ack 连接建立。

(1) 为什么tcp是3次握手,2次行不行?

不行。

如果没有富贵论坛APP客户端第三次ack确认,服务器无法确认客户端发起的连接请求是新请求还是过期请求。比如,一个client发送sync连接请求A,但是请求A因为网络原因延迟了,此时client因为没有收到服务器的sync+ack回复,所以再次重试发起一个新的连接请求B,此时服务器收到B请求建立连接并完成数据传输,连接关闭。此时client延迟的A请求到达服务器,服务器会认为是一个新的请求,所以会一直等待客户端发数据,造成资源的浪费。

简单说,没有第三次握手有可能导致服务器收到过期连接请求,从而导致服务器一直等待客户端发送数据,造成资源的浪费。

(2)为什么tcp是4次挥手,3次行不行?

不行。

TCP是全双工的通信,client和server需要确认双方互相不再发送数据。如果是三次挥手,有可能导致连接提前关闭,导致部分数据丢失。

三、UDP如何实现可靠传输

1、加入序列号与ACK确认

2、超时重传

3、引入滑动窗口流量控制

四、TCP和UDP可以使用同一个端口吗?

可以。操作系统的一个通信端点定义:协议类型+IP+端口。所以TCP和UDP可以共用一个端口号。

五、HTTP1.0、1.1、2、3在TCP连接数上的区别

http底层通过tcp建立连接来通信。

1、http1.0默认非持久连接,每次http请求都会建立一个独立的tcp连接

2、http1.1默认持久连接,一个tcp连接上可以发送多个http请求,比如chrome、firefox等浏览器通常最多允许6个tcp连接,另外不同域名通常会建立不同的tcp连接

3、http2通过多路复用机制,可以同时传输多个请求

4、http3采用QUIC协议(UDP)

六、HTTPS请求原理

HTTPS在http协议基础上引入ssl/tls加密,通过身份认证、数据加密和数据完整性校验三大机制,确保客户端和服务器的通信安全。

https请求流程:

1、客户端发起https请求

2、服务端收到请求,会把自己的SSL/TLS证书发给客户端。

3、客户端拿到证书会校验合法性(包括是否CA签发、是否有效期、是否被吊销)

4、客户端生成一个随机密钥,通过服务端公钥加密,发送给服务端

5、服务端拿到数据,通过自己的私钥解密,拿到对称密钥

6、客户端与服务端通过对称密钥加密数据通信

7、https还通过消息认证码MAC确保数据未被篡改

相关文章
|
2天前
|
人工智能 API 开发工具
Claude Code国内安装:2026最新保姆教程(附cc-switch配置)
Claude Code是我目前最推荐的AI编程工具,没有之一。 它可能不是最简单的,但绝对是上限最高的。一旦跑通安装、接上模型、定好规范,你会发现很多原本需要几小时的工作,现在几分钟就能搞定。 这套方案的核心优势就三个字:可控性。你不用依赖任何不稳定服务,所有组件都在自己手里。模型效果不好?换一个。框架更新了?自己决定升不升。 这才是AI时代开发者该有的姿势——不是被动等喂饭,而是主动搭建自己的生产力基础设施。 希望这篇保姆教程,能帮你顺利上车。做出你自己的作品。
Claude Code国内安装:2026最新保姆教程(附cc-switch配置)
|
9天前
|
缓存 人工智能 自然语言处理
我对比了8个Claude API中转站,踩了不少坑,总结给你
本文是个人开发者耗时1周实测的8大Claude中转平台横向评测,聚焦Claude Code真实体验:以加权均价(¥/M token)、内部汇率、缓存支持、模型真实性及稳定性为核心指标。
3796 21
|
5天前
|
人工智能 JSON BI
DeepSeek V4 来了!超越 Claude Sonnet 4.5,赶紧对接 Claude Code 体验一把
JeecgBoot AI专题研究 把 Claude Code 接入 DeepSeek V4Pro 的真实体验与避坑记录 本文记录我将 Claude Code 对接 DeepSeek 最新模型(V4Pro)后的真实体验,测试了 Skills 自动化查询和积木报表 AI 建表两个场景——有惊喜,也踩
2375 8
|
4天前
|
人工智能 缓存 BI
Claude Code + DeepSeek V4-Pro 真实评测:除了贵,没别的毛病
JeecgBoot AI专题研究 把 Claude Code 接入 DeepSeek V4Pro,跑完 Skills —— OA 审批、大屏、报表、部署 5 大实战场景后的真实体验 ![](https://oscimg.oschina.net/oscnet/up608d34aeb6bafc47f
1984 4
Claude Code + DeepSeek V4-Pro 真实评测:除了贵,没别的毛病
|
21天前
|
人工智能 自然语言处理 安全
Claude Code 全攻略:命令大全 + 实战工作流(建议收藏)
本文介绍了Claude Code终端AI助手的使用指南,主要内容包括:1)常用命令如版本查看、项目启动和更新;2)三种工作模式切换及界面说明;3)核心功能指令速查表,包含初始化、压缩对话、清除历史等操作;4)详细解析了/init、/help、/clear、/compact、/memory等关键命令的使用场景和语法。文章通过丰富的界面截图和场景示例,帮助开发者快速掌握如何通过命令行和交互界面高效使用Claude Code进行项目开发,特别强调了CLAUDE.md文件作为项目知识库的核心作用。
18881 60
Claude Code 全攻略:命令大全 + 实战工作流(建议收藏)
|
2天前
|
SQL 人工智能 弹性计算
阿里云发布 Agentic NDR,威胁检测与响应进入智能体时代
欢迎前往阿里云云防火墙控制台体验!
1168 2

热门文章

最新文章