企業資料通訊是我們資訊管理學系大一下學期必修科目,主要在講電腦網際網路,期中考的時候我也有發一篇文章了!有興趣可以去看看,期末考已經結束,想說已經整理好的筆記不要浪費,留給需要的人使用,這次期末考範圍內容比期中考多非常多,整理筆記的時間就將近 12 小時,整理的過程還是右手尚未恢復的時候,所以過程相當需要專注力,最後還是成功完成筆記了!因為老師允許帶雙面 A4 印刷筆記進考場考試,所以我還特別將自己的電子筆記濃縮整理到一張雙面 A4 紙上,真的非常瘋狂,大約 4500 個字塞在這張紙上,原本的筆記接近一萬字,我放在這的筆記是完整版的,提供文字檔與 PDF 檔,我們的進度與筆記都是參考「電腦網際網路(第六版)(國際版) [全華圖書出版]」這本教科書。
🔍 期末考進度為:3.4~5.4 (4.7、5.2、5.3 跳過,大致上為傳輸層、網路層與連結層的介紹)
⬅ 期中考:企業資料通訊(電腦網際網路) 1.1~3.3 重點筆記 (期中考範圍) [雙人筆記]
▲「電腦網際網路(第六版)(國際版)」封面與封底掃描圖。
接著為電子筆記分享,有我與同學的,我們也常常討論這個科目的相關問題,希望能幫助到未來有需要讀這個領域的人!
※ 若有錯誤歡迎留言告知,本文筆記僅供參考。
企業資料通訊 3.4~5.4 重點筆記 By 萌芽站長
🔶 第三章 (3.4開始) 🔶
🌏 3.4.1 建立可靠的資料傳輸協定:
🔈 有限狀態機 (finite-state Machine,FSM) :《分子》遇到一個事件 /《分母》展開什麼行動|用來定義傳輸端與接收端傳輸協定的運作方式。
🔺 rdt1.0 ▶ 透過絕對可靠的通道進行的可靠資料傳輸。
🔺 rdt2.0 ▶ 透過會產生位元錯誤的通道進行資料傳輸,這類協定稱為停止並等待 (stop-and-wait) 協定。
肯定確認 (positive acknowledgment) (「OK」) 跟否定確認 (negative acknowledgment) (「請再說一次」)。
💬 自動重複請求 (ARQ) 協定:(1) 錯誤偵測 (2) 接收端回饋 (3) 重送
⚠ ACK 或NAK 損毀的問題前者都尚未解決🔺 rdt2.1 ▶ 資料報中加入一個新欄位,令傳送端在此欄位中放入序號(sequence number),以編號其資料報。
🔺 rdt2.2 ▶ 傳送端如果收到兩次針對相同封包的ACK訊息 [即收到重複的ACK (duplicate ACK)],便會知道接收端並未正確收到被ACK 確認兩次的封包之後的那份封包。rdt2.2 不使用NAK。
⚠ 毀損位元(rdt2.0、rdt2.1、rdt2.2)|遺失封包(rdt3.0)🔺 rdt3.0 ▶ 透過會發生位元錯誤,也會遺失封包的通道,進行可靠的資料傳輸。(變換位元協定)
◾倒數計時器 (countdown timer) ▶ 造成傳送端到接收端的通道中,有可能出現重複的資料封包 (duplicate data packet)。🌏 3.4.2 建立可靠的資料傳輸協定:
💬 rdt3.0 效能問題的核心在於事實上它是一種停止並等待的協定,效率很差。
⚠ 管線化 (pipelining) 會產生下列影響:
(1) 增加序號的範圍
(2) 傳送端和接收端可能需要暫存多份封包
(3) 所需的序號範圍和暫存需求取決於資料傳輸協定回應"遺失、損毀、和過度延遲的封包"的方式。📝 兩種基本的管線化錯誤回復方法:回溯N (Go-Back-N) 與 選擇性重傳 (selective repeat)。
🌏 3.4.3 回溯N (Go-Back-N) :允許傳送端可以無需等待確認便傳輸多份封包。[滑動窗格協定 (sliding-window protocol)]
▪ 管線中未經確認的封包最多不超過某可容許的最大值N (窗格大小 (window size))。
▫ 封包的序號是夾帶在封包標頭中某個固定長度的欄位裡。如果k等於封包序號欄位的位元數,則序號的範圍就是 [0, 2^k – 1]。
🔘 TCP 擁有 32 位元的序號欄位。🌏 3.4.4 選擇性重複 (selective repeat, SR) :單一封包的錯誤可能會導致 GBN 重送大量沒有必要重傳封包,為了避免前述情況,需要接收端個別地確認已正確收到的封包。
🌏 3.5.1 TCP 連線
☑ 連線導向 (connection-oriented)
☑ 全雙工服務(full-duplex service)
☑ 點到點 (point-to-point)
☑ 三次握手 (three-way handshake)
▪ TCP 會為每份用戶端資料都加上 TCP 標頭,以建立 TCP 區段 (TCP Segment)。
▫ 最大區段大小 (Maximum Segment Size,MSS):可以從緩衝區中取出並放入區段的最大資料量。[加上TCP/IP 標頭長度( 典型值為40位元組)]🌏 3.5.2 TCP 區段的結構
🔸 來源端與目的端埠號
🔸 檢查和欄位
🔸 32 位元的序號欄位和 32 位元的確認編號欄位
🔸 16 位元的接收端窗格 (receive window) 欄位 [流量控制]
🔸 4 位元的標頭長度 (header length) 欄位 [以 32 位元的字組為單位,來標記 TCP標頭長度]
🔸 旗標欄位包含6位元
╠ ACK 位元:確認欄位中攜帶的數值是有效的。
╠ RST、SYN 與 FIN 位元:連線的建立與中斷。
╠ PSH 位元:接收端應該要立刻將資料送交給上層。
╚ URG 位元:表示這份區段包含被傳送端的上層實體標記為「緊急」的資料。🔹 序號和確認編號
↘ TCP 將資料視為無結構,但有序的位元組串流。
↘ 序號是以所傳輸的位元組串流來編號。
↘ 區段的序號會是該份區段中第一個位元組的位元組串流編號。
↘ 主機 A 放在區段中的確認編號,會是主機 A 預期從主機 B 收到的下一個位元組的序號。
↘ TCP 最多只能夠確認串流中第一個遺失的位元組,所以我們說 TCP 提供的是累積式確認 (cumulative acknowledgement)。
↘ TCP 連線的兩端會隨機選擇一個初始序號 (教學方便假設為0)🌏 3.5.3 TCP 來回時間的的評估與逾時 :區段的RTT 取樣,標記為SampleRTT,等同於從送出某區段 ( 意即交給IP) 到收到該區段的確認訊息之間所經歷的時間。 [算法請參考課本 3-50~3-52]
🌏 3.5.4 TCP 可靠資料傳輸
🔸 TCP 在 IP 不可靠的盡力就好服務上,建立了可靠的資料傳輸服務。
🔸 TCP 建議的計時器管理程序只使用「單一」的重送計時器,即使會有多份已傳輸但未經確認的區段在網路中。🔵 倍增逾時間隔
🔸 每當 TCP 進行重送時,它會將下次的逾時間隔設定為先前數值的兩倍,而不是從前次的 EstimatedRTT 與 DevRTT 所推導出來。
🔸 為避免來源端持續不停地重送封包,造成擁塞的情況越來越嚴重,TCP 會使用比較溫和的方式來處理,令傳送端每次重送的間隔越來越長。🔵 快速重送
⚠ 逾時觸發的重送機制,其中一個問題是逾時間隔可能相當長。
🔸 如果 TCP 傳送端收到三次同一份資料的重複 ACK,TCP 傳送端會執行快速重送 (fast retransmit)。 [在該區段的計時器逾時之前,便重送遺失的區段]🔵 回溯N 還是 選擇性重複?
🔸 TCP 的傳送端只需要維護已送出但未經確認的位元組之中的最小序號(SendBase),以及下一個將要傳送的位元組序號 (NextSeqNum)。以此點而言,TCP 看起來很像 GBN 式的協定。
🔸 多數的 TCP 實作會將已經正確收到、但脫序的區段存入"緩衝區"。🌏 3.5.5 TCP流量控制
🔶 TCP 提供了流量控制服務 (flow-control service) ▶ 流量控制是一種速率調節服務,它會將傳送端傳送資料的速率,調整至相符於接收端應用程式讀取資料的速率。
🔸 TCP會藉由讓傳送端維護一個稱為接收窗格 (receive window) 的變數,來提供流量控制。非正式地說,接收窗格是用來讓傳送端對於接收端有多少可用的緩衝區空間得到一些概念。🌏 3.5.6 TCP 連線管理
🔵 連線建立 ▶ 三次握手 (three-way handshake)
🔘 步驟一:用戶端 TCP 會先傳送一筆特殊的 TCP SYN 區段給伺服端TCP。SYN位元會被設定為 1。用戶端會隨機選擇一個初始序號 (client_isn) 。
🔘 步驟二:伺服端便會從資料報中取出 TCP SYN 區段,配置 TCP 緩衝區與變數給該筆連線,然後送出一筆連線許可 SYNACK 區段給用戶端 TCP。SYN位元會被設定為1。TCP 區段標頭的確認欄位會被設定為 client_isn+1。
🔘 步驟三:一旦收到 SYNACK 區段,用戶端也會配置緩衝區與變數給該筆連線。這三次握手的第三階段,有可能會在區段內容中攜帶用戶端給伺服端的資料。🔵 關閉連線:參與TCP連線的兩筆行程,任一方都可以結束該筆連線。
🌏 3.6.2 壅塞控制的方法
🔸 端點到端點的壅塞控制:網路層並不會為了壅塞控制,提供傳輸層任何明確的協助。甚至終端系統只能根據所觀察到的網路行為來推測網路中是否發生壅塞。
🔸 網路協助的壅塞控制:網路層元件(即路由器)會提供明確的回饋資訊給傳送端,告知其網路壅塞的狀況。
↘ 路由器傳送直接的回饋給傳送端。這是採用扼制封包 (choke packet)「我已經壅塞了!」的形式來進行。
↘ 路由器會標記或更新從傳送端流往接收端的某個封包欄位,以指示壅塞狀況。🌏 3.7 TCP 壅塞控制
🔘 壅塞窗格 (congestion window),以 cwnd 表示,會限制 TCP 傳送端能夠將資料流送入網路的速率。
🔘 ssthresh (代表「緩啟動門檻 (slow start threshold)」的縮寫)🔸 緩啟動:開始 TCP 連線時,cwnd 值通常會被初始化為某個小數值 1 MSS,傳送速率會以低速開始,但是在緩啟動階段中會指數性地成長。
↘ 當 cwnd 值等於 ssthresh 時,也就是上次發生壅塞的窗格的一半時,緩啟動會終止,TCP 會轉換進入壅塞迴避模式。
↘ 當發生逾時事件,會將的數值設定為壅塞情況時窗格的一半 cwnd/2;而 cwnd = 1 MSS。
↘ 當偵測到三次重複 ACK 時,TCP 會執行快速重送,並且進入快速復原狀態,且設定參數:ssthresh = cwnd / 2; cwnd = ssthresh + 3 MSS。
🔶 壅塞迴避:在每回 RTT 中只會將 cwnd 值增加一個 MSS。
🔶 快速復原 :每收到一次造成 TCP 進入快速復原狀態的遺失區段重複ACK,cwnd 值便會被增加 1 MSS。
↘ 當遺失的區段到達時,正確的ACK事件,在 TCP Reno 中,壅塞窗格會被設定為 cwnd = ssthresh,然後開始以線性方式增長。
↘ 在 TCP Tahoe 中,壅塞窗格則會被設定為1 MSS,然後指數式地增長直到達到 ssthresh 值為止,此時壅塞窗格會開始線性地增長。🔵 TCP 的壅塞控制稱作累進遞增,倍數削減(AIMD)的壅塞控制形式。
🔵 目前大多數的 TCP 實作所使用的都是 Reno 演算法。
➖➖➖➖➖➖➖➖➖➖➖
⚠ 3.6.1 跳過,請直接參考課本內容。
➖➖➖➖➖➖➖➖➖➖➖
🔶 第四章 🔶🌏 4.1.1 轉送與繞送
🔺 轉送 (Forwarding):當封包抵達路由器的輸入連結時,路由器必須將這份封包移動到適當的輸出連結。 [路由器內,輸入連結 ➡ 輸出連結]
🔺 繞送 (Routing):網路層必須判斷封包從傳送端流向接收端時所採取的路由或路徑。計算這些路徑的演算法稱為繞送演算法 (routing algorithm)。 [所有的路由器都有關,整體性]🔘 每個路由器都擁有一份轉送表 (forwarding table)。
🔘 路由器會接收繞送協定訊息,以用來設定其轉送表。🌏 4.1.2 網路服務模型
🔘 網路層可能提供的一些服務包括:
☑ 投遞保障 (guaranteed delivery)
☑ 有限延遲的投遞保障 (guaranteed delivery with bounded delay)
☑ 依序的封包投遞 (in-order packet delivery)
☑ 最低頻寬保障(guaranteed minimal bandwidth)
☑ 最大時基誤差保障 (guaranteed maximum jitter)
☑ 安全性服務 (Security service)
➡ 網際網路的網路層只提供一種服務,稱為盡力而為的服務 (best-effort service) [即不提供任何服務]。🔸 其他選擇:
↘ 固定位元傳輸速率ATM網路服務
↘ 可用位元傳輸速率ATM網路服務🌏 4.2.1 虛擬迴路網路
🔘 虛擬迴路 (virtual circuit,VC) ↔ 網路層 連線服務
🔸 一條 VC 包含:
(1) 一條從來源端主機到目的端主機之間的路徑 ( 即一連串的連結及路由器) 。
(2) VC 編號,路徑上的每道連結都會有一個編號。
(3) 路徑上所有路由器的轉送表項目。屬於某條虛擬迴路的封包,會在其標頭中夾帶一則 VC 編號。因為虛擬迴路在每道連結上的 VC 編號可能都有所不同,所以每台中介的路由器都必須將每個通過的封包 VC 編號換成新的 VC 編號。這個新的 VC 編號是從轉送表取得。💬 每當有一條新的,跨某台路由器的 VC 被建立起來時,便有一筆新項目被加入到轉送表中。當 VC 終結時,其路徑上每份轉送表中的對應項目也都會被移除。
💬 路由器必須維護運作中之連線的連線狀態資訊(connection state information)。🔘 VC 三個階段:(1) 建立 VC (2) 資料傳輸 (3) VC斷線
▪ 信號訊息 (signaling message):修改路由器轉送表中的連線狀態。
▫ 信號發送協定 (signaling protocol):信號訊息的協定。🌏 4.2.2 資料報網路
🔸 資料報網路 (datagram network) 不需要建立任何 VC。
🔘 每台路由器都會利用封包的目的端位址來轉送封包。
🔘 封包抵達路由器時,路由器便會使用封包的目的端位址來查詢轉送表,以找出適當的輸出連結介面。
🔹 址首 (prefix) 與表格中的項目進行比對,以將封包正確轉送,多筆相符的項目時,路由器會採用最長址首相符原則 (longest prefix matching rule)。
🔹 轉送表是由繞送演算法所修訂,通常每隔一到五分鐘左右更新一次。
🔺 一連串封包,可能會不依原本的順序抵達目的端。🌏 4.2.3 VC 與資料報網路的起源
虛擬迴路 ↔️ 電話系統
資料報網路 ↔️ 盡可能地簡單🌏 4.3 路由器的內部有什麼?
🔸 輸入埠 (input port):會執行實體層與連結層功能。
🔸 交換結構 (switching fabric)
↘ 經由記憶體進行交換:同一個時間只有一筆的記憶體讀出/寫入可被完成。
↘ 透過匯流排 (bus) 進行交換:每一個封包都必須橫越單一一個匯流排,所以路由器的交換速度受限於匯流排的速度。
↘ 透過互連網路進行交換:棋盤式交換結構 (crossbar switch) 將 N個輸入埠連接到 N 個輸出埠的互連網路。可以在同一時間轉送多個封包。然而,假如兩個來自不同輸入埠的封包是要前往相同的輸出埠,那麼其中一個必須要在輸入處等待,因為在同一時間只有一個封包可以在任意給定的匯流排上傳送。
🔸 輸出埠 (output port):輸出埠會將經由交換結構轉送來的封包儲存起來,接著藉由執行必須的連結層與實體層功能將這些封包輸送到輸出連結。
🔸 繞送處理器 (Routing processor):執行繞送協定 ,維護繞送表和連結狀態資訊,並為路由器計算轉送表。💬 佇列可能發生在輸入埠&輸出埠,路由器的記憶體耗盡會導致封包遺失。
💬 封包排程器 (packet scheduler) ➡ 提供服務品質 (quality-of-service, QoS) 保障。🔹 主動式佇列管理 (active queue management, AQM) ➡ 去尾 (drop-tail)
🔹 隨機式早期偵測 (Random Early Detection,RED)
🔹 佇列前端攔阻 (head-of-the-line blocking,HOL blocking):如果交換結構的速度不夠快,封包佇列也會發生在輸入埠中。🌏 4.4 IP網際網路的轉送與定址
🔸 三元件:IP 協定、繞送元件、回報錯誤
🌏 4.4.1 資料報格式
🔘 版本編號 (version number)
🔘 標頭長度 (header length):IPv4 資料報有可能包含不同數量的選用欄位,所以需要這 4 個位元來判斷 IP 資料報中真正開始存放資料的位置。
🔘 服務類型 (type of service):標記需要延遲時間、高產出率或可靠性的資料報。
🔘 資料報長度 (datagram length):IP資料報的總長度 (標頭加上資料)。
🔘 識別碼 (identifier)、旗標 (flag)、分段偏移量 (fragmentation offset):IP 分段用。
🔘 生存期 (time-to-live):確保資料報不會在網路中無窮的循環傳送。一具路由器所處理後,這個欄位的數值就會減 1。如果TTL欄位值歸 0,這份資料報就會被丟棄。
🔘 協定 (protocol):資料要轉交給哪個特定的傳輸層協定。
↘數值 6 轉交給 TCP,數值 17 轉交給 UDP。
🔘 標頭檢查和 (header checksum):偵測位元錯誤。
🔘 來源端與目的端 IP 位址
🔘 選用欄位 (options)
🔘 資料 (data) [荷載 (payload)]💬 IP 資料報總共有 20 位元組的標頭 (假設沒有選用欄位)。如果資料報攜帶的是TCP 區段,則每份 (未分段的) 資料報都會攜帶共 40 位元組的標頭 (20 位元組的IP 標頭,加上20 位元組的TCP 標頭),再加上應用層訊息。
🌏 4.4.2 IPv4 定址
🔺 主機跟路由器的每個介面都必須擁有自己的 IP 位址。
🔺 IP 位址的長度都是 32 位元 (即4位元組),因此總共有 2^32 個可能的 IP 位址。
🔺 附點十進位表示法 (dotted-decimal notation) [如:192.168.1.1]
🔺 每個介面都必須擁有一個全世界獨一無二的 IP 位址。🔸 連接了三個主機介面以及一個路由器介面的網路,形成了一個子網路 (subnet) 。
🔸 子網路也稱為 IP 網路,或簡稱為網路。
🔸 網際網路的位址分配策略,稱為無分級跨網域繞送 (Classless Interdomain Routing,CIDR—唸做「cider」)🔘 211.1.1.0/24 ,標記 /24 有時稱為子網路遮罩 (subnet mask),表示是這個 32 位元量值最左邊的 24 位元定義了子網路的位址 (址首 (prefix) [ 或網路址首 (network prefix)]。
任何新連接到 211.1.1.0/24 子網路的主機,都具有形式為 211.1.1.xxx 的位址。💬 採用 CIDR 之前,IP 位址網路部分的長度被限制為 8、16 或24 位元,這種定址方式稱為分級定址法 (classful addressing),即分為 A 級、B 級與 C 級。
🔘 主機送出目的端位址為 255.255.255.255 ➡ 廣播
🔘 動態主機配置協定(DHCP) ➡ 自動取得 IP 位址 ➡ 隨插即用協定 (plug-and-play protocol)
🔸 對新到來的主機而言,DHCP 協定是個四步驟的程序:
1️⃣ 搜尋 DHCP 伺服器
2️⃣ 提供 DHCP 伺服器
3️⃣ DHCP 請求
4️⃣ DHCP ACK🔘 網路位址轉譯 (network address translation,NAT):位址空間10.0.0.0/8 是保留給私人網路,或使用私人位址的領域 (realm),只對於其內部的裝置有意義。
🔺NAT 路由器上使用 NAT 轉譯表 (NAT translation table),除了 IP 位址之外,我們也會將埠號加入表格項目中。🌏 4.4.4 IPv6
🔸 擴充的定址能力:IPv6 將 IP 位址的長度從 32 位元增加到 128 位元。
🔸 精簡後的 40 位元組固定標頭。
🔸 資料流標記與優先權。🔘 IPv6 定義了以下欄位:
▫ 版本 (version)。
▫ 流量類型 (traffic class)。
▫ 資料流標記 (flow label)。
▫ 荷載長度 (payload length)。
▫ 內層標頭 (next header)。
▫ 躍程限制 (hop limit)。
▫ 來源端及目的端位址 (source and destination addresses)。
▫ 資料 (data)。🔘 IPv4 有,但 IPv6 沒有的欄位:
▫ 分段 / 重組 (Fragmentation/Reassembly)。
▫ 標頭檢查和 (header checksum)。
▫ 選用欄位 (options)。🔸 從 IPv4 轉換成 IPv6:雙堆疊 (dual-stack) 和 通道方案(tunneling) 方案。
🌏 4.5 繞送演算法:其會找到一條從來源端路由器到目的端路由器的「良好」路徑。
🌏 4.5.1 連結狀態 (LS) 繞送演算法:透過連結狀態廣播 (link-state broadcast) 演算法。
🔸 所有的節點都會對網路擁有統一且完整的觀點。如此一來每個節點都可以執行 LS 演算法,並計算出與其他所有節點相同的一組最小成本路徑。
🔺 連結狀態演算法,稱為 Dijkstra 演算法。
🔸 Dijkstra 演算法會計算出從某個節點到網路中其它所有節點的最小成本路徑。💬 避免自我同步化,會讓每具路由器都隨機選擇時間送出連結通告。
🌏 4.5.2 距離向量 (DV) 繞送演算法 :是一種循環式、非同步、分散式的演算法。
🔸 各節點會從一或多個直接相連的相鄰節點中得到一些資訊。
🔸 從相鄰節點接收更新後的距離向量、重新計算繞送表項目、通知相鄰節點前往某個目的端的最小成本路徑的成本改變;這整個程序會持續進行,直到沒有更新訊息送出為止。
🔺 特殊迴圈情境,可以使用稱為抑制性反轉 (poisoned reverse) 的技巧避免。💬 其它繞送演算法 :LS 和 DV 演算法不僅在實作上被廣泛使用;基本上,它們是今日唯二被實際使用在網際網路中的繞送演算法。
🌏 4.5.3 階層式繞送
🔘 至少在兩項重要原因上,有點將事情簡單化了:
🔸 規模:真實情況路由器的數目是很多的。
🔸 管理自治權:組織應該要能夠依自己的意願運作並管理自己的網路,同時仍然能夠將自己的網路連接到外界的網路。➡ 解決方案:自治系統 (autonomous systems,AS)
🔺 自治系統內部繞送協定 (intra-autonomous system routing protocol)
🔺 對 AS 外需要閘道路由器 (gateway router)🔸 網際網路中所有的 AS 都會執行相同的跨 AS 繞送協定,稱為 BGP4。
🌏 4.6.1 網際網路的 AS 內部繞送:RIP
🔸 RIP 是一種距離向量協定,操作方式非常接近理想化 DV 協定。
🔸 躍程計數 (hop count) 作為成本的計量;也就是說,每道連結的成本皆為 1。
🔸 每台路由器都維護著一份稱為繞送表的 RIP 表格。
🔸 路徑的最大成本被限制為 15,這限制了RIP 只能夠用在直徑少於 15 段躍程的自治系統中。
🔸 RIP 中,相鄰節點間大約每隔 30 秒就會使用 RIP 回應訊息 (RIP response message) 「RIP通告 (RIP advertisement)」 來交換繞送更新訊息。
🔺 路由器無法在至少每 180 秒內收到來自其相鄰節點的通告,便會認為這個相鄰節點已無法抵達。🌏 4.6.2 網際網路的AS 內部繞送:OSPF
🔸 像 RIP 一樣,OSPF 繞送也被廣泛使用在網際網路的 AS 內部繞送中。
🔸 是一種連結狀態協定,運用的是連結狀態資訊的散播與 Dijkstra 最小成本路徑演算法。
🔸 路由器會建構出整個自治系統的完整拓樸地圖。
🔸 路由器會在本機執行 Dijkstra 最短路徑演算法,以判斷出以自己為根節點,前往所有子網路的最短路徑樹。
🔸 路由器會廣播繞送資訊給自治系統內部其它所有的路由器。🔘 OSPF 所實作的一些進階特性包括以下:
▫ 安全性。
▫ 多條成本相同的路徑。
▫ 對於單播與群播繞送的整合支援。
▫ 在單一繞送網域中支援階層式架構。🔸 有一或多台區域邊境路由器 (area border router) 負責將封包繞送到區域之外。
🔸 AS 內會有唯一一個 OSPF 區域被設定為主幹 (backbone) 區域,負責AS 的其他區域之間繞送資料流。🌏 4.6.3 跨AS 繞送:BGP
🔸 邊境閘道協定 (Border Gateway Protocol) 是今日網際網路中跨 AS 繞送協定的實質標準。
🔸 它通常被稱為 BGP4,或簡稱 BGP。
🔸 各對路由器會透過使用埠號 179 的半永久性 TCP 連線來交換繞送資訊。
🔸 連線兩端的路由器稱為 BGP 對等點 (BGP peers)。
🔸 TCP 連線加上所有透過該筆連線傳送的 BGP 訊息,則稱為 BGP 會談 (BGP session)。
🔹 跨越兩組 AS 的 BGP 會談稱為外部 BGP 會談 [external BGP (eBGP) session]。
🔹 同組 AS 內部的路由器之間的BGP 會談則稱為內部 BGP 會談 (internal BGP,iBGP session)。
💬 自治系統是由各自在世上獨一無二的自治系統編號 (autonomous system number,ASN) 來加以識別。
💬 在BGP 術語中,址首加上其屬性,便稱為路由 (route)。➖➖➖➖➖➖➖➖➖➖➖
🔶 第五章 🔶
🌏 5.1 連結層:導言
🔸 任何執行連結層協定的裝置都簡稱為節點 (node)。
🔸 節點包含了主機、路由器、交換器和WiFi 熱點
🔸 相鄰節點的通訊通道稱作連結 (link)。
🔸 進行傳輸的節點會將資料報封裝在連結層訊框中,然後將該訊框送入該連結中。🌏 5.1.1 連結層所提供的服務
☑ 建立訊框
☑ 連結存取
☑ 可靠的投遞
☑ 錯誤偵測和更正🌏 5.1.2 連結層實作於何處?
🔸 大部分的連結層是實作在網路轉接卡 (network adapter) 「網路介面卡 (network interface card,NIC)」上。
🔸 連結層控制器大部分的功能都實作在硬體之中。🌏 5.4.1 連結層定址和ARP
🔸 主機和路由器有連結層位址,也有網路層位址。
🔘 連結層位址的稱呼:LAN位址、實體位址 (physical address) 或 MAC位址。
🔸 MAC 位址的長度是 6 位元組,提供了 2^48 種可能的 MAC 位址。
🔸 IEEE 會管理 MAC 的位址空間,網卡製造商必須購買一塊包含 2^24 個位址的位址空間,再自行為每張轉接卡建立後24 位元獨一無二的組合。
🔸 轉接卡的 MAC 位址是一種平坦式架構,走到哪位址都不會改變。
🔸 802.11 也是廣播訊框。🔺 進行傳送的轉接卡會將目的端轉接卡的 MAC 位址放入訊框內,然後將該筆訊框送入LAN 中。
🔺 每張收到訊框的轉接卡,都會檢查訊框中的目的端 MAC 位址是否與自身的MAC 位址相符,如果相符,轉接卡便會取出內含的資料報,然後將該份資料報向協定堆疊上層(也就網路層)傳送。▫ MAC 廣播位址 (broadcast address):連續的 48 個1 所構成的串列 ( 也就是16 進位表示法的 FF-FF-FF-FF-FF-FF)
🔳 位址解析協定 (ARP)
網路層位址 ↔️ 連結層位址
⏩ 轉譯 ➡ 位址解析協定 (address resolution protocol,ARP)💬 傳送端主機 222.222.222.210 會提供IP 位址 222.222.222.212 給其 ARP 模組,而 ARP 模組會傳回對應的 MAC 位址 44-BD-DD-A7-68-2C。
🔸 每台主機或路由器在其記憶體中都會存有一份 ARP 表格 (ARP table),包含了 IP 位址與MAC 位址的對照,也包含生存期 (TTL) 數值。
🔸 表格若沒有目的端節點的條目時,將建立與廣播 ARP封包 (ARP packet),唯一正確的主機將傳回正確的對應資料。
🔸 ARP 是一種隨插即用協定;也就是說,節點的 ARP 表格會自動建立。🔘 傳送網路層資料報給子網路以外的主機
🔸 該份訊框適當的 MAC 位址是路由器介面的轉接卡位址。(IP 目的端不會變,只有 MAC 會一直變,直到正確的子網路抵達時才會是指向最終目的端的 MAC) [用 IP 取得 MAC 都是用 ARP]🌏 5.4.2 乙太網路
🔸 乙太網路幾乎已經拿下了整個有線 LAN 的市場。
🔸 乙太網路是第一個被廣為布設的高速 LAN。
🔸 集線器 (hub) 是一種實體層裝置,它會對於個別的位元進行操作,而非訊框。
🔸 2000 年代早期,位於中心點的集線器被更換成了交換器 (switch)。
🔘 交換器不僅能夠達到「無碰撞」,會運作至第二層(連結層)。
🔸 乙太網路的最大傳輸單位 (MTU) 是1,500 位元組。
🔸 所有乙太網路技術提供給網路層的,都是無連線服務 (connectionless service) & 不可靠的服務 (unreliable service)。🔷 乙太網路有許多不同的技術可以選擇,這些技術所使用的頭字語有些混亂,例如 10BASE-T [速率 10 Megabit (每秒),「BASE」表示基頻,「T」代表的是雙絞銅芯線]、10BASE-2、100BASE-T、1000BASE-LX 和10GBASE-T 等等。
🔸 100 Mbps 的乙太網路在雙絞線上的距離限制為100 公尺,在光纖上則為數公里。[更長程的運輸則需要仰賴於中繼器 (repeater) ]
🔘 Gigabit 乙太網路:相當成功的 10 Mbps 及100 Mbps 乙太網路標準的延伸。
🌏 5.4.3 連結層交換器
🔸 交換器本身對主機和路由器來說是通透的 (transparent)。
🔸 交換器的過濾 (filtering) 與轉送 (forwarding) 都是透過交換表 (switch table) 來完成的,有自我學習 (self-learning) 的機制。
🔸 交換器是一種隨插即用裝置 (plug-and-play device)。🔘 交換表中的條目包含:
1️⃣ 一 MAC 位址。
2️⃣ 前往該 MAC 位址的交換器介面。
3️⃣ 該條目被放入至表格的時間。🔘 連結層交換的性質 :消除碰撞、不同種類的連結、管理
🔹 為了避免迴路地廣播訊框,交換器網路的運作拓撲必須限制為擴展樹 (spanning tree)。
💬 較大型網路,則通常 ( 除了交換器之外) 也會在其網路中加入路由器。
💾 第三章重點筆記 PDF 檔:Google 雲端硬碟
💾 第四章重點筆記 PDF 檔:Google 雲端硬碟
💾 第五章重點筆記 PDF 檔:Google 雲端硬碟
企業資料通訊 3.4~5.4 重點筆記 By 莎莎
【Ch3-4-1建立可靠的資料傳輸協定】
*rdt1.0:透過絕對可靠的通道傳輸
*rdt2.0:透過會產生位元錯誤的通道傳輸(傳送端資料報中有checksum)
*ARQ協定(自動重複請求):1.傳送端(重送) 2.接受端(ACK,NAK) 3.錯誤偵測(checksum)
*rdt2.1:(傳送端比rdt2.0多序號<避免重複>)
(接受端確認訊息比rdt2.0多checksum<避免ACK,NAK損毀>)
*rdt2.2:不使用NAK以減少出錯率//(比rdt2.1少NAK,確認訊息比rdt2.1多序號)
*rdt3.0(變換位元協定)會有位元錯誤、遺失封包的通道傳輸//(多了倒數計時器)
【Ch3-4-2管線化的可靠資料傳輸協定】
rdt3.0為停止並等待效能不好👉由管線化解決
*管線化:傳送端可同時送出多分封包,而不用等待確認👉1.須增加序號範圍2.傳送、接受端須暫存多份封包
管線化錯誤回覆方式:1.GBN 2.SR
【Ch3-4-3回溯N】
窗格大小:N(已傳輸,未確認的封包其序號可容許的範圍)、序號範圍:[0,-1]
*GBN(滑動窗格協定):1.累積式確認
2.逾時→只要一個封包沒到,就會丟棄後面收到的封包
【Ch3-4-4選擇性重複】
*SR:接收端個別的確認已收到的封包(GBN則是累積式確認),傳送端只會重送錯誤的封包。
【Ch3-5-1 TCP連線,~ Ch3-5-2 TCP區段結構】
TCP:連線導向、全雙工服務、點對點、三次握手
TCP會在用戶端資料上加上TCP標頭:來源、目的端埠號(用來多工、解多工)、序號欄位(32bits)、確認欄位(32bits)、標頭長、旗標、接收窗格(16bits用來流量控制)、檢查和
*資料是無結構、有序的位元組串流
*序號是區段中第一個位元組串流編號
*累積式確認:只確認串流中第一個位元組
*確認編號:主機A的確認編號是A預期主機B傳的下個位元組序號
*若收到脫序的位元組會保留並等待缺漏的位元組。
搭便車:攜帶確認訊息的區段也攜帶著資料→確認訊息搭資料的便車
【Ch3-5-3來回時間的評估與逾時】
*RTT取樣→SampleRTT
*估計RTT→EstimatedRTT : (SampleRTT的加權平均)
更新EstimatedRTT :(值越高,越相信新的取樣)(指數加權移動平均)
*RTT變異值→DevRTT : (SampleRTT與EstimatedRTT差值的EWMA)
更新DevRTT:(建議為0.25)
(SampleRTT變動小,DevRTT值會小,EstimatedRTT參考價值高)
*逾時間隔要>=EstimatedRTT(以免不必要的重送),
也不該大太多(以免浪費時間)
【Ch3-5-4~3-5-5 可靠資料傳輸、流量控制】
TCP傳送端3個與資料傳輸、重送有關的事件:
1.從上層接收資料 2.計時器逾時 3.收到ACK
*倍增逾時間隔:每當發生逾時,TCP會將下次逾時間隔設定為先前的兩倍。
*快速重送:收到3次重複的ACK,TCP會執行快速重送,而不用等到逾時。
*流量控制服務:將傳送端傳資料的速率調整同於接收端讀取資料的速率。
傳送端會維護接收窗格(rwnd)的變數來提供流量控制。
(TCP要求當接收端的rwnd=0,傳送端要持續送出只包含一個資料位元的區段,被接收端確認。)
*壅塞控制:傳送端因IP網路的壅塞狀況而被扼制流量
【Ch3-5-6 TCP連線管理】
TCP連線管理:三次握手
■ SYN=1,seq=client_isn-------→
■ SYN=1,←-------seq=sever_isn,ack=client_isn+1
■ SYN=0,seq= client_isn+1,ack=sever_isn+1----→
關閉TCP連線: 1. FIN-----→ 2. ACK←---- 3. FIN-----→ 4. ACK←----(任一方都可以結束)
【Ch3-6 壅塞控制的原理】
*網路壅塞的代價:1.當封包的抵達速率接近連結容量時,遭遇冗長佇列延遲 2. 傳送端為了彌補因緩衝區溢位而被丟棄的封包,必須重送 3. 當封包被丟棄,所有經過的連結就被浪費了。
【Ch3-7 TCP壅塞控制】
*壅塞窗格:cwnd
*TCP壅塞控制演算法三要素:1. 緩啟動 2. 壅塞迴避 3.快速復原
*1.緩啟動:低速開始,指數成長
└─>逾時事件(cwnd=1,ssthresh=cwnd/2,重新緩啟動)
└─>cwnd=ssthresh(進入壅塞迴避)
└─>3次重複的ACK(ssthresh=cwnd/2、
cwnd=ssthresh+ 3MSS,進入快速復原)
*2.壅塞迴避:每回RTT中,cwnd=cwnd+1MSS (事件同上)
*3.快速復原:(建議而非強制的元件)
└─>每收到一次重複ACK,cwnd=cwnd+1MSS
└─>收到遺失區段(cwnd=ssthresh進入壅塞迴避)
【Ch4-1轉送與繞送】
*繞送演算法:判斷從傳送端到接收端的良好路徑(意即路由)。(連結狀態演算法以及距離向量演算法。)
*路由器:將資料報從輸入連結轉送到輸出連結。
*轉送:是在路由器本機進行的動作,在單一路由器內,封包由輸入連結傳送到輸出連結的過程。
*繞送:跟網路中所有的路由器有關,是關於整體網路的程序,路由器會透過繞送演算法決定封包從來源節點到目的結點所採取的端點到端點路徑。*每台路由器都有一份轉送表,路由器都會接收繞送協定訊息,來設定其轉送表。
路由器會
1.檢查到來的封包標頭中某欄位的數值
2.使用標頭數值來查詢路由器轉送表以轉送封包。
*建立連線:某些網路層架構—ATM、訊框轉播、MLPS...要求資料報流動前,在所選擇連線的路徑上的所有路由器都要先進行握手程序來設定其狀態。
【Ch4-1-2網路服務模型】
網路層可能提供的服務:1.投遞保障2.有限延遲的投遞保障3.依序的封包投遞4.最低頻寬保障5.最大時基誤差保障6.安全性服務
目前只有:盡力而為的服務(不提供服務)
1.固定位元傳輸速率ATM網路服務(CBR):頻寬保障固定速率、有封包遺失保障、順序傳送、維護時序、不會發生壅塞
2.可用位元傳輸速率ATM網路服務(ABR): 頻寬保障最小速率、無封包遺失保障、順序傳送、不維護時序、提供壅塞指示
【Ch4-2-1、Ch4-2-2虛擬迴路網路、資料報網路】
*虛擬迴路網路:在網路層提供連線服務
(VC包含:一條連結、VC編號、轉送表項目)
*連線三階段: 1. 建立VC。2. 資料傳輸。3. VC斷線。
*信號訊息:開啟或關閉VC的訊息、設定VC的訊息。
*信號發送協定:用來交換這些訊息的協定。
*資料報網路:無連線服務
傳送端會在封包上標記出目的端位址。路由器會使用封包的目的端位址來查詢轉送表,以找出適當的輸出連結介面。
路由器不需要維護任何VC的狀態資訊。(因為它沒有VC連線)但他們仍需在轉送表中維護轉送狀態資訊。
封包可能會依循不同的路徑穿越網路,因此可能會不依原本的順序抵達目的端。
*路由器會將封包目的端位址的址首與表格中的項目進行比對,有多筆相符的項目時,路由器會採用最長址首相符原則。
【Ch4-3-1 輸入處理】
*路由器的四項元件:1.輸入埠2.交換結構3.輸出埠4.繞送處理器。
*路由器轉送平面:1.2.3.→實作了轉送功能,且為硬體實作。
*路由器控制平面:4.控制功能—執行繞送協定、回應往上走或往下走的連結、和執行網路管理功能。為軟體實作,並在繞送處理器(通常是一顆傳統的CPU)上執行。
♥線路終端(實體層)→資料連結處理<協定、解封裝>(連結層)→查詢、轉送、佇列
路由器使用轉送表來查出輸出埠,將封包透過交換結構轉送到該輸出埠。
*比對加上行動:查詢一個IP位址(比對),然後把該封包送進交換結構(行動)
【Ch4-3-2、Ch4-3-3 交換、輸出處理】
*交換方式:
1.記憶體: 兩個封包無法在同一時間被轉送。
2.匯流排:路由器的交換速度受限於匯流排的速度,且兩個封包無法在同一時間被轉送
3.棋盤式交換結構: 透過互連網路進行交換,可以在同一時間轉送多個封包。然而,假如兩個來自不同輸入埠的封包是要前往相同的輸出埠,那麼其中一個必須要在輸入處等待。
♥佇列<緩衝區管理>→資料連結處理<協定、封裝>(連結層)→線路終端(實體層)
【Ch4.3.4佇列產生】
*輸出埠上必須擁有封包排程器,從佇列中選擇封包進行傳輸。
1.先到先服務(FCFS)排程
2.加權公平佇列(WFQ)
*主動式佇列管理(AQM)演算法:利用丟棄與標記封包的策略。
在某些情況下,在緩衝區未滿之前就先丟棄封包(或標記其標頭)以提供壅塞訊號給傳送端。
*隨機式早期偵測(RED):(AQM演算法中的其中一種。)封包依機率被標記或丟棄:平均佇列長度介於[minth, maxth]之間。
*佇列前端攔阻(HOL blocking)
如果交換結構的速度不夠快,佇列中的封包被前端的其他封包攔阻,即使其輸出埠是空閒的,也需要等待傳送通過交換結構。
【Ch4.4、Ch4.4.1、Ch4.4.2資料報格式、IPv4定址】
*網路層有三項主要元件:1. IP協定2. 繞送元件3. 回報錯誤
IPv4 資料報總共有20位元組的標頭(假設沒有選用欄位)。
如果資料報攜帶的是TCP區段,則每份資料報會攜帶共40位元組的標頭(20位元組的IP標頭,加上20位元組的TCP標頭),再加上應用層訊息。
♦主機跟路由器的每個介面都必須有自己的IP位址,每個長度都是32位元(即4位元組),因此總共有232個可能的IP位址。這些位址通常會被寫成附點十進位表示法。
*無分級跨網域繞送(CIDR)歸納了子網路定址的概念。32位元的IP位址會被分成兩部分,同樣使用附點的十進位格式a.b.c.d/x, x表示位址第一部分的位元數。/x稱為子網路遮罩
*網路址首:最高的x 個有效位元
*分級定址法:在採用CIDR之前,IP位址網路部分的長度被限制為8、16或24位元
*廣播:目的端位址為255.255.255.255
*取得位址區塊:網路管理者可能會先聯繫它的ISP,ISP會從已分配給該ISP的大型位址空間中提供位址給該組織。
IP位址是由權威組織(ICANN)管理的,除了要分配IP位址,它也要負責管理DNS根伺服器。
*動態主機配置協定(DHCP)讓主機能夠自動取得(分配給)IP位址。
- 伺服端—用戶端協定 2. 隨插即用協定 3.主機IP位址的分配、讓主機知曉其他的資訊:例如其子網路遮罩、其第一站路由器的位址、還有其區域DNS伺服器的位址。
每個子網路都會有一台DHCP伺服器。如果子網路上沒有伺服器,我們便需要一台知道負責該網路之DHCP伺服器位址的DHCP轉播代理裝置(通常是一台路由器)。
*四步驟的程序:
1. 搜尋DHCP伺服器
2. 提供DHCP伺服器
3. DHCP請求
4. DHCP ACK
*網路位址轉譯(NAT):位址空間10.0.0.0/8 是保留給私人網路,或使用私人位址的領域,意指在該網路中,網路位址只對於其內部的裝置有意義。路由器會使用目的端IP位址與目的端埠號來查詢NAT轉譯表,以便取得家用網路中瀏覽器的正確IP位址,路由器會改寫資料報的目的端位址及目的端埠號,然後將資料報轉送入家用網路。
【Ch4-4-4 IPv6】
將IP位址的長度增加到128位元
*IPv4轉換成IPv6 :
1.雙堆疊方案:有些IPv6資料報有的在IPv4沒有,這些資訊會消失
2.通道方案:取出整份IPv6資料報放入IPv4資料報的內容欄位中
【Ch4.5繞送演算法】
分類:1.整體性v.s分散性2.靜態v.s動態3.負載敏感v.s非負載敏感
*(整體性)連結狀態演算法:必須知曉網路中每到連結的成本
*(分散式)距離向量演算法:知道相連的連結成本
【Ch4.5.1連結狀態演算法LS】
*透過連結狀態廣播來完成 *Dijkstra演算法:D(v)、p(v)、N’
*可能的問題:壅塞敏感性震盪→解決方法:避免自我同步
LS訊息複雜度較大、強韌性較強
【Ch4.5.2距離向量演算法DV】
*分散式、循環式、非同步化
*Bellman-Ford方程式: dx(y)=minx { c(x,v) + dv(y) }
壞消息傳很慢→解決方法:加入抑制性反轉(3個節點以上的迴圈無法由抑制性反轉加以偵測)
【Ch4.5.3階層式繞送】
*自治系統(AS):每組AS由一群路由器構成,處於相同管理控制下
*自治系統內部繞送協定:將AS相互連接起來,而AS中負責將封包轉送到AS外的目的端的路由器叫做閘道路由器
*燙手山芋繞送法:選擇讓路由器將封包送往擁有最小的路由器到閘道成本的閘道
【Ch4.6.1 RIP ,Ch4.6.2 OSPF ,Ch4.6.3 BGP】
*RIP(繞送資訊協定)內部閘道協定的一種,也是一種DV,使用躍程技術(hop)
*OSPF(最短開放路徑優先)是一種LS,運用Dijkstra演算法,特色:安全性、可選多條成本相同路徑、能以階層的方式編排自治系統的結構。(有主幹、區域邊境路由器)
*BGP(邊境閘道協定)是跨AS繞送協定的標準。
eBGP(外部);iBGP(內部);BGP中,目的端非主機,而是CIDR的址首
*自治系統是由各自在世上獨一無二的自治系統編號(ASN)來加以識別。
*對路由器會透過使用埠號179的半永久性TCP連線來交換繞送資訊。
*連線兩端的路由器稱為BGP對等點、TCP 連線加上所有透過該筆連線傳送的BGP訊息,則稱為BGP會談
【Ch5.1】
連結層可能提供的服務:建立訊框、連結存取、可靠的投遞、錯誤偵測和更正
大部分連結層是實作在網路轉接卡(網路介面卡),有部分是在主機CPU所執行的軟體中。連結層是軟硬體的結合。
【Ch5.4.1連結層定址和ARP】
*位址解析協定ARP:提供將IP位址轉譯成連結層位址(MAC位址),是一種隨插即用協定。只會為在同一子網路上的主機解析IP。
*MAC位址:長度6位元組(共248種MAC位址)。IEEE管理MAC位址空間,會以MAC固定前24位原來配置包含224個位址的區塊,
*MAC是一種平坦式架構(位址不變)//IP是階層式(位址隨地方改變)
*MAC廣播位址:FF-FF-FF-FF-FF-FF
*假設A傳資料給B(A,B同個LAN,但ARP表格沒有B的對應MAC)
1.A傳送ARP查詢封包交給轉接卡,轉接卡將ARP封包裝入連結層訊框,然後廣播到LAN。
2.唯一相符於所查詢IP的節點會傳回ARP回應封包(內含對應資料)
3.A即可送出IP資料報。
*假設A傳資料給B(A,B不同LAN,但ARP表格已有B的對應MAC)
A先把資料報傳給路由器,再由路由器轉交給B(目的端IP一直都是B的IP位址)
【Ch5.4.2乙太網路】
乙太網路使用星狀拓樸、交換器,提供給網路層無連線、不可靠的服務
100BASE-T→100:100Mbps;BASE: 基頻乙太網路;「T」:雙絞同芯線
10GBASE-T→10Gbps
欄位有:資料、目的端位址、來源端位址、類型、循環冗餘檢查、前置訊號
交換器:通透的、消除碰撞(不會同時傳輸多份訊框)、廣播、過濾與轉送、自我學習、隨插即用裝置
*1.MAC位址 2.交換器介面 3.被放入之時間
*交換器是根據MAC位址來轉送封包而非IP位址。
交換器:拓樸必須限制為擴展樹、不提供防範廣播風暴的保護機制、較高的過濾與傳輸速率
💾 莎莎企資通期末筆記 PDF 檔:Google 雲端硬碟
希望大家都能順利了解這個領域的知識唷!加油!
留言區 / Comments
萌芽論壇