<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國際加速解決方案。 廣告
                # 網絡:復習題 > 原文:<https://github.com/angrave/SystemProgramming/wiki/Networking%3A-Review-Questions> * [Wiki w / Interactive MC Questions](http://angrave.github.io/SystemProgramming/networkingreviewquestions.html) * 見[編碼問題](#coding-questions) * 見[簡答題](#short-answer-questions) * 參見 [MP Wearables](https://courses.engr.illinois.edu/cs241/mps/mp7/) Food For Thought 問題 ## 簡答題 ## Q1 什么是插座? ## Q2 在端口 1000 和端口 2000 上偵聽有什么特別之處? * 端口 2000 的速度是端口 1000 的兩倍 * 端口 2000 的速度是端口 1000 的兩倍 * 端口 1000 需要 root 權限 * 沒有 ## Q3 描述 IPv4 和 IPv6 之間的一個重要區別 ## Q4 你何時以及為什么要使用 ntohs? ## Q5 如果主機地址是 32 位,我最有可能使用哪種 IP 方案? 128 位? ## Q6 哪種常見的網絡協議是基于數據包的,可能無法成功傳送數據? ## Q7 哪種常見協議是基于流的,如果數據包丟失會重新發送數據? ## Q8 什么是 SYN ACK ACK-SYN 握手? ## Q9 以下哪一項不是 TCP 的功能? * 數據包重新排序 * 流量控制 * 數據包重傳 * 簡單的錯誤檢測 * 加密 ## Q10 什么協議使用序列號?他們的初始價值是多少?為什么? ## Q11 構建 TCP 服務器需要的最小網絡調用是多少?他們的正確順序是什么? ## Q12 構建 TCP 客戶端需要的最小網絡調用是多少?他們的正確順序是什么? ## Q13 你何時會在 TCP 客戶端上調用 bind? ## Q14 socket bind listen accept 的目的是什么? ## Q15 以上哪個調用可以阻塞,等待新客戶端連接? ## Q16 什么是 DNS?它對你有什么用?哪個 CS241 網絡電話會使用它? ## Q17 對于 getaddrinfo,如何指定服務器套接字? ## Q18 為什么 getaddrinfo 會生成網絡數據包? ## Q19 哪個網絡調用指定允許的積壓的大小? ## Q20 哪個網絡調用返回一個新的文件描述符? ## Q21 何時使用被動插座? ## Q22 epoll 什么時候比選擇更好?何時選擇比 epoll 更好的選擇? ## Q23 `write(fd, data, 5000)`總是會發送 5000 字節的數據嗎?什么時候會失敗? ## Q24 網絡地址轉換(NAT)如何工作? ## Q25 @MCQ 假設網絡在客戶端和服務器之間有 20ms 的傳輸時間,建立 TCP 連接需要多長時間? 20 ms 40 ms 100 ms 60 ms @ANS 3 Way Handshake @EXP @END ## Q26 HTTP 1.0 和 HTTP 1.1 之間有什么區別?如果網絡傳輸時間為 20 毫秒,將 3 個文件從服務器傳輸到客戶端需要多少 ms? HTTP 1.0 和 HTTP 1.1 之間的時間差異如何? ## 編碼問題 ## 問 2.1 寫入網絡套接字可能不會發送所有字節,并且可能會因信號而中斷。檢查`write`的返回值以實現`write_all`,該 COD1 將使用任何剩余數據重復調用`write`。如果`write`返回-1,則立即返回-1,除非`errno`為`EINTR` - 在這種情況下重復最后一次`write`嘗試。您將需要使用指針算法。 ```c // Returns -1 if write fails (unless EINTR in which case it recalls write // Repeated calls write until all of the buffer is written. ssize_t write_all(int fd, const char *buf, size_t nbyte) { ssize_t nb = write(fd, buf, nbyte); return nb; } ``` ## 問 2.2 實現一個偵聽端口 2000 的多線程 TCP 服務器。每個線程應從客戶端文件描述符中讀取 128 個字節,并在關閉連接并結束線程之前將其回送給客戶端。 ## 問 2.3 實現偵聽端口 2000 的 UDP 服務器。保留 200 字節的緩沖區。聽取到達的數據包。有效數據包為 200 字節或更少,以 4 字節 0x65 0x66 0x67 0x68 開頭。忽略無效的數據包。對于有效數據包,將第五個字節的值作為無符號值添加到運行總計中,并打印到目前為止的總數。如果運行總計大于 255,則退出。
                  <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>

                              哎呀哎呀视频在线观看