網絡程序設計期末試題


Note:

  • 大部分題目都是原創,如有錯誤請指出,謝謝!
  • 【原】:原創題目。
  • 【百度文庫】:百度文庫題目。
  • 【20xx·計算機聯考408】:408題目
  • 【@xxx】:其他同學的題目。
  • 滿分100。

一、選擇題(3*10分=30)

1.以下不屬於TCP/IP協議簇的協議是()【原】
A ICMP
B SMTP
C HTTP
D CONP

【答案】 D。 CONP是OSI參考模型體系中的協議,其他三個都是TCP/IP協議簇中常見的協議類型。

2.OSI參考模型中,表示層主要完成什么功能()【原】
A 通信管理
B 數據可靠傳輸
C 數據格式轉換
D 路由選擇

【答案】C。通信管理在會話層,數據可靠傳輸在傳輸層,路由選擇在網絡層。表示層負責設備固有數據格式和網絡標准數據格式的轉換。

3.以下TCP/IP協議體系中,中繼器工作所在層次是()【原】

A 物理層
B 數據鏈路層
C 網絡層
D 傳輸層

【答案】A。中繼器對光纜傳過來的信號進行波形調整和方法,它工作在物理層。

4.按接收端數量可將傳輸方式分為單播、任播、多播、廣播,以下哪一種屬於多播()【原】

A 固定電話
B 電視廣播
C 電視會議
D DNS根域名解析服務

【答案】C。固定電話屬於單播,一對一;電視廣播屬於廣播,一對多,它和多播的區別在於,多播對接收對象有限制,廣播無法限制接收對象;DNS根域名服務器屬於任播,它和多播的區別在於,同樣都是對接收對象有限制,任播只為多個接收端中的一個最優對象服務,而多播為符合條件的多個接收端服務。

5.404是網頁訪問常見的返回碼,以下不可能導致返回404碼的情況是()【原】

A 所訪問的網頁不存在
B 所訪問的網頁存在,但是被改動或刪除了
C 用戶輸入了一個錯誤的URL
D 用戶沒有訪問指定資源的權限

【答案】D。A、B、C均是可能導致返回404的原因,用戶無訪問權限時返回狀態碼為401。

6.TCP使用()進行流量控制。【百度文庫】

A 三次握手
B 窗口控制
C 自動重發
D 端口機制

【答案】B。TCP使用窗口滑動機制來控制流量。

7.在實現基於TCP的網絡應用程序時,服務器端正確的處理流程是()。【百度文庫】
A socket() -> bind() -> listen() -> connect() -> read()/write() -> close()
B socket() -> bind() -> listen() -> read()/write() -> close()
C socket() -> bind() -> listen() -> accept() -> read()/write() -> close() 
D socket() -> connect() -> read()/write() -> close()

【答案】C,socket基礎概念。

8.假設R1、R2、R3采用RIP協議交換路由信息,且均已收斂。若R3檢測到網絡201.1.2.0/25不可達,並向R2通告一次新的距離向量,則R2更新后,其到達該網絡的距離是()【2016·計算機聯考408】
A 2
B 3
C 16
D 17

【答案】因為R3檢測到網絡201.1.2.0/25不可達,故將到該網絡的距離設置為16 (距離為16表示不可達)。當R2從R3收到路由信息時,因為R3到該網絡的距離為16,則R2到該網絡也不可達,但此時記錄R1可達(由於RIP的特點“壞消息傳的慢”, R1並沒有收到R3發來的路由信息),R1到該網絡的距離為2,再加上從R2到R1的1就是R2到該網絡的距離3。

9.若某通信鏈路的數據傳輸速率為2400bps,采用4相位調制,則該鏈路的波特率是()。【2011·計算機聯考408】
A 600波特
B 1200波特
C 4800波特  
D 9600波特

【答案】B。有4種相位,則一個碼元需要由log24=2個bit表示,則波特率=比特率/2=1200波特。

10.若主機甲主動發起一個與主機乙的TCP連接,甲、乙選擇的初始序列號分別為2018和2046,則第三次握手TCP段的確認序列號是()。【2019·計算機聯考408】

A 2018
B 2019
C 2046
D 2047

【答案】D。第三次握手的TCP段由甲發出,在接收到乙發來的序號2046后,甲應該發出確認號2047。

二、判斷題(3*10分=30)

11.NAT是ipv4為解決地址枯竭而開發的技術,ipv6中用不到NAT。()【原】
【答案】×。前半句正確,后半句錯誤。ipv6仍在延用NAT,因為除了擴充ip地址外,NAT還可以提高網絡安全性。考察對NAT協議的基本認識。

12.上下層之間所遵守的約定叫接口,同一層遵守的約定叫協議。()【原】
【答案】√。同一層之間遵守協議,上下層之間通過接口提供服務和交付數據。考察基本概念。

13.在TCP/IP協議中,路由器負責對IP數據報進行分片和重組。()【原】
【答案】×。為了降低路由器任務量,提升通信速度,分片的工作從IP層提升至傳輸層。在傳輸層通過路徑MTU發現技術確定IP數據報的大小,這樣路由器不必做分片任務,只負責轉發。只有目標主機有權對分片進行重組,路由器不能也沒必要重組分片。考察對IP和TCP協議細節的理解。

14.為了提高網絡的容災能力,可以設置多個DNS服務器。()【原】
【答案】√。設置多個DNS服務器是提高網絡容災能力的手段之一。考察提升網絡容災能力的常見方法。

15.TCP客戶端在完成Socket連接初始化后,調用listen()來等待服務器響應自己的連接請求。()【原】
【答案】×。這描述的是TCP服務器的處理步驟。本題考察socket通信中客戶端和服務器對常見api的調用關系。

16.網橋工作在數據鏈路層,可以對數據幀進行存儲轉發,但是它不能連接速率不同的數據鏈路。()【原】
【答案】×。前兩句正確,最后一句錯誤。網橋可以進行存儲轉發,它顯然可以通過緩存來連接不同的速率的數據鏈路。本題考察對網橋的認識,以及對存儲轉發概念的理解。

17.在IP數據報的轉發過程中,經過網橋或集線器后,跳數不會增加。()【原】
【答案】√。原句正確,IP網段使用路由器或網關連接到下一跳。本題考察IP數據報在網絡設備中轉發的實現細節。

18.在socket網絡編程中,對於TCP套接字,三次握手發生在connect()函數調用時。()【原】
【答案】√。調用connect函數將激發TCP連接三次握手。本題考查對socket網絡編程常見api的功能了解。

19.在綁定端口到IP地址上時,對於不同的網絡協議,需要准備不同的bind()函數。()【原】
【答案】×。bind函數使用內部的多態機制實現對不同協議的封裝,不需要准備不同的bind()函數。

20.在關閉TCP連接時,shutdown()函數不論描述符引用是否為0,都會激發TCP四次揮手終止連接。()【原】
【答案】√。關閉TCP連接有兩個函數,一個是close,一個是shutdown。前者將描述符數值減一,如果為0,才關閉套接字。后者則不論引用計數,直接激發TCP連接終止過程。

三、簡答題
21.融合了TCP/IP和OSI的五層網絡協議模型一種常見的網絡體系划分方法,完成以下問題:(共10分)【原】
(1)請畫出五層網絡協議體系層次圖(5分)
【答案】:各1分
——————
| 應用層 |
——————
| 傳輸層 |
——————
| 網絡層 |
——————
| 數據鏈路層 |
——————
| 物理層 |
——————
(2)請指出中繼器、網卡、網橋、交換機、路由器分別工作在哪一層。(5分)
【答案】:各1分
中繼器:物理層;
網卡:物理層
網橋:數據鏈路層
交換機:數據鏈路層
路由器:網絡層

22.如下圖,請完成TCP服務器完成一次正常socket連接的api調用過程。(15分)【原】

【答案】:每空3分

**23.I/O復用模型的關鍵是熟練掌握select函數,該函數的原型是 int select(int maxfd, fd_set *readset, fd_set *writeset, fd_set exceptset, const struct timeval timeout);(15分) 【@二六二六二

**(1)請詳細解釋select函數的參數的意義,以及執行結果。(6分) **
(2)如何利用select函數構造一個最簡單的多協議服務器,同時提供TCP和UDP服務?畫出進程結構圖。(9分)

【答案】:
(1)maxfd參數是所以監視的描述字中最大的描述字加1。中間三個參數分別表示監視的不同條件的描述字集合。其中readset為讀描述字集合,writeset為寫描述字集合,execptset為異常描述字集合。Timeout參數為select函數最長睡眠時間。Select函數有三種執行情況:永遠等待下去:僅在有一個或以上描述字准備好i/o才返回,為此,我們將timeout設置為空指針。等待固定時間:在有一個描述字准備好時返回,但不超過由timeout參數指定的秒數和微秒數。根本不等待,檢查描述字后立即返回,這稱為輪詢。這種情況下,timeout必須指向結構timeval,且定時器的值必須為0。Select函數的返回值如下:如果在指定超時值到達之前有一個或多個描述字滿足條件,則函數返回值大於零;如果超時時間到時,沒有描述字滿足條件,函數返回值為0;如果select函數阻塞過程中,發生錯誤,函數返回值為-1;
(2)多協議服務器可以由一個執行線程構成,該線程既可以在TCP也可以在UDP上使用異步IO來處理通信。服務器最初打開兩個套接字,一個使用無連接的傳輸,一個使用面向連接的傳輸,使用異步IO等待兩個套接字之一就緒。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM