wireshark 抓包文件 http.mirror.azure.cn.pcapng 内容描述了使用浏览器访问 http://mirror.azure.cn/ 产生的网络传输数据,请根据文件内容回答以下题目
提示: 所有解答源码请放入一个公开 github 仓库,并给出可访问的 url
-
网络传输分析: 描述浏览器访问该 url 的整个流程,具体要求如下
- 描述须包括 IP 以上所有使用到的协议层,按照时间顺序进行描述
-
服务实现: 请使用任何后端编程语言,实现一个服务端程序,克隆站点 http://mirror.azure.cn/ 首页的返回结果,具体要求如下
- 请求该后端与直接请求 http://mirror.azure.cn/ 得到的 HTTP 层结果一致
- 运行环境使用 docker 容器进行封装,并给出启动命令
-
压力测试: 对第 2 步完成的服务端程序进行一分钟的压力测试,HTTP 请求地址为 /,并输出压力测试结果,具体要求如下
- 推荐使用 ApacheBench(Ab)
- 若使用其他压力测试工具或自己写程序进行测试,压力测试输出结果请按照 Ab 的结果
-
服务优化: 请根据第 3 步的结果,对服务端程序进行优化,具体要求如下
- 优化后,浏览器访问的页面渲染结果与优化前一致(目测)
- 优化后的压力测试结果须表现出更高的并发量和更低的延迟
- 请给出服务性能瓶颈分析与对应的优化方式
- 所有解答源码请放入公开 github 仓库,并给出可访问的 url
-
网络传输分析: wireshark 抓包文件 mysterious_networking_behavior.pcapng/mysterious_networking_behavior.txt 内容描述了一次客户端/服务端架构下的网络行为产生的网络传输数据 (.pcapng 与 .txt 文件内容等价), 请根据抓包文件回答以下问题,细节越多越好
- 详细描述客户端发起的每一次 DNS 请求和结果
- 说明客户端与服务端建立了多少个 TCP channel,分别是哪些 frame,分别完成了什么传输任务,为什么存在多个 TCP channel
- 选择几个 frame 详细说明一次 TCP 握手流程,需要包含具体 frame 内容
- 请说明服务端程序可以如何优化,以提升单个用户访问延迟,以及并发吞吐量
-
服务设计与实现: 仅使用 TCP socket 库,实现一个 HTTP 服务程序,监听 localhost:8080 端口,使用任意网页浏览器 (Chrome/Firefox/Safari等) 打开 http://localhost:8080,显示用户名/密码和对应输入框,以及登录按钮,点击后跳转页面,显示刚刚输入的用户名及密码
- 不限编程语言
- 整个服务程序为单个文件,不能包含资源文件
- 登录一次后,下次访问直接跳转至显示用户名密码的页面