1. 什么是計算機網絡?計算機網絡的功能有哪些?
答:計算機網絡是計算機技術與通信技術結合的產物,是自主計算機的互連集合。自主是指每個計算機都是獨立的,不存在一台計算機控制另外一台的情況。互連是指兩台計算機能夠通信,交換數據,而不是指簡單地用線纜連接在一起。
計算機網絡的功能有:資源與數據共享、信息交換、娛樂和分布式計算等。
3.簡述分組交換的原理
答:當一台主機有消息要發送給另一台主機時,消息首先被分割成若干個小塊(消息較小時,也可以不分割),每個數據塊前面添加一些控制信息(其中包括接收方的地址),這些信息組成首部。首部和數據共同構成一個分組。一個消息可以被分成若干個分組。發送方將這些分組依次交給與之相連的分組交換機,分組交換機將收到的分組放入緩存,根據分組中首部的控制信息,依次轉發每個分組,將分組傳遞給下一個分組交換機,就這樣像傳遞信件一樣,分組一步一步向下傳遞,最終到達目的地。當組成一個消息的所有分組都到達目的地后,再被組合成原來的消息。
2-3 簡答題
1. 什么是網絡協議?網絡協議由哪幾部分組成?
網絡協議是通信雙方為了實現通信而商定的一些規則。具體而言,網絡協議可以理解為由三部分組成:
(1) 語法:通信時雙方交換數據和控制信息的格式。
(2) 語義:每部分控制信息和數據所代表的含義。
(3) 時序:通信如何發起;在收到一個數據后,下一步要做什么。
4.簡述OSI參考模型和TCP/IP參考模型
OSI參考模型,共分七層,從上到下依次為應用層、表示層、會話層、運輸層、網絡層、數據鏈路層和物理層。
應用層直接面向用戶,用來實現特定的應用。表示層用來對應用層的數據進行格式轉換,對應用層數據的壓縮、解壓縮,加密、解密。會話層用來管理會話過程,包括會話的建立、維持和結束。運輸層為通信的兩個進程之間提供端到端(end to end)的通信服務。網絡層的主要功能是為分組選路。發送方和接收方之間會間隔其他的網絡,網絡層的作用就是為分組找到一條合適的路徑,使得分組能夠到達目的地。數據鏈路層的任務是在相鄰節點間傳輸幀。物理層的任務就是將0、1比特從物理鏈路的一端發送到另一端。
TCP/IP模型共分四層,從上到下分別是應用層、運輸層、互聯網層和網絡接口層。
TCP/IP模型的應用層和OSI參考模型的應用層類似,包括具體的應用,對應許多應用層協議,如HTTP、FTP、SMTP、POP3等。運輸層同樣也提供端到端的通信服務,TCP/IP體系的運輸層里包含兩個協議,TCP協議和UDP協議。TCP協議提供可靠的端到端通信。UDP協議比較簡單,不能保證數據的可靠性,但效率比較高。互聯網層相當於OSI參考模型中的網絡層,它的職責是將運輸層交給它的數據送到目的地,中間可能會跨越多個網絡,互聯網層要為數據找到一條正確的路. 互聯網層是整個TCP/IP協議體系的關鍵部分,主要的協議是IP協議。網絡接口層相當於OSI參考模型中的數據鏈路層和物理層。TCP/IP模型沒有明確描述網絡接口層,只是指出主機要使用某種協議與具體的網絡連接,從而能夠傳遞IP分組。
3-3 簡答題
8. 什么是DNS,它的作用是什么?
DNS是指域名系統。域名系統是一個全球性的分布式的數據庫,有許多域名服務器組成,這些域名服務器相互連接,組成了一個分布式系統,主要完成將域名解析成IP地址的工作。
9.簡述DHCP的工作原理
(1)客戶端啟動后,向網絡中廣播一個DHCP Discover報文,尋找DHCP服務器。
(2)DHCP服務器收到DHCP Discover后,向客戶端發送DHCP Offer報文,向客戶端提供IP地址、子網掩碼、默認網關、域名服務器的信息。
(3)客戶端可能會收到一個或多個DHCP Offer報文(網絡中可能有多個DHCP服務器),客戶端從中選擇一個DHCP服務器,並廣播DHCP Request報文。在DHCP Request報文中必須指明要選擇的DHCP服務器。
(4) 被選中的服務器收到DHCP Request后,回應DHCP Ack報文,地址分配完成。
4-3 簡答題
4. 簡述TCP流量控制的原理。
TCP主要使用首部中的窗口字段來進行流量控制。首部中的窗口字段用來將自己目前的接收緩存大小通知對方的TCP,在數據傳遞過程中,接收緩存會隨時變化,TCP在向對方發送確認或發送數據時,都將現在的接收緩存大小寫入首部的窗口字段中,發送給對方,對方收到后,所發送數據的大小不會超過窗口字段的值,從而保證了接收方緩存不會溢出,TCP依此實現了流量控制。
5. TCP是如何保證數據傳輸的可靠性的?
TCP主要采用確認和重傳機制來實現數據傳輸的可靠性。每一方的TCP都要為所傳輸的數據編號,編號是以字節為單位的。發送字節的起始編號是在建立連接的過程中確定的,並且已經通過三次握手過程告知了對方。
如果收到了編號正確的數據,那么就要給對方發送確認。收到確認后,就可以繼續發送后面的數據。發出一個TCP報文段后,就啟動一個定時器,如果定時器時間到了但確認還沒有來,那么就重傳一次這個報文。
如果數據中途丟失,那么發送端會收不到確認,定時器超時就會重傳。
如果數據出錯,接收端會丟棄這個報文,發送端會同樣收不到確認,定時器超時也會重傳。
如果確認丟失了,發送方會因為定時器超時而重傳報文,這樣接收方會收到重復的報文,接收方將直接丟棄重復的報文,並發送確認。
對於亂序到達的TCP報文段,TCP會緩存這些亂序的報文,將其排好序后在上傳給應用層。
6. 為什么要進行擁塞控制?TCP是怎樣進行擁塞控制的?
當大量的數據涌入網絡時,網絡中的部分路由器可能會因為過載而被迫丟棄一些分組,產生擁塞。同時,發送方會因為定時器超時重傳那些被路由器丟棄的分組,從而引起更嚴重的擁塞,使整個網絡陷入癱瘓。因此,發送端要進行擁塞控制。
TCP認為,如果出現了丟包現象,確認沒有及時回來,就發生了擁塞。一個連接兩端的TCP都維持一個變量,稱為擁塞窗口,用來限制TCP向網絡中注入數據的大小和速率。當網絡的狀況很好,每個確認都能及時回來時,就增大擁塞窗口,增加注入網絡的數據;如果產生了擁塞,確認沒有及時回來,就主動減小擁塞窗口,以緩解網絡的壓力。
當剛剛建立TCP連接后,TCP擁塞窗口的大小為最大報文長度MSS。開始階段每收到一個確認,擁塞窗口大小就增加一個MSS,擁塞窗口的大小是以1,2,4,8,…指數方式遞增的,即每經過一個RTT,擁塞窗口的大小就翻倍。這個過程稱為慢啟動。
當擁塞窗口的值達到一定大時,發送速率就超過了網絡的接收能力,這時丟包現象就產生了。一旦發現丟包,TCP就要減小擁塞窗口。如果連續若干個數據包的確認都沒有收到,說明網絡擁塞狀況比較嚴重,那么TCP迅速將擁塞窗口的大小降為1,並進入慢啟動階段;同時還要設置一個門限值,這個值是發生擁塞時擁塞窗口大小的一半。當慢啟動以指數方式增加到這個門限值后,擁塞窗口的增長變為線性增長。此后在一個RTT內不論收到多少確認,只增加一個MSS,直到再次發生丟包。如果TCP收到了連續的幾個相同的確認,TCP會將擁塞窗口的大小降為原來的一半,同時擁塞窗口的增加變為線性增長,在一個RTT內,擁塞窗口最多只增加一個MSS,直到再次發生丟包。