網路程式設計期末試題 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等待兩個套接字之一就緒 |