溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

SylixOS之QoS原理

發(fā)布時間:2020-06-28 20:46:48 來源:網(wǎng)絡(luò) 閱讀:225 作者:stone927 欄目:軟件技術(shù)

1 QoS簡介

       QoS(Quality of Service,服務(wù)質(zhì)量)指一個網(wǎng)絡(luò)能夠利用各種基礎(chǔ)技術(shù),為指定的網(wǎng)絡(luò)通信提供更好的服務(wù)能力,是網(wǎng)絡(luò)的一種安全機制,是用來解決網(wǎng)絡(luò)延遲和阻塞等問題的一種技術(shù)。在正常情況下,如果網(wǎng)絡(luò)只用于特定的無時間限制的應(yīng)用系統(tǒng),并不需要QoS,比如Web應(yīng)用,或E-mail設(shè)置等。但是對關(guān)鍵應(yīng)用和多媒體應(yīng)用就十分必要。當(dāng)網(wǎng)絡(luò)過載或擁塞時,QoS 能確保重要業(yè)務(wù)量不受延遲或丟棄,同時保證網(wǎng)絡(luò)的高效運行。如提高QQ的所有數(shù)據(jù)報文優(yōu)先級并設(shè)置dont_drop選項,保證QQ在網(wǎng)絡(luò)環(huán)境較差時不掉線。


2 QoS操作方法

      QoS相關(guān)的操作命令有三個,添加(qosruleadd)、刪除(qosruledel)和查看(qoss)。


2.1 添加

      如下是一條添加ip規(guī)則命令:

      # qosruleadd  en1  ip  192.168.31.1  192.168.31.5  SRC  5  no

      其中“en1”表示網(wǎng)絡(luò)接口,“ip”表示規(guī)則針對的數(shù)據(jù)包類型,后面緊跟IP地址范圍。IP地址范圍之后為方法及表示這條規(guī)則針對源地址(SRC)、目的地址(DEST)還是所有地址(BOTH)都有效。方法后是優(yōu)先級,范圍為1到7。最后是是否打開dont_drop選項及不丟包選項,“yes”就表示此包不會被協(xié)議棧丟失。

若針對tcp或udp的數(shù)據(jù)包類型,則需要加上對應(yīng)的端口號范圍,如下:

      # qosruleadd  en1  tcp  192.168.31.1  192.168.31.5  1000  10010  BOTH  4  yes


2.2 查看

      查看使用qoss命令,如圖 2.1所示。

SylixOS之QoS原理

                                    圖 2.1 qoss查看


2.3 刪除

      刪除時需要使用到網(wǎng)卡名和對應(yīng)的序列號,即使用qoss查看得出的序列號,如下:

      # qosruledel  en1  0


3 QoS實現(xiàn)原理

3.1 QoS網(wǎng)絡(luò)層次

      QoS層處于TCP/IP協(xié)議棧與netjob之間,解析每一個提交給協(xié)議棧和從協(xié)議棧發(fā)出的數(shù)據(jù)包。并針對不同類型的數(shù)據(jù)包按照指定的規(guī)則操作,基本結(jié)構(gòu)如圖 3.1所示。

SylixOS之QoS原理

      圖 3.1 QoS網(wǎng)絡(luò)層次結(jié)構(gòu)


3.2 QoS數(shù)據(jù)結(jié)構(gòu)

      QoS相關(guān)的數(shù)據(jù)主要有2類,規(guī)則結(jié)構(gòu)和QoS接口結(jié)構(gòu)。規(guī)則結(jié)構(gòu)又分TCP、UDP、IP三種,共4種結(jié)構(gòu),如程序清單 3.1所示。

                                                               程序清單 3.1 QoS數(shù)據(jù)結(jié)構(gòu)

typedef struct {

    LW_LIST_LINE            QOSRI_lineManage;                          /*  IP 規(guī)則管理鏈表                    */

    INT                      QOSRI_iRule;

    INT                      QOSRI_iCmpMethod;                              /*  srouce, destination, both    */

    ip4_addr_t                 QOSRI_ipaddrHboS;                          /*  IP 段起始 IP 地址                  */

    ip4_addr_t                 QOSRI_ipaddrHboE;                          /*  IP 段結(jié)束 IP 地址                  */

    u8_t                      QOSRI_ucPrio;                                        /*  QoS 優(yōu)先級                          */

    u8_t                      QOSRI_ucDontDrop;                              /*  QoS 可靠服務(wù)                       */

} __QOS_RULE_IP;

typedef __QOS_RULE_IP      *__PQOS_RULE_IP;

 

typedef struct {

    LW_LIST_LINE            QOSRU_lineManage;                        /*  UDP 規(guī)則管理鏈表              */

    INT                      QOSRU_iRule;

    INT                      QOSRU_iCmpMethod;                            /*  srouce, destination, both   */

    ip4_addr_t                 QOSRU_ipaddrHboS;                        /*  IP 段起始 IP 地址                 */

    ip4_addr_t                 QOSRU_ipaddrHboE;                        /*  IP 段結(jié)束 IP 地址                 */

    u16_t                     QOSRU_usPortHboS;                            /*  端口起始 主機序                  */

    u16_t                     QOSRU_usPortHboE;                            /*  端口結(jié)束                             */

    u8_t                      QOSRU_ucPrio;                                      /*  QoS 優(yōu)先級                         */

    u8_t                      QOSRU_ucDontDrop;                            /*  QoS 可靠服務(wù)                      */

} __QOS_RULE_UDP;

typedef __QOS_RULE_UDP     *__PQOS_RULE_UDP;

 

typedef struct {

    LW_LIST_LINE            QOSRT_lineManage;                        /*  TCP 規(guī)則管理鏈表              */

    INT                      QOSRT_iRule;

    INT                      QOSRT_iCmpMethod;                            /*  srouce, destination, both  */

    ip4_addr_t                 QOSRT_ipaddrHboS;                        /*  IP 段起始 IP 地址                */

    ip4_addr_t                 QOSRT_ipaddrHboE;                        /*  IP 段結(jié)束 IP 地址                */

    u16_t                     QOSRT_usPortHboS;                            /*  端口起始 主機序                  */

    u16_t                     QOSRT_usPortHboE;                            /*  端口結(jié)束                            */

    u8_t                      QOSRT_ucPrio;                                      /*  QoS 優(yōu)先級                        */

    u8_t                      QOSRT_ucDontDrop;                            /*  QoS 可靠服務(wù)                     */

} __QOS_RULE_TCP;

typedef __QOS_RULE_TCP     *__PQOS_RULE_TCP;

 

/*********************************************************************************************************

  QoS 網(wǎng)絡(luò)接口結(jié)構(gòu)

*********************************************************************************************************/

typedef struct {

    LW_LIST_LINE            QOSNI_lineHash;                             /*  hash 表                               */

    LW_LIST_LINE_HEADER   QOSNI_qosrnRule[__QOS_NETIF_RULE_MAX];  /*  規(guī)則表         */

    CHAR                    QOSNI_cName[IF_NAMESIZE];             /*  網(wǎng)絡(luò)接口名                          */

    BOOL                    QOSNI_bAttached;                               /*  是否已經(jīng)連接                       */

} __QOS_NETIF_CB;

typedef __QOS_NETIF_CB     *__PQOS_NETIF_CB;


3.3 QoS插入規(guī)則流程

      插入一個新規(guī)則時會根據(jù)網(wǎng)絡(luò)接口名創(chuàng)建對應(yīng)的QoS接口結(jié)構(gòu)并放入QoS哈希表中,同樣將此QoS接口保存到對應(yīng)的網(wǎng)絡(luò)接口結(jié)構(gòu)中,以便此網(wǎng)絡(luò)接口有數(shù)據(jù)交換時可以查找對應(yīng)的規(guī)則。如圖 3.2所示。

SylixOS之QoS原理

                                             圖 3.2 QoS哈希表結(jié)構(gòu)框圖

      然后將對應(yīng)的規(guī)則保存到QoS接口結(jié)構(gòu)的規(guī)則鏈表中,若之后需加入相同網(wǎng)絡(luò)接口名的規(guī)則則添加到此鏈表中,如圖 3.3所示。

SylixOS之QoS原理

                                             圖 3.3 QoS規(guī)則鏈表


向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI