计算机网络基本概念与实际应用 | 青训营笔记

175 阅读4分钟

这是我参与「第三届青训营 -后端场」笔记创作活动的第4篇笔记

课程依赖

  • linux 操作系统
  • Wireshark 软件 抓包用
  • Socket 网络编程开发环境

课程收益

image.png

刷新抖音会用到那些协议(应用层)

域名解析:DNS 视频下载:HTTP 图片下载:HTTP 评论API:HTTP

刷抖音网络是怎么交互的?

先让我的手机能访问抖音服务器!

image.png

网络接入

互联网(物理)

运营商(联通、电信)的网络与服务器连接 海外业务通过海底光缆与美国网络连接

路由(逻辑)

image.png /26 是掩码

掩码决定子网的范围是多大,ip是在掩码之内的称为:同网段

直连:两台服务器直接相连

同网段需中转设备:集线器、三层的交换机

image.png SDN:网络虚拟化

往同网段如何发包/交互? 修改目标ip的mac

与之对应的是跨网段 跨网络接入,路由 路由一定是对称的吗?不是

路由是工作在哪一层协议?IP层,传输层

那路由是改的IP地址吗?改MAC地址,找到发包口,原MAC一直在变;目标ip地址是一直不变的

同网段直接通信,跨网段找下跳的mac。

ARP协议

怎么跳下一跳的mac?ARP协议

image.png A发广播问:B在哪?

B响应,发现询问的目标是我

  • 逻辑同网段才能发送ARP 跨网络不能发ARP,广播不能跨网段
  • ARP请求是广播,ARP应答是单薄
  • 免费ARP 实际生成中使用,不用请求我,我就告诉你,例如:局域网中要加一台机器,没有缓存,提高效率
  • ARP代理 是个代理,中间设备抢先应答eg:虚拟网络中应用 中介作用

ARP本质是查找下一跳的MAC,不是请求目标地址!

TCP 三次握手

什么是tcp连接?

拔了网线,连接会断吗?

TCP传输

timewait是什么?等两倍的msl,确保连接正常关闭,防止前一次的page丢失,可以异常关闭连接

丢包怎么办?重查

滑动窗口、流量控制

网络传输

HTTP/HTTP1.1

分层,兼容协议

http1.1就是比tcp专业些

HTTPS

解密出来依然是HTTP

SSL/TLS握手

非对称加密,把对称加密的算法加密起来。主要通过公钥和私钥来做的

刷抖音为什么又快又稳?

网络框架怎么给抖音提质

网络提速

HTTP2.0

多路服用,串行跟并行区别,在一个tcp上面跑多个http请求

丢包怎么办?对头阻塞:发生丢包,一直在重传这一个包 全部重传

QUIC/HTTP3.0

UDP or TCP? Kernel or Userspace? 选择了用户态

弱网传输优势(解决对头阻塞问题)

除了协议优化,网络路径能不能优化? 数据中心分布,边缘机房

同运营商访问

移动访问移动、电信访问电信(通过解析去做,中国特例出现情况)

静态资源(图片视频)路径

接到请求后先去访问边缘机房,看边缘机房有没有别人访问后的缓存,边缘机房无,就去汇集机房、再无就去核心机房

动态API(播放/评论接口) 路径优化(DSA)

对相邻机房做路径探测,最优路径

刷的快,但是容易挂?

网络稳定

容灾概念

  • 故障发生
  • 故障感知
  • 自动切换
  • 服务恢复

具体案例一

专线:把两个机房连接,自己拉线 外网:专线以外,通过internet连接

探测机房B的容量够1.1.1.1

预装sdk,降级容灾 云到端,云控不可以,web中

cache不通的时候返回上一次缓存,降级访问

没有容灾的故障怎么查?

故障排除

  • 故障明确
  • 故障止损
  • 分段排查

故障明确

上面业务?什么接口故障? 沟通是前提,防止大惊小怪。故障体系在哪?访问其他目标是否正常?是否是修改导致的异常?

故障止损

先止损再排查

  • 用户体验第一
  • 对公司收入的影响按照分钟甚至秒来计算

如何止损

  • 组件没有容灾
  • 降低

分段排查

  • 客户端排查 访问其他服务 其他客户端访问目标
  • 服务端排查 服务器啊
  • 中间链路排查

网络故障排查常用命令

  • dig查询DNS问题
  • ping/telnent/nmap 查询三层/四层连通性
  • traceroute排查中间链路
  • iptabels
  • tcpdump
案例

健康检查 个别用户报故障,生产环境大多是客户端的问题 某某地区的电缆被挖断 app故障->后端服务器反馈正常->网络转发设备异常->抓包->路由不对称

故障预防很重要

  • 监控报警
  • 故障演练/预警
  • 故障降级/止损

总结