您的位置:首页 > 理论基础 > 计算机网络

ipv4网络部分分层结构及涉入源文件

2017-03-27 19:56 134 查看
linux内核ipv4网络部分分层结构:

BSD socket层: 这一部分处理BSD socket相关操作,每个socket在内核中以struct socket结构体现。这一部分的文件

主要有:/net/socket.c /net/protocols.c etc

INET socket层:BSD socket是个可以用于各种网络协议的接口,而当用于tcp/ip,即建立了AF_INET形式的socket时,

还需要保留些额外的参数,于是就有了struct sock结构。文件主要

有:/net/ipv4/protocol.c /net/ipv4/af_inet.c /net/core/sock.c etc

TCP/UDP层:处理传输层的操作,传输层用struct inet_protocol和struct proto两个结构表示。文件主要

有:/net/ipv4/udp.c /net/ipv4/datagram.c /net/ipv4/tcp.c /net/ipv4/tcp_input.c /net/ipv4//tcp_output.c /net/ipv4/tcp_minisocks.c /net/ipv4/tcp_output.c /net/ipv4/tcp_timer.c

etc  

     
IP层:处理网络层的操作,网络层用struct packet_type结构表示。文件主要有:/net/ipv4/ip_forward.c

ip_fragment.c ip_input.c ip_output.c etc.

数据链路层和驱动程序:每个网络设备以struct net_device表示,通用的处理在dev.c中,驱动程序都在/driver/net目

录下。

2. 两台主机建立udp通信所走过的函数列表

^

|        sys_read                 fs/read_write.c

|        sock_read                net/socket.c

|        sock_recvmsg             net/socket.c

|        inet_recvmsg             net/ipv4/af_inet.c

|        udp_recvmsg              net/ipv4/udp.c

|        skb_recv_datagram        net/core/datagram.c

|        -------------------------------------------

|        sock_queue_rcv_skb       include/net/sock.h

|        udp_queue_rcv_skb        net/ipv4/udp.c

|        udp_rcv                  net/ipv4/udp.c

|        ip_local_deliver_finish net/ipv4/ip_input.c

|        ip_local_deliver         net/ipv4/ip_input.c

|        ip_recv                  net/ipv4/ip_input.c

|        net_rx_action            net/dev.c

|        -------------------------------------------

|        netif_rx                 net/dev.c

|        el3_rx                   driver/net/3c309.c

|        el3_interrupt            driver/net/3c309.c

==========================

|        sys_write                fs/read_write.c

|        sock_writev              net/socket.c                    

|        sock_sendmsg             net/socket.c

|        inet_sendmsg             net/ipv4/af_inet.c

|        udp_sendmsg              net/ipv4/udp.c

|        ip_build_xmit            net/ipv4/ip_output.c

|        output_maybe_reroute     net/ipv4/ip_output.c

|        ip_output                net/ipv4/ip_output.c

|        ip_finish_output         net/ipv4/ip_output.c

|        dev_queue_xmit           net/dev.c

|        --------------------------------------------

|        el3_start_xmit           driver/net/3c309.c

V

3. 网络路径图、重要数据结构sk_buffer及路由介绍

    linux-net.pdf 第2.1章 第2.3章 第2.4章

    

4. 从连接、发送、到接收数据包的过程

     linux-net.pdf 第4、5、6章详细阐述

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: