网络内核实验
实验目标
1.理解内核网络结构
2.使用包过滤或者防火墙来获得实际的IP包管理技术
3.熟悉如何在内核使用套接字
概述
现代的操作系统使用TCP/IP栈。内核实现了传输层,应用层协议在用户空间实现。
用户空间的网络
在用户空间中,网络交流的抽象是套接字。套接字抽象了一个交流通道,并且是内核TCP/IP栈的接口。一个IP套接字和一个IP地址和端口关联。使用套接字的常用函数有,创建(socket), 初始化(bind), 连接(connect),等待连接(listen, accept),关闭连接(close)。
对于TCP套接字,网络交流是通过read/write或者recv/send函数的,对于UDP,是recvfrom/sendto函数。使用raw套接字在用户空间实现TCP/IP栈是可能的。或者在内核使用应用层。
内核网络
内核网络提供了三个基本的数据结构,用来进行网络包的工作。struct socket, struct sock, 和struct sk_buff。
前两个是套接字的抽象。