一、如何評測軟件工程師的計算機網絡知識水平與網絡編程技能水平?
1.計算機網絡基本知識
集線器、路由器、光纖、同軸電纜等硬件設備的基本了解;
TCP/IP網絡的五個層次;
TCP/IP協議棧的初始化,網絡數據收發的具體過程;
ARP、DNS、L2交換網絡的基本了解;
2.代碼作業能力
熟悉Linux Socket網絡編程;
追蹤了解Socket API與系統調用的關系;
能夠閱讀並分析涉及網絡數據收發過程的函數源代碼;
3.學習能力
善於閱讀源代碼與技術文檔;
善於搜索並學習他人經驗;
二、Linux下網絡協議棧分析
3.Linux Socket
socket 位於應用層,它為網絡應用編程提供API。通過Linux Socket,網絡應用程序得以訪問內核空間的協議棧,從而形成通信。同時,Linux系統中一切皆文件,Socket也是文件的一部分,調用Socket API進行數據收發時控制的是收發緩沖區的文件描述符。Linux Socket API的定義在./net/socket.c中。以下是UDP Socket與TCP Socket處理過程
三、計算機網絡知識水平與編程能力測試
一、選擇題(5小題,每小題4分,共20分)
1.計算機網絡中使用最廣泛的交換技術是( ) 【網課“計算機網絡”測試題】
A.電路交換 B.報文交換 C.分組交換 D.線路交換
答案:C,最常用的TCP/IP協議數據傳輸形式為分組
2.關於TCP/IP的IP層協議描述不正確的是( ) 【網課“計算機網絡”測試題】
A、是點到點的協議 B、不能保證IP報文的可靠傳送
C、是無連接的數據報傳輸機制 D、每一個IP數據包都需要對方應答
答案:A,IP協議為面向無連接
3.對地址轉換協議(ARP)描述正確的是( )【2012考研真題】
A、ARP封裝在IP數據報的數據部分 B、ARP是采用廣播方式發送的
C、ARP是用於IP地址到域名的轉換 D、發送ARP包需要知道對方的MAC地址
答案:B,主機發送信息時將包含目標IP地址的ARP請求廣播到局域網絡上的所有主機,並接收返回消息,以此確定目標的物理地址。不需要提前知道MAC地址。
4.在TCP/IP體系結構中,直接為ICMP提供服務的協議是( ) 【2012考研真題】
A.PPP B.IP C.UDP D.TCP
答案:C, ICMP報文包含在IP數據報內。
5.以下關於API與系統調用之間關系描述不正確的是( ) 【原創】
A. API可能直接提供⽤戶態的服務
B. ⼀個單獨的API可能調⽤⼏個系統調⽤
C. 每個API都調用了系統調用
D. 不同的API可能調⽤了同⼀個系統調⽤
答案:C, API可能不調用系統調用
二、填空題(20分,主要來自百度文庫)
1. 常用的物理層設備有中繼器和 集線器 ,數據鏈路層設備有網橋和 交換機 。
解析:考察各層次常用設備。
2. 數據交換技術有電路交換、報文交換和 分組交換 ,而后一種包含數據報和 虛電路 兩種實現方式。
解析:考察數據交換技術。
3. 外部網關協議有BGP,內部網關協議有 RIP 和 OSPF 。
解析:考察路由協議。
4. 從IPv4到IPv6過渡的兩種策略是 隧道技術 和 雙協議棧技術 。
解析:記憶題。
5. 傳輸層提供 TCP 和 UDP 兩種服務。
解析:送分題。
三、綜合題(60分)
1.【2009年408考研T47】某網絡拓撲如下圖所示,路由器 R1 通過接口 E1、E2分別連接局域網 1、局域網 2,通過接口 L0連接路由器 R2,並通過路由器 R2 連接域名服務器與互聯網。R1 的 L0 接口的 IP 地址是 202.118.2.1;R2的 L0接口的 IP 地址是 202.118.2.2,L1 接口的 IP 地址是 130.11.120.1,E0接口的 IP 地址是 202.118.3.1;域名服務器的 IP 地址是 202.118.3.2。
⑴ 將 IP 地址空間 202.118.1.0/24 划分為 2 個子網,分別分配給局域網 1、局域網 2,每個局域網需分配的IP 地址數不少於 120個。請給出子網划分結果,說明理由或給出必要的計算過程。
⑵ 請給出 R1 的路由表,使其明確包括到局域網 1 的路由、局域網 2的路由、域名服務器的主機路由和互聯網的路由。
⑶ 請采用路由聚合技術,給出 R2 到局域網 1和局域網 2的路由。
解析:
⑴ CIDR 中的子網號可以全 0 或全 1,但主機號不能全 0 或全 1。因此若將 IP 地址空間 202.118.1.0/24 划分為 2 個子網,且每個局域網需分配的 IP 地址個數不少於 120 個,子網號至少要占用一位。由 2 6 -2<120<2 7 -2 可知,主機號至少要占用 7 位。由於源 IP 地址空間的網絡前綴為 24 位,因此 主機號位數+子網號位數=8 。
綜上可得主機號位數為 7,子網號位數為 1。
因此子網的划分結果為:子網 1:202.118.1.0/25,子網 2:202.118.1.128/25。
地址分配方案:子網 1 分配給局域網 1,子網 2 分配給局域網 2,或子網 1 分配給局域網 2,子網 2 分配給局域網 1。
⑵ 由於局域網 1 和局域網 2 分別與路由器 R1 的 E1、E2 接口直接相連,因此在 R1 的路由表中,目的網絡為局域網 1 的轉發路徑是直接通過接口 E1 轉發,目的網絡為局域網 2 的轉發路徑是直接通過接口 E1 轉發。由於局域網 1、2 的網絡前綴均為 25 位,因此它們的子網掩碼均為 255.255.255.128。根據題意,R1 專門為域名服務器設定了一個特定的路由表項,因此該路由表項中的子網掩碼應為255.255.255.255。對應的下一跳轉發地址是 202.118.2.2,轉發接口是 L0。根據題意,到互聯網的路由實質上相當於一個默認路由,默認路由一般寫作 0/0,即目的地址為 0.0.0.0,子網掩碼為 0.0.0.0。對應的下一跳轉發地址是 202.118.2.2,轉發接口是 L0。
綜上可得到路由器 R1 的路由表為:
⑶ 局域網 1 和局域網 2 的地址可以聚合為 202.118.1.0/24,而對於路由器 R2 來說,通往局域網 1 和 2 的轉發路徑都是從 L0 接口轉發,因此采用路由聚合技術后,路由器 R2 到局域網 1 和局域網 2 的路由為:
2.【2011年408考研T47】某主機的 MAC 地址為 00-15-C5-C1-5E-28,IP 地址為 10.2.128.100(私有地址)。題 47-a 圖是網絡拓撲,題 47-b 圖是該主機進行 Web 請求的 1 個以太網數據幀前 80 個字節的十六進制及 ASCII 碼內容。
圖 47-a 圖 網絡拓撲
請參考圖中的數據回答以下問題。
(1)Web 服務器的 IP 地址是什么?該主機的默認網關的 MAC 地址是什么?
(2)該主機在構造題 47-b 圖的數據幀時,使用什么協議確定目的 MAC 地址?封裝該協議請求報文的以太網幀的目的 MAC 地址是什么?
(3)假設 HTTP/1.1 協議以持續的非流水線方式工作,一次請求-響應時間為 RTT,rfc.html 頁面引用了 5 個 JPEG 小圖像,則從發出題 47-b 圖中的 Web 請求開始到瀏覽器收到全部內容為止,需要多少個 RTT?
(4)該幀所封裝的 IP 分組經過路由器 R 轉發時,需修改 IP 分組頭中的哪些字段?
注:以太網數據幀結構和 IP 分組頭結構分別如題 47-c 圖、題 47-d 圖所示。
解析:
(1)64.170.98.32 00-21-27-21-51-ee
以太網幀頭部 6+6+2=14 字節,IP 數據報首部目的 IP 地址字段前有 4*4=16 字節,從以太網數據幀第一字節開始數 14+16=30 字節,得目的 IP 地址 40 aa 62 20(十六進制),轉換為十進制得 64.170.98.32。以太網幀的前六字節 00-21-27-21-51-ee 是目的 MAC 地址,本題中即為主機的默認網關 10.2.128.1 端口的 MAC 地址。
(2)ARP FF-FF-FF-FF-FF-FF
ARP 協議解決 IP 地址到 MAC 地址的映射問題。主機的 ARP 進程在本以太網以廣播的形式發送 ARP 請求分組,在以太網上廣播時,以太網幀的目的地址為全 1,即 FF-FF
-FF-FF-FF-FF。
(3)6
HTTP/1.1 協議以持續的非流水線方式工作時,服務器在發送響應后仍然在一段時間內保持這段連接,客戶機在收到前一個響應后才能發送下一個請求。第一個 RTT 用於請求 web頁面,客戶機收到第一個請求的響應后(還有五個請求未發送),每訪問一次對象就用去一個RTT。故共 1+5=6 個 RTT 后瀏覽器收到全部內容。
(4)源 IP 地址 0a 02 80 64 改為 65 0c 7b 0f,生存時間(TTL)減 1,校驗和字段重新計算
私有地址和 Internet 上的主機通信時,須有 NAT 路由器進行網絡地址轉換,把 IP 數據報的源 IP 地址(本題為私有地址 10.2.128.100)轉換為 NAT 路由器的一個全球 IP 地址(本題為 101.12.123.15)。因此,源 IP 地址字段 0a 02 80 64 變為 65 0c 7b 0f。IP 數據報每經過一個路由器,生存時間 TTL 值就減 1,並重新計算首部校驗和。若 IP 分組的長度超過輸出鏈路的 MTU,則總長度字段、標志字段、片偏移字段也要發生變化。
3.【2015年408考研T47】某網絡拓撲如題47圖所示,其中路由器內網接口、DHCP服務器、WWW服務器與主機1均采用靜態IP地址配置,相關地址信息見圖中標注;主機2~主機N通過DHCP服務器動態獲取IP地址等配置信息。
題47圖
請回答下列問題。
(1)DHCP服務器可為主機2~主機N動態分配IP地址的最大范圍是什么?主機2使用DHCP協議獲取IP地址的過程中,發送的封裝DHCP Discover報文的IP分組的源IP地址和目的IP地址分別是什么?
(2)若主機2的ARP表為空,則該主機訪問Internet時,發出的第一個以太網幀的目的M&C地址是什么?封裝主機2發往Internet的IP分組的以太網幀的目的MAC地址是什么?
(3)若主機1的子網掩碼和默認網關分別配置為255.255.255.0和111.123.15.2,則該主機是否能訪問WWW服務器?是否能訪問Internet?請說明理由。
解析:
(1)DHCP服務器可為主機2~主機N動態分配IP地址的最大范圍是:111.123.15.5~111.123.15.254;主機2發送的封裝DHCPDiscover報文的IP分組的源IP地址和目的IP地址分別是0.0.0.0和255.255.255.255。
(2)主機2發出的第一個以太網幀的目的MAC地址是ff-ff-ff-ff-ff-ff;封裝主機2發往Internet的IP分組的以太網幀的目的MAC地址是00-al-al-al-al-al。
(3)主機1能訪問WWW服務器,但不能訪問Internet。由於主機1的子網掩碼配置正確而默認網關IP地址被錯誤地配置為111.123.15.2(正確IP地址是111.123.15.1),所以主機1可以訪問在同一個子網內的WWW服務器,但當主機1訪問Internet時,生機1發出的IP分組會被路由到錯誤的默認網關(111.123.15.2),從而無法到達目的主
機。