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

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

2016-07-24 10:56 357 查看
http://hi.baidu.com/amy_yeni/blog/item/c54003004d9a080b738da5b3.html
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.cetc  
     
IP层:处理网络层的操作,网络层用struct packet_type结构表示。文件主要有:/net/ipv4/ip_forward.cip_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
V3. 网络路径图、重要数据结构sk_buffer及路由介绍    linux-net.pdf 第2.1章 第2.3章 第2.4章    4. 从连接、发送、到接收数据包的过程     linux-net.pdf 第4、5、6章详细阐述


<script>window._bd_share_config={"common":{"bdSnsKey":{},"bdText":"","bdMini":"2","bdMiniList":false,"bdPic":"","bdStyle":"0","bdSize":"16"},"share":{}};with(document)0[(getElementsByTagName('head')[0]||body).appendChild(createElement('script')).src='http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion='+~(-new Date()/36e5)];</script>

阅读(1747) | 评论(1) | 转发(13) |

0
上一篇:linux 内核网络,数据接收流程图

下一篇:Linux Netfilter实现机制和扩展技术

相关热门文章
linux 常见服务端口

xmanager 2.0 for linux配置

【ROOTFS搭建】busybox的httpd...

openwrt中luci学习笔记

什么是shell

linux dhcp peizhi roc

关于Unix文件的软链接

求教这个命令什么意思,我是新...

sed -e "/grep/d" 是什么意思...

谁能够帮我解决LINUX 2.6 10...

给主人留下些什么吧!~~





GFree_Wind2012-03-21 12:02:13
转载文章在标题上注明转载为好。
回复 | 举报

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