<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                線程模型可以理解為協議棧的實現被劃分在多少線程之中,如讓協議棧的各個層次都獨立成為一個線程,在這種模式下,各個層次都有嚴格分層結構,各個層次的提供的API接口也是分層清晰的,這樣子能使得編程的時候更加簡便,代碼的組織也更加靈活,當然,按照前面所說的,在嵌入式設備中,這種嚴格的分層結構并不是最好的,在數據包向其他層遞交的時候,都需要進行拷貝以及切換線程,這是一個很大的開銷,當數據量太大的時候,這種開銷就足以導致系統沒法處理大量的數據,如一個數據包在各個層次間的遞交至少需要進行3次切換線程:底層網卡接收到一個數據包,此時是鏈路層的線程在工作,當它往上層遞交該數據包的時候,就需要切換線程,該數據包被拷貝到IP層,此時是IP層的線程在工作,當IP層處理完畢之后,要向傳輸層遞交數據包,那么此時又需要切換線程,到傳輸層的線程中處理該數據包,這樣子使得協議棧的效率非常低下。 還有一種方式就是協議棧與操作系統融合,成為操作系統的一部分,這樣子用戶線程與協議棧內核之間都是通過操作系統提供的函數來實現的,這種情況讓協議棧各層之間與用戶線程就沒有很嚴格的分層結構,各層之間能交叉存取,從而提高效率。 但是LwIP采用了另一種方式,讓協議棧內核與操作系統相互隔離,協議棧僅僅作為操作系統的一個獨立線程存在,用戶程序能駐留在協議棧內部,協議棧通過回調函數實現用戶與協議棧之間的數據交互;也可以讓用戶程序單獨實現一個線程,與協議棧使用系統的信號量和郵箱等IPC通信機制聯系起來,進行數據的交互。當使用第一種通過回調函數進行交互情況的時候,也就是我們所說的RAW API編程,而使用第二種通過操作系統IPC通信機制的時候,就是另外兩種API編程,即NETCONN API和Socket API。當然這樣子既有優點也有缺點,優點就是能在任何的操作系統中移植,缺點就是收到操作系統的影響,因為即使LwIP作為一個獨立的線程,也是需要借助操作系統進行調度的,因此,協議棧的響應的實時性會有一定影響,并且建議設置LwIP線程的優先級為最高優先級。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看