您正在查看 "源代码发布" 分类下的文章
2007年01月06日 星期六 下午 05:42
基本实现到网络层为止的所有功能,距上一版本后,主要增加对原始套接字(SOCK_RAW)的支持,IGMP和多播功能的支持,FIB也已经基本补充完整。还缺少一些不常用的功能,在后续的实现传输层协议的过程中,会根据需要加上。
点击跳转到下载页面 |
2006年11月20日 星期一 下午 11:22
由于fib(信息转发表)部分的实现跟IP协议的关系极为密切,该版本只实现fib的基本结构,和发送路由查询功能,关于路由规则管理,和输入路由查询,以及整个完整的网络层的配合,与IP协议一起实现,下面是下载地址:
点击跳转到下载页面 |
2006年11月05日 星期日 下午 03:37
ARP缓存表arp_tbl由协议栈在运行期间自动维护,包括邻居新建,更新,回收等。同时,TCP/IP协议栈的实现中也提供了三个命令,可以用来由用户维护arp_tbl,这三个命令分别是SIOCDARP(删除arp_tbl中的一个邻居),SIOCSARP(设置arp_tbl中的一个邻居),SIOCGARP(获取arp_tbl中的一个邻居)。用户使用系统调用ioctl来传递这三个命令,命令参数是结构体struct arpreq,其定义如下:
struct arpreq {
struct sockaddr arp_pa; |
2006年10月28日 星期六 下午 05:00
概述
本版本是在上次dummy版的基本上的继续开发,基本保持了整个代码结构未作变动。新增代码集中在/datalink/devinet.c和core/dev.c两个文件中。另外application中新增一个子目录ifconfig,这是一个简化版的ifconfig程序,只提供对MY_PF_INET域下的网络设备进行操作,操作界面跟Linux的系统工具ifconfig保持完全一致。下面是源代码下载地址:
|
2006年09月26日 星期二 上午 07:20
5、mynetwork模块
这是网络层模块,一个完整的网络层,它是相当复杂的,不仅包含IP协议,ARP协议,还有ICMP,IGMP等附属协议。该模块当前只为dummy提供网络层支持,所以代码就显得相当简单。
dummy没有网络层协议首部。所以ip_append_data_dummy函数在构建网络数据报skb时,只需要把传输层首部DUMMY_HEADER和应用数据拷贝到skb中即可。该函数最后把构建好的skb放入写缓冲队列。ip_push_pending_frames_dumm |
2006年09月22日 星期五 下午 08:18
1、概述
英文单词dummy是虚假的意思,dummy版的TCP/IP module就是实现一个虚假的传输层协议,该协议不能完成任何实际的网络通讯。它通过module自身提供的一个经过改造的环回网络设备驱动程序mylo,展示网络数据在TCP/IP协议栈中发送和接收的整个流程。其意义在于为后续的实际的STREAM, DGRAM, RAW的开发提供一个基本的程序框架,以及初步验证这个框架的可行性,同时也帮助更好的理解2.6内核中整个TCP/IP协议栈的实现原理。
|
2006年08月26日 星期六 上午 09:53
非常感谢很多朋友一直以来的支持,经过近半年的准备,加上整整半年的争分夺秒的奋战,利用工作之余的时间,终于在linux 2.6.16内核上,以一个内核模块的形式成功运行起了一个TCP/IP协议栈。当然,目前还有很多不完善之处,也有很多不稳定的地方,在接下来的时间里,我会不断地去完善它。
目前,该模块上能够进行基本的TCP,UDP和原始套接字的通讯,能够进行一部分的协议栈参数设置;能通过icmp进行如端口不可达,目的主机不可达等一些基本错误的处理;能进行简单的组播。但每一部分都 |
|
|