linux核心ipv4網路部分分層結構及涉入源檔案

來源:互聯網
上載者:User

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.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章詳細闡述

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.