丝袜足j国产在线视频456|亚洲精品白浆高清久久久久久|亚洲熟妇无码专区|丝袜国产污视频在线播放

  • 購(gòu)物 手機(jī)

    linux網(wǎng)絡(luò)協(xié)議棧分幾層

    2018-07-19 11:15:23 來(lái)源: 佰佰安全網(wǎng) 2593人閱讀
    導(dǎo)語(yǔ):

    網(wǎng)絡(luò)編程有很多,java是我們最常用的,也是最普遍的,與此同時(shí),linux也是非常受到程序員小編歡迎的。那么linux網(wǎng)絡(luò)協(xié)議棧分幾層您了解嗎?下面一起來(lái)認(rèn)識(shí)一下。

    linux網(wǎng)絡(luò)協(xié)議棧分幾層

    網(wǎng)絡(luò)在現(xiàn)如今離我們的生活很近,所以了解相關(guān)的網(wǎng)絡(luò)協(xié)議棧很重要。linux網(wǎng)絡(luò)協(xié)議棧分幾層?了解網(wǎng)絡(luò)安全常識(shí),首先就要了解計(jì)算機(jī)網(wǎng)絡(luò)安全有哪些基本注意事項(xiàng),下面佰佰安全網(wǎng)小編就帶您認(rèn)識(shí)一下吧。

    (一)驅(qū)動(dòng)程序?qū)?

    本文中以一個(gè)realtek8139系列網(wǎng)卡作為例子,因?yàn)槠潋?qū)動(dòng)只有一個(gè)c文件(/drivers/net/8139too.c),比較容易分析。讀者也可以參考e1000網(wǎng)卡的另一篇文章(點(diǎn)這里)。內(nèi)核版本基于2.6.11。

    驅(qū)動(dòng)程序加載/注冊(cè)主要包括以下的步驟:

    (a)將設(shè)備驅(qū)動(dòng)程序(pci_driver)添加到內(nèi)核驅(qū)動(dòng)程序鏈表中;

    (b)調(diào)用每個(gè)驅(qū)動(dòng)中的probe函數(shù)(其中重要一步就是初始化net_device對(duì)象)。

    pci_module_init是一個(gè)宏定義,實(shí)際上就等于pci_register_driver函數(shù)。(在2.6.30內(nèi)核版本中,直接變成了returnpci_register_driver(&rtl8139_pci_driver) )。pci_register_driver函數(shù)的注釋說(shuō)明了它的作用:register a new pci driver.Adds the driver structure to the list ofregistered drivers。

    (二)設(shè)備無(wú)關(guān)層/網(wǎng)絡(luò)協(xié)議層/協(xié)議無(wú)關(guān)接口socket層

    系統(tǒng)初始化的過(guò)程中會(huì)調(diào)用do_basic_setup函數(shù)進(jìn)行一些初始化操作。其中2.6.11內(nèi)核中就直接包括了driver_init()驅(qū)動(dòng)程序初始化,以及sock_init函數(shù)初始化socket層。然后do_initcalls()函數(shù)調(diào)用一組前綴為_(kāi)_init類(lèi)型(這個(gè)宏就表示為需要在系統(tǒng)初始化時(shí)執(zhí)行)的函數(shù)。與網(wǎng)絡(luò)相關(guān)的以__init宏標(biāo)記的函數(shù)有:net_dev_init初始化設(shè)備無(wú)關(guān)層;inet_init初始化網(wǎng)絡(luò)協(xié)議層。

    (a)net_dev_init(在文件/net/core/dev.c中):設(shè)備操作層

    staticint __init net_dev_init(void)

    {

    if (dev_proc_init())

    if(netdev_sysfs_init())

    INIT_LIST_HEAD(&ptype_all);

    for (i = 0; i <16; i++)

    INIT_LIST_HEAD(&ptype_base[i]);

    for (i = 0; i <ARRAY_SIZE(dev_name_head); i++)

    INIT_HLIST_HEAD(&dev_name_head[i]);

    for (i = 0; i <ARRAY_SIZE(dev_index_head); i++)

    INIT_HLIST_HEAD(&dev_index_head[i]);

    //Initialise the packet receive queues.

    for (i = 0; i < NR_CPUS; i++) {

    struct softnet_data*queue;

    queue =&per_cpu(softnet_data, i);

    skb_queue_head_init(&queue->input_pkt_queue);

    queue->throttle = 0;

    queue->cng_level = 0;

    queue->avg_blog = 10; /* arbitrary non-zero */

    queue->completion_queue = NULL;

    INIT_LIST_HEAD(&queue->poll_list);

    set_bit(__LINK_STATE_START,&queue->backlog_dev.state);

    queue->backlog_dev.weight =weight_p;

    queue->backlog_dev.poll =process_backlog;

    atomic_set(&queue->backlog_dev.refcnt, 1);

    }

    open_softirq(NET_TX_SOFTIRQ, net_tx_action, NULL);

    open_softirq(NET_RX_SOFTIRQ, net_rx_action, NULL);

    }

    這個(gè)函數(shù)所做的具體工作主要包括:初始化softnet_data這個(gè)數(shù)據(jù)結(jié)構(gòu)(每個(gè)CPU都有一個(gè)這樣的隊(duì)列,表示要交給此CPU處理的數(shù)據(jù)包);注冊(cè)網(wǎng)絡(luò)相關(guān)軟中斷(參見(jiàn)我關(guān)于軟中斷的文章,點(diǎn)這里)。

    (b)inet_init(在文件/net/ipv4/af_inet.c中):網(wǎng)絡(luò)層

    由于各種網(wǎng)絡(luò)協(xié)議是按照協(xié)議族(protocolfamily,PF或者address family,AF)為單位組織起來(lái)的。我們?cè)谶@里僅以Internet協(xié)議族(AF_INET或者PF_INET,在內(nèi)核中這二者是等價(jià)的)為例。

    有時(shí)候這一層又被稱為INETsocket層(對(duì)應(yīng)的數(shù)據(jù)結(jié)構(gòu)為struct sock),請(qǐng)注意與BSD socket層區(qū)別(對(duì)應(yīng)數(shù)據(jù)結(jié)構(gòu)為struct socket):BSD socket層提供一組統(tǒng)一的接口,與協(xié)議無(wú)關(guān);但具體到網(wǎng)絡(luò)層就必須與協(xié)議相關(guān)了,因此操作也會(huì)有一些不同。

    關(guān)于網(wǎng)絡(luò)安全小知識(shí),佰佰安全網(wǎng)小編為您介紹和普及這么多了,看完上面的介紹,您對(duì)“l(fā)inux網(wǎng)絡(luò)協(xié)議棧分幾層”這個(gè)問(wèn)題了解多少了呢?想了解更多關(guān)于網(wǎng)絡(luò)安全的其他相關(guān)知識(shí),敬請(qǐng)關(guān)注我們網(wǎng)站上的詳細(xì)內(nèi)容介紹。


    責(zé)任編輯:慕丹萍

    • 評(píng)論
    • 評(píng)論
    以下網(wǎng)友言論不代表佰佰安全網(wǎng)觀點(diǎn) 發(fā)表
    為更好的為公眾說(shuō)明安全知識(shí)的重要性,本站引用了部分來(lái)源于網(wǎng)絡(luò)的圖片插圖,無(wú)任何商業(yè)性目的。適用于《信息網(wǎng)絡(luò)傳播權(quán)保護(hù)條例》第六條“為介紹、評(píng)論某一作品或者說(shuō)明某一問(wèn)題,在向公眾提供的作品中適當(dāng)引用已經(jīng)發(fā)表的作品”之規(guī)定。如果權(quán)利人認(rèn)為受到影響,請(qǐng)與我方聯(lián)系,我方核實(shí)后立即刪除。

    小編推薦