自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

解析TCP IP協(xié)議棧命令操作

網(wǎng)絡(luò) 網(wǎng)絡(luò)管理
這里我們講解的是Linux下TCP IP協(xié)議棧協(xié)議命令的使用。那么首先介紹TCP協(xié)議棧的命令編寫,然后是IP協(xié)議棧的規(guī)范。

在Linux方面,依然也有TCP IP協(xié)議棧特有的相關(guān)操作。那么這里我們就來談?wù)勥@些命令的使用。首先是TCP協(xié)議棧的命令編寫,另一個部分就是IP協(xié)議棧的命令設(shè)置。那么今天我們就將這兩部來分別進行講解一下。

分析tcp_v4_init,這個函數(shù)在net/ipv4/tcp_ipv4.c里面:

函數(shù)在net/ipv4/tcp_ipv4.c里面

函數(shù)在net/ipv4/tcp_ipv4.c里面

tcp_inode當(dāng)然就是一個inode節(jié)點了,而tcp_socket等于tcp_inode.u.socket_i,通過一個指針?biāo)麄冎赶蛲粋€內(nèi)存。tcp_socket是用來通信使用的,可以叫TCP IP協(xié)議棧當(dāng)中TCP的controlsocket或者是communication

socket,TCP IP協(xié)議棧當(dāng)中TCP的通信沒有相應(yīng)的socket的時候這個socket就充當(dāng)了socket的角色。比如在一個關(guān)閉端口上收到SYN時發(fā)送RST,或者是在三次握手的時候發(fā)送SYN(還沒有accept產(chǎn)生新的socket)

值得注意的是ops->create函數(shù)的調(diào)用,我們前面見過對于AF_INET來說這個回調(diào)函數(shù)是net/ipv4/af_inet.c的inet_create函數(shù),這個函數(shù)是用來創(chuàng)建一個socket的時候用的,由于函數(shù)比較長,這里先略過分析,這第一次的分析只是一個大致流程的熟悉而已。

由于有socket創(chuàng)建和通信,所以這段代碼是協(xié)議相關(guān)的,所以把這段代碼從原來的tcp.c里面提取了出來

下面是tcp_init函數(shù),它在net/ipv4/tcp.c里面,大體上來說就是創(chuàng)建了幾個hash表和bucket.這段代碼創(chuàng)建了下面幾個全局對象:

全局對象

全局對象

其中ehash代表establishedhash,bhash代表bindhash,它們當(dāng)然分別是所有的滿足TCP_ESTABLISHED<=sk->state

再下來就是icmp_init函數(shù)了,在net/ipv4/icmp.c里面,事實上,如果把tcp_v4_init里面的IPPROTO_TCP替換成IPPROTO_ICMP,基本都是一樣的。剩下的proc_net_register函數(shù)前面已經(jīng)講過了,這里就不說了。

到這里為止,Linux下面TCP IP協(xié)議棧當(dāng)中IP的開始的工作我們基本應(yīng)該有了個了解,其中有幾個關(guān)鍵的函數(shù):

dev_add_pack:注冊一個鏈路層以上的處理函數(shù),一般是用來使用新的網(wǎng)絡(luò)層協(xié)議的,不過如果注冊時重復(fù)也是可以的,這時候系統(tǒng)會設(shè)置一個copy位。如果是ETH_P_ALL則會接收所有的數(shù)據(jù)包。加入的元素保存在ptype_all鏈表和ptype_basehash鏈表中間。

inet_add_protocol:注冊一個建立在IP層以上的協(xié)議,例如TCP和UDP等

proc_net_register(還有類似的proc_register):

在/proc/net目錄下面創(chuàng)建一個子目錄項來使管理者能通過文件系統(tǒng)得到統(tǒng)計信息

現(xiàn)在迷惑的地方還有很多,一個是結(jié)構(gòu)體sk_buff的每個成員的意義,一個是結(jié)構(gòu)體sock的意義,不過這兩個問題應(yīng)該在以后看多了就知道了。

責(zé)任編輯:佟健 來源: 網(wǎng)絡(luò)整理
相關(guān)推薦

2010-06-13 14:54:40

TCP IP協(xié)議棧linux

2010-09-08 15:11:36

TCP IP協(xié)議棧

2014-10-15 09:14:24

IP

2010-09-27 13:25:58

TCP IP協(xié)議棧

2010-09-08 15:24:28

TCP IP協(xié)議棧

2010-09-08 15:34:27

TCP IP協(xié)議棧

2019-09-30 09:28:26

LinuxTCPIP

2010-06-13 13:39:46

TCP IP協(xié)議棧

2021-07-06 21:29:16

TCPIP協(xié)議棧

2021-07-09 08:55:23

LinuxTCPIP

2010-09-09 14:43:08

TCP IP協(xié)議棧

2020-07-09 08:14:43

TCPIP協(xié)議棧

2019-08-21 05:48:06

TCPIP協(xié)議棧

2010-06-09 13:49:13

重置TCP IP協(xié)議

2010-09-08 15:18:54

單片機TCP IP協(xié)議棧

2010-06-19 13:32:36

TCP IP協(xié)議棧

2010-06-19 14:10:35

TCP IP協(xié)議棧

2021-05-12 00:07:27

TCPIP協(xié)議

2010-06-13 14:18:24

TCP IP協(xié)議

2014-11-21 09:16:23

TCPIP
點贊
收藏

51CTO技術(shù)棧公眾號