Linux内核修改(重学习) 收藏
1.Linux的基本体系结构
2.Linux/kernel文件目录
asm.s:处理系统硬件异常造成的终端。
exit.c:处理进程终止的系统调用。
fork.c:创建进程。
mktime.c:计算程序开机时间,仅在系统初始化时被调用一次。
sys.c:系统调用函数。
system_call.s:实现Linux调用相应C函数
3. TCP/IP协议栈的数据格式说明
SOCK_STREAM:可靠双向字节流(TCP)
SOCK_DGAM:不可靠的数据报(UDP)
SOCK_RAW:不可靠的网络层数据报(ICMP, IGMP, IP raw)
------包含在protosw结构中
4.IP层处理流程
5.协议栈源代码组织
插口层 BSD Socket /net/socket.c
/net/protocol.c
INET Socket /ipv4/protocl.c
/ipv4/af_inet.c
/net/ipv4/core/sock.c
协议层 TCP/UDP /net/ipv4/udp.c datagram.c tcp_input.c tcp_output.c tcp.c...
IP /net/ipv4/ip_forward.c ip_input.c ip_output.c
接口层 Ethernet
6.重要源文件:
Af_inet.c:主要是数据包处理和协议的初始化
7.重要结构体说明:
sk_buff:网络包保存在这个结构中,协议栈的各个层的头部信息、用户数据信息(有效载荷)和其他辅助信息都保存在这个结构中。
socket:用户接口中的socket接口
sock:socket接口的具体实现
8.滑动窗口算法解析
->加性增,剩性减
->慢启动