Skip to content

Latest commit

 

History

History
69 lines (52 loc) · 4.85 KB

np2019.md

File metadata and controls

69 lines (52 loc) · 4.85 KB

2019年秋网络程序设计

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

互联网概述

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

网络编程

实验作业二

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

实验作业三

  • glibc提供的系统调用函数API
  • int 0x80、系统调用号及参数传递过程
  • 保护现场与恢复现场
  • 系统调用内核处理函数
  • 使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用
  • 分析system_call中断处理过程
    • start_kernel --> trap_init --> idt_setup_traps --> 0x80--entry_INT80_32
    • 在5.0内核int0x80对应的中断服务例程是entry_INT80_32,而不是原来的名称system_call了。

参考资料