Introduction to Computer Network
甚麼是因特網
具體構成描述
因特網是世界級計算機網絡。
主機(host,又稱端系統, end system):所有連接到因特網上的設備。
通信鏈路(communication link):由物理媒介組成,包含同軸電纜、銅線、光纖、無線電頻譜。
分組(packet):當一台端系統要向另一台端系統發送信息,發送端系統會將數據分段,並為每段加上首部字節。這種信息包就稱分組。
分組交換機(packet switch):用於向最終目的轉發分組,分組以等於該鏈路的最大速率通過通信鏈路。以下為兩種常見類型:
- 路由器(router):通常用於網絡核心中。
- 鏈路層交換器(link-layer switch):通常用於接入網中。
路徑(path):從發送端系統到接收端系統,一個分組所通過的一系列通訊鏈路與交換機稱為通過該網絡的路徑。
協議(protocol):協議控制因特網中信息的接收和發送。TCP(Transmission Control Protocol,運輸控制協議) 與 IP(Internet Protocol,網際協議) 是因特網中最為重要的協議。統稱因特網中的協議為 TCP/IP。協議定義了在多個通信實體間交換的報文格式和順序,以及報文的發送/接收等事件所採取的操作。
因特網服務提供商(ISP):每個 ISP 都是多台分組交換機和多段通信鏈路組成的網絡。ISP 為內容提供者接入因特網。因為因特網把各處的端系統相連,所以 ISP 也必須互聯。每個 ISP 網絡都是獨立管理的,運行著 IP 協議,並遵從一定的命名與地址規則。
服務描述
分布式應用(distributed application):涉及多個互相交換數據的端系統的應用。
套接字(socket interface):發送數據的程序必須遵守的規則合集。
網絡邊緣
接入網絡
邊緣路由器(edge router):端系統到其他遠程端系統路徑上的第一個路由器。
接入網:特指將端系統物理的連接到邊緣路由器的網絡。
家庭接入:DSL、電纜、FTTH 和 5G 固定式無線
寬帶住宅接入有以下兩種最流行的類型:
- 數字用戶線(Digital Subscriber Line, DSL)
- 電纜
住戶通常從電話公司獲得 DSL 因特網接入,所以在使用 DSL 時,電話公司就是 ISP。
DSL 調製解調器將數據轉換為高頻音,通過電話線與數字用戶線接入複用器(Digital Subscriber Line Access Multiplexer, DSLAM) 交換數據。這些轉換後的信號大多會在 DSLAM 處被轉換回數據。
電話線同時承載數據和電話信號,它們以不同頻率編碼:
- 高速下行(下載)信道:50kHz ~ 1MHz
- 中速上行(上傳)信道:4kHz ~ 50kHz
- 普通雙向電話信道:0 ~ 4kHz
在用戶側,分頻器把到達的數據信號和電話信號分開,並將數據信號傳送給 DSL 調製解調器。在電話公司側,數字用戶線路接入複用器把數據和電話信號分開,並將數據送往因特網。上千家庭與同一 DSLAM 相連。
由於住戶與中心局距離會影響傳輸速率,規定距離與中心局大於 5 ~ 10 英里則採用其他形式的因特網接入。
電纜因特網接入(cable Internet access):利用有線電視設備接入。光纜(較快)將電纜頭端連接到地區樞紐(光纖節點),從此透過同軸電纜(較慢)到達各戶。由於在此系統中運用到光纖與同軸電纜,所以稱混和光纖同軸(Hybrid Fiber Coax, HFC) 系統。
電纜因特網接入需要特殊的調製解調器,稱為電纜調製解調器(cable modem)。
在電纜頭端,電纜調製解調器端接系統(Cable Modem Termination System, CMTS) 將下行家庭中的電纜調製解調器發送的模擬信號轉換回數據。電纜調製解調器將 HFC 網絡劃分為下行與上行兩個信道。
電纜因特網接入的一個重要特徵是:共享廣播媒體。即上行速度與下行速度會因同時使用的人數而波動。因為所有數據共享同一根電纜。
光纖到戶(Fiber To The Home, FTTH):光纖直接從中心局鏈接到家中的光纖路徑。
FTTH 分為兩種:有源光纖網絡(Active Optical Network, AON),和無源光纖網絡(Passiv Optical Network, PON)。
我們簡要介紹下 PON。每個家庭都有一個光纖網絡端接器(Optical Network Terminator, ONT),它們由專門的光纖連接到鄰近的分配器(splitter)。分配器再把一些家庭連接到一根共享光纖,該光纖再連接到中心局中的光纖線路端接器(Optical Line Terminator, OLT)。OLT 提供光信號與電信號的轉換,經電話公司路由器與因特網相連。在家庭中,用戶由家庭路由器與光纖網絡端接器相連,並通過該路由器接入因特網。
在 PON 中,由 OLT 發送到分配器的分組在分配器處複製,並傳送給各個家庭。
企業(和家庭)接入:以太網和 WiFi
以太網(Ehernet) 是局域網(Local Area Network, LAN) 技術中的一種,用戶使用雙絞銅線與一台以太交換機相連,交換機再與更大的因特網相連。
在無線 LAN 環境中,無線用戶 從/到 一個接入點(Access Point, AP) 發送/接收 分組,該接入點(可能是無線路由器)與企業網相連,企業網再與有線因特網相連。無線 LAN 用戶必須再距離接入點較近的範圍內。WiFi 即是基於 IEEE 802.11 技術的無線 LAN 接入。
物理媒介(Physical Medium)
物理媒介分為以下兩種:
- 導引型媒介(guided media):電波沿著固體媒介前行,如光纖、同軸電纜。
- 非導引型媒介(unguided media):電波在空氣或外層空間傳播,如無線局域網。
- 雙絞銅線
通常許多雙絞線捆扎在一起形成一根電纜。一對電線構成一條通信鏈路。非屏蔽雙絞線(Unshielded Twisted Pair, UTP) 常用於局域網中。 - 同軸電纜
- 光纖
由於高昂的光設備,如發射器、接收器和交換機,使得光纖無法在短途傳輸中使用。例如在 LAN 或家庭接入網中就不使用它。 - 陸地無線電通道
- 衛星無線電通道
網絡核心
分組交換
多數分組交換器在鏈路輸入端採取存儲轉發傳輸(store-and-forward transmission) 機制。該機制規定必須接收到整個分組才能開始轉發。
一台交換器的所有連接其他交換器的鏈路上都有一個輸出緩存(output buffer,又稱輸出對列, output queue)。若到達此交換器的分組需要傳輸到的鏈路正忙,分組就必須在緩存中等待。
所以除了存儲轉發延遲,分組還有排隊時延(queuing delay)。
若到達該交換器的分組發現緩存已滿,就會發生丟包(packet loss),使得緩存中的一個分組,或到達的分組被丟棄。(基於不同策略做法不同)
轉發表(forwarding table):用於將 IP 地址映射為輸出鏈路,由路由選擇協議(routing protocol) 自動設置。
電路交換
在電路交換(circuit switching) 中,預留了端系統間沿路徑通訊所需要的資源(緩存,鏈路傳輸數據等),使得在路徑上的傳輸速率是恆定的。而在分組交換網絡中,則不會預留。
端到端連接(end-to-end connection):網絡在鏈路中為兩個連接的主機提供穩定的電路(鏈路由多條電路組成),一條電路的速度占整個鏈路中所含的電路數 $n$ 的 $\frac{1}{n}$。
電路通過頻分複用(Frequency-Division Multiplexing, FDM) 或 時分複用(Time-Division Multiplexing, TDM) 實現。
對 FDM 來說,鏈路的頻譜由鏈路上所有連接共享。每個連接會被分配到特定的頻段。其中,頻段的寬度稱為頻寬(bandwidth)。
對 TDM 來說,時間被劃分為固定時長的幀,每個幀又被劃分為固定數量的時隙(slot)。每個電路會被分配一個專門的時隙,用來傳輸數據。
要計算 TDM 的傳輸數據:
- 對電路來說:$\text{幀數} \times \text{一個時隙可傳輸的大小}$
- 對鍊路來說:$\text{幀數} \times \text{一個時隙可傳輸的大小} \times \text{幀的時隙數}$
二者對比
由上我們可以知道,分組交換的性能比電路交換的性能好。因為電路交換即使在用戶未活躍時仍為其保留電路,造成資源浪費。
Internet of Internets
存在點(Point of Presence, PoP):PoP 存在於所有除了底層(接入 ISP )之外的所有層次等級中,是提供商網絡中多台路由器的群組,其中客戶 ISP 可以和提供商 ISP 連接。
多宿(multi-home):除了第一層 ISP 外的所有 ISP 都可以與多個提供商 ISP 連接,使得就算其中一個提供商出現故障仍可訪問因特網。
對等(peer):可直接將此二對等路由器相連,而雙方都不收取代價。
因特網交換點(Internet Exchange Point, IXP):一個匯合點,多個 ISP 可以在此對等。
內容提供商網絡(content provider network):直接與較低層網絡對等,嘗試繞過因特網較高層。
以下描述了因特網結構:
分組交換中的時延、丟包和吞吐量
時延
- 節點處理延遲(nodal processing delay):解析傳來的封包所需要的時間。
- 排隊延遲(queueing delay):在隊列中等待的時間。
假設封包長度 $L$ bits,分組到達隊列的速率是 $a$ packet/s,$R$ 是傳播速率。則可知 $La$ 為 bits 到達隊列的平均速率。
定義流量強度(traffic intensity) 為 $\frac{La}{R}$。
當流量強度 > 1 時,代表 bits 到達隊列的平均速率大於隊列傳輸出去的速率。此時隊列會無限增長。
$\implies$設計系統時流量強度不能大於1。 - 傳輸延遲(transmission delay):將分組從路由器一字節一字節推向鏈路所需的時間。
- 傳播延遲(propagation dalay):從鏈路起點傳送分組到路由器所需的時間。
丟包
更詳細的排隊延遲:
當流量強度 <= 1 時
- 若週期性到達:i.e., 每 $\frac{L}{R}$ 秒到達一個分組,則每個分組到達時對列皆為空。沒有排隊延遲。
- 若突發性到達:i.e., 每 $\left( \frac{L}{R} \right)N$ 秒同時到達 $N$ 個分組,則第 $n$ 個分組有 $(n-1)\left( \frac{L}{R} \right)$ 秒的排隊延遲。
若隊列滿了,仍有分組到達,則新到達的分組被丟棄,i.e. 丟包。
吞吐量
瞬時吞吐量(instataneous throughput):主機接受文件的速率。
平均吞吐量(average throughput):接收一個大小為 $F$ bits 的文件需要 $T$ 秒,則平均吞吐量為 $\frac{F}{T}$ bps。
考慮以下情況(省略其他延遲):
- 由伺服器到路由器的鏈路速率為 $R_{s}$ 。
- 由路由器到客戶端的鏈路速率為 $R_{c}$ 。
則吞吐量為 $\text{min} { R{c}, R{s} }$ 。此情況稱為瓶頸鏈路(bottleneck link)。
而服務器傳輸一個大小為 $F$ bits 的文件到客戶端的時間為 $\frac{F}{\text{min} { R{c}, R{s} }}$ 。
協議層次
協議棧(protocol stack):各層所有協議的統稱。
協議棧包含:
- 應用層
- HTTP
- SMTP
- FTP
- 報文(message)
- 運輸層
- TCP
- UDP
- 報文段(segment)
- 網絡層
- IP
- 數據報(datagram)
- 鏈路層
- 以太網
- WiFi
- DOCSIS
- 幀(frame) (以幀為單位傳輸)
- 物理層
- 將幀中的 bit 一個個傳輸