软件架构设计-网络篇

 1、HTTP协议

连接复用问题如何解决?  请求和响应头添加Keep-Alive参数

连接数有限,如何解决? 使用Keep-Alive timeout参数

如何判断请求结束? Content-Length

动态语言服务器难计算Content-Length如何解决? Transfer-Encoding:chunked 

如何实现并发TCP HTTP请求? Pipline管道

 

问题:Pipline对头阻塞,1,2,3请求并行发出,需等待1收回,即使2和3先到达

优化:减少请求连接数思路

图片合并、CS和JS合并、部署多个CDN域名(同域名限制6-8个连接)

 

断点续传如何实现? Range: first offset 、last offset字段

2、HTTP/2协议如何优化并发调用性能

请求分帧   流ID(帧编号),例如   1:FF1  1:FF2

请求并发发出和并发收回,最终按照协议编号组装

 

3、对称加密公钥如何传输? CA证书认证

服务器公钥A和私A钥,申请CA数字证书,数字证书保存(公钥C,私钥C)

SSL/TLS协议过程:申请/返回数字证书,验证证书/解析公钥,协商服务器公钥传输

 

4、HTTPS=HTTP+SSL/TLS+HTTP request/response对称加密传输

5、TCP/UDP 丢包和乱序问题如何解决

消息编号+客户端重发+顺序ACK确认, ACK=6代表6之前的所有包都已确认,返回客户端

不丢问题: ACK+重发,ACK=6,代表前6个包已收到,一次性返回客户端,优化性能

不重问题:约定超时时间,客户端会重发; 顺序ACK=6,代表前6个包已收到,即使后续再收到,也会丢弃

时序错乱问题:先收到1,2,3, ACK=3,收到5,6,7, 等待;超时重发4,5,6,7, 则5,6,7数据包丢弃,ACK=7

 

6、QUIC

RAID6,每次发送5个数据包,允许冗余两个数据包

A+B+C+D+E=R1

A-B+C-D+E=R2

通过丢包的这两个方程式,计算丢失包重发,优化TCP/UDP重发一组包功能

 

posted @   mick0802  阅读(89)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示