如何評測一個軟件工程師的計算機網絡知識水平與網絡編程技能水平?


一、課程知識

  1.互聯網相關概念,網絡協議基礎,網絡相關命令,環境配置

  2.Socket網絡編程

  3.tcp協議及其原理

  4.ip協議以及源碼分析

  5.dns域名解析以及dhcp服務

  

TCP/IP協議族

  要想理解socket首先得熟悉一下TCP/IP協議族, TCP/IP(Transmission Control Protocol/Internet Protocol)即傳輸控制協議/網間協議,定義了主機如何連入因特網及數據如何在它們之間傳輸的標准,從字面意思來看TCP/IP是TCP和IP協議的合稱,但實際上TCP/IP協議是指因特網整個TCP/IP協議族。不同於ISO模型的七個分層,TCP/IP協議參考模型把所有的TCP/IP系列協議歸類到四個抽象層中。

 

在Internet層,解析IP地址,尋找通往目標IP的目的地的下一個路由地址。在網絡接口層,則是尋找響應的硬件(MAC)地址。數據流以及網絡拓撲結構如下圖所示。

 

 Socket相關知識

socket起源於UNIX,在Unix一切皆文件哲學的思想下,socket是一種"打開—讀/寫—關閉"模式的實現,服務器和客戶端各自維護一個"文件",在建立連接打開后,可以向自己文件寫入內容供對方讀取或者讀取對方內容,通訊結束時關閉文件。

 

 

TCP的三次握手

 

 

第一次握手:客戶端嘗試連接服務器,向服務器發送syn包(同步序列編號Synchronize Sequence Numbers),syn=j,客戶端進入SYN_SEND狀態等待服務器確認

第二次握手:服務器接收客戶端syn包並確認(ack=j+1),同時向客戶端發送一個SYN包(syn=k),即SYN+ACK包,此時服務器進入SYN_RECV狀態

第三次握手:第三次握手:客戶端收到服務器的SYN+ACK包,向服務器發送確認包ACK(ack=k+1),此包發送完畢,客戶端和服務器進入ESTABLISHED狀態,完成三次握手

定睛一看,服務器socket與客戶端socket建立連接的部分其實就是大名鼎鼎的三次握手

其在socket中的三次握手

 

 

 二、計算機網絡知識水平與編程能力測試

     選擇題

 

1.數據鏈路層采用后退 N 幀(GBN)協議,發送方已經發送了編號為 0~7 的幀。當計時器超時時,若發送方

只收到 0、2、3 號幀的確認,則發送方需要重發的幀數是__C____。
A.2
B.3
C.4
D.5
解析:考查后退 N 幀協議的工作原理。
在后退 N 幀協議中,發送方可以連續發送若干個數據幀,如果收到接收方的確認幀則可以繼續發送。
若某個幀出錯,接收方只是簡單的丟棄該幀及其后所有的后續幀,發送方超時后需重傳該數據幀及其后
續的所有數據幀。這里要注意,連續 ARQ 協議中,接收方一般采用累積確認的方式,即接收方對按序到
達的最后一個分組發送確認,因此題目中收到 3 的確認幀就代表編號為 0、1、2、3 的幀已接收,而此時
發送方未收到 1 號幀的確認只能代表確認幀在返回的過程中丟失了,而不代表 1 號幀未到達接收方。因
此需要重傳的幀為編號是 4、5、6、7 的幀。
 
 
2.下列選項中,不屬於網絡體系結構所描述的內容是__C____。
A.網絡的層次
B.每一層使用的協議
C.協議的內部實現細節
D.每一層必須完成的功能
解析:考查計算機網絡體系結構的基本概念。
我們把計算機網絡的各層及其協議的集合稱為體系結構。因此 A、B、D 正確,而體系結構是抽象的,
它不包括各層協議及功能的具體實現細節

 

3.在學校局域網上ping 其中一個服務器 沒有涉及到的網絡協議是?()

A、TCP B、DNS C、ICMP D、ARP

答案:A

解析:首先我們需要dns協議,將網址轉為IP地址,其次ping的原理是使用ICMP的回響機制,所以必然用到了網絡層的ICMP協議,最后在到達對方局域網的時候需要使用RARP查找mac地址,在發送主機不知道自己IP的時候也會用到ARP協議,所以綜上ping的過程中用到了 dns協議、ICMP協議、ARP協議、RARP協議。

4. 若主機甲與主機乙建立 TCP 連接時發送的 SYN 段中的序號為 1000,在斷開連接時, 甲發送給乙的 FIN 段中的序號為 5001,則在無任何重傳的情況下,甲向乙已經發送的 應用層數據的字節數為:

 A、4002 B、4001 C、4000 D、3999

答案 C

【解析】 SYN=1000,則數據傳輸時的起始序號為 1001,字節數 = FIN – 1001 = 4000

5. 假設下圖所示網絡中的本地域名服務器只提供遞歸查詢服務,其他域名的服務器均只提 供迭代查詢服務;局域網內主機訪問 Internet 上各服務器的往返時間(RTT)均為 10ms, 忽略其他各種時延,若主機 H 通過超鏈接 http://www.abc.com/index.html,請求瀏覽純 文本 Web 頁 index.html,則從點擊超鏈接開始到瀏覽器接收到 index.html 頁面為止, 所需最短、最長時間分別是:

A、10ms,40ms B、10ms,50ms C、20ms,40ms D、20ms,50ms

答案 D

【解析】 最短時間:本地域名服務器存在域名與 IP 地址的映射 主機向本地域名服務器遞歸查詢 10s + 數據傳輸 10ms = 20ms 最長時間:本地域名服務器不存在映射,需要迭代查詢各級域名服務器 3 次 10ms + 迭代查詢 3 次 30ms + 數據傳輸 10ms = 50ms

 

6、DNS工作於(   )

(A)網絡層

(B)傳輸層

(C)應用層

(D)表示層

答案:C

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,【原創】下面哪個函數負責構造一個攜帶SYN標志位的TCP頭並發送出去,同時還設置了計時器超時重發(  )

  A、tcp_transmit_skb

  B、inet_csk_accept

  C、tcp_v4_rcv

  D、tcp_connect

答:D,考察對Linux網絡協議棧的了解。

 簡答題

 

1.什么是TCP的三次握手機制?TCP的三次握手機制過程簡述。

答:三次握手:

(1)Client先產生一個初始序列號seq,SYN標志位置1,將該數據包發送給Server端,之后Client端進入SYN_SENT狀態,等待Client確認。

(2)Server收到數據包后也發送自己的SYN報文作為響應,並初始化序列號seq,為了確認Client的seq,Server將Client發送的seq加1作為ACK發送給Client,Server進入SYN_RCVD狀態。

(3)為了確認Server的SYN,Client將Server發送的seq加1作為ACK發送給Server。Client和Server進入ESTABLISHED狀態,完成三次握手。

 

2.簡述交換機、集線器和路由器的區別,交換機和集線器的聯系。

答:

1.集線器
集線器工作在物理層
共享帶寬
半雙工
廣播發送
2.交換機
以太網交換機工作在數據鏈路層
連接局域網中的主機
相互通信的主機獨占帶寬
依據MAC地址轉發,有目的發送
3.路由器
路由器工作在網絡層
是一個多輸入輸出端口的專用計算機
連接不同的網絡
共享帶寬
依據IP地址轉發,有目的發送

3.簡述UDP和TCP的協議的主要特點和它們的主要差別

答:UDP
(1)無連接
(2)盡最大努力交付,不可靠
(3)無擁塞控制,效率高,適合於IP電話,實時視頻等
(4)首部開銷小,只有四個字段(源端口,目的端口,長度,檢驗和)
(5)可一對一,一對多,多對一,多對多交互
(6)面向報文
TCP
(1)面向連接的傳輸層協議
(2)每個TCP連接只能有兩個端點,一對一
(3)可靠交付
(4)全雙工通信
(5)面向字節流,“流”指流入到進程或從進程流出的字節序列,將收到的分組組織成字節流提交給上層

 

綜合題

1.假設下圖中的H3訪問Web服務器S時,S為新建的TCP連接分配了20 KB(K=1
024)的接收緩存,最大段長MSS=1 KB,平均往返時間RTT=200 ms。H3建立連接時的初始序號
為100,且持續以MSS大小的段向S發送數據,擁塞窗口初始閾值為32 KB;S對收到的每個段進
行確認,並通告新的接收窗口。假定TCP連接建立完成后,S端的TCP接收緩存僅有數據存入而
無數據取出。請回答下列問題。
(1)在TCP連接建立過程中,H3收到的S發送過來的第二次握手TCP段的SYN和ACK標志位
的值分別是多少?確認序號是多少?
(2)H3收到的第8個確認段所通告的接收窗口是多少?此時H3的擁塞窗口變為多少?H3的發
送窗口變為多少?
(3)當H3的發送窗口等於0時,下一個待發送的數據段序號是多少?H3從發送第1個數據段到
發送窗口等於0時刻為止,平均數據傳輸速率是多少(忽略段的傳輸延時)?
(4)若H3與S之間通信已經結束,在t時刻H3請求斷開該連接,則從t時刻起,S釋放該連接的
最短時間是多少?

 

 

解析:

(1)第二次握手TCP段的SYN=1,(1分)ACK=1;(1分)確認序號是101。(1分)
(2)H3收到的第8個確認段所通告的接收窗口是12 KB;(1分)此時H3的擁塞窗口變為9 KB;
(1分)H3的發送窗口變為9 KB。(1分)
(3)當H3的發送窗口等於0時,下一個待發送段的序號是20 K+101=20×1024+101=20581;(1
分)H3從發送第1個段到發送窗口等於0時刻為止,平均數據傳輸速率是20 KB/(5×200 ms)=20
KB/s=20.48 kbps。(1分)
(4)從t時刻起,S釋放該連接的最短時間是:1.5×200 ms=300 ms。(1分)

 

2.

某網絡拓撲如下圖所示,其中R為路由器,主機H1~H4的IP地址配置以及R的各接口IP地址

配置如圖中所示。現有若干台以太網交換機(無VLAN功能)和路由器兩類網絡互連設備可供選擇。

請回答下列問題:

(1) 設備1、設備2和設備3分別應選擇什么類型網絡設備?

(2) 設備1、設備2和設備3中,哪幾個設備的接口需要配置IP地址?並為對應的接口配置正確的IP地

址。

(3) 為確保主機H1~H4能夠訪問Internet,R需要提供什么服務?

(4) 若主機H3發送一個目的地址為192.168.1.127的IP數據報,網絡中哪幾個主機會接收該數據報?

 

 參考答案:(1)設備1:路由器 設備2:以太網交換機 設備3:以太網交換機

               (2)設備1的接口需要配置ip地址;設備1的IF1,IF2,IF3接口的ip地址分別是

                 192.168.1.254 192.168.1.1 192.168.1.65

                (3)R需要提供NAT服務

                 (4)主機H4會接收該數據報


免責聲明!

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



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