资 源 简 介
将TCP/IP协议从linux内核中摘出来,作为一个独立的模块运行(为与TCP/IP一起运行,我修改了IP协议号和TCP协议号部分,命名为UCP/UNP,协议簇编号为28,三层协议号修改为0x7800,四层协议号修改为66)。由于时间有限,所以开发出的模块目前只能用于两个主机之间的通信。(我做这项工作最初是考虑用在协议隔离传输上)
优点:
1、直接在linux-2.6.18内核上修改过来,后移植到linux-2.6.26内核。便于熟悉内核的人阅读;
2、两个通信的接口可以不用配IP地址;
3、已经过测试,没有内存泄漏,小包效率不高,整体性能略低于TCP/IP
不足:
1、不能多机通信(缺arp相关的机制);
2、没有接口事件处理的相关机制;
3、虽然不影响使用,但是,经常会报“Attempt to release UCP socket in state 10”。即释放处于listen状态的socket。
4、本人对linux内核和TCP/IP协议栈都不是很熟,很多代码写的比较混乱,并尽量参考了原TCP/IP协议源码
5、由于条件有限,没有在复杂应用环境下测试,仅在单一运行环境中测试。最长测试时间为4天。
6、模块引用计数器不正常
请在遵守GPL的情况下,随意修改使用。但请把补充、完善、修正的地方发邮件告诉我,非常感谢。
文 件 列 表
nnn
checksum.h
ip_forward.c
inet_connection_sock.c
tcp_cong.c
tcp_ipv4.c
af_inet.c
inet_common.h
inet_hashtables.c
socketsend.c
inet_sock.h
inetpeer.c
sockettest.c
af_inet.h
modules.order
ip_fragment.c
sockettest
ip.h
tcp.c
Makefile
protocol.c
socketsend
tcp_timer.c
tcp.h
tcp_minisocks.c
ip_output.c
config-2.6.26-2-686
tcp_output.c
inetpeer.h
ip_input.c
my_buff.h
tcp_input.c
globalvar.c
arp.h
inet_timewait_sock.c
arp.c
protocol.h
tcp_states.h
Module.symvers