本系列Lab为北京大学《计算机网络》(黄群)课程设计,基于N2Sys实验室自主设计的OmniStack协议栈框架进行设计
本Lab分为一个预备阶段以及四个主要阶段
- Lab0: 我们希望你至少对epoll编程以及CMake的使用有一点基础
- Lab1: 在应用层实现一个简单的myftp协议(注意这里为了简化,并没有实现FTP协议,我们自行定义了一个成为myftp的协议)
- Lab2: 在传输层实现一个基于UDP的可靠传输协议
- Lab3: 在网络层实现一个简易NAT设备
- Lab4; 在链路层实现一个虚拟交换机
在开始完成该系列Lab之前,我们会在Lv0中简单介绍该Lab需要使用到的基本的技术
Github和Gitd的基本使用 基于Epoll的Socket编程 CMake的基本使用方法 同时有一些知识我们希望你在开始本系列Lab之前至少有一些基本的了解:
在本次项目的开发过程中,我们会使用到一些C++的高级语法特性,当然为了避免有同学不理解,我们会在每次出现高级语法特性的地方特别注明 Socket的基本使用方法 在完成本系列Lab后,我们相信你对以下的知识都应当有了基本的认知或者更加深入的了解:
CMake的使用
CMake是个一个开源的跨平台自动化建构系统
相信同学们在ics的课程中都已经了解过了Make这个系统,CMake也是类似的东西
Socket编程
TCP/IP协议栈的分层结构以及这样设计的意图
网卡的工作模型
一些网络中除了终端机器以外的一些其他设备的工作行为