# Computer Network #### 1. Access Network 將終端的物理連接裝置連接上網路的第一個路由器(也被稱為邊緣路由器),該路由器位於從該終端系統到任何其他遠程終端系統的路徑上。 #### 2. Packet Switching 要將消息從源端系統發送到目的地端系統,源端系統將長消息拆分為稱為“封包”的較小數據塊。在源端和目的地之間,每個封包通過通信鏈路和封包交換機(其中有兩種主要類型,即路由器和鏈路層交換機)傳輸。 #### 3. Store-and-Forward Transmission 存儲轉發傳輸意味著在開始將封包的第一位傳輸到出站鏈路之前,將資料存處在緩存當中,等待整個封包到齊後,才開始校驗及轉送。 #### 4. Time-Division Multiplexing 兩個以上的訊號或資料流可以同時在一條通訊線路上傳輸,將傳輸媒介的使用時間分割成若干個固定的時槽,每一時槽佔用一小段時間,而這一小段時間就是一個虛擬通道供多個資料流使用。 #### 5. Queuing Delay 在佇列中,當封包在鏈路上等待傳輸時,它經受排隊時延。 #### 6. Porpagation Delay 一旦一個位元被推向鏈路,該位元需要向路由器B傳播,從該鏈路的起點到路由器B的傳播所需要的時間是傳播時延。 #### 7. Transmission Delay 假定封包以先到先服務的方式傳輸,僅當所有已經到達的封包被傳輸後,才能傳輸我們的封包。 #### 8. Throughput 於鏈路上單位時間能成功傳遞的平均資料量。 #### 9. Encapsulation 一筆由應用層發出的massage,會經由許多的處理層(例如傳送層、網路層),將IP等傳送所需的資料一層一層封裝到massage的標頭上,變成segment等訊息,讓物理設備能夠順利傳輸作業。 #### 10. Client-Server 在客戶端-伺服器端的架構中,有一個總是開啟的主機,稱為伺服器,它服務來自許多其他主機(稱為客戶端)的請求。經典的例子是Web應用程序,其中一個總是開啟的Web服務器服務來自運行在客戶端主機上的瀏覽器的請求。 #### 11. Socket 程式能夠通過Socket操作作業系統,建立網路通訊協定連線(TCP等),進行傳送與接收封包,其中socket具唯一性,需指定準確才能發送封包。 #### 12. HyperText Transfer Protocol(HTTP) HTTP定義了Web客戶端如何向Web服務器請求Web頁面以及服務器如何將Web頁面傳輸給客戶端。 #### 13. Round-trip time 即一個小封包從客戶端到服務器再返回客戶端所需的時間。RTT 包括封包傳播延遲、中間路由器和交換機的封包排隊延遲以及封包處理延遲。 #### 14. Cookies HTTP伺服器是無狀態的,能夠方便開發,但伺服器端希望能夠辨識用戶等等,在用戶首次連線後將創建唯一的識別碼並儲存用戶資料,下次連線將搜尋識別碼將後台記錄過的資料一並載入。 #### 15. SMTP SMTP將郵件從發件人的郵件服務器傳輸到收件人的郵件服務器。 #### 16. Transmission Control Protocol 在網路層只管發送與接收,並不擔保數據的安全,於是傳輸層擔負此重任,TCP即為其中一種協定,會提供校驗和、流量控制、擁塞控制等功能確保數據得速度與安全。 #### 17. Checksum 檢查和確定UDP傳送中的位元是否已經在從源到目的地的移動過程中被更改,將所有位元切割為16位並相加後取1的補數,這個結果被放在UDP中的校驗和字段中。 #### 18. Stop-and-Wait 為了避免封包在傳輸的過程中有遺失或錯誤編碼等情況,在每次發送封包後會等待目的端回傳確認訊息才會寄送下一個封包,在收到回覆之前發送端會一直等待。 ## 問答題 #### R1-23 What are the five layers in the Internet protocol stack? What are the principal responsibilities of each of these layers? 請問在網際網路協定層中有哪五個層級?這些層級的主要責任是什麼? ~~~ 物理層 (Physical Layer):負責在網路媒介上傳送比特流。 連接層 (Data Link Layer):負責將比特流轉換成幀(Frame)並進行錯誤檢測和修復。 網路層 (Network Layer):負責將幀轉換為數據包(Packet)並添加源和目的地地址,以便將數據包路由到目的地網路。 傳輸層 (Transport Layer):負責在源和目的地主機之間提供端到端的通信,並處理可靠性和流量控制。 應用層 (Application Layer):負責處理應用程序與網路之間的交互,包括協議解析、數據轉換和應用程序訪問網路的API。 ~~~ #### R2-5 What information is used by a process running on one host to identify a process running on another host? 一個在一個主機上運行的進程用什麼信息來識別在另一個主機上運行的進程? ~~~ 目標主機的IP地址&目標進程的埠號 ~~~ #### R3-3  ~~~ UDP socket 與 TCP socket 都由四個值來唯一識別: 源IP地址:識別發送方主機的IP地址。 目標IP地址:識別接收方主機的IP地址。 源端口號:識別發送方進程(程式)所使用的端口號。 目標端口號:識別接收方進程(程式)所使用的端口號。 UDP socket 和 TCP socket 的區別在於,TCP socket 還有一個狀態值,稱為序列號,用於處理 TCP 的可靠傳輸機制。因此,完整識別一個 TCP socket 需要五個值: 源IP地址:識別發送方主機的IP地址。 目標IP地址:識別接收方主機的IP地址。 源端口號:識別發送方進程(程式)所使用的端口號。 目標端口號:識別接收方進程(程式)所使用的端口號。 序列號:用於 TCP 的可靠傳輸機制,保證數據能夠按順序到達。 簡單來說,UDP socket 和 TCP socket 的區別在於 TCP socket 還需要一個序列號來實現可靠傳輸,而 UDP 則不需要。 ~~~ #### P1-25(Trnansmission delay)  假設兩台主機 A 和 B 相隔 20,000 公里並且分別位於 通過 R = 5 Mbps 的直接鏈路連接。 假設傳播速度 鏈路上的速度為 2.5*10^8 米/秒。 A。 計算帶寬延遲積 R dprop。 b. 考慮從主機 A 向主機 B 發送一個 800,000 位的文件。假設 該文件作為一條大消息連續發送。最大是多少在任何給定時間鏈路中的位數? d. 鏈接中位的寬度(以米為單位)是多少? 它長於一英尺嗎? 球場? ~~~ a. 帶寬延遲乘積 R * dprop 可以計算如下: R * dprop = (5 Mbps) * {(20,000 公里) * (1000 公尺/公里) / (2.5 * 10^8 公尺/秒)} = 5M * 0.08s = 400,000 位元組 因此,帶寬延遲乘積為 400,000 位元組。 b.dr = 800,000 / 5Mbps = 0.16s 因dr >dprop 所以在鏈結中最大的bit數為R*dprop = 400,000 bit c.帶寬延遲乘積向我們展示了鏈路的比特容量 d. 20000km / 400000 = 50m e.m*s / R ~~~ #### P2-9(web proxy)  P9. 考慮圖2.12,其中有一個機構網絡連接到互聯網。此外,假設接入鏈路已升級到54 Mbps,機構LAN升級到10 Gbps。假設平均對象大小為1,600,000位,從該機構的瀏覽器到源服務器的平均請求速率為每秒24個請求。還假設訪問鏈路的互聯網端的路由器從轉發HTTP請求到收到響應所花費的時間平均為三秒(參見第2.2.5節)。將總平均響應時間建模為平均訪問延遲(即從互聯網路由器到機構路由器的延遲)和平均互聯網延遲的總和。對於平均訪問延遲,使用A/(1-AB),其中A是通過訪問鏈路發送對象所需的平均時間,B是對象到達訪問鏈路的速率。 a. 找出總平均響應時間。 b. 現在假設在機構LAN中安裝了緩存。假設未命中率為0.3。找出總響應時間。 ~~~ a. 總平均響應時間為: 平均訪問延遲為 A = 1600000 / (54 Mbps) = 0.02963 秒 到達率為 B = 24 請求/秒 平均訪問延遲 A/(1-AB) = 0.10256 秒 平均互聯網延遲為 3 秒 總平均響應時間為 3 秒 + 0.10256 秒 = 3.10256 秒 b. 現在假設在機構 LAN 中安裝了快取,未命中率為 0.3。則: 命中率為 0.7 平均響應時間為未命中率總平均響應時間+命中率平均訪問時間 = 0 * 0.7 + 3.10256*0.3 = 0.9307 秒 ~~~ #### P3-3(checksum)  ~~~ 0101001101100110 0111010010110100 0000110111000001 (1) 0101001101100110 0111010010110100 + ------------------- 1100100000011010 0000110111000001 + ------------------- 1101010111011011 (output) 1補數: 0010101000100100 (checksum) output + checksum = all 1 1101010111011011 0010101000100100 + ------------------- 1111111111111111 ######################################################################################## if have 1 bit error 110110000011111"1" 0000110111000001 + ------------------- 1110011000000000 0010101000100100 + checksum ------------------- 0001000000100100 1 + overfloat ------------------- 0001000000100101 -> error (not all 1) ~~~
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up