BSD socket層: 這一部分處理BSD socket相關(guān)操作,每個(gè)socket在內(nèi)核中以struct socket結(jié)構(gòu)體現(xiàn)。這一部分的文件
主要有:/net/socket.c /net/protocols.c etc
INET socket層:BSD socket是個(gè)可以用于各種網(wǎng)絡(luò)協(xié)議的接口,而當(dāng)用于tcp/ip,即建立了AF_INET形式的socket時(shí),
還需要保留些額外的參數(shù),于是就有了struct sock結(jié)構(gòu)。文件主要
有:/net/ipv4/protocol.c /net/ipv4/af_inet.c /net/core/sock.c etc
TCP/UDP層:處理傳輸層的操作,傳輸層用struct inet_protocol和struct proto兩個(gè)結(jié)構(gòu)表示。文件主要
有:/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層:處理網(wǎng)絡(luò)層的操作,網(wǎng)絡(luò)層用struct packet_type結(jié)構(gòu)表示。文件主要有:/net/ipv4/ip_forward.c
ip_fragment.c ip_input.c ip_output.c etc.
數(shù)據(jù)鏈路層和驅(qū)動(dòng)程序:每個(gè)網(wǎng)絡(luò)設(shè)備以struct net_device表示,通用的處理在dev.c中,驅(qū)動(dòng)程序都在/driver/net目
錄下。
2. 兩臺(tái)主機(jī)建立udp通信所走過的函數(shù)列表
^
| 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. 網(wǎng)絡(luò)路徑圖、重要數(shù)據(jù)結(jié)構(gòu)sk_buffer及路由介紹
linux-net.pdf 第2.1章 第2.3章 第2.4章
4. 從連接、發(fā)送、到接收數(shù)據(jù)包的過程
linux-net.pdf 第4、5、6章詳細(xì)闡述
原文出自【比特網(wǎng)】,轉(zhuǎn)載請(qǐng)保留原文鏈接:http://soft.chinabyte.com/os/6/12297506.shtml