113 調查局特考三等 資訊科學組 資通網路 考古題詳解
第 一 題20 分
(一) 在網際網路中,host 的通訊協定堆(protocol stack)具有哪些層(layer)?(10 分)
(二) 在網際網路中,host 可因功能和角色分為 client 和 server,這兩者的功能差異為何?且對網路的要求有何差異?(10 分)
登入後即可作答並保存紀錄。
核心觀念
本題考查網際網路的分層架構,以及各層在資料傳送時負責的工作。網際網路常用的協定堆疊分為五層:應用層、傳輸層、網路層、鏈結層與實體層。每層使用下層提供的服務,並為上層提供服務。
解題方法
由上而下列出五層,並各用一句話說明其主要功能:
- 應用層(Application layer):支援網路應用程式與應用服務,例如 HTTP、DNS、SMTP。
- 傳輸層(Transport layer):提供程序對程序(process-to-process)的資料傳輸;TCP 提供可靠傳輸及流量控制等功能,UDP 提供較精簡的傳輸服務。
- 網路層(Network layer):負責主機間的封包傳送與路由選擇,代表性協定為 IP。
- 鏈結層(Link layer):負責同一鏈結或區域網路上的節點間傳送資料框(frame),例如 Ethernet、Wi-Fi。
- 實體層(Physical layer):透過實體媒介傳送位元,規範訊號及傳輸媒介等事項。
資料由發送端往下傳遞時,各層會加入該層所需的控制資訊;接收端則由下而上逐層處理。這個過程常稱為封裝與解封裝。
解題技巧
可用「應、傳、網、鏈、實」由上而下記憶五層。常見混淆是把「程序間通訊」歸給網路層;實際上它屬於傳輸層,網路層負責的是主機間的封包傳遞。
(二)Client 與 Server 的功能及網路要求
核心觀念
Client 與 server 是依照網路服務中的角色區分。Client 發出服務請求,server 提供服務並回應請求;兩者都是連接網路的 host,角色取決於其在特定通訊中的功能。
第 二 題20 分
(一) 乙太網路(Ethernet)使用 CSMA/CD 來當它的 medium access control(MAC)通訊協定,請說明其如何避免在傳輸線上發生封包碰撞,以及碰撞後在重送封包時如何避免再度碰撞。(10 分)
(二) 當一個乙太網路中都使用 switch 來連接使用乙太網路網路卡的設備時,乙太網路網路卡在送出封包時,封包是否有可能與其他乙太網路網路卡送出的封包在傳輸線上碰撞?此回答需正確說明原因,否則不予給分。(10 分)
登入後即可作答並保存紀錄。
核心觀念
CSMA/CD 是「載波偵聽多重存取/碰撞偵測」(Carrier Sense Multiple Access with Collision Detection)。它用於共享式、半雙工乙太網路:多個設備共用同一傳輸媒介,傳送前先偵聽媒介,傳送期間持續偵測是否發生碰撞。
解題方法
-
傳送前先偵聽(Carrier Sense) 網卡先檢查媒介是否忙碌。媒介閒置時才開始傳送;若媒介忙碌,就等待媒介恢復閒置後再傳送。這可降低同時傳送的機會,但無法完全避免碰撞,因為訊號傳播需要時間:兩端設備可能在彼此的訊號尚未抵達前,都判斷媒介閒置而開始傳送。
-
多個設備共用媒介(Multiple Access) 多個網卡都能使用同一傳輸媒介,因此即使各自先行偵聽,仍可能因傳播延遲而同時送出訊框。
-
傳送期間偵測碰撞(Collision Detection) 網卡傳送時持續監聽媒介;若偵測到碰撞,便停止傳送原訊框,並送出碰撞強制訊號(jam signal),使所有相關設備都能察覺碰撞。
-
二進位指數退避(Binary Exponential Backoff) 碰撞後,各網卡不會立即重送,而是依碰撞次數選擇隨機等待時間。第 次碰撞後,從退避範圍 中隨機選取槽數,其中 ;等待的時間為所選槽數乘以 slot time。等待結束後重新偵聽媒介,再依媒介狀態傳送。隨碰撞次數增加,隨機選擇範圍擴大,降低多個網卡再次同時重送的機率。傳統乙太網路在最多 16 次傳送嘗試仍失敗後,會放棄該訊框並回報錯誤。
第 三 題20 分
(一) HTTP 通訊協定是 stateless 的通訊協定,請解釋何謂 stateless?相較 stateful 設計,stateless 設計有何優缺點?(10 分)
(二) HTTP 通訊協定可搭配使用 Cookies 的設計。請說明 Cookies 的運作原理以及優缺點。(10 分)
登入後即可作答並保存紀錄。
核心觀念
HTTP 的 stateless(無狀態),是指伺服器處理每一個請求時,不會因為 HTTP 協定本身而自動記住同一用戶端先前請求的內容或處理狀態。每個請求都必須帶有完成當次處理所需的資訊,伺服器不會只憑「這是剛才那位用戶端」便推知其先前做過什麼。
無狀態不代表伺服器完全不能保存資料,而是指 HTTP 本身不負責維持請求間的對話狀態。應用程式仍可透過 Cookie、伺服器端工作階段(session)、資料庫或其他機制保存狀態。
解題方法:比較是否保留請求間狀態
作答時,先說明無狀態的定義,再從伺服器記憶體、擴充性、故障復原及應用便利性,與 stateful(有狀態)設計比較。
| 面向 | Stateless 設計 | Stateful 設計 |
|---|---|---|
| 請求處理 | 各請求可獨立處理 | 伺服器保留先前請求的狀態 |
| 伺服器資源 | 不必為每個用戶端維持連線或對話狀態 | 需保存狀態,並管理其生命週期 |
| 負載平衡 | 請求較容易交由任一伺服器處理 | 若狀態存在單一伺服器,需黏著式連線或狀態同步 |
| 故障復原 | 伺服器更換後,可依請求資料繼續處理 | 狀態若未備份或複寫,故障可能中斷對話 |
| 應用便利性 | 每次請求需提供足夠資訊,應用程式較難延續互動脈絡 | 較容易延續使用者操作流程 |
Stateless 設計的優點與缺點
優點:
- 容易水平擴充: 任一伺服器皆可處理獨立請求,較容易透過負載平衡分散流量。
- 降低伺服器狀態管理負擔: 不必在伺服器端為每個用戶端持續保留完整對話狀態,可減少記憶體與狀態同步成本。
- 故障復原較直接: 若單一伺服器故障,只要其他伺服器具備必要資源,後續請求仍可由其他伺服器處理。
- 請求較容易重送與快取: 請求自含必要資料時,較容易重試、記錄與由中介快取處理;實際能否安全重送或快取仍取決於 HTTP 方法及應用語意。
缺點:
- 請求可能重複攜帶資料: 身分識別、授權或操作脈絡等資訊,可能必須在多次請求中重複提供。
- 應用程式需另外維持狀態: 例如購物車、登入狀態或多步驟表單,需要搭配 Cookie、session 或資料庫等機制。
- 應用層設計較複雜: 開發者必須明確處理狀態保存、識別與還原;若把狀態交由用戶端攜帶,亦須處理竄改與保護問題。
解題技巧與常見陷阱
記住:HTTP 無狀態,指協定不自動記住前後請求,不代表網站不能提供登入或購物車功能。 登入狀態可以透過 Cookie 傳送識別碼,再由伺服器查詢對應的 session;這是應用程式在 HTTP 之上補上狀態管理。
(二)Cookies 的運作原理與優缺點
核心觀念
Cookie 是伺服器透過 HTTP 標頭要求瀏覽器儲存的一小段資料。瀏覽器會依 Cookie 的網域、路徑、期限及安全屬性等規則,在符合條件的後續請求中送回該 Cookie,使伺服器能識別請求或取得相關資料。
Cookie 可保存狀態識別資訊,但它本身不會把 HTTP 變成有狀態協定;它是用戶端與伺服器在 HTTP 之上維持應用狀態的一種機制。
解題方法:依請求與回應順序說明
第 四 題20 分
(一) 無線網路常會發生 hidden terminal 的問題,請說明這是什麼問題且為何會發生。(10 分)
(二) WiFi 無線網路可使用 RTS、CTS、DATA、ACK 的 frames 來避免發生 hidden terminal 的問題,請說明這方式的運作原理。(10 分)
登入後即可作答並保存紀錄。
核心觀念
Hidden terminal(隱藏終端)是無線網路中,兩個無線工作站彼此聽不到對方,卻都能與同一個接收端通訊的情形。由於工作站無法偵測彼此的傳輸,可能同時向接收端送資料,造成碰撞。
解題方法
以工作站 A、B 與接收端 S 為例:
- A 能與 S 通訊,B 也能與 S 通訊。
- 但 A 與 B 相距較遠,或受到障礙物、訊號衰減影響,彼此無法接收到對方的訊號。
- A 傳送前進行載波感測時,聽不到 B;B 傳送前也聽不到 A。
- 因此 A、B 可能都判定媒介閒置,並同時傳送資料。兩個訊號在 S 處重疊,造成接收碰撞。
這反映了無線媒介的載波感測範圍與接收端的通訊範圍不完全相同:工作站能否彼此聽見,不必然能反映它們是否會在共同接收端造成碰撞。
解題技巧
可用「彼此聽不到,但都聽得到接收端」記憶 hidden terminal。作答時要指出兩個結果:傳送端無法互相感測,以及共同接收端可能收到碰撞資料。
(二)RTS/CTS 避免 Hidden terminal 的運作原理
核心觀念
IEEE 802.11 的 RTS/CTS 機制以短控制訊框預約媒介。傳送端先送出 RTS(Request to Send),接收端回覆 CTS(Clear to Send),再進行 DATA 與 ACK 傳輸。鄰近工作站透過聽到 RTS 或 CTS,設定網路配置向量 NAV,在預約期間延後傳送。
解題方法
第 五 題20 分
(一) Domain Name System(DNS)是網際網路運行時不可或缺的重要功能,它採用分散式且階層式的設計。請說明其 iterative DNS query 的運作原理。(10 分)
(二) DNS 可被用來進行 Distributed Denial-of-Service(DDoS)攻擊。請說明此攻擊的運作原理。(10 分)
登入後即可作答並保存紀錄。
核心觀念
DNS 採分散式、階層式架構,將網域名稱的查詢工作分散到不同層級的 DNS 伺服器。Iterative query(迭代式查詢)是指:收到查詢的伺服器若不知道答案,會回覆自己所知的下一個查詢方向,由查詢端再向其他 DNS 伺服器查詢。伺服器不會代替查詢端一路追問到底。
解題方法
以查詢 www.example.com 的 IP 位址為例:
- 使用者的主機先向本地 DNS 解析器(通常是遞迴解析器)提出查詢。
- 解析器若沒有快取答案,便向 DNS 根伺服器詢問。根伺服器不一定知道
www.example.com的 IP,但會回覆.com頂級網域(TLD)伺服器的資訊。 - 解析器再向
.comTLD 伺服器查詢。TLD 伺服器回覆example.com權威名稱伺服器的資訊。 - 解析器接著向
example.com的權威名稱伺服器查詢。權威伺服器回覆www.example.com的紀錄,例如 A 紀錄中的 IPv4 位址。 - 解析器將結果回覆給使用者主機,並可依紀錄的 TTL 將答案快取一段時間。
因此,雖然使用者通常只對本地解析器送出一次請求,後續由解析器逐站查詢根、TLD 與權威伺服器的過程,採用的就是迭代式查詢。
解題技巧
掌握「不知答案就提供下一站線索,查詢端自行前往」即可判斷迭代式查詢。其與遞迴式查詢的差別在於:遞迴查詢要求被詢問的伺服器負責取得最終答案;迭代查詢則由查詢端逐一詢問各伺服器。
(二)利用 DNS 進行 DDoS 攻擊的運作原理
核心觀念