中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

SylixOS之QoS原理

發布時間:2020-06-28 20:46:48 來源:網絡 閱讀:232 作者:stone927 欄目:軟件技術

1 QoS簡介

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


2 QoS操作方法

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


2.1 添加

      如下是一條添加ip規則命令:

      # qosruleadd  en1  ip  192.168.31.1  192.168.31.5  SRC  5  no

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

若針對tcp或udp的數據包類型,則需要加上對應的端口號范圍,如下:

      # 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 刪除

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

      # qosruledel  en1  0


3 QoS實現原理

3.1 QoS網絡層次

      QoS層處于TCP/IP協議棧與netjob之間,解析每一個提交給協議棧和從協議棧發出的數據包。并針對不同類型的數據包按照指定的規則操作,基本結構如圖 3.1所示。

SylixOS之QoS原理

      圖 3.1 QoS網絡層次結構


3.2 QoS數據結構

      QoS相關的數據主要有2類,規則結構和QoS接口結構。規則結構又分TCP、UDP、IP三種,共4種結構,如程序清單 3.1所示。

                                                               程序清單 3.1 QoS數據結構

typedef struct {

    LW_LIST_LINE            QOSRI_lineManage;                          /*  IP 規則管理鏈表                    */

    INT                      QOSRI_iRule;

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

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

    ip4_addr_t                 QOSRI_ipaddrHboE;                          /*  IP 段結束 IP 地址                  */

    u8_t                      QOSRI_ucPrio;                                        /*  QoS 優先級                          */

    u8_t                      QOSRI_ucDontDrop;                              /*  QoS 可靠服務                       */

} __QOS_RULE_IP;

typedef __QOS_RULE_IP      *__PQOS_RULE_IP;

 

typedef struct {

    LW_LIST_LINE            QOSRU_lineManage;                        /*  UDP 規則管理鏈表              */

    INT                      QOSRU_iRule;

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

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

    ip4_addr_t                 QOSRU_ipaddrHboE;                        /*  IP 段結束 IP 地址                 */

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

    u16_t                     QOSRU_usPortHboE;                            /*  端口結束                             */

    u8_t                      QOSRU_ucPrio;                                      /*  QoS 優先級                         */

    u8_t                      QOSRU_ucDontDrop;                            /*  QoS 可靠服務                      */

} __QOS_RULE_UDP;

typedef __QOS_RULE_UDP     *__PQOS_RULE_UDP;

 

typedef struct {

    LW_LIST_LINE            QOSRT_lineManage;                        /*  TCP 規則管理鏈表              */

    INT                      QOSRT_iRule;

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

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

    ip4_addr_t                 QOSRT_ipaddrHboE;                        /*  IP 段結束 IP 地址                */

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

    u16_t                     QOSRT_usPortHboE;                            /*  端口結束                            */

    u8_t                      QOSRT_ucPrio;                                      /*  QoS 優先級                        */

    u8_t                      QOSRT_ucDontDrop;                            /*  QoS 可靠服務                     */

} __QOS_RULE_TCP;

typedef __QOS_RULE_TCP     *__PQOS_RULE_TCP;

 

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

  QoS 網絡接口結構

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

typedef struct {

    LW_LIST_LINE            QOSNI_lineHash;                             /*  hash 表                               */

    LW_LIST_LINE_HEADER   QOSNI_qosrnRule[__QOS_NETIF_RULE_MAX];  /*  規則表         */

    CHAR                    QOSNI_cName[IF_NAMESIZE];             /*  網絡接口名                          */

    BOOL                    QOSNI_bAttached;                               /*  是否已經連接                       */

} __QOS_NETIF_CB;

typedef __QOS_NETIF_CB     *__PQOS_NETIF_CB;


3.3 QoS插入規則流程

      插入一個新規則時會根據網絡接口名創建對應的QoS接口結構并放入QoS哈希表中,同樣將此QoS接口保存到對應的網絡接口結構中,以便此網絡接口有數據交換時可以查找對應的規則。如圖 3.2所示。

SylixOS之QoS原理

                                             圖 3.2 QoS哈希表結構框圖

      然后將對應的規則保存到QoS接口結構的規則鏈表中,若之后需加入相同網絡接口名的規則則添加到此鏈表中,如圖 3.3所示。

SylixOS之QoS原理

                                             圖 3.3 QoS規則鏈表


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

青海省| 六盘水市| 定州市| 凤翔县| 色达县| 浦县| 陕西省| 仙游县| 江都市| 环江| 郓城县| 呼图壁县| 梁山县| 玉田县| 黄陵县| 泌阳县| 汉阴县| 郓城县| 綦江县| 鄂伦春自治旗| 堆龙德庆县| 宜兴市| 攀枝花市| 彰武县| 屏南县| 昌宁县| 中江县| 雷波县| 郑州市| 顺昌县| 沭阳县| 泰宁县| 肥西县| 玉田县| 格尔木市| 黄浦区| 保定市| 米易县| 上饶县| 西乌珠穆沁旗| 海盐县|