1. 傳輸層主要工作在什麼地方?
答:應用層之下,網絡層之上,提供端到端的通信。主要工作在終端設備。
2. 傳輸層最重要的兩個協議是什麼?
答:TCP協議和UDP協議。
3. 端口是什麼,端口有什麼作用?端口在協議中—般佔用幾個字節?
答:端口是標記不同的使用網絡的進程,16位2個字節。
4. UDP協議的中文全稱是什麼? UDP協議有什麼特點?請分點說明。
答:用戶數據報協議。特點:無連接、不可靠、面向報文、沒有擁塞控制、開銷小。
無連接:在發送數據前,源主機和目的主機不會建立連接。
不可靠:想發就發,不負責數據在網絡中是否丟失,是否收到。
面向報文:將應用層數據首部添加報文。
開銷小:首部小,開銷小。
5.UDP的報文和IP報文一樣,也是由頭部和數據兩個部分組成,請繪製UDP頭部的結構圖。
答:
6. TCP協議的中文全稱是什麼? TCP協議有什麼特點?請分點說明。
答:傳輸控制協議。
特點:面向連接、點對點、可靠傳輸、全雙工、面向字節流。
面向連接:在發送數據前要建立連接。
點對點:發數據和接受數據的雙方都是明確的。
可靠傳輸:保證數據能夠正確交付。
面向字節流:根據TCP報文大小對數據進行切分。
7.TCP的報文和UDP、IP報文—樣,也是由頭部和數據兩個部分組成,請繪製TCP頭部的結構圖。
答:
8.TCP報文頭部的序號和確認號都佔據4個字節,序號有什麼用?確認號呢?
答:序號標記數據首字節的序號,確認號標記期望收到的數據的首字節序號。
9.TCP報文頭部的數據偏移字段有什麼用?他和TCP報文的結構有什麼關係?
答:標記TCP報文首部字段的長度,最大60字節。他的大小主要與TCP選項字段有關。
10. TCP報文頭部的標記佔用6個比特位,每個比特位的值可以爲1或0, 他們分別有什麼意義?
答:每個比特位表示一種標記,URG表示緊急數據;ACK是確認位;PSH是推送位,要求儘快將數據交付給上層;RST是重置位;SYN是同步位;FIN是終止位。
11. TCP報文頭部的窗口占用2個字節,窗口字段有什麼作用?
答:表示接收方願意接受的字節數量,用於控制數據傳輸速率。
12. TCP協議一個重要的特點是可靠傳輸,可靠傳輸是怎麼實現的?
答:停止等待協議和連續ARQ協議。
13.TCP協議的流量控制和TCP報文頭部的什麼字段有關係?流量控制具體是怎麼工作的?請簡要描述流量控制的主要過程。
答:窗口字段指定允許對方發送的數據量。接收方收到數據後發送窗口大小給發送方,當窗口大時,增加發送速度;窗口小時,減小發送速率。
14. TCP協議具備擁塞控制的功能,擁塞控制和流量控制有什麼區別?擁塞控制是怎麼實現的?
答:流量控制是控制兩個終端之間的流量,擁塞控制考慮整個網絡的擁堵情況。
擁塞控制是通過檢查報文是否超時來判斷擁塞,維護一個threshold和window,在不發生擁堵的時候,慢啓動,直到發生擁堵。發生擁堵後,threshold = window / 2。如果是3個冗餘ACK,windows/=2,線性恢復;如果超時,window=1,慢啓動,然後超過閾值後線性探測。
15. TCP協議的三次握手是非常重要的知識點,TCP協議的三次握手和TCP報文頭部的哪些字段有關係?
答:序號、確認號、TCP標記(ACK、SYN)。
16. 請簡述TCP協議三次握手的過程。
答:假設發送方爲A,接收方爲B。
A發送SYN=1,seq=x。
B發送SYN=1,ACK=1,seq=y,ack=x+1。
C發送ACK=1,seq=x+1,ack=y+1。
17. TCP協議的三次握手是TCP建立可靠通信的基礎,請問爲什麼TCP連接建立的過程叫做三次握手,請陳述三次握手的必要性,兩次握手爲什麼不行?
答:因爲建立連接的過程雙方共發送了三個數據包。
兩次握手的話,假如服務端發送的ACK數據包丟失,則服務端將陷入空髮狀態,而請求端會重複發送建立連接請求,服務器載荷加大。同時,雙方也沒有對初始序列號進行同步。
18. TCP協議的四次揮手是非常重要的知識點,TCP協議的四次揮手和TCP報文頭部的哪些字段有關係?
答:序號,確認號,TCP標記(ACK、FIN)。
19. 語簡述TCP協議四次揮手的過程,並說明清楚每一次揮手後,雙方進入的狀態。
答:
假設發送方爲A,接收方爲B。
A發送FIN=1,seq=u。A進入FIN-WAIT-1
B發送ACK=1,seq=v,ack=u+1。B進入CLOSE-WAIT,A進入FIN-WAIT-2
B發送FIN=1,ACK=1,seq=w,ack=u+1。B進入LAST-ACK。
A發送ACK=1,seq=u+1,ack=w+1。A進入TIME-WAIT狀態,等待2MSL後關閉。
B收到ACK後關閉。
20.TCP連接釋放的過程中有—個重要概念叫做2MSL, 什麼是2MSL, 它有什麼作用?
答:MSL是最長報文段壽命,保證發送方的ACK可以到達接收方,同時保證充足的時間,接收方可以重發FIN信號。
21.TCP協議有四個重要的定時器,分別是什麼定時器?請簡述這些定時器的作用。
答:超時定時器,沒有收到回覆,重發;堅持定時器,在窗口爲0時,不斷探詢接收方窗口大小;時間等待計時器,確保揮手過程中,接收方能夠收到ACK;保活計時器,在一段時間沒有收到數據時(超時),探尋對方是否存活。
22. 什麼是套接字?你瞭解套接字的編程嗎?請使用套接字實現—個簡單的C/S通信工具。
答:套接字是抽象概念,表示連接的一端,一般是指IP+端口對。
服務器段,創建、綁定、監聽、接受處理。
客戶端,創建、連接、發送。