Skip to content

Repository files navigation

THU Computer Networking Sample Code Repository

清华大学计算机网络课程 —— 样本代码仓库

Python

简介

本仓库基于 Kurose & Ross《计算机网络:自顶向下方法》体系构建,提供 17 个可运行 Python 实现,涵盖 12 章、4 大知识领域。Python 是网络编程的最佳语言 — socket/scapy/http.server 标准库让协议实现简洁直观。适合:

  • 清华计算机网络课程的学习者
  • 408/826 计算机考研复习
  • TCP/UDP/HTTP/DNS/路由等协议的动手实践
  • 网络/后端方向的面试准备

仓库结构 (4 部 12 章)

cn/
├── Hello.py                              # 仓库入口
│
╔══ Part I: 基础篇 (01-03) — 协议栈/应用层/传输层 ═══════════════════════╗
║                                                                        ║
├── 01_introduction/                      # 网络基础
│   └── osi_tcpip.py                      #   OSI/TCP-IP模型 + 封装 + 延迟计算
│
├── 02_application/                       # 应用层协议
│   ├── http_server.py                    #   HTTP 客户端+服务器
│   └── dns_resolver.py                   #   DNS 解析 & 层级查询
│
├── 03_transport/                         # 传输层
│   ├── udp_tcp_socket.py                 #   UDP vs TCP socket 编程对比
│   ├── tcp_reliable.py                   #   TCP 可靠传输 (停等/重传/ACK)
│   └── congestion_control.py             #   TCP 拥塞控制 (Reno/CUBIC/BBR)
║                                                                        ║
╚══════════════════════════════════════════════════════════════════════════╝

╔══ Part II: 网络层 (04-06) — IP/路由/SDN ═══════════════════════════════╗
║                                                                        ║
├── 04_network_data/                      # IP 数据平面
│   ├── ip_addressing.py                  #   IPv4 地址/子网/NAT
│   └── packet_forwarding.py              #   分片/校验和/路由表查找
│
├── 05_network_control/                   # 路由控制平面
│   └── routing_algorithms.py             #   Dijkstra(OSPF) vs DV(RIP) vs BGP
│
├── 06_sdn/                               # 软件定义网络
│   └── sdn_openflow.py                   #   OpenFlow 流表 & Controller
║                                                                        ║
╚══════════════════════════════════════════════════════════════════════════╝

╔══ Part III: 链路与物理层 (07-09) — MAC/ARP/WiFi/编码 ═══════════════════╗
║                                                                        ║
├── 07_link_layer/                        # 链路层
│   └── mac_arp.py                        #   ARP 协议 & 缓存 & 欺骗
│
├── 08_wireless/                          # 无线网络
│   └── wifi_csma_ca.py                   #   CSMA/CA & 二进制指数退避
│
├── 09_physical/                          # 物理层
│   └── encoding_modulation.py            #   曼彻斯特/NRZ + Shannon 定理
║                                                                        ║
╚══════════════════════════════════════════════════════════════════════════╝

╔══ Part IV: 高级主题 (10-12) — 安全/多媒体/数据中心 ═════════════════════╗
║                                                                        ║
├── 10_security/                          # 网络安全
│   └── tls_handshake.py                  #   Diffie-Hellman + TLS 1.3 + 证书链
│
├── 11_multimedia/                        # 多媒体网络
│   └── streaming_qos.py                  #   DASH自适应流 + QoS分类
│
├── 12_datacenter/                        # 数据中心
│   └── cdn_cloud.py                      #   一致性哈希 + CDN + 负载均衡
║                                                                        ║
╚══════════════════════════════════════════════════════════════════════════╝

快速开始

# 所有文件可直接运行
python3 01_introduction/osi_tcpip.py

# TCP/UDP 演示
python3 03_transport/udp_tcp_socket.py

# HTTP 服务器
python3 02_application/http_server.py

各章核心内容速查

Part 章节 核心内容 关键API/概念
I 网络基础 OSI/TCP-IP、封装、延迟 四类延迟公式
I 应用层 HTTP服务器、DNS解析 socket, http.server
I 传输层 UDP vs TCP、可靠传输、拥塞控制 SOCK_DGRAM, Reno/CUBIC
II IP数据平面 IPv4/CIDR/子网/NAT/分片 ipaddress, checksum
II 路由控制 Dijkstra(OSPF)、DV(RIP)、BGP 链路状态 vs 距离向量
II SDN OpenFlow流表、控制器 Match-Action 流水线
III 链路层 MAC/ARP/ARP欺骗/以太网帧 ARP缓存, arp -a
III 无线 CSMA/CA、指数退避、802.11ax RTS/CTS, WiFi 6
III 物理层 Manchester编码、Shannon定理 信道容量 C=B·log₂(1+SNR)
IV 安全 DH密钥交换、TLS 1.3、证书链 ECDHE, 证书验证
IV 多媒体 DASH自适应流、DiffServ QoS 码率自适应, DSCP
IV 数据中心 一致性哈希、CDN、Fat-Tree 虚拟节点, VXLAN

参考资料

构建说明

本仓库由以下 AI 协作完成:

  • 代码架构与实现: Claude (Anthropic)
  • 推理引擎: DeepSeek V4 Pro (1M 上下文)

所有代码经人工审查确认,AI 工具仅作为生产力辅助。

许可

MIT License

About

清华计算机网络课程 | Python实现 | TCP/UDP/HTTP/DNS/路由/SDN/TLS/流媒体等协议模拟 | 12章17文件 | 基于Kurose&Ross自顶向下教材

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages