了解计算机网络的基本原理,设计并实现一个网络代理。
基础要求: 简单代理服务器
任选实现:
建议第一周完成基础任务,后面三周中每周完成 2’–3’ 的任务。
请务必提前规划好这些功能之间的相互作用, 并考虑这些相互作用对程序整体架构带来的影响! 建议实现之前先与助教讨论你的选题和大体实现思路。
以上的工作量仅仅是助教的估计; 如果认为此估计不合理,请及时向助教提出。
ACM 班:
- 简单代理服务器 25%
- 自选功能
- 实现共 6’ 的功能可以得到 55%
- 实现共 9’ 的功能可以得到 65%
- Code review 20%
工科:
- 简单代理服务器 40%
- 自选功能
- 实现共 2’ 的功能可以得到 40%
- 实现共 3’ 的功能可以得到 50%
- Code review 20%
最多可以得到 110% 的分数。
参考书:
- Beej’s Guide to Network Programming
- High Performance Browser Networking
- 书中内容远超出此次项目的要求, 只看 Networking 101 及 HTTP 中的一部分即可
- 中文版 pdf
- TCP/IP Tutorial and Technical Overview
协议文档:
- RFC 1928: SOCKS Protocol Version 5
- RFC 9293: Transmission Control Protocol (TCP)
- RFC 768: User Datagram Protocol
- RFC 9112: HTTP/1.1
- HTTP on MDN
- RFC 8446: The Transport Layer Security (TLS) Protocol Version 1.3
欢迎补充。
https://notes.sjtu.edu.cn/s/EM0Ahj4tB
2019 级 ACM 班的许烨辰、周聪为本项目提供了主要思路和很多建议。