Skip to content

Latest commit

 

History

History
117 lines (89 loc) · 7.8 KB

np2019.md

File metadata and controls

117 lines (89 loc) · 7.8 KB

2019年秋网络程序设计

本课程从实践入手循序渐进,以Linux系统环境和Linux内核源代码为例,将Linux网络相关命令用法、Socket网络编程、TCP协议、IP协议及路由表、ARP协议及ARP缓存、二层交换网络的学习转发和过滤数据库等互联网架构的关键环节一一解析,并通过MenuOS实验系统进行代码跟踪分析。最终理解分析打开一个网页背后互联网的工作过程,其中重点分为三个抽象层次:一是便于人类理解的记忆的编址方式DNS Naming;二是便于全球定位编址和路由的IP Networking;三是便于局域网中实际完成数据交换传输的Layer 2 Switching;同时在理解互联网体系结构的基础上探寻它的历史演化渊源,乃至发现它背后的设计哲学,解读未来网络的演进方向。

互联网概述

实验作业一:网络相关的命令工具研究报告

网络编程

实验作业二

构建调试Linux内核网络代码的环境MenuOS系统

实验作业三

实验作业四

Socket与系统调用深度分析http://edu.cnblogs.com/campus/ustc/np2019/homework/10175

  • Socket API编程接口之上可以编写基于不同网络协议的应用程序;
  • Socket接口在用户态通过系统调用机制进入内核;
  • 内核中将系统调用作为一个特殊的中断来处理,以socket相关系统调用为例进行分析;
  • socket相关系统调用的内核处理函数内部通过“多态机制”对不同的网络协议进行的封装方法; 请将Socket API编程接口、系统调用机制及内核中系统调用相关源代码、 socket相关系统调用的内核处理函数结合起来分析,并在X86 64环境下Linux5.0以上的内核中进一步跟踪验证。 完成一篇图文并茂、逻辑严谨、代码详实的实验报告。

TCP

实验作业五:深入理解TCP协议及其源代码

选择如下任一个问题,通过理论分析、源代码阅读和运行跟踪深入理解TCP协议完成一篇实验报告博客

  • TCP协议的初始化及socket创建TCP套接字描述符;
  • connect及bind、listen、accept背后的三次握手
  • send和recv背后数据的首发过程
  • close背后的连接终止过程 另外您也可以任选一个您感兴趣的角度比如封包构造和解析、拥塞控制、执行视图等来深入理解TCP协议

IP & ARP

L2 Switching

DNS

网络安全等级保护

互联网架构设计背后的渊源

参考资料