麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 系統 > Linux > 正文

Linux的TCP/IP協議棧

2020-04-27 19:01:07
字體:
來源:轉載
供稿:網友

下面是分析tcp_v4_init的時候了,這個函數在net/ipv4/tcp_ipv4.c里面:
   


    tcp_inode當然就是一個inode節點了,而tcp_socket等于tcp_inode.u.socket_i,
   
    通過一個指針他們指向同一個內存。
   
    tcp_socket是用來通信使用的,可以叫TCP的controlsocket或者是communication
   
    socket,當TCP通信沒有相應的socket的時候這個socket就充當了socket的角色。比如在一個關閉端口上收到SYN時發送RST,或者是在三次握手的時候發送SYN(還沒有accept產生新的socket)
   
    值得注意的是ops->create函數的調用,我們前面見過對于AF_INET來說這個回調函數是net/ipv4/af_inet.c的inet_create函數,這個函數是用來創建一個socket的時候用的,由于函數比較長,這里先略過分析,這第一次的分析只是一個大致流程的熟悉而已。
   
    由于有socket創建和通信,所以這段代碼是
協議相關的,所以把這段代碼從原來的tcp.c里面提取了出來
   
    下面是tcp_init函數,它在net/ipv4/tcp.c里面,大體上來說就是創建了幾個hash表和bucket.這段代碼創建了下面幾個全局對象:
   
    tcp_openreq_cachep
   
    tcp_bucket_cachep
   
    tcp_timewait_cachep
   
    tcp_ehash
   
    tcp_bhash
   
    其中ehash代表establishedhash,bhash代表bindhash,它們當然分別是所有的滿足TCP_ESTABLISHED<=sk->state<TCP_CLOSE狀態的SOCK.但是我不清楚bucket在這里是什么意思。anyoneknows?那幾個cachep的作用也不是很清楚,特別是第二個,根本摸不著頭腦。由于整個函數主要是內存分配和錯誤處理,這里不貼了。
   
    再下來就是icmp_init函數了,在net/ipv4/icmp.c里面,事實上,如果把tcp_v4_init里面的IPPROTO_TCP替換成IPPROTO_ICMP,基本都是一樣的。剩下的proc_net_register函數前面已經講過了,這里就不說了。
   
    到這里為止,Linux下面IP棧的開始的工作我們基本應該有了個了解,其中有幾個關鍵的函數:
   
    dev_add_pack:注冊一個鏈路層以上的處理函數,一般是用來使用新的網絡層
(責任編輯:武林網)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 日韩午夜一区二区三区 | 久久久视频免费观看 | 午夜视频你懂的 | 日本网站在线播放 | 最近中文字幕一区二区 | 国产一区二区三区精品在线观看 | 羞羞色在线观看 | 欧美女优一区 | 成人9禁啪啪无遮挡免费 | 成人羞羞视频在线观看免费 | 曰韩毛片 | 国产午夜亚洲精品午夜鲁丝片 | 欧美性受xxxx人人本视频 | 特级黄一级播放 | 中文字幕11 | 在线中文字幕不卡 | 92看片淫黄大片一级 | 成人在线网站 | 小视频免费在线观看 | 极品美女一级毛片 | 欧美精品一区自拍a毛片在线视频 | 狠狠操视频网站 | 91在线视频观看 | 毛片韩国 | 九草av| 午夜精品老牛av一区二区三区 | 国产一级毛片不卡 | 毛片免费视频观看 | 男女无遮挡羞羞视频 | 欧美成人性色 | 欧美视频国产 | 久久国产28 | 一级做a爱片性色毛片高清 日本一区二区在线看 | 国产中出在线观看 | 草操视频 | 成人短视频在线播放 | 91网在线播放 | 亚洲免费观看视频 | 久久影院免费观看 | 亚洲欧美日韩免费 | 日韩欧美高清片 |