資源描述:
《linux-tcp ip協(xié)議棧源碼閱讀筆記》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫(kù)。
1、linux-TcpIP協(xié)議棧源碼閱讀筆記一.linux內(nèi)核網(wǎng)絡(luò)棧代碼的準(zhǔn)備知識(shí)1.linux內(nèi)核ipv4網(wǎng)絡(luò)部分分層結(jié)構(gòu):BSDsocket層:這一部分處理BSDsocket相關(guān)操作,每個(gè)socket在內(nèi)核中以structsocket結(jié)構(gòu)體現(xiàn)。這一部分的文件主要有:/net/socket.c/net/protocols.cetcINETsocket層:BSDsocket是個(gè)可以用于各種網(wǎng)絡(luò)協(xié)議的接口,而當(dāng)用于tcp/ip,即建立了AF_INET形式的socket時(shí),還需要保留些額外的參數(shù),于是就有了structs
2、ock結(jié)構(gòu)。文件主要有:/net/ipv4/protocol.c/net/ipv4/af_inet.c/net/core/sock.cetcTCP/UDP層:處理傳輸層的操作,傳輸層用structinet_protocol和structproto兩個(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
3、/ipv4/tcp_output.c?/net/ipv4/tcp_timer.cetc???????IP層:處理網(wǎng)絡(luò)層的操作,網(wǎng)絡(luò)層用structpacket_type結(jié)構(gòu)表示。文件主要有:/net/ipv4/ip_forward.cip_fragment.cip_input.cip_output.cetc.數(shù)據(jù)鏈路層和驅(qū)動(dòng)程序:每個(gè)網(wǎng)絡(luò)設(shè)備以structnet_device表示,通用的處理在dev.c中,驅(qū)動(dòng)程序都在/driver/net目錄下。2.兩臺(tái)主機(jī)建立udp通信所走過(guò)的函數(shù)列表?^
4、???????sy
5、s_read????????????????fs/read_write.c
6、???????sock_read???????????????net/socket.c
7、???????sock_recvmsg????????????net/socket.c
8、???????inet_recvmsg????????????net/ipv4/af_inet.c
9、???????udp_recvmsg?????????????net/ipv4/udp.c
10、???????skb_recv_datagram???????net/co
11、re/datagram.c
12、???????-------------------------------------------
13、???????sock_queue_rcv_skb??????include/net/sock.h
14、???????udp_queue_rcv_skb???????net/ipv4/udp.c
15、???????udp_rcv?????????????????net/ipv4/udp.c
16、???????ip_local_deliver_finishnet/ipv4/ip_input.c
17、??
18、?????ip_local_deliver????????net/ipv4/ip_input.c
19、???????ip_recv?????????????????net/ipv4/ip_input.c
20、???????net_rx_action???????????net/dev.c
21、???????-------------------------------------------
22、???????netif_rx????????????????net/dev.c
23、???????el3_rx?????????????
24、?????driver/net/3c309.c
25、???????el3_interrupt???????????driver/net/3c309.c==========================
26、???????sys_write???????????????fs/read_write.c
27、???????sock_writev?????????????net/socket.c????????????????????
28、???????sock_sendmsg????????????net/socket.c
29、????
30、???inet_sendmsg????????????net/ipv4/af_inet.c
31、???????udp_sendmsg?????????????net/ipv4/udp.c
32、???????ip_build_xmit???????????net/ipv4/ip_output.c
33、???????output_maybe_reroute????net/ipv4/ip_