前言

虽然之前了解过网络部分的相关知识,但是这次还是学到了很多有用的东西。

第五周咯!大家加油!马拉松最难的就是中途,中间这段路坚持过去,下面顺其自然也能走下去了,小伙伴们加油!

整体流向

首先介绍了基础,网络的分层模型和协议栈,这块之前学的还可以,直接过。

性能指标:

这块有点意思,主要学习到 网络吞吐和 PPS

sar -n DEV 1

以前可能对于检测网络只有一个概念,那就是 ping,ping 通了,那就 ok 了,如果 ping 不通,那就有问题,如果有丢包那就是网络不好,没有具体的指标来衡量网络的性能。

sar 这个命令确实挺好用的。

C10K:

这个问题之前也有了解过,但是对于多路复用的理解之前还是不行的,对于 select、poll、epoll 加深理解。

评估:

带宽、延时、吞吐量、PPS

在实际中其实这个对于我们来说用到的比较少,因为在实际中要不就是部署机房,全是内网,也没有网络速度上的硬性限制;要不就是用的云厂商的服务器,那么带宽就是看钱了,钱多自然就能把带宽拉上去,对于这些指标的监控也完全来源于云厂商给到的监控数值

DNS:

对于 dns 之前也就是停留在配置,买个域名做个解析,学习后发现dig trace确实好用,针对很多内网的环境,经常会有内网中的一些域名解析的配置,用这个工具能很快定位到问题。

tcpdump、Wireshark:

tcpdump 抓包之前就用过,但是每次用的时候还是要去百度或者查一下手册,记不住,还是用的不多,特别是在学习容器网络的配置的时候,有的时候发现网络不通,就是需要抓包看走的路径,走到哪一个部分才有问题。

小结

  • 对于多路复用,之后还能看看 go 里面的实现源码,这样可能进一步了解
  • 对于 TCP 的几个状态还是要熟悉一下,出现大量 TIME_WAIT 或者 SYN_RCVD 这样状态的时候要警惕
  • 可以了解一下 nginx 的实现,看看它对于网络上面做了什么操作,搞的这么快