本文梳理后端中的网络交互,强调产业实践、功能性能优化。
APP中的网络交互
- 域名解析/DNS
- 图片下载/HTTP
- 视频下载/HTTP
- 评论API/HTTP
不同交换机下的主机可以通过软件定义网络连接在一起
注意:
- 路由未必是对称的;动态路由(BGP/OSPF) 不是简单的基于IP层的协议;路由并不是改IP地址而是MAC地址,从而找到发包口;
- 通过ARP协议找到MAC;ARP请求广播,而应答采用单播方式;只有在逻辑同网段才能发送ARP;
- 免费ARP可用于判断IP冲突
- NAT网络接入会更改IP和端口;在NAT维护一个表
HTTP 2.0通过多路复用实现提速;不同stream之间是串行而不是并行的。
外部网站构建方式:租外网IP,专用于外部用户访问门户网站,将www.examplecompany.com 解析到外网IP114.1.2.4 将该IP绑定到一台物理机上,并发布公网route,从而允许外部用户访问。 在外网用户访问的过程中,可能出现的问题有:源站容量低,可承载的并发请求数低;报文经过的网络设备多导致出错概率增大;此外,自主选路网络链路长导致较高时延;这些都会严重制约产品的性能。
静态加速CDN的意义
- 解决服务器端的“第一公里”问题
- 缓解甚至消除了不同运营商之间互联的瓶颈造成的影响
- 减轻了各省的出口带宽压力
- 优化了网上热点内容的分布
网络容灾
由于bug导致全crash-->前置兜底逻辑/cache文件 故障排查三步:
- 故障明确(业务类型;接口故障类型;其他故障是否正常)
- 故障止损(确保损失最小化)
- 分段排查(客户端-服务端-中间链路排查){服务端、客户端、中间网络设备(交换机/路由器/网关LB)、旁路DNS} 实际生产中,由于用户不了解网络原理、电缆挖断等突发情况,更需要建立科学的故障应对机制。