簡介
網絡結構
基本組成
基本結構
處於網絡終端的通信設備實體成為主機或端系統,端系統的作用主要是收集、創造或處理數據,故端系統又可以分為客戶機(client)和服務器(server),從一個端系統到達另一個端系統需要通過路徑,路徑將端系統通過通信鏈路(線纜或電波)或分組交換機(常見的分組交換機有路由器(網絡核心)和鏈路層交換機(接入網))連接在一起。各大小型端系統通過ISP(Internet Services Provider)維護的路徑連接在一起。
在端系統內部存在多個分布式應用程序來處理特定信息,Application Programming Interface規定了應用程序與另一個端系統的應用程序交換數據的規則。端系統通過接入網與邊緣路由器連接,邊緣路由器是端系統在路徑上的第一台路由器。常見的接入網通信鏈路有電話線、電纜線、光纖、無線電。
接入網
DSL接入:終端通過DSL調制解調器發送模擬信號並經過家庭的分頻器,發送出的各種頻率的模擬信號通過電話公司的復用器DSLAM轉換為數字信號,數字信號通過路由器與局外網絡通信。接收信號時路由器將數字信號轉發至復用器,復用器將數字信號轉為模擬信號,模擬信號通過分頻器和DSL傳輸至目的終端。網絡信號和電話信號以不同的頻率傳輸,通過分頻器和復用器合並或分離。
電纜接入:終端通過電纜調制解調器將發送的數字信號轉為模擬信號,模擬信號通過同軸電纜傳輸至該地區樞紐的光纖結點,進而通過光纜傳輸至地區的電纜調制解調器端接系統(CMTS,Cable Modem Termination System,CMTS和路由器組成了電纜頭端),CMTS將模擬信號轉為數字信號並通過路由器與局外網絡通信。混合的電纜光纜稱為混合光纖同軸(HFC,Hybrid Fiber Coax),終端處的電纜調制解調器將HFC網絡分為上行和下行兩個信道,下行信道通常比上行信道的速率更高,電纜接入的特征是共享廣播媒體,即人多時速率下降人少時速率較高。
光纖接入:主動光纖網絡(AON,Active Optical Network,從本地中心局一根光纖到單戶)和被動光纖網絡(PON,Passive Optical Network,中心局光纖通過光纖分配器將到多戶)。端系統經過路由器並通過光纖網絡端接器(ONT,Optical Network Termination)將數字信號轉為光模擬信號,光纖分配器將模擬信號傳輸至中心局的光纖線路端接器(OLT,Optical Line Termination),OLT再將模擬信號轉為數字信號。
以太網接入:終端通過雙絞銅線與一台以太網交換機直接相連
局域網接入:通過局域網將用戶與邊緣路由器相連
WIFI無線接入:WLAN
廣域無線接入:基於基站的無線技術
物理媒體
物理媒體分為導引數據流向的導引型媒體和擴散傳播的非導引型媒體。
雙絞銅線。同軸電纜。光纖。陸地無線電通道。衛星無線電通道。
ISP
單一全球承載ISP接入所有區域ISP。多個全球承載ISP接入各個區域ISP。區域內划分各個區域ISP逐層接入。區域內或區域間依靠存在點、多宿、對等、IXP組成更為復雜的結構。
存在點POP是供應商網絡中相同層級位置下的多個路由器組成的群組,通過租用POP能進行高速鏈接。多宿是接入多個供應商或區域ISP以增強容災能力。對等是位於相同層級的ISP可以直接互相傳輸流量而不需要流向上級ISP,對等的頂層ISP不互相結算。IXP可以接入多個區域ISP並讓它們共同對等。內容提供商網絡是一個大型的局域網絡結構,通過全球性的服務器布局和直接接入底層ISP並接入多個IXP可以減少向頂層供應商支付的網絡費用。
數據交換
分組交換
報文的源端系統將報文划分並為每段加上首部字節以組成較小的數據塊,稱之為分組packet。分組從路由器一端傳入,再由該路由器轉發至另一條通信鏈路,轉發的路徑在不同的網絡間有區別。通常,路由器會根據路由選擇協議自動的配置一個轉發表,保存可用的相鄰路由器。分組交換提供了更好的寬帶共享並且簡單有效實現成本低,但不適合實時服務。
分組交換機在鏈路的輸入端采用存儲轉發傳輸機制,即交換機在向輸出鏈路傳輸分組的第一個比特前必須接收完整的分組。接收分組完畢后,分組交換機首先需要檢查分組頭部來決定從哪個輸出端口轉發,此種時延稱為處理時延nodal processing delay。分組傳入交換機后,如果某一輸出鏈路正在傳輸其他分組,則后到達的分組需要在交換機中排隊,這種時延稱為排隊時延queue delay。分組交換機對每條相連的鏈路提供輸出緩存output buffer,如果輸出緩存占滿則會丟棄將到達的分組或排隊中的分組,此種現象稱為分組丟失pocket lost或丟包。分組的第一個比特傳入鏈路到最后一個比特傳入鏈路需要的時間稱為傳輸時延transmission delay。分組的第一個比特從傳入鏈路到到達下一個分組交換機需要的時間稱為傳播時延propagation delay。
高速路由器的處理時延通常是微秒或更低的數量級,排隊時延取決於擁塞程度但實際上通常是毫秒或微妙量級,輸出時延取決於分組長度和鏈路傳輸速率通常是毫秒微秒量級對於低俗鏈路時延較大,傳播時延取決於物理媒體和鏈路長度通常是毫秒量級有幾微妙到幾百毫秒。傳輸時延是源端開始發送數據到傳輸媒體,傳輸媒體接收完畢所需要的時間,通常是分組交換機推出分組所需要的時間,它是分組長度和鏈路傳輸速率的函數。傳播時延是一台分組交換機傳播到另一台分組交換機所需要的時間,它是兩台路由器之間距離的函數。以上四種時延總和為結點總時延total nodal delay。某些特定的服務協議還會設定其他時延。
假定分組長度為L,分組傳入交換機的平均速率為a,分組交換機的鏈路傳輸速率為R,則比率La/R稱為流量強度,如果流量強度大於1則排隊時延將無窮大,因此流量工程需要控制流量強度。對於小於1的流量強度,如果(L/R)n秒同時到達n個分組,則第n個分組具有(n-1)L/R的排隊時延。
對於一個分組數量為P的報文,如果分組比特大小為L傳輸速率為R鏈路數量N,則傳輸總時延包括最后一個分組前其他分組的總第一次傳輸時延和最后一個分組端到端的總傳輸時延(忽略傳播時延),即傳輸時延為:(P-1+N)(L/R)
電路交換
端系統通話前和期間,會建立和維護一個保持連接狀態的連接,並為該連接預留緩存或恆定的傳輸速率,這種穩定的連接稱為電路。電路交換實時且速率穩定但是具有靜默期占用空閑網絡。
一個通信鏈路可能有多個電路,划分電路的方式稱為復用,主要有頻分復用(FDM,Frequency Division Multiplexing)和時分復用(TDM,Time Division Multiplexing)。電話網絡中的頻段通常為4kHz,這種頻段稱為帶寬。時分復用中,鏈路首先分段為不同的幀,幀再分為不同時隙,每個幀中的特定時隙組成一個電路,該電路的傳輸速率等於幀速率乘以時隙內比特數。
對於電路交換,首先需要電路創建時間,其次需要傳輸時間,最后考慮傳播時間,通常,傳輸速率等於文件大小除以該電路的傳輸速率。
吞吐量
端到端傳輸一定比特大小的文件花去一定時間,其平均傳輸速率為平均吞吐量average throughput,瞬時速率是瞬時吞吐量。路徑的吞吐量取決於瓶頸鏈路,對於具有多個連接的共享鏈路,單個連接的吞吐量平均計算,因此共享鏈路中的干擾流量會影響吞吐量。
分層模型
由於報文不能直接在物理媒體中傳輸,因此需要划分多種功能的傳輸媒介,再根據相同的功能來划分則可以將整個網絡分層,根據傳輸單元數據類型的不同可以選擇在不同層次上使用網絡傳輸信息。對於分層的結構,每層具有不同的任務或功能,上層直接使用下層服務,在不影響預定的輸入輸出規則情況下改變層次內的實現規則不會影響系統內其他組件。但是,實際的分層實現中高層可能冗余底層功能,某層功能需要依靠其它層的特征數據來實現。
協議
協議是一套標准,網絡協議是網絡中數據交換的規則、標准或約定,定義和控制了兩個或多個通信實體之間交換數據的報文語法、語義和事件順序。
分層的協議稱為協議 棧,因特網根據應用層、傳輸層、網絡層、數據鏈路層、物理層划分,OSI七層參考模型還將應用層再分為應用層、表示層、會話層。
OSI參考模型
應用層Application負責應用程序之間交換數據的形式,提供為應用軟件而設的界面、以設置與另一應用軟件之間的通信。位於應用層的數據類型(分組)稱為報文message。
DHCP DNS FTP Gopher HTTP HTTPS IMAP4 IRC NNTP XMPP POP3 SIP SMTP SNMP · SSH · TELNET · RPC · RTCP · RTP ·RTSP · SDP · SOAP · GTP · STUN · NTP · SSDP
表示層Presentation把數據轉換為能與接收者的系統格式兼容並適合傳輸的格式,即使應用程序能解釋交換數據的含義,包括數據壓縮、數據加密、數據描述等。
會話層Session負責在數據傳輸中設置和維護電腦網絡中兩台電腦之間的通信連接,提供了數據交換定界和同步功能,包括建立檢查點和恢復方案。
傳輸層Transport提供應用程序端點之間的數據交換,具體實現為把傳輸表頭(TH)加至數據以形成數據包,傳輸表頭包含了所使用的協議等發送信息。傳輸層分組稱為報文段segment 。
TCP · UDP · TLS · DCCP · SCTP RSVP · PPTP
網絡層Network提供了主機間的數據交換,決定了數據的路徑選擇和轉寄,它網絡表頭(NH)加至數據包,以形成分組,網絡表頭包含了網絡數據。網絡層的數據分組稱為數據報datagram或包Packet
IP (IPv4 · IPv6) · ICMP · ICMPv6 · IGMP · IS-IS · IPsec · BGP · RIP · OSPF
數據鏈路層Data link負責網絡層路由間結點的數據交換,負責網絡尋址、錯誤偵測和改錯。當表頭和表尾被加至數據包時,會形成了幀。數據鏈表頭(DLH)是包含了物理地址和錯誤偵測及改錯的方法。數據鏈表尾(DLT)是一串指示數據包末端的字符串。路徑中可能存在多個不同物理媒體的鏈路,即一個數據報可能經過不同鏈路層協議的不同服務。鏈路層分組稱為幀Frame。
Wi-Fi(IEEE 802.11) · WiMAX(IEEE 802.16) ·ARP · RARP · ATM · DTM · 令牌環 · 以太網 · FDDI · 幀中繼 · GPRS · EVDO · HSPA · HDLC · PPP · L2TP · ISDN ·STP
物理層Physical負責結點之間的數據交換,將幀中的比特傳送至下一個結點,它負責管理電腦通信設備和網絡媒體之間的互通。包括了針腳、電壓、線纜規范、集線器、中繼器、網卡、主機適配器等。數據單元Bit位
以太網 · 調制解調器 · 電力線通信 (PLC) · SONET/SDH · G.709 · 光導纖維 · 同軸電纜 · 雙絞線
封裝
報文傳出后,逐層傳輸時被轉換並附加該層特征信息(首部字段),由於應用層位於頂部是被附加首部字段的,物理層位於底部用於處理數據傳輸的最基本單元所以沒有附加信息。除去首部字段的剩余數據稱為有效載荷字段,存儲了上一層的分組。運輸層首部字段包含了允許接收端運輸層向特定應用程序傳輸的特定信息。網絡層首部字段包含了源和端系統的地址等信息。鏈路層除了首部字段還有尾部字段,詳見數據鏈路層。
其他模型
TCP/IP四層模型將應用層、表示層、會話層統一為一個應用層,數據鏈路層和物理層統一為網絡接口層,但實際上為定義網絡接口層的協議,綜合來看,主流的網絡分為五層。
應用層
協議原理
簡介
應用層的服務目標是應用程序,用於定義應用間交換數據的規則,而不需要再額外關注端系統間通信線路的實現。對於多個交換數據的端系統,存在目前主流的兩種交互數據的結構,CS架構采用一對多的形式,客戶機之間不會直接通信,為了加強CS架構的服務能力會建造配置大量主機的數據中心。P2P架構采用多對多的形式,對服務器沒有或依賴較小,客戶機亦是服務器,統稱為對等方,數據直接在用戶主機間傳輸,這種結構不但不需要龐大的服務器設備和帶寬,還能通過數據分發增強整個系統的服務能力。
應用程序通過進程通信,進程通過套接字(socket)軟件接口向網絡發送和接收報文,套接字是應用層和傳輸層之間的接口,也稱為API。主機間尋址通過IP實現,進程間尋址通過端口號實現。應用程序必須指定一種具體的傳輸層協議來作為數據交換的形式載體以及某些特定的服務匹配應用要求,常用的服務有數據可靠性、吞吐量要求、傳輸定時、安全。
服務
TCP是面向連接的可靠數據傳輸服務,通常用於電子郵件、文件傳輸、遠程主機訪問、Web文檔傳輸以及金融服務等數據交付要求較高的應用。UDP不面向連接且不可靠,通常用於多媒體等容忍數據丟失的應用。
對於某些帶寬敏感的應用,需要傳輸層能確保以指定的吞吐量傳輸,通常多媒體應用是帶寬敏感的,而電子郵件、文件傳輸、Web傳送等彈性應用可以自適應當前吞吐量。
對於交互式實時應用如網絡電話、虛擬環境、多方游戲等,需要確保源端應用注入套接字的比特到達終端套接字接收該比特的時間不能小於一定的數值以保證數據傳輸的有效性。
對於某些機密性服務,運輸層加密發送進程的所有數據並在數據交付給接收進程前解密數據,此外,數據完整性校驗和端口鑒別也屬於安全服務。無論TCP還是UDP,傳輸前后都沒有加密處理,在應用層實現安全套接字SSL,可以對TCP進行強化,提供加密、數據完整性、端口鑒別的服務。
TCP可以提供可靠安全的數據傳輸,但TCP或UDP目前都沒有設計提供帶寬或定時的服務。
定義
實現一個應用層協議需要定義以下規則:交換的報文類型、報文類型的語法、字段的語義、發送和響應報文的規則。
最常見的網絡應用服務有基於HTTP的Web服務、基於FTP的文件傳輸服務、基於SMTP的電子郵件服務、基於DNS的目錄服務、P2P共享服務等。
HTTP協議
萬維網是最為廣泛的Web,Web的特點是能靈活的傳輸各種類型的文件。Web的應用層協議是HTTP超文本傳輸協議,HTTP定義了客戶端和服務端交換的報文結構和交換報文的方式,Web頁面中的文件對象通過URL尋址,URL通過兩部分組成,服務器的主機名稱和對象的路徑名稱。HTTP使用TCP作為支撐協議,請求前需要建立連接,發送的數據能可靠的傳輸至終端,終端不保存請求的狀態信息,所以HTTP屬於無狀態協議。
對於需要多次請求的應用,如果每個請求使用不同的TCP連接則稱為非持續連接,如果使用同一個TCP連接則稱為持續連接,持續連接默認提供,但可以配置使用非持續連接。非持續連接可以配置為串行還是並行,使用並行能減少響應時間。HTTP請求前的連接建立過程為主機發送小TCP報文段到服務器詢問,服務器再用小TCP報文段響應,主機再向服務器正式HTTP請求,服務器則正式響應。定義往返時間(RTT Round-Trip Time)包括處理時延、排隊時延、傳播時延,則單個HTTP請求包括兩次RRT以及端到端的傳輸時間。可見,非持續連接不但加大了服務器負擔還增加了交付延時。通常,HTTP使用持續的連接並配置一個的超時間隔,如果時間內未訪問則斷開連接。
報文格式
請求報文的第一行為請求行,后繼的行叫首部行,請求行包括三個字段:方法字段、URL字段、HTTP協議版本字段。請求行使用空行與后續的實體主體(entity body)分隔。常見的首部行有Host指明主機、Connection要求請求后是否關閉連接、User-agent指明客戶瀏覽器類型、Accept-language表示希望的響應語言版本。
響應報文的第一行是初始狀態行,后續的是首部行,然后是實體主體,狀態行包括三個字段:協議版本字段、狀態碼、狀態信息。
方法 | 作用 |
---|---|
GET | 請求指定的頁面信息,並返回實體主體 |
HEAD | 類似get響應中沒有具體的內容,用於獲取報頭 |
POST | 向指定資源提交數據進行處理請求(例如提交表單或者上傳文件)數據被包含在請求體中,可能導致建立或修改資源 |
PUT | 從客戶端向服務器傳送的數據取代指定的文檔的內容 |
DELETE | 請求服務器刪除指定的頁面 |
CONNECT | 預留給將連接改為管道的代理服務器 |
OPTIONS | 允許客戶端查看服務器的性能 |
TRACE | 回顯服務器收到的請求用於測試或診斷 |
PATCH | 應用於資源修改 |
統一資源標識符(Uniform Resource Identifiers, URI)用於標識資源,統一資源定位符(Uniform Resource Locator,URL)是常用的URI。URL協議語法為:protocol😕/authority :port path query fragment
交互管理
cookie用於記錄用戶的訪問狀態,cookie技術組件:響應報文的cookie首部行、請求報文的cookie首部行、用戶端cookie管理、服務器數據庫。首次請求響應返回cookie並存入服務器數據庫,后續攜帶cookie的訪問會查詢數據庫cookie並管理響應。
session機制采用的是在服務器端保持狀態的方案。由於采用服務器端保持狀態的方案在客戶端也需要保存一個標識,所以session機制可能需要借助於cookie機制來達到保存標識的目的。有時Cookie被人為的禁止,所以出現了其他機制以便在Cookie被禁止時仍然能夠把SessionID傳遞回服務器。這種技術叫做URL重寫,就是把SessionID直接附加在URL路徑的后面,附加方式也有兩種,一種是作為URL路徑的附加信息,另一種是作為查詢字符串附加在URL后面。
對session來說,除非程序通知服務器刪除一個session,否則服務器會一直保留。由於關閉瀏覽器不會導致session被刪除,迫使服務器為seesion設置了一個失效時間,當距離客戶端上一次使用session的時間超過這個失效時間時,服務器就可以認為客戶端已經停止了活動,才會把session刪除以節省存儲空間。
緩存器
Web緩存器是代表初始服務器來滿足請求的網絡實體,位於客戶機和原始服務器之間,客戶機的請求會在緩存器中緩存,后續訪問直接返回,如果訪問沒有緩存則請求原始服務器。緩存器可以降低響應時間以及減少網絡流量以增強應用性能。CDN公司通過安裝大量緩存器形成內容分發網絡CDN使大量流量實現本地化。
緩存器向初始服務器請求緩存對象時,響應信息通常會包含Last-modify首部行,在后續的用戶請求時,緩存器會通過If-modify-since首部行請求初始服務器來判斷緩存對象是否為最新對象,如果是則初始服務器返回給緩存器的響應為304 Not Modified告訴緩存器可以將緩存的對象返回給用戶。
FTP
FTP使用並行的控制連接和數據連接傳輸文件,控制連接用於在主機間傳輸控制信息如用戶標識、口令、目錄文件操作命令等,數據連接用於文件的實際傳送。FTP是有狀態的,服務器需要綁定用戶賬戶和控制連接,需要追蹤用戶當前目錄位置。
分離的控制信息稱為帶外傳送如FTP,控制信息與文件信息一起稱為帶內傳送,如HTTP。
電子郵件
DNS
域名系統(Domain Name System)用於域名和IP地址轉換,組件為:DNS分布式數據庫、查詢的應用層協議之上,端口號53。
傳輸層
運輸層在端系統中實現,為源終端系統上的進程提供邏輯通信,運輸層將應用報文分隔為小塊並分別加上運輸存首部以生成運輸層報文段segment。運輸層位於網絡層之上,網絡層提供主機間的邏輯通信,運輸層的服務受網絡層影響。網絡層協議有IP網絡協議,IP的服務模型是盡力而為的交付,不保證服務完整性,即不可靠服務。
運輸層的基本職責是將多路復用和多路分解,多路復用是指將源端上不同套接字的數據封裝首部信息生成報文段並傳遞給網絡層。多路分解是將封裝的報文段交付給正確的套接字。
UDP時輕量級傳輸協議,無連接沒有握手過程、不保證數據可靠性、沒有擁塞控制。UDP報文通過攜帶目的IP和目的端口號的二元組標識,用於定向目的主機的目的端口。
TCP面向連接且可靠的數據傳輸服務,面向連接用於傳輸前的准備、可靠意值能確保傳輸過程沒有字節的丟失或冗余。TCP的擁塞控制可以在網絡擁塞時平等的抑制發送進程。不同於UDP,TCP通過源IP、源端口、目的IP、目的端口的四元組標識,不但定向了目的端口還標識了源端口。
網絡層
網絡層核心是路由選擇和分組轉發,路由選擇用於在所有路由器中選擇最佳路徑,分組轉發用於路徑中的分組傳輸。