爆干3天整理出来,408考研计算机网络复习笔记(更新中)
喚醒手腕考研計算機網絡復習筆記:2022/4/11:課程學習(王道考研)
網絡體系結構
概念、組成、功能和分類
組成部分:一個完整的計算機網絡主要由硬件、軟件、協議三大部分組成,缺一不可。硬件主要由主機(端系統)、通信鏈路(如雙絞線、光纖)、交換設備(如路由器、交換機等)和通信處理機(如網卡)等組成。
軟件主要包括各種實現資源共享的軟件和方便用戶使用的各種工具軟件(如網絡操作系統、郵件收發程序、FTP程序、聊天程序等)。軟件部分基本屬于應用層,網絡協議是計算機網絡的核心。
計算機網絡的定義:計算機網絡是互連的、自治的計算機的集合。
①自治:是指互連的計算機系統彼此獨立,不存在主從或者控制與被控制的關系。
②計算機:計算機設備。
③互連:是指利用通信鏈路鏈接相互獨立的計算機系統。
工作方式:計算機網絡(這里主要指Internet)可分為邊緣部分和核心部分。邊緣部分由所有連接到因特網上、供用戶直接使用的主機組成,用來進行通信(如傳輸數據、音頻或視頻)和資源共享;核心部分由大量的網絡和連接這些網絡的路由器組成,它為邊緣部分提供連通性和交換服務。
功能組成:計算機網絡由通信子網和資源子網組成。通信子網由各種傳輸介質、通信設備和相應的網絡協議組成,它使網絡具有數據傳輸、交換、控制和存儲的能力,實現聯網計算機之間的數據通信。資源子網是實現資源共享功能的設備及其軟件的集合,向網絡用戶提供共享其他計算機上的硬件資源、軟件資源和數據資源的服務。
雖然網絡類型的劃分標準各有千秋,但是以地理范圍劃分是一種大多數人都認可的通用網絡劃分標準。按照此標準可以將各種網絡類型劃分為局域網、城域網、廣域網和互聯網4種。
標準化工作及相關組織
Request for comments RFC
RFC要上升為因特網正式標準的四個階段:
①因特網草案(Internet Draft)②建議標準:開啟成為RFC文檔(Porposed Standard)③因特網標準(Internet Standard)
標準化工作的相關組織
國際標準化組織 ISO:ISO參考模型、HDLC協議
國際電信聯盟 ITU:制定通信規則
國際電氣電子工程師協會 IEEE:學術機構、IEEE802系列標準、5G
Internet工程任務組 IETF:負責因特網相關標準的制定 RFC XXXX
速率相關的性能指標
速率
速率:即數據率或稱為數據傳輸率或比特率,連接在計算機網絡上的主機在數字信道上傳送數據位數的速率。
速率單位換算:1 Tb / s = 103 Gb / s = 106 Mb / s = 109 kb / s = 1012 b / s
帶寬
帶寬:“帶寬”原本指某個信號具有的頻帶寬度,即最高頻率與最低頻率之差,單位是赫茲(Hz)
計算機網絡中,帶寬用來表示網絡的通信線路傳送數據的能力,通常是指單位時間內從網絡中的某一點到另一點所能通過的“最高數據率”。單位是“比特每秒”,b/s,kb/s,Mb/s,Gb/s。
吞吐量
吞吐量:表示在單位時間內通過某個網絡(或信道、接口)的數據量。單位b/s,kb/s,Mb/s等。吞吐量受網絡的帶寬或網絡的額定速率的限制。
簡單的講,對于P2P系統而言,當主機A到主機B傳送一個文件,任何時間瞬間的瞬時吞吐量都是主機B接收到該文件的速率(以bps計算)。如果文件由F比特組成,主機B接收到所有F比特用去T秒,則文件傳送的平均吞吐量是F/T bps
什么是bps: “bits per second” 常用于表示數據機及網絡通訊的傳輸速率。
例如GigabitEthernet端口: 5 minute input rate 38410000 bits/sec, 6344 packets/sec 382410000 bits/sec = 382.41Mbps
所以常說的快速以太網能達到百兆傳輸,其實實際傳輸文件大小只有10MB = 100Mb
注意:在計算傳輸速率時,直接用1000來換算(1 Mb = 1000 Kb = 1000,000 bit)
想象比特是流體,而鏈路是管道,那么吞吐量應該為min{ Rc ,Rs }。如上圖所示,當Rc為2Mbps且Rs>Rc,無論Rs有多大,吞吐量都是2Mbps。同理,當有n個路由器的時候,吞吐量為min{R1,R2,···,Rn,Rn+1}
我們今天因特網對吞吐量的限制因素通常是接入網:如果R和Rs(服務器傳輸速率)、Rc(接入網傳輸速率)相近的話,會出現怎么樣的情況呢?
這時候每個下載的瓶頸不再位于接入網中,而是位于核心中的共享鏈路了,該瓶頸僅能為每個下載提供1.5Mbps的吞吐量,因此每個下載的端到端吞吐量現在減少到1.5Mbps
時延、BDP、RRT、利用率
時延
時延:指一個報文或分組從網絡的一端傳送到另一端所耗費的時間,時延由節點處理時延、排隊時延、發送時延、傳播時延組成。
節點處理時延:
主機或路由器在收到分組后要花費一定的時間進行處理,比如分析首部,提取數據,差錯檢驗,路由選擇等。一般高速路由器的處理時延通常是微秒或更低的數量級。
排隊時延:
排隊時延很好理解,就是路由器或者交換機處理數據包排隊所消耗的時間。一個特定分組的排隊時延取決于先期到達的、正在排隊等待向鏈路傳輸分組的數量。如果該隊列是空的,并且當前沒有其他分組在傳輸,則該分組的排隊時延為0;另一方面,如果流量很大,并且許多其他分組也在等待傳輸,該排隊時延將很大。實際的排隊時延通常在毫秒到微秒級。
傳輸時延:
傳輸時延又被稱為“發送時延”,是發送數據所需要的時間,也就是從網卡或者路由器隊列遞交網絡鏈路所需要的時間。用L比特表示分組的長度,用R bps表示從路由器A到路由器B的鏈路傳輸速率,傳輸時延則是L/R。實際的發送時延通常在毫秒到微秒級。
傳播時延:
傳播時延是指在鏈路上傳播數據所需要的時間。傳播時延等于兩臺路由器之間的距離除以傳播速率,即傳播時延是D/S,其中D是兩臺路由器之間的距離,S是該鏈路的傳播速率。實際傳播時延在毫秒級。
更加細致的描述:發送時延(首次傳輸時延)、節點處理時延、排隊時延、傳播時延、處理時延(接收時延)
發送時延計算公式:Sending Delay 發送時延 = Data Length 數據長度 / Channel Bandwidth 信道帶寬
傳播時延計算公式:Transfering Delay 傳播時延 = Channel Length 信道長度 / 電磁波在信道傳播的速率
帶寬時延積 BDP
帶寬時延積:(Bandwidth-Delay Product ,BDP)即鏈路上的最大比特數,也稱以比特為單位的鏈路長度。描述某段鏈路中的數據容量。
計算方法: Bandwidth - Delay Product = Delay * Bandwidth
發送緩沖區與帶寬時延積的關系:
-
如果發送緩沖區「超過」帶寬時延積,超出的部分就沒辦法有效的網絡傳輸,同時導致網絡過載,容易丟包;
-
如果發送緩沖區「小于」帶寬時延積,就不能很好的發揮出網絡的傳輸效率。
結論:發送緩沖區的大小最好是往帶寬時延積靠近
例題:考慮兩臺主機 A 和主機 B 由一條帶寬為 R bps、長度為 M 米的鏈路互連,信號傳播速率為 V m/s。假設主機 A 從 t=0 時刻開始向主機 B 發送分組,分組長度為 L 比特,試求:(注:1 k = 103, 1 M = 106)
(1) 傳播延遲(dp)
傳播時延:dp = 信道長度(m) / 電磁波在信道上的傳播速率(m/s) = M / V
(2) 傳輸延遲(dt)
傳輸延遲:dt = 數據幀長度(b) / 信道帶寬(b/s) = L / R
(3) 若忽略結點處理延遲和排隊延遲,求端到端延遲 de
端到端總延遲:de = 傳播時延 + 傳輸延遲 = M / V + L / R
(4) 若 dp > dt,則 t = dt 時刻,分組的第一個比特在哪里?
dp > dt 意味著最早發送的信號沒有到達目的主機之前,數據分組的最后一個比特已經發送出來了,所以分組的第一個比特在距離主機的 V * dt 米的鏈路上
(5) 若 V = 250000 km/s,L = 512 bit,R = 100 Mbps,則使帶寬時延積剛好為一個分組長度(即 512 bit)的鏈路長度M是多少?
時延帶寬積 = 傳播時延 * 帶寬 = M / V * R = 512,解之得 M = 1280 m
往返時延 RTT
往返時延:RTT ( Round-Trip Time ),從發送方發送數據開始,到發送方收到接收方的確認(接收方收到數據后立即發送確認),總共經歷的時延。
往返延時(RTT)由三個部分決定:即鏈路的傳播時間、末端系統的處理時間以及路由器的緩存中的排隊和處理時間。其中,前面兩個部分的值作為一個TCP連接相對固定,路由器的緩存中的排隊和處理時間會隨著整個網絡擁塞程度的變化而變化。
RTT的變化在一定程度上反映了網絡擁塞程度的變化。
結論:RTT越大,在收到確認之前,可以發送的數據越多。
利用率 Utilization Rate
信道利用率指出某信道有百分之幾的時間是被利用的(有數據通過),完全空閑的信道利用率是零。
假定A發送分組需要的時間為TD,分組確認時間為TA,往返時間為RTT。根據信道利用率的概念,我們可以得到如下信道利用率的計算方法:
經典例題:通信信道帶寬為 1 Gb/s,端到端時延為 10 ms,TCP的發送窗口為 65535 字節,試問:可能達到的最大吞吐量和信道利用率?
發送時延 = 數據長度 / 信道帶寬 = (655358 bit) / (1 Gb/s) = 0.52428 * 10-3 s = 0.52428 ms;
傳播往返時延 = 2 * 10 = 20 ms (發送數據和接收確認)
故每發送每個窗口大小的流量,總時延 = 發送時延 + 傳播往返時延 = 0.52428 + 20 = 20.52428 ms
每秒鐘可以產生 1 s / 20.20.52428 ms = 1000 ms / 20.52428 ms 個窗口
最大數據吞吐量 = 655368 * (1000 / 20.52428) = 25544769 bit/s = 25.5 Mb/s
信道的利用率 = (25.5 Mb/s) / (1000 Mb/s) ≈ 2.55%
信道利用率,也叫信道的效率。對發送方而言,發送方在一個發送周期內,有效地發送數據所需要的時間占整個發送周期的比率。
分層結構、協議、接口、服務
發送文件前要完成的工作?
(1)發起通信的計算機必須將數據通信的通路進行激活。
(2)要告訴網絡如何識別目的主機。
(3)發起通信的計算機要查明目的主機是否開機,并且與網絡連接正常。
(4)發起通信的計算機要弄清楚,對方計算機中文件管理程序是否已經做好準備工作。
(5)確保差錯和意外可以解決。
計算機網絡體系分層結構
OSI 體系結構:應用層,表示層,會話層,運輸層,網絡層,數據鏈路層,物理層
TCP / IP 體系結構:應用層,運輸層(TCP或UDP),網際層(IP),網絡接口層
五層協議體系結構:應用層,運輸層,網絡層,數據鏈路層,物理層
網絡協議 Network protocol
網絡協議(network protocol) ,簡稱為協議 ,是為進行網絡中的數據交換而建立的規則、標準或約定 。
協議規定了通信實體之間所交換的消息的格式、意義、順序以及針對收到信息或發生的事件所采取的“動作”(actions)。
網絡協議至少包括三要素:
① 語法(用來規定信息格式)② 語義(用來說明通信雙方應當怎么做)③ 時序(詳細說明事件的先后順序)
網際層協議:IP協議、ICMP協議、ARP協議、RARP協議
傳輸層協議:TCP協議、UDP協議
應用層協議:FTP、Telnet、SMTP、HTTP、RIP、NFS、DNS
接口 (訪問服務點SAP)
接口(訪問服務點SAP):上層使用下層的服務的入口
例如:傳輸層和網絡層的接口,邏輯上屬于網絡層。
服務 Service
服務:下層為相鄰上層提供的功能調用(垂直)
下層為上層提供的功能調用(即原語)主要分為:Request、Indiction、Response、Confirmation
請求(Request) :由服務用戶發往服務提供者,請求完成某項工作。 指示(Indication) :由服務提供者發往服務用戶,指示用戶做某件事情。 響應(Response) :由服務用戶發往服務提供者,作為對指示的響應。 證實(Confirmation) :由服務提供者發往服務用戶,作為對請求的證實。注意:在一層內完成的全部功能并非都稱之為服務,只有那些能夠被高一層實體“看得見”的功能才能稱為服務。
服務原語:上層使用下層所提供的服務必須與下層交換一些指令,這些指令在OSI中被稱為服務原語。
OSI 7層網絡互連模型
OSI(Open System Interconnect),即開放式系統互聯。 一般都叫 OSI 參考模型,是 ISO(國際標準化組織)組織在 1985 年研究的網絡互連模型。
ISO 為了更好的使網絡應用更為普及,推出了 OSI 參考模型。其含義就是推薦所有公司使用這個規范來控制網絡。這樣所有公司都有相同的規范,就能互聯了。
OSI 定義了網絡互連的七層框架(物理層、數據鏈路層、網絡層、傳輸層、會話層、表示層、應用層),即ISO 開放互連系統參考模型。
(1) 物理層 (Physical Layer)
物理層是 OSI 參考模型的最低層,它利用傳輸介質為數據鏈路層提供物理連接。它主要關心的是通過物理鏈路從一個節點向另一個節點傳送比特流,物理鏈路可能是銅線、衛星、微波或其他的通訊媒介。
它關心的問題有:多少伏電壓代表 1 ?多少伏電壓代表 0 ?時鐘速率是多少?采用全雙工還是半雙工傳輸?總的來說物理層關心的是鏈路的機械、電氣、功能和規程特性。
(2) 數據鏈路層 (Data Link Layer)
數據鏈路層是為網絡層提供服務的,解決兩個相鄰結點之間的通信問題,傳送的協議數據單元稱為數據幀。
數據幀中包含物理地址(又稱 MAC 地址)、控制碼、數據及校驗碼等信息。該層的主要作用是通過校驗、確認和反饋重發等手段,將不可靠的物理鏈路轉換成對網絡層來說無差錯的數據鏈路。
此外,數據鏈路層還要協調收發雙方的數據傳輸速率,即進行流量控制,以防止接收方因來不及處理發送方來的高速數據而導致緩沖器溢出及線路阻塞。
(3) 網絡層 (Network Layer)
網絡層是為傳輸層提供服務的,傳送的協議數據單元稱為數據包或分組。該層的主要作用是解決如何使數據包通過各結點傳送的問題,即通過路徑選擇算法(路由)將數據包送到目的地。
另外,為避免通信子網中出現過多的數據包而造成網絡阻塞,需要對流入的數據包數量進行控制(擁塞控制)。當數據包要跨越多個通信子網才能到達目的地時,還要解決網際互連的問題。
(4) 傳輸層 (Transport Layer)
傳輸層的作用是為上層協議提供端到端的可靠和透明的數據傳輸服務,包括處理差錯控制和流量控制等問題。該層向高層屏蔽了下層數據通信的細節,使高層用戶看到的只是在兩個傳輸實體間的一條主機到主機的、可由用戶控制和設定的、可靠的數據通路。
傳輸層傳送的協議數據單元稱為段或報文。
(5) 會話層 (Session Layer)
會話層主要功能是管理和協調不同主機上各種進程之間的通信(對話),即負責建立、管理和終止應用程序之間的會話。會話層得名的原因是它很類似于兩個實體間的會話概念。例如,一個交互的用戶會話以登錄到計算機開始,以注銷結束。
(6) 表示層 (Presentation Layer)
表示層處理流經結點的數據編碼的表示方式問題,以保證一個系統應用層發出的信息可被另一系統的應用層讀出。如果必要,該層可提供一種標準表示形式,用于將計算機內部的多種數據表示格式轉換成網絡通信中采用的標準表示形式。
數據壓縮和加密也是表示層可提供的轉換功能之一。
(7) 應用層 (Application Layer)
應用層是 OSI 參考模型的最高層,是用戶與網絡的接口。該層通過應用程序來完成網絡用戶的應用需求,如文件傳輸、收發電子郵件等。
通信子網(數據通信)、資源子網(數據處理)
通信子網(數據通信):負責完成網絡數據的傳輸,轉發等通信處理任務。一方面,作為與資源子網的主機,終端鏈接的接口,將主機和終端連入網內;另一方面,作為通信子網中的分組存儲轉發節點,完成分組的接收、校驗、存儲、轉發等功能,實現將源主機報文準確發送到目的主機的作用。
通信子網(數據通信):物理層、數據鏈路層、網絡層、傳輸層
資源子網(數據處理):由主機系統,終端、終端控制器、聯網外設、各種軟件資源與信息資源組成。 資源子網實現全網的面向應用的數據處理和網絡資源共享。
通信子網(數據通信):會話層、表示層、應用層
OSI 7層參考模型圖解
OSI 7層參考模型的具體功能介紹
TCP / IP、5層網絡架構
OSI 模型和 TCP / IP 模型異同比較?
OSI 模型和 TCP / IP 相同點
① OSI 參考模型與 TCP/IP 參考模型都采用了層次結構。
② 都能夠提供面向連接和無連接兩種通信服務機制。
OSI 模型和 TCP / IP 不同點
OSI 采用的七層模型; TCP / IP 是四層結構。TCP / IP 參考模型沒有對網絡接口層進行細分,只是一些概念性的描述; OSI 參考模型對服務和協議做了明確的區分。OSI 先有模型,后有協議規范,適合于描述各種網絡; TCP / IP 是先有協議集然后建立模型,不適用于非 TCP / IP 網絡。TCP / IP 一開始就提出面向連接和無連接服務; 而 OSI 一開始只強調面向連接服務,直到很晚才開始制定無連接的服務標準。OSI 參考模型雖然被看好,但將網絡劃分為七層,實現起來較困難; 相反,TCP / IP 參考模型雖然有許多不盡人意的地方,但作為一種簡化的分層結構還是比較成功的。面向無連接和面向連接的最主要區別是什么?
其一:面向連接分為三個階段,第一是建立連接,在此階段,發出一個建立連接的請求。只有在連接成功建立之后,才能開始數據傳輸,這是第二階段。接著,當數據傳輸完畢,必須釋放連接。而面向無連接沒有這么多階段,它直接進行數據傳輸。
其二:面向連接的通信具有數據的保序性, 而面向無連接的通信不能保證接收數據的順序與發送數據的順序一致。
為什么 TCP / IP 去除了表示層和會話層?
OSI 參考模型在提出時,他們的理想是非常好的,但實際上,由于會話層、表示層、應用層都是在應用程序內部實現的,最終產出的是一個應用數據包,而應用程序之間是幾乎無法實現代碼的抽象共享的,這也就造成 OSI 設想中的應用程序維度的分層是無法實現的。
例如,我們幾乎不會認為數據的壓縮、加密算法算是一種協議,而會話的概念則更為抽象,難以用協議來進行描述,所以在后來的 TCP / IP 協議框架的設計中,便將表示層和會話層與應用層整合在一起,讓整個過程更為清晰明了。
總結:會話層,表示層和應用層都是在應用程序內部實現的,應用程序之間無法實現代碼的抽象共享,因此應用程序維度無法實現分層。
5層參考模型的功能介紹
5層網絡架構(5層參考模型)封裝與解封裝過程
物理層
計算機網絡體系結構中的物理層,就是要解決在各種傳輸媒體上傳輸比特0和1的問題。進而給數據鏈路層提供透明傳輸此特流的服務。
物理層基本概念介紹
物理層為了解決在各種傳輸媒體上傳輸比特0和1的問題,主要有以下四個任務:
機械特性:指明接口所用接線器的形狀和尺寸、引腳數目和排列、固定和鎖定裝置。
電氣特性:指明在接口電纜的各條線上出現的電壓的范圍。
功能特性:指明某條線上出現的某一電平的電壓表示何種意義。
過程特性:指明對于不同功能的各種可能事件的出現順序。
數據通信基礎知識
數據通信系統包括三大部分:源系統(或發送端、發送方)、傳輸系統(或傳輸網絡)和目的系統(或接收端、接收方)
數據通信的目的:傳送消息
典型的數據通信模型圖例:
通信雙方信息的交互方式:3種通信方式
單向通信(單工通信):只能有一個方向的通信而沒有反方向的交互。(需要1條信道)
雙向交替通信(半雙工通信):通信的雙方都可以發送信息,但不能雙方同時發送(當然也就不能同時接收)。(需要2條信道)
雙向同時通信(全雙工通信):通信的雙方可以同時發送和接收信息。(需要2條信道)
基帶信號(基本頻帶信號):來自信源的信號。像計算機輸出的代表各種文字或圖像文件的數據信號都屬于基帶信號。
兩種數據的傳輸方式:串行傳輸(速度慢、費用低、適合遠距離)、并行傳輸(速度快、費用高、適合近距離,如:計算機內部數據傳輸)
碼元、波特、速率、帶寬
什么是碼元?
碼元是指用一個固定時長的信號波形(數字脈沖),代表不同離散數值的基本波形,是數字通信中數字信號的計量單位,這個時長內的信號稱為k進制碼元,而該時長稱為碼元寬度。當碼元的離散狀態有M個時(M大于2),此時碼元為M進制碼元。
1碼元可以攜帶多個比特的信息量。例如,在使用二進制編碼時,只有兩種不同的碼元,一種代表0狀態,另一種代表1狀態。
什么是波特?
數字信號由碼元組成,碼元攜帶一定量的信息。定義單位時間傳輸的碼元數為碼元速率,單位為碼元/秒,又稱為波特(Baud)。
由此可見,波特是一種單位,是碼元傳輸速率(也稱傳碼率)的單位,也可以理解成單位時間內載波調制狀態變化的次數。
注意:“波特”(Baud)本身已是速率,所以不需要寫成 Baud Rate(Rate 是贅字)。
單位“波特”本身就代表每秒的調制數,以“波特每秒”(Baud per second)為單位是一種常見的錯誤,但是在一般中文口語化的溝通上還是常以“波特率”來描述“波特”(Baud)。
什么是速率?
速率也叫數據率,是指數據的傳輸速率,表示單位時間內傳輸的數據量。可以用碼元傳輸速率和信息傳輸速率表示。
碼元傳輸速率:別名碼元速率,波形速率,調制速率,符號速率等,它表示單位時間內數字通信系統所傳輸的碼元個數(也可稱為脈沖個數或者信號變化次數),單位是波特。1波特表示數字通信系統每秒傳輸一個碼元。碼元速率和碼元進制數無關。
信息傳輸速率:別名信息速率,比特率等,表示單位時間內數字通信系統傳輸的二進制碼元個數(即比特數),單位是比特 / 秒(b/s)。
兩者關系:若一個碼元攜帶 n bit 的信息量,則 M Baud 的碼元傳輸速率所對應的信息傳輸速率為 M × n bit / s。
若一個碼元有4個狀態值時,該碼元攜帶的信息量?在9600波特對應的信息傳輸速率?
在4個狀態值時,按上述的推理可以知道( 2^2=4),每2個比特組成一個碼元。即該碼元攜帶2個bit的信息量。
在9600RB條件下,利用 Rb 公式,就可以直接得到 = 9600 log24 = 9600 × log24 = 9600 × 2 = 19200 bps,即信息傳輸速率 = 19200 bps
什么是帶寬?
帶寬:表示在單位時間內從網絡中的某一點到另一點所能通過的“最高數據率”,常用來表示網絡的通信線路所能傳輸數據的能力。單位是b/s。
速率與帶寬的區別?
速率是實際上的發送速率,帶寬是理想狀況下的發送速率
奈氏準則和香農定理
碼元在信道傳輸失真問題:
影響失真程度的因素: 1. 碼元傳輸速率 2. 信號傳輸距離 3. 噪聲干擾 4. 傳輸媒體質量
失真的一種現象 - 碼間串擾:接收端收到的信號波形失去了碼元之間清晰界限的現象。
理想低通信道:
什么是“低通”呢?:簡單說就是帶寬受限,“低通”即指低頻通過,“理想低通信道”即指理想的能讓部分低頻率信號通過的信道(只要不要超過這個低頻率信號范圍都可無失真的通過)。
什么是“信道”呢?:信道一般用來表示向某一個方向傳送信息的媒體,因此一條通信電路往往含一條發送信道和一條接收信道。而“理想的信道”指沒有噪聲的信道。
什么是“噪聲”呢?:指因傳輸系統造成的各種失真,例如導體中電子的熱振動、閃電引起脈沖錯亂等。
奈氏準則
奈奎斯特定理:奈奎斯特(Nyquist)定理:又稱奈氏準則,指在理想低通(無噪聲,帶寬受限)的信道中,極限碼元傳輸率為 2W Baud。其中,W是理想低通信道的帶寬,單位為Hz。(當然只有在這兩個公式里帶寬采用Hz,其他地方采用bps)
奈氏準則:(目的是為了避免碼間串擾)
? 對于奈氏準則,可得以下結論:
1)在任何的信道中,碼元傳輸的速率是有限的;(如果過大,會出現嚴重的碼間串擾問題,使得接收方正確識別非常困難)
2)信道的頻帶越寬(能通過的信號高頻分量越多),就可以用更高的速率進行碼元的有效傳輸;
3)奈氏準則給出了碼元傳輸速率的限制,并沒有對信息傳輸速率給出限制;
4)由于碼元的傳輸速率受限于奈氏準則,要提高數據的傳輸速率,要采用多元的調制方法。
例題:在無噪聲的情況下,若某通信鏈路的帶寬為 3k Hz,采用 4 個相位,每個相位具有 4 種振幅的 QAM 調制技術,則該通信鏈路的最大數據傳輸率是?
信號有 4 x 4 = 16 種變化,最大數據傳輸率 = 2 x 3 k x 4 = 24 k b/s
補充內容:什么是相位?
香農定理
噪聲存在于所有的電子設備和通信信道中。由于噪聲隨機產生,它的瞬時值有時會很大,因此噪聲會使接收端對碼元的判決產生錯誤。但是噪聲的影響是相對的,若信號較強,那么噪聲影響相對較小。因此,信噪比就很重要。
香農定理(Shannon Theory):在帶寬受限且有噪聲的信道中,為了不產生誤差,信息的數據傳輸速率有上限值。給出了信道信息傳送速率的上限(比特每秒)和信道信噪比及帶寬的關系。
信噪比 = 信號的平均功率 / 噪聲的平均功率,常記為S/N,并用分貝(dB)作為度量單位。信噪比 dB = 10 log10 (S / N)
香農定理可以解釋現代各種無線制式由于帶寬不同,所支持的單載波最大吞吐量的不同。
在有隨機熱噪聲的信道上傳輸數據信號時,信道容量Rmax與信道帶寬W,信噪比S/N關系為:
Rmax=W*log2(1+S/N)。注意這里的log2是以2為底的對數。
? 對于香農定理,可以得出以下結論:
1)信道的帶寬或信噪比越大,則信息的極限傳輸速率越高;
2)對一定的帶寬和一定的信噪比,信息傳輸速率就確定了;
3)只要信息的傳輸速率低于信道的傳輸速率,就一定能找到某種方法來實現無差錯的傳輸;
4)香農定理得出的為極限傳輸速率,實際信道能達到的傳輸速率要比它低不少;
5)若帶寬W或信噪比 S/N 沒有上限(不可能),信道的極限信息傳輸速率也就沒有上限。
例:電話系統的典型參數是信道帶寬為3000 Hz,信噪比為30 dB,則該系統最大數據傳輸速率是多少?
30 dB = 10 log2 (S/N),則 S / N = 1000
信道的極限數據傳輸速率 = W log2 (1 + S/N) = 3000 x log2 (1 + 1000) ≈ 30k b/s
俗話說:“有線的資源是無限的,而無線的資源卻是有限的。”無線信道并不是可以任意增加傳送信息的速率,它受其固有規律的制約,就像城市道路上的車一樣不能想開多快就開多快,還受到道路寬度、其他車輛數量等因素影響。這個規律就是香農定理。
奈氏準則、香農定理比較?
考試的時候選用提示:看是否給出 V(1個碼元對應幾個bit),還有是否是無噪聲條件下?
重要的區別:奈氏準則只是限制碼元傳輸速率有上限,而香農定理才是限制數據傳輸速率的上限。
考題例子:進制信號在信噪比為 127 : 1 的 4k Hz 信道上傳輸,最大數據速率可達到多少?
奈氏準則:2 × 4k × log2 2 = 8 k bps = 8000 b/s
香農定理:4k × log2 (1 + 127) = 28 k bps = 28000 b/s
結果:那個小,選哪個,所以最大數據傳輸速率為 8000 b/s。
信號的編碼與調制
基帶信號、寬帶信號
基帶信號:將數字信號1和0直接用兩種不同的電壓表示,再送到數字信道上去傳輸(基帶傳輸)
來自信源的信號,像計算機輸出的代表各種文字或圖像文件的數據信號都屬于基帶信號。基帶信號就是發出的直接表達了要傳輸的信息的信號,比如我們說話的聲波就是基帶信號。
寬帶信號:將基帶信號進行調制后形成的頻分復用模擬信號,再傳送到模擬信道上去傳輸(寬帶傳輸)
把基帶信號經過載波調制后,把信號的頻率范圍搬移到較高的頻段以便在信道中傳輸(即僅在一段頻率范圍內能夠通過信道)。
在傳輸距離較近時,計算機網絡采用基帶傳輸方式(近距離衰減小,從而信號內容不易發生變化)在傳輸距離較遠時,計算機網絡采用寬帶傳輸方式(遠距離衰減大,即使信號變化大也能最后過濾出來基帶信號)數字信號和模擬信號的區別
數字信號(Digital Signal)
定義:指自變量是離散的、因變量也是離散的信號,這種信號的自變量用整數表示,因變量用有限數字中的一個數字來表示。在計算機中,數字信號的大小常用有限位的二進制數表示。
表示形式:① 斷續變化的電壓脈沖(如我們可用恒定的正電壓表示二進制數1,用恒定的負電壓表示二進制數0)② 光脈沖
模擬信號(Analog Signal)
定義:指信息參數在給定范圍內表現為連續的信號/ 或在一段連續的時間間隔內,其代表信息的特征量可以在任意瞬間呈現為任意數值的信號。
表示形式:① 連續變化的電磁波(如無線電與電視廣播中的電磁波)② 電壓信號(如電話傳輸中的音頻電壓信號)
模擬信號轉數字信號:模擬信號的數字化一般需要三個步驟:采樣、量化和編碼。
隨著采樣率和量化等級的增加,轉換后的數字信號的曲線也就越能貼近模擬信號的曲線(對比上圖的原曲線和黃色曲線)。
編碼與調制的區分
物理層傳輸介質、設備
傳輸介質及分類
傳輸介質也稱傳輸媒體 / 傳輸媒介,它就是數據傳輸系統中在發送設備和接收設備之間的數據通路。
傳輸媒體并不是物理層,傳輸媒體在物理層的下面,因為物理層是體系結構的第一次,因此有時稱傳輸媒體為0層。在傳輸媒體中傳輸的是信號,但傳輸媒體并不知道所傳輸的信號代表什么意思。
物理層則因為規定了電氣特性,因此能夠識別所傳輸的比特流。
導向性傳輸介質:1. 雙絞線(最常用的傳輸介質) 2. 同軸電纜(主要用于有線電視系統) 3. 光纖
光纖通信就是利用光導纖維(簡稱光纖)傳遞光脈沖來進行通信。有光脈沖表示1,無光脈沖表示0。而可見光的頻率大約是10MH,因此光纖通信系統的帶寬遠遠大于目前其他各種傳輸媒體的帶寬。
光纖的特點:1. 傳輸損耗小,中繼距離長,對遠距離傳輸特別經濟。2. 抗雷電和電磁干擾性好。
3. 無串音干擾,也不易被竊聽或截取數據。4. 體積小,重量輕。
非導向性傳輸介質分三種:分線電波,微波,(紅外線、激光)
物理器設備
中繼器:中繼器又稱為轉發器,主要功能是將信號整形并放大再轉發出去,以消除信號經過一長段電纜后,因噪聲或其他原因而造成的失真和衰減,使信號的波形和強度達到所需要的要求,進而擴大網絡傳輸的距離。
中繼器是沒有存儲轉發功能的,因此是不能連接兩個速率不同的網段,中繼器兩端的網段一定要使用同一個協議。
集線器:集線器實質上是一個多端口的中繼器,它也工作在物理層。(連在集線器的工作主機將會平分帶寬)
數據鏈路層
數據鏈路層最基本的服務是將源計算機網絡層來的數據可靠的傳輸到相鄰節點的目標計算機的網絡層。
數據鏈路層必須具備一系列相應的功能,主要有:
如何將數據組合成數據塊(在數據鏈路層中將這種數據塊稱為幀,幀是數據鏈路層的傳送單位)
如何控制幀在物理信道上的傳輸,包括如何處理傳輸差錯,如何調節發送速率以使之與接收方相匹配
在兩個網路實體之間提供數據鏈路通路的建立、維持和釋放管理
數據鏈路層基本概念介紹
數據鏈路層在物理層提供服務的基礎上向網絡層提供服務,其最基本的服務是將源自網絡層來的數據可靠地傳輸到相鄰節點的目標機網絡層。其主要作用是加強物理層傳輸原始比特流的功能,將物理層提供的可能出錯的物理連接改造成為邏輯上無差錯的數據鏈路,使之對網絡層表現為一條無差錯的鏈路。
數據鏈路層功能介紹
功能一:為網絡層提供服務。無確認無連接服務,有確認無連接服務,有確認面向連接服務。
功能二:鏈路管理,即連接的建立、維持、釋放(用于面向連接的服務)。
功能三:組幀(把網絡層的數據進行封裝成幀:打幀頭幀尾)
功能四:流量控制(限制發送方)
功能五:差錯控制(幀錯、位錯)
封裝成幀和透明傳輸
封裝成幀
封裝成幀就是在一段數據的前后部分添加首部和尾部,這樣就構成了一個幀。接收端在收到物理層上交的比特流后,就能根據首部和尾部的標記,從收到的比特流中識別幀的開始和結束。
首部和尾部包含許多的控制信息,他們的一個重要作用:幀定界(確定幀的界限)。
幀同步:接收方應當能從接收到的二進制比特流中區分出幀的起始和終止。
透明傳輸
透明傳輸是指不管所傳數據是什么樣的比特組合,都應當能夠在鏈路上傳送。因此,鏈路層就“看不見”有什么妨礙數據傳輸的東西。
當所傳數據中的比特組合恰巧與某一個控制信息完全一樣時,就必須采取適當的措施,使收方不會將這樣的數據誤認為是某種控制信息。這樣才能保證數據鏈路層的傳輸是透明的。
組幀(四種方法)
組幀的四種方法:1. 字符計數法,2. 字符(節)填充法,3. 零比特填充法,4. 違規編碼法。
字符計數法
幀首部使用一個計數字段(第一個字節,八位)來標明幀內字符數。
字符填充法
就是在幀的開始部分和結束部分分別加上一個開始字段和結束字段,但是這樣會產生一個問題,當傳輸的幀是非ASCALL的文件時,若數據部分有和開始字段或結束字段相同的字段怎么辦?這個時候就需要字符填充法進行透明傳輸
當傳送的幀是由文本文件組成時(文本文件的字符都是從鍵盤上輸入的,都是ASCII碼)。不管從鍵盤上輸入什么字符都可以放在幀里傳過去,即透明傳輸。
當傳送的幀是由非ASCIlI碼的文本文件組成時(二進制代碼的程序或圖像等)。就要采用字符填充方法實現透明傳輸。
就是在數據中出現的與開始和相同的字段是,在其前面加上轉義字符ESC,接收方收到數據后,發現前面有ESC就知道這是數據而不是控制字段,同時將ESC去掉還原出原來的數據
零比特填充法
操作:① 在發送端,掃描整個信息字段,只要連續5個1,就立即填入1個0。② 在接收端收到一個幀時,先找到標志字段確定邊界,再用硬件對比特流進行掃描。發現連續5個1時,就把后面的0刪除。
違規編碼法
違規編碼法不需要采用任何填充技術,便能實現數據傳輸的透明性,但它只適用于采用冗余編碼的特殊編碼環境。局域網IEEE802標準就采用這種方法。
結論: 由于字節計數法中Count字段的脆弱性(其值若有差錯將導致災難性后果〉及字符填充實現上的復雜性和不兼容性,目前較普遍使用的幀同步法是比特填充和違規編碼法。
差錯控制(檢錯、糾錯編碼)
由于數據通信系統傳輸特性的不理想和外部干擾的存在,傳輸中出現差錯是不可避免的。
差錯控制的目的:確保所有的幀按順序正確遞交到數據鏈路層用戶(網絡層實體)。
差錯的分類:隨機差錯(隨機的、單個的),突發差錯(成片的、連續的)
數據鏈路層編碼和物理層的數據編碼與調制不同。物理層編碼針對的是單個比特,解決傳輸過程中比特的同步等問題,如曼徹斯特編碼。而數據鏈路層的編碼針對的是一組比特,它通過冗余碼的技術實現一組二進制比特串在傳輸過程是否出現了差錯。
奇偶效驗碼
奇偶校驗碼是一種增加二進制傳輸系統最小距離的簡單和廣泛采用的方法。
一個二進制碼字,如果它的碼元有奇數個1,就稱為具有奇性。例如,碼字“10110101”有五個1,因此,這個碼字具有奇性。同樣,偶性碼字具有偶數個1。注意奇性檢測等效于所有碼元的模二加,并能夠由所有碼元的異或運算來確定。
具體方法:通過加入校驗位后的1個數是奇數還是偶數,可分為兩種:① 奇校驗:1的個數為奇數 ② 偶校驗:1的個數為偶數
奇偶效驗碼特點:只能檢查出奇數個比特錯誤,檢錯能力是50%
循環冗余碼 CRC
Cyclic Redundancy Check:即循環冗余校核,是一種根據網絡數據包或電腦文件等數據產生簡短固定位數校核碼的快速算法,主要用來檢測或校核數據傳輸或者保存后可能出現的錯誤。CRC利用除法及余數的原理,實現錯誤偵測的功能,具有原理清晰、實現簡單等優點。
CRC算法的是以GF(2)(2元素伽羅瓦域)多項式算術為數學基礎的,聽起來很恐怖,但實際上它的主要特點和運算規則是很好理解的。
GF(2)多項式中只有一個變量x,其系數也只有0和1,如:
1*x^7 + 0*x^6 + 1*x^5 + 0*x^4 + 0*x^3 + 1*x^2 +1*x^1 + 1*x^0計算冗余碼的步驟:① 加0:假設生成多項式G(X)的階是R,則加R個0 ② 模2除法:數據加0后除以多項式,余數為冗余碼 / FCS / CRC 效驗碼的比特序列。
接收端檢錯過程:把收到的每一個幀都除以同樣的除數,然后檢查得到的余數R
FCS的生成以及接收端CRC檢驗都是由硬件實現,處理很迅速,因此不會延誤數據的傳輸。
鏈路層使用CRC檢驗,能夠實現無比特差錯的傳輸,但這還不是可靠傳輸。
海明效驗碼
海明碼的特點:2r >= k + r + 1 (r 為冗余信息位,k 為信息位)
例如發送的數據是 D = 101101,數據的位數 k = 6,滿足不等式的最小 r = 4,也就是說 D = 101101 的海明碼應該有 6 + 4 = 10 位,其中原數據 6 位,效驗碼 4 位。
結論:若采用的是偶校驗,四個校驗位Gi全為0,表示收到的數據正確;若采用的是奇校驗,四個校驗位Gi全為1,表示收到的數據正確
流量控制與可靠性傳輸機制
較高的發送速度和較低的接收能力的不匹配,會造成傳輸出錯,因此流量控制也是數據鏈路層的一項重要工作。
數據鏈路層的流量控制:點到點;傳輸層的流量控制:端到端;
網絡中進行數據傳輸時,如果發送方發送速率過快,超過了接收方的接收速度,會發生丟包等網絡錯誤,TCP提供一種機制,讓發送方根據接收方接收能力, 控制發送的速率,這種做法稱為流量控制。流量控制是保證TCP可靠性的一個方面。
停止等待協議、滑動窗口協議到底屬于哪一層?
早些時候,鏈路的質量還沒有那么可靠的時候,就需要數據鏈路層負責起可靠傳輸的功能,就會用到停止等待協議、滑動窗口協議;隨著鏈路質量的不斷發展,鏈路的通信已經非常的可靠,這個時候就不需要數據鏈路層擔負可靠傳輸的任務了,也就用不著停止等待協議、滑動窗口協議。
不管停止等待協議、滑動窗口協議是在數據鏈路層還是傳輸層,其功能都是進行可靠傳輸,只不過數據鏈路層的傳輸對象是幀,傳輸層的傳輸對象是分組。
停止 - 等待協議
停止等待協議(stop-and-wati),是數據鏈據層一個很重要的協議,基本原理就是說每發送一個分組,必須要停下來等待,等接收方確認后才可繼續發送下一個分組。如果沒收到確認,就只能超時重傳。
為什么要有停止 - 等待協議?
除了比特出差錯,底層信道還會出現丟包問題。為了實現流量控制。
什么是丟包?:物理線路故障、設備故障、病毒攻擊、路由信息錯誤等原因,會導致數據包的丟失。
優點:很簡單,每次發送一個分組就等待確認。缺點:信道利用率不高,每次都要等。
情況一:數據幀丟失或檢測到幀出錯
情況二:ACK丟失(左圖) 情況三:ACK延遲(右圖)
注意:1. 每發完1個幀,必須保留它的副本。 2. 數據幀和確認幀必須編號。
信道利用率:發送方在一個發送周期內,有效地發送數據所需要的時間占整個發送周期的比率。
信道利用率 = ( L / C )/ T:L 是 T 內發送 L 比特數據;C 是發送方數據傳輸率;T 是發送周期(從開始發送數據,到收到第一個確認幀為止)
信道吞吐率 = 信道利用率 * 發送方的發送速率
例題:一個信道的數據傳輸率為 4k b/s,單向傳播時延為 30 ms,如果使停止 - 等待協議的信道最大利用率達到 80 %,要求的數據幀長度至少為( )。
80% = ( L / 4 ) / [ ( L / 4 ) + 2 * 30 ms ] => 答:L = 960 bit
后退 N 幀協議(GBN)
GBN (Go-Back-N):產生背景:停止等待協議的弊端
后退N幀協議和停止等待協議的主要區別在于后退N幀協議的發送窗口包含多個幀序號;而選擇重傳機制區別于上二者的主要特點是:發送窗口和接收窗口均有多個幀序號。
滑動窗口的長度
滑動窗口長度不可以無限增大。若采用 n 個比特對幀窗口編號,2n 個數字,滿足 1 <= WT <= 2n - 1,因為如果發送窗口尺寸過大,就會使得接收方無法區別新幀和舊幀。
GBN發送方必須響應的 3 件事
上層調用:上層要發送數據時,發送方先檢査發送窗口是否已滿,如果未滿,則產生一個幀并將其發送;如果窗口已滿,發送方只需將數據返回給上層,暗示上層窗口已滿。上層等一會再發送。(實際實現中,發送方可以緩存這些媺據,窗口不滿時再發送幀)。
收到了一個ACK:GBN協議中,對 n 號幀的確認采用累積確認的方式,標明接收方已經收到 n 號幀和它之前的全部幀。
超時事件:協議的名字為后退N幀/回退N幀,來源于出現丟失和時延過長幀時發送方的行為。就像在停等協議中一樣,定時器將再次用于恢復數據幀或確認幀的丟失。如果岀現超時,發送方重傳所有已發送但未被確認的幀。
GBN接收方要做的事
正確時:如果正確收到 n 號幀,并且按序,那么接收方為 n 幀發送一個ACK,并將該幀中的數據部分交付給上層。
非正確時:其余情況都丟棄幀,并為最近按序接收的幀重新發送ACK,接收方無需緩存仼何失序幀,只需要維護一個信息: expected seq num(下一個按序接收的幀序)
運行中GBN流程
例題測試:答案選 C(3 號幀確認其實就是 0 ~ 3 號全部已經成功接收成功了)
GBN協議性能分析:因連續發送數據幀而提高了信道利用率,在重傳時必須把原來已經正確傳送的數據幀重傳,是傳送效率降低。
選擇重傳協議(SR)
選擇重傳協議(Selective-Repeat, SR):選擇重傳協議只重傳真正丟失的分組.
背景:由于GBN協議的弊端,在累積確認的機制下,如果有錯誤的話,則發送方將會批量重傳,這樣使效率降低。
可不可以只重傳出錯的幀?
解決辦法:設置單個確認,同時加大接收窗口,設置接收緩存,緩存亂序到達的幀。
選擇重傳協議的發送窗口
SR發送方必須要響應的 3 件事
上層的調用:從上層收到數據后,SR發送方檢查下一個可用于該幀的序號,如果序號位于發送窗口內,則發送數據幀;否則就像GBN一樣,要么將數據緩存,要么返回給上層之后再傳輸。
收到了一個ACK:如果收到了ACK,加入該幀序號在窗口內,則SR發送方將那個被確認的幀標記記為已接收,如果該幀序號是窗口的下界(最左邊第一個窗口對應的序號),則窗口向前移動到具有最小序號的未確認幀處,如果窗口移動了,并且有序號在窗口內的未發送幀,則發送這些幀。
超時重傳:每一個幀都有自己的定時器,一個超時事件發生后只重傳一個幀。
SR接收方要做的事
來者不拒(窗口內的幀):SR接收方將確認一個正確接收的幀而 不管其是否按序,失序的幀將被緩存,并返回給發送方一個該幀的確認幀【收誰確認誰】,直到所有幀(即序號更小的幀)皆被收到為止,這時才可以將一批幀按序交付給上層,然后向前移動滑動窗口。
運行中SR流程
滑動窗口可以無限嗎?
最大發送窗口最好等于最大接收窗口。(大了會溢出,小了沒意義)WTmax = WRmax = 2n-1
例題測試:答案選 A
信道劃分 介質訪問控制
傳輸數據使用的兩種鏈路
點對點鏈路:兩個相鄰節點通過一個鏈路相連,沒有第三者。應用:PPP協議,常用于廣域網。
廣播式鏈路:所有主機共享通信介質。應用:早期的總線以太網、無線局域網,常用于局域網。典型拓撲結構:總線型、星型(邏輯總線型)
介質訪問控制
介質訪問控制的內容就是,采取一定的措施,使得兩對節點之間的通信不會發生互相干擾的情況。
信道劃分介質訪問控制:將使用介質的每個設備與來自同一信道上的其他設備的通信隔離開,把時域和頻域資源合理地分配給網絡上的設備。
信道劃分介質訪問控制圖例
多路復用技術的基本原理
多路復用技術的基本原理是:各路信號在進入同一個有線的或無線的傳輸媒質之前,先采用調制技術把它們調制為互相不會混淆的已調制信號,然后進入傳輸媒質傳送到對方,在對方再用解調(反調制)技術對這些信號加以區分,并使它們恢復成原來的信號,從而達到多路復用的目的。
拓展:多路復用器的存在意義是為了充分利用通信信道的容量,大大降低系統的成本。
信道劃分介質訪問控制:頻分多路復用 FDM
Frequency Division Multiplexing:按頻率劃分的不同信道,用戶分到一定的頻帶后,在通信過程中自始至終都占用這個頻帶,可見頻分復用的所有用戶在同樣的時間占用不同的帶寬資源(帶寬指頻率帶)
優點:充分利用傳輸介質帶寬,系統效率較高;由于技術比較成熟,實現也比較容易。
信道劃分介質訪問控制:時分多路復用 TDM
Time Division Multiplexing:按時間劃分成不同的信道,每一個時分復用的用戶在每一個TDM幀中占用固定序列號的間隙,可見時分復用的所有用戶是在不同時間占用同樣的頻帶寬度。
改進的時分復用 => 統計時分復用STDM(提高信道復用率)
每一個STDM幀中的時隙數小于連接在集中器上的用戶數。各用戶有了數據就隨時發往集中器的輸入緩存,然后集中器按順序依次掃描輸入緩存,把緩存中的輸入數據放入STDM幀中,一個STDM幀滿了就發出。STDM幀不是固定分配時隙,而是按需動態分配時隙。
信道劃分介質訪問控制:波分多路復用 WDM
Wavelength Division Multiplexing:就是光的頻分復用,使用一根光纖同時傳輸多個頻率很接近的光載波信號,因為光載波頻率很高,習慣用波長而不用頻率表示使用的光載波,就使用了波分復用的名詞。
波分多路復用就是光的頻分多路復用,在一根光纖中傳輸多種不同波長(頻率)的光信號,由于波長(頻率)不同,所以各路光信號互不干擾,最后再用波長分解復用器將各路波長分解出來。
波分多路復用技術的出現是具有劃時代意義的,WDM系統具有以下方面的優勢?(了解)
- 高容量:可以充分利用光纖巨大帶寬資源,使傳輸容量比單波長增加幾十上百倍;
- 低成本:在大容量長途傳輸時節省大量光纖和3R再生器,傳輸成本顯著下降;
- 保護投資:在網絡升級和擴容時,無需對光纜線路進行改造,增加波長即可開通或疊加新業務;
- 透明性:與信號速率、調制格式無關,方便引入大帶寬新業務;
- 波長路由:利用WDM選路可以實現網絡交換和恢復從而實現未來透明全光網絡。
波分復用就是光的頻分復用,在一根光纖上傳輸不同波長(就是不同頻率)的光。光載波的頻率很高,因此習慣上用波長而不用頻率來表示所使用的光載波,光速 = 頻率 x 波長
信道劃分介質訪問控制:碼分多路復用 CMD
Code Division Multiplexing:更常用的是碼分多址(Code Division Multiple Access, CDMA),每一個用戶可以在同樣的時間使用同樣的頻帶進行通信,由于各用戶使用經過特殊挑選的不同碼型,因此各用戶之間不會造成干擾。
碼分復用最初用于軍事通信,因為這種系統發送的信號有很強的抗干擾能力,其頻譜類似于白噪聲,不易被敵人發現,后來才廣泛的使用在民用的移動通信中,它的優越性在于可以提高通信的話音質量和數據傳輸的可靠性,減少干擾對通信的影響,增大通信系統的容量,降低手機的平均發射功率等。
每個用戶分配一個唯一的 m bit 碼片序列(chipping sequence),其中“0”用“-1”表示,“1”用“+1”表示。由于各用戶既不分割頻率,也不分割時間,各用戶使用相同頻率載波,利用各自碼片序列編碼數據。
編碼信號 = 原始數據 × 碼片序列
如發送比特1(+1),則發送自己的 m bit 碼片序列 如發送比特0(-1),則發送該碼片序列的 m bit 碼片序列的反碼由于每個用戶所用頻率相同,故每個用戶發送的信息在信道中必然相互疊加,為了讓信息之間互不干擾,各用戶碼片序列必須滿足相互正交。
一個用戶的碼片序列只有與自己相乘時得1,與其他碼片序列相乘都為0 一個用戶的碼片序列只有與自己的反碼相乘時的0,與其他碼片序列的反碼相乘都為0CDMA 例題一:
共有4個站進行碼分多址通信。4個站的碼片序列: A:(-1-1-1+1+1-1+1+1)?B:(-1-1+1-1+1+1+1-1)? C:(-1+1-1+1+1+1-1-1)?D:(-1+1-1-1-1-1+1-1) 現收到這樣的碼片序列S:(-1+1-3+1-1-3+1+1)。問哪個站發送數據了? 發送數據的站發送的是0還是1?答案如下: S ? A=(+1-1+3+1-1+3+1+1)/ 8 = 1 => A 發送 1? S ? B=(+1-1-3-1-1-3+1-1)/ 8 = -1 => B 發送 0? S ? C=(+1+1+3+1-1-3-1-1)/ 8 = 0 => C 無發送? S ? D=(+1+1+3-1+1+3+1-1)/ 8 = 1 => D 發送 1CDMA 例題二:
站點 A、B、C 通過 CDMA 共享鏈路,A、B、C 的碼片序列(chipping sequence)分別是 (1,1,1,1)、(1,-1,1,-1) 和 (1,1,-1,-1) 。若 C 從鏈路上收到的序列是 (2,0,2,0,0,-2,0,-2,0,2,0,2),則 C 收到 A 發送的數據是( 101 )
隨機訪問 介質訪問控制
隨機訪問介質訪問控制:ALOHA 協議、CSMA 協議、CSMA / CA 協議、CSMA / CD 協議
ALOHA 協議
純 ALOHA 協議工作原理:
任何一個站都可以在幀生成后立即發送(可能沖突),并通過信號的反饋檢測信道以確定發送是否成功; 如發送失敗,則經隨機延時后再發送。 每個站點可在任意時間發送數據(不關心信道是否已被占用) 兩個以上站點都在發送數據時就會發生沖突時隙 ALOHA(S - ALOHA)協議
用時鐘來統一用戶的數據發送。辦法是將時間分為離散的時間片,用戶每次必須等到下一個時間片才能開始發送數據,從而避免了用戶發送數據的隨意性,減少了數據產生沖突的可能性,提高了信道的利用率。
在時隙ALOHA系統中,計算機并不是在用戶按下回車鍵后就立即發送數據,而是要等到下一個時間片開始時才發送。
Aloha 和 時隙 Aloha 性能分析
純 Aloha:對于局域網 LAN,反饋信息很快就可以得到;而對于衛星網,發送方要在 270 ms 后才能確認數據發送是否成功。通過研究證明,純 ALOHA 協議的信道利用率最大不超過 18.4%(1 / 2e)
時隙 Aloha:
信道效率:沖突危險區是 純 ALOHA 的一半,所以,與純 ALOHA 協議相比,降低了產生沖突的概率,信道利用率最高為 36.8%。
重發策略:同純 ALOHA ,等待一段隨機的時間,然后重發;如再次沖突,則再等待一段隨機的時間,直到重發成功為止。
代價:需要全網同步;可設置一個特殊站點,由該站點發送時鐘信號。
載波監聽多路訪問協議 CSMA(carrier sense multiple access)
CS:載波偵聽 / 監聽,每一個站在發送數據之前要檢測一下總線上是否有其他計算機在發送數據。
當幾個站同時在總線上發送數據時,總線上的信號電壓擺動值將會增大(互相疊加)。當一個站檢測到的信號電壓擺動值超過一定門限值時,就認為總線上至少有兩個站同時在發送數據,表明產生了碰撞,即發生了沖突。
MA:多點接入,表示許多計算機以多點接入的方式連接在一根總線上。
協議思想:發送幀之前,監聽信道
1 - 堅持 CSMA:堅持指的是對于監聽信道忙之后的堅持。
思想:如果一個主機要發送消息,那么它先監聽信道。空閑則直接傳輸,不必等待。忙則一直監聽,直到空閑馬上傳輸。如果有沖突(一段時間內未收到肯定回復),則等待一個隨機長的時間再監聽,重復上述過程。
優點:只要媒體空閑,站點就馬上發送,避免了媒體利用率的損失。 缺點:假如有兩個或兩個以上的站點有數據要發送,沖突就不可避免。非堅持 CSMA:非堅持指的是對于監聽信道忙之后就不繼續監聽。
思想:如果一個主機要發送消息,那么它先監聽信道。空閑則直接傳輸,不必等待。忙則等待一個隨機的時間之后再進行監聽。
優點:采用隨機的重發延遲時間可以減少沖突發生的可能性。 缺點:可能存在大家都在延遲等待過程中,使得媒體仍可能處于空閑狀態,媒體使用率降低。p-堅持CSMA:p - 堅持指的是對于監聽信道空閑的處理。
思想:如果一個主機要發送消息,那么它先監聽信道。空閑則以 p 概率直接傳輸,不必等待;概率1 - p 等待到下一個時間槽再傳輸。忙則等待一個隨機的時間之后再進行監聽。
優點:既能像非堅持算法那樣減少沖突,又能像 1 - 堅持算法那樣減少媒體空閑時間的這種方案。 缺點:發生沖突后還是堅持把數據發完,造成了浪費3 種 CSMA 對比總結
CSMA / CD 協議(Carrier Sense Multiple Access with Collision Detection)
載波幀聽,多路訪問 / 沖突檢測
載波偵聽:多個計算機在發送數據幀前,首先幀聽是否空閑,如果空閑,則發送數據幀;否則等待,繼續幀聽直到信道空閑。
多路訪問:許多計算機以多點接入方式連接在一根總線上,都有訪問總線的權利。
控制方式原理:各工作站在發送數據前,需先偵聽信道是否空閑。若空閑,則立即發送數據;若信道忙碌,則等待一段時間至信道中的信息傳輸結束后再發送數據;若在上一段信息發送結束后,同時有兩個或兩個以上的節點都提出發送請求,則判定為沖突;若偵聽到沖突,則所有節點立即停止發送數據,等待一段隨機時間,再重新嘗試發送。
控制方式作用:提供尋址和媒體存取的控制方式,使得不同設備或網絡上的節點可以在多點的網絡上通信而不相互沖突。
CSMA / CD 協議特點:
1、 使用 CSMA/CD 協議的以太網不能進行全雙工通信,而只能進行雙向交替通信(半雙工通信)。 2、 計算機發送數據幀之后的一小段時間內,存在著遭遇沖突的可能性。 3、 沖突不確定性使整個以太網平均數據率遠小于以太網最高數據率。CSMA / CA 協議(Carrier Sense Multiple Access with Collision Avoidance)
載波偵聽,多路訪問 / 沖突避免
采用該協議要求設備要主動避免沖突而非被動偵測的方式來解決沖突問題。避免沖突的方法主要有兩個:
1、監聽到信道空閑時,并不是立即發送,而是等待一段時間再發送數據。 2、先發送一個很小的信道偵測幀 RTS,如果收到最近的接入點返回的 CTS,就認為信道是空閑的,然后再發送數據協議的主要流程如下:
1、 首先檢測信道是否有使用,如果檢測出信道空閑,則等待一段隨機時間后,才送出數據。 2、 接收端如果正確收到此幀,則經過一段時間間隔后,向發送端發送確認幀 ACK。 3、 發送端收到 ACK 幀,確定數據正確傳輸,在經歷一段時間間隔后,再發送數據。CSMA / CD 與 CSMA / CA 兩者區別
1、 CSMA/CD主要著眼點在沖突的偵測,當偵測到沖突時,進行相應的處理,要求設備能一邊偵測一邊發送數據。 2、CSMA/CA主要著眼點在沖突的避免,協議里也看到經常是等待一段時間再做動作,通過退避盡量去避免沖突,還有就是先發送一些特別小的信道偵測幀來測試信道是否有沖突。應用領域:CSMA / CD主要適用以太網。 CSMA / CA主要適用無線局域網。
輪詢訪問 介質訪問控制
介質訪問控制 ( Multiple Access Control ) 協議 : 簡稱 MAC
① 信道劃分 MAC 協議:基于多路復用技術劃分資源;
網絡負載重時,信道利用率高(公平);網絡負載輕時,信道利用率低
② 隨機訪問 MAC 協議:用戶根據隨機意愿 發送信息,發送信息時,可以獨占信道帶寬;
網絡負載重時,產生沖突開銷;網絡負載輕時,共享信道效率高 , 單個站點可使用全部信道帶寬
③ 輪詢訪問 MAC 協議:既不產生沖突,又占用全部帶寬;
主要包含:輪詢協議;令牌傳遞協議 ( 重點 )
輪詢協議
輪詢協議:主結點輪流“邀請”從屬節點發送數據。
優點:每一次只允許一臺主機發送數據 , 不會產生沖突;缺點:輪詢開銷,等待延遲,單點故障。
令牌傳遞協議
令牌幀:特殊格式的 MAC 控制幀,沒有任何信息。
令牌作用:控制信道使用,確保同一時刻,只有一個站點獨占信道。
發送數據前提:每個節點都可以在令牌持有時間內,獲得發送數據的權利。該時間并不是無限持有的,有時間限制。
優點 : 令牌環網沒有數據碰撞沖突;缺點:令牌開銷、等待延遲、單點故障
令牌傳遞協議應用場景:令牌傳遞協議應用于令牌環網(物理上是 星型拓撲 結構;邏輯上是 環形拓撲 結構)采用令牌傳送方式的網絡常用于負載較重、通信量較大的網絡中。
局域網 - 總線型 IBM 令牌環
以太網 MAC 幀格式
現階段成熟的局域網技術有三種:以太網(Ethernet)、令牌環(Token Ring)和光纖分布式數據接口(FDDI),其中以太網技術逐步成為局域網技術的主流。
以太網是一種計算機局域網技術。IEEE 組織的 IEEE 802.3 標準制定了以太網的技術標準,它規定了包括物理層的連線、電子信號和介質訪問層協議的內容。以太網是目前應用最普遍的局域網技術,取代了其他局域網技術如令牌環、FDDI 和 ARCNET。
以太網在局域網各種技術中占統治性地位
1.造價低廉(以太網網卡不到100塊) 2.是應用最廣泛的局域網技術 3.比令牌環網、ATM 網便宜,簡單 4.滿足網絡速率要求:10M b / s ~ 10G b / s以太網提供無連接、不可靠的服務
無連接:發送方和接收方之間無 “ 握手過程 ” 。
不可靠:不對發送方的數據幀編號,接收方不向發送方進行確認,差錯幀直接丟棄,差錯糾正由高層負責。
以太網只實現無差錯接收,不實現可靠傳輸。
10BASE - T 以太網
BASE 前的數字表示網絡的數據傳輸率
比如說:10BASE 指數據傳輸率為 10Mbps,1000BASE 為 1000Mbps
BASE:基帶傳輸,即未經過調制,不能復用的傳輸,與其對應的 BROAD 指寬帶傳輸(多用于有線電視網)
BASE 后的字母或數字指的是傳輸介質,反應介質特點。
比如說:10BASE - T 中的 T 指雙絞線。
適配器
適配器是一個接口轉換器,它可以是一個獨立的硬件接口設備,允許硬件或電子接口與其它硬件或電子接口相連,也可以是信息接口。
但是現在的計算機主板上就已經嵌入了適配器,因此現在的計算機上的適配器不是獨立的。
適配器的作用
1. 要進行數據串行傳輸和并行傳輸的轉換。 2. 對數據進行緩存。 3. 實現以太網協議。 4. 管理該適配器的設備驅動程序安裝在計算機的操作系統。以太網 MAC 幀
MAC地址(英語:Media Access Control Address),直譯為媒體存取控制位址,也稱為局域網地址(LAN Address),MAC 位址,以太網地址(Ethernet Address)或物理地址(Physical Address),它是一個用來確認網絡設備位置的位址。
在 OSI 模型中,第三層網絡層負責 IP 地址,第二層數據鏈路層則負責 MAC 位址 。
MAC地址用于在網絡中唯一標示一個網卡,一臺設備若有一或多個網卡,則每個網卡都需要并會有一個唯一的 MAC 地址 。
MAC 地址的長度為 48 位 ( 6 個字節 ),通常表示為 12 個 16 進制數,例如:00-16-EA-AE-3C-40,就是一個 MAC 地址。
前 3 個字節,16 進制數 00-16-EA 代表網絡硬件制造商的編號,它由 IEEE(電氣與電子工程師協會)分配。 后 3 個字節,16 進制數 AE-3C-40 代表該制造商所制造的某個網絡產品(如網卡)的系列號。只要不更改自己的 MAC 地址,MAC 地址在世界是唯一的。形象地說,MAC地址就如同身份證上的身份證號碼,具有唯一性 。
常用的以太網 MAC 幀格式有兩種標準 :DIX Ethernet II標準,IEEE 的 802.3 標準。
IEEE 802.3 和 以太網 的關系
以太網應當按 DIX Ethernet V2 標準,但是它與 IEEE 802.3 只有一丟丟不同(幀格式),因此通常將 802.3 局域網簡稱為以太網。
IEEE 802.3標準是一種基帶總線型的局域網標準,它描述物理層和數據鏈路子層MAC子層的實現方法。
最常用的 MAC 幀是以太網V2的格式圖示:
以太網 MAC 幀各字段功能
MAC 層要求定界字符之后的內容要在 64 字節到 1518 個字節之間,其中包括 14 字節的目標和源 MAC,4 字節的 CRC32 值。并且報文幀之間的傳遞間隔要大于 9.6 us。
在數據鏈路層,對于上層網絡層的 IP 數據報 是要打 幀頭 和 幀尾 的。
類型字段 ( 2 個字節):用來標志上一層使用的是什么協議,以便把收到的 MAC 幀的數據上交給上一層的這個協議;
數據字段 ( 46 - 1500 ):正式名稱是 MAC 客戶數據字段最小長度 64 字節 - 18 字節的首部和尾部 = 數據字段的最小長度;
FCS 字段 ( 4 字節):當數據字段的長度小于 46 字節時,應在數據字段的后面加入整數字節的填充字段,以保證以太網的 MAC 幀長不小于 64 字節;
前導碼(7 字節):在幀的前面插入的 8 字節中的第一個字段共 7 個字節,是前同步碼,用來迅速實現 MAC 幀的比特同步。
幀開始定界符(1 字節):在幀的前面插入的 8 字節中的第二個字段是幀開始定界符,表示后面的信息就是 MAC 幀。
幀序列檢測 FCS(4 字節):計算機網絡差錯檢測(幀檢驗序列 FCS 計算方法)用于幀內后續字節差錯的循環冗余檢驗(也稱為FCS或幀檢驗序列)。
這個字段只是提供檢錯功能,并不提供糾錯功能。該效驗和效驗的范圍為:目的地址,源地址,類型,數據等字段。
WLAN 無線局域網技術
IEEE 802 標準所描述的局域網參考模型只對應 OSI 參考模型的數據鏈路層與物理層,它將數據鏈路層劃分為邏輯鏈路層 LLC 子層和介質訪問控制 MAC 子層。
WLAN(無線局域網絡):英文全稱是Wireless Local Area Network,是一種利用射頻Radio Frequency RF技術進行數據傳輸的系統。
WLAN 無線局域網 和 WiFi 區別
WiFi(WirelessFidelity,無線保真):技術是一個基于 IEEE802.11系列標準的無線網路通信技術的品牌,目的是改善基于 IEEE802.11 標準的無線網路產品之間的互通性,由 Wi-Fi 聯盟 ( Wi-Fi Alliance ) 所持有。
簡單來說 WIFI 就是一種無線聯網的技術,以前通過網絡連接電腦,而現在則是通過無線電波來連網。
WiFi 和 WLAN 的區別主要在于發射信號的功率不同,覆蓋范圍不同。WiFi 的覆蓋范圍則可達300英尺左右(約合90米),WLAN 最大(加天線)可以到 5 KM 甚至更遠。WiFi 包含于 WLAN 中,是一種應用最為廣泛的 WLAN 標準。
不論是 iPhone 還是安卓手機用戶,只要知道 WiFi 和 WLAN 都是指無線網絡,用來無線上網即可,一般我們普遍叫 WiFi 比較多。
從生活中的實際例子也可以看到,WiFi 無線網絡主要由路由器或者無線網卡、無線 AP 產生,傳速的距離有限,因此一般也只是家用或者一般的中小企業采用。而 WLAN 網絡在很多校園都是,想中國移動與電信都在一些地區有 WLAN 網絡,它的最大亮點是一個 WLAN 網絡信號可以覆蓋整個校園,這就是我們能感受到的區別。
常見無線通信協議
常見無線通信協議:藍牙(BlueTeeth)、WiFi、蜂窩(Zigbee)、ModBus、PROFINET
802.11 的 MAC 幀頭格式
首先要說明的是 mac 802.11的幀格式很特別,它與TCP / IP這一類協議不同,它的長度是可變的。不同功能的數據幀長度會不一樣。這一特性說明 mac802.11 數據幀顯得更加靈活,然而,也會更加復雜。
有固定基礎設施無線局域網
無限局域網分為兩種:有固定基礎設施的無線局域網、無固定基礎設施的無線局域網自組網絡(ad hoc network)
數據鏈路層傳輸介質、設備
物理層擴展以太網,主機和集線器之間距離不能超過100m,否則失真會非常嚴重。所以要進行物理擴展(光纖、集線器),當然數據鏈路層也需要擴展以太網,常用的設備是 網卡(網絡適配器)、網橋 和 交換機。
鏈路層擴展以太網 網橋
網橋(Bridge):根據MAC幀的目的地址對幀進行轉發和過濾,當網橋收到一個幀時,并不向所有接口轉發此幀,而是先檢查此幀的目的MAC地址,然后再確定將該幀轉發到哪一個接口,或者是把它丟棄。
網段:一般指一個計算機網絡中使用同一物理層設備(傳輸介質,中繼器,集線器等)能夠直接通訊的那一部分。
網橋優點:
1.過濾通信量,增大吞吐量(一個沖突域帶寬100,那么3個沖突域帶寬最大可以達到300) 2.擴大了物理范圍 3.提高了可靠性(某一沖突域內發生問題不會影響其他沖突域) 4.可以互連不同物理層、不同MAC子層和不同速率的以太網。透明網橋:透明指以太網上的站點并不知道所發送的幀將經過哪幾個網橋,是一種即插即用設備 - 自學習。
源路由網橋:在發送幀時,把詳細的最佳路由信息(路由最少/時間最短)放在幀的首部。方法:源站以廣播方式向欲通信的目的站發送一個發現幀。
鏈路層擴展以太網 交換機
交換機(Switch):數據鏈路層設備,作用是轉發數據包。和網橋一樣它也是通過識別幀中的MAC地址,然后對特定的端口進行轉發的。以太網交換機可以獨占信號帶寬。
直通式交換機:查完目的地址(6B)就立刻轉發,延遲小,可靠性低,無法支持具有不同速率的端口的交換。
存儲轉發式交換機:將幀放入高速緩存,并檢查是否正確,正確則轉發,錯誤則丟棄。延遲大,可靠性高,可以支持具有不同速率的端口的交換。
交換機與網橋的區別
局域網交換機的基本功能與網橋一樣,具有幀轉發、幀過濾和生成樹算法功能。但是,交換機與網橋相比還是存在以下不同:
1、端口數目的區別:交換機工作時,實際上允許許多組端口間的通道同時工作。所以,交換機的功能體現出不僅僅是一個網橋的功能,而是多個網橋功能的集合。即網橋一般分有兩個端口,而交換機具有高密度的端口。
2、分段能力的區別:由于交換機能夠支持多個端口,因此可以把網絡系統劃分成為更多的物理網段,這樣使得整個網絡系統具有更高的帶寬。而網橋僅僅支持兩個端口,所以,網橋劃分的物理網段是相當有限的。
3、傳輸速率的區別:交換機與網橋數據信息的傳輸速率相比,交換機要快于網橋。
4、數據幀轉發方式的區別 :網橋在發送數據幀前,通常要接收到完整的數據幀并執行幀檢測序列 FCS后,才開始轉發該數據幀。交換機具有存儲轉發和直接轉發兩種幀轉發方式。
直接轉發方式在發送數據以前,不需要在接收完整個數據幀和經過 32bit 循環冗余校驗碼 CRC 的計算檢查后的等待時間。
沖突域 和 廣播域
沖突域:一種物理分段,指連接到同一導線上所有工作站的集合、同一物理網段上所有節點的集合或是以太網上競爭同一帶寬節點的集合。
沖突域表示沖突發生并傳播的區域,這個區域可以被認為是共享段。
在OSI模型中,沖突域被看作是OSI第一層的概念,連接同一沖突域的設備有集線器、中繼器或其它簡單的對信號進行復制的設備。
其中,使用第一層設備(如中繼器、集線器)連接的所有節點可被認為是在同一個沖突域內,而第二層設備(如網橋、交換機)和第三層設備(如路由器)既可以劃分沖突域,也可以連接不同的沖突域。
廣播域:指可以接收到同樣廣播消息的節點的集合。
簡單地說,在該集合中的任何一個節點傳輸一個廣播幀,則其它所有能夠接收到這個幀的節點都是該廣播域的一部分。
由于許多設備都極易產生廣播,因此,如果不進行維護就會消耗大量的帶寬,降低網絡的效率。
廣播域被看作是OSI第二層的概念,因此由中繼器、集線器、網橋、交換機等第一、二層設備連接的節點被認為是在同一個廣播域中,而路由器、第三層交換機等第三層設備則可以劃分廣播域。
網絡層
網絡層介于傳輸層和數據鏈路層之間,其主要作用是實現兩個不同網絡系統之間的數據透明傳送,具體包括路由選擇,擁塞控制和網際互連等。網絡層負責在不同的網絡之間(基于數據包的IP地址)盡力轉發數據包,不負責丟包重傳和接收順序。
網絡層是網絡與網絡之間通信的最底層,在數據從數據鏈路層向傳輸層進行數據傳輸的通信中,起到構建一個中間通信子網的作用。
不同網絡有這不同的網絡層協議和地址規范,如果一個網絡中的用戶不能識別其他網絡的通信協議和地址規范,那么這兩個網絡之間就不能進行數據通信,就好比不同國家有著不同的交通法規,屬于不同的交警系統管理,不允許他國車輛隨便出入一樣。不同網絡也有不同的設計規范,屬于不同的組織來管理,必須通過授權,并由專門的協議來負責網絡間的通信。
網絡層基本概念介紹
如果只是同一局域網內的各個計算機之間的通信,單靠物理層和數據鏈路層就可以建立通信鏈路完成用戶間的數據通信,但要擴大應用范圍,連接不同的局域子網,就需要借助網絡層處理各個網絡子網的協議,從而進行計算機的網絡互連,所以網絡層在 TCP/IP 協議體系中叫網際互連層。
網絡層主要功能
在網絡體系中,每一層都是服務于對應的上下層的。網絡層也是服務于上層的傳輸層和下層的數據鏈路層。
網絡層的功能就是讓我們在茫茫人海中,能夠找到另一臺計算機在哪里,是否屬于同一個子網等。
(1)屏蔽網絡差異,提供透明傳輸
網絡層就是為了解決不同網絡有不同的規范要求的差異問題,尋找一個不同網絡間都能共同遵守的網絡通信規范,以便不同網絡間能相互識別,并接受對方的網絡請求。也就是一個中轉站的作用,兩個毫無交集的網絡通過這個中轉站來建立交集。
(2)為網絡間通信提供路由選擇
路由選擇是根據一定的原則和路由選擇算法在多個結點的通信子網中選擇一條到達目的節點的最佳路徑的過程。確定路由選擇的策略稱為路由算法。在無連接的數據包服務中,網絡節點要為每個數據包做出路由選擇,即選擇到達目的節點的最佳路線,而在面向連接的虛電路服務中,存在一條專門的邏輯線路,在建立連接時就已經確定了路有路徑,無需額外選擇。
(3)擁塞控制
擁塞控制是為了避免網絡傳輸路徑中數據的傳輸延遲或死鎖。數據鏈路層中的流量控制功能,是針對數據鏈路中點對點傳輸速率的控制,這里的擁塞控制是針對在網絡層傳輸路徑中的端到端傳輸效率的控制。主要采用預約緩沖區、許可證和分組丟棄等方式。
數據包的路由過程
電路 / 報文 / 分組交換
為什么要數據交換?
(1)對于每臺主機要通信,我們給每個主機都建立線路,那么一共是 n (n - 1) / 2 條鏈路。
(2)通過交換設備互聯,N 條鏈路,缺點:如果主機數量大,將會給交換機壓力很大,交換機的內部吞吐量要特別大,并且遠距離鏈路就要長,鏈路一長信號會差。
數據交換方式:電路交換、報文交換、分組交換
1. 報文交換和分組交換都采用存儲轉發。 2. 傳送數據量大,且傳送時間遠大于呼叫時,選擇電路交換。電路交換傳輸時延最小。 3. 從信道利用率看,報文交換和分組交換優于電路交換,其中分組交換時延更小。電路交換
由于電路交換在通信之前要在通信雙方之間建立一條被雙方獨占的物理通路(由通信雙方之間的交換設備和鏈路逐段連接而成)
報文交換
報文交換是以報文為數據交換的單位,報文攜帶有目標地址、源地址等信息,在交換結點采用存儲轉發的傳輸方式。
優點:1. 無需建立連接 2. 存儲轉發,動態分配線路 3. 線路可靠性較高 4. 線路利用率較高 5. 多目標服務
缺點:1. 有存儲轉發時延 2. 報文大小不定,需要網絡節點有較大緩存空間
分組交換
分組交換仍采用存儲轉發傳輸方式,但將一個長報文先分割為若干個較短的分組,然后把這些分組(攜帶源、目的地址和編號信息)逐個地發送出去。
優點:1. 無需建立連接 2. 存儲轉發,動態分配線路 3. 線路可靠性較高 4. 線路利用率較高 5. 相對于報文交換,存儲管理更容易
缺點:1.有存儲轉發時延 2. 需要傳輸額外的信息量(占用帶寬資源) 3. 亂序到目的主機時,要對分組排序重組
例題:比較報文交換、分組交換的所需時間?
報文交換的方式:10000 bit / 1000 bps = 10 s,最少要跳 2 次交換設備:10 s * ( 2 + 1 ) = 30 s
分組交換的方式:10 bit / 1000 bps = 0.01 s,最少要跳 2 次交換設備:( 10000 bit / 10 bit ) * 0.01 s + 0.01 s * 2 = 10.02 s
數據報和虛電路
數據報方式:為網絡層提供無連接服務
無連接服務:不事先為分組的傳輸確定傳輸路徑,每個分組獨立確定傳輸路徑,不同分組傳輸路徑可能不同。
每個分組攜帶源和目的地址,路由器根據分組的目的地址轉發分組:基于路由協議 / 算法構建轉發表;檢索轉發表;每個分組獨立選路。
虛電路方式:為網絡層提供連接服務
指的是一條源主機到目的主機之間類似于電路的一條路徑,那這個路徑它是類似于電路的,是一種邏輯上的連接,所以它是虛的電路,而路徑上的所有節點都要維持這條虛電路的建立,都維持一張虛電路表,每一項記錄,每一項都記錄了一個打開的虛電路的信息。
連接服務:首先為分組的傳輸確定傳輸路徑(建立連接),然后沿該路徑(連接)傳輸系列分組,系列分組傳輸路徑相同,傳輸結束后拆除連接。
TCP的特性就是面向連接的,是可靠傳輸,可以差錯控制和流量控制,TCP的數據傳送是建立在虛電路的基礎上的。傳輸單元名詞辨析
報文:其實就是對于一個要傳輸的數據。
比如說我現在要發送一個文件,比如說現在使用QQ,QQ它就是應用層的程序,要用QQ來發送一個文件,這一個文件其實就是一個報文。
報文段:傳輸層會對報文進行一個分割,也就是把報文分割成一個又一個的小段,就叫做報文段,這個是對于報文長度比較大,報名比較大的情況,傳輸層才會進行分割。
如果這報文很小,比如說就是一句話,你好,可能傳輸層它并不會進行分割,不會分割成報文段,也可以叫做報文。
IP數據段 / 分組:它要封裝上網絡層的 IP 地址,這個地址包括原地址以及目的地址,都是 IP 地址。封裝好這樣一個就叫做一個 IP 數據報了。
如果這個數據報大小再次過大的話,因為鏈路層的時候,它有一個 MTU 最大傳送單元,如果這個數據報的部分過大,我們就需要對數據報進行一個切割,進行一個切割下來的一個部分,就叫做一個分組。
幀:加頭加尾,就形成了一個幀,這個頭加的就是在原來的ip數據報,或者說分組基礎之上,我們家頭加上mac地址,加上物理地址,然后加尾就是加一個FCS的幀檢驗序列。
比特流:比特流(BitTorrent)是一種內容分發協議。
數據報 和 虛電路 比較
| 連接的建立 | 不要 | 必須有 |
| 目的地址 | 每個分組都有完整的目的地址 | 僅在建立連接階段使用,之后每個分組使用長度較短的虛電路號 |
| 路由的選擇 | 每個分組獨立的進行路由選擇和轉發 | 屬于同一條虛電路的分組按照同一路由轉發 |
| 分組順序 | 不保證分組有序到達 | 保證分組的有序到達 |
| 可靠性 | 不保證可靠通信,可靠性由用戶主機保證 | 可靠性由網絡保證 |
| 對網絡故障的適應性 | 出故障的結點丟失分組,其他分組路徑選擇發生變化,可正常傳輸 | 所有經過故障結點的虛電路均不能正常工作 |
| 差錯處理和流量控制 | 由用戶主機進行流量控制,不保證數據報的可靠性 | 可由分組交換網負責,也可由用戶主機負責 |
路由算法與路由協議概述
最佳路由:“最佳”只能是相對于某一種特定要求下得出的較為合理的選擇而已。
| 介紹 | 管理員手工配置路由信息 | 路由器間彼此交換信息,按照路由算法優化出路由表項 |
| 優點 | 簡便、可靠,在負荷穩定、拓撲變化不大的網絡中運行效果很好,廣泛用于高度安全性的軍事網絡和較小的商業網絡 | 路由更新快,適用大型網絡,及時響應鏈路費用或網絡拓撲變化 |
| 缺點 | 路由更新慢,不適用大型網絡 | 算法復雜,增加網絡負擔 |
動態路由算法 全局性 分散性
| 鏈路狀態路由算法OSPF | 距離向量路由算法RIP |
| 所有路由器掌握完整的網絡拓撲和鏈路費用信息 | 路由器只掌握物理相連的鄰居及鏈路費用 |
分層次的路由選擇協議
(1)因特網規模很大
(2)許多單位不想讓外界知道自己的路由選擇協議,但還想連入因特網
自制系統 AS:在單一的技術管理下的一組路由器,而這些路由器使用一種 AS 內部的路由選擇協議和公共的度量以確定分組在該 AS 內的路由,同時還使用一種 AS 之間的路由協議以確定AS之間的路由。
一個 AS 內的所有網絡都屬于一個行政單位來管轄,一個自治系統的所有路由器在本自治系統內都必須連通。
| 一個 AS 內使用RIP、OSPF | AS 之間使用 BGP - 4 |
IP 數據報格式與分片
TCP / IP 協議定義了一個在因特網上傳輸的包,稱為 IP 數據報,由首部和數據兩部分組成。首部的前一部分是固定長度,共 20 字節,是所有 IP 數據報必須具有的。在首部的固定部分的后面是一些可選字段,其長度是可變的。首部中的源地址和目的地址都是 IP 協議地址。
IP 數據報格式
如下圖所示,IP 數據報格式分為首部和數據部分。并且最高位在左邊,為 0 位,最低位在右邊,為 31 位。在傳輸的時候按照從高到低的順序進行傳輸。
IP 數據報各字段功能
版本號:占用 4 位二進制數,表示該 IP 數據報使用的 IP 協議版本。目前 Internet 中使用的主要是 TCP / IP 協議族中版本號為 4 的 IP 協議。
頭長度:占用 4 位二進制位,此域指出整個報頭的長度(包括選項),該長度是以 32 位二進制數為一個計數單位的,接收端通過此域可以計算出報頭在何處結束及從何處開始讀數據。普通 IP 數據報(沒有任何選項)該字段的值是 5(即 20 個字節的長度)。
服務類型(TOS、type of service):占用 8 位二進制位,用于規定本數據報的處理方式。
目前在Internet中使用的 TCP / IP 協議大多數情況下網絡并未對 TOS 進行處理,但在實際編程時,有專門的函數來設置該字段的各域。
總長度:占用 16 位二進制位,總長度字段是指整個 IP 數據報的長度(報頭區 + 數據區),以字節為單位。
利用頭部長度字段和總長度字段就可以計算出 IP 數據報中數據內容的起始位置和長度。由于該字段長度為 16 位二進制數,因此理論上IP數據報最長可達 65536 個字節(事實上受物理網絡的限制,要比這個數值小很多)。
生存時間(TTL,time to live):占用 8 位二進制位,它指定了數據報可以在網絡中傳輸的最長時間。實際應用中把生存時間字段設置成了數據報可以經過的最大路由器數。
TTL 的初始值由源主機設置(通常為 32、64、128 或 256),一旦經過一個處理它的路由器,它的值就減 1。當該字段為 0 時,數據報就丟棄,并發送 ICMP 報文通知源主機,因此可以防止進入一個循環回路時,數據報無休止地傳輸下去。
特別補充:ICMP(Internet Control Message protocol)
ICMP(Internet Control Message protocol)互聯網信息控制協議,用于實現鏈路連通性測試和鏈路追蹤,可以實現鏈路差錯報告,屬于UDP協議。ICMP有多種類型的報文,同一類型的報文會有多個不同的Code。
ICMP 是 IP 層的一部分,雖然從形式上看 ICMP 被包裝在 IP 的數據部中,感覺和 TCP、UDP 同一層,但實際上 ICMP 被劃分到網絡層。ICMP 的主要作用在于傳遞差錯報文。
ICMP 報文的結構為:8 位類型 + 8 位代碼 + 16 位檢驗和 + 特有內容
上層協議標識:占用 8 位二進制位,IP 協議可以承載各種上層協議,目標端根據協議標識就可以把收到的 IP 數據報送到 TCP 或 UDP 等處理此報文的上層協議了。
上層協議 常用網際協議編號:
校驗和:占用 16 位二進制數,用于協議頭數據有效性的校驗,可以保證 IP 報頭區在傳輸時的正確性和完整性。頭部檢驗和字段是根據 IP 協議頭計算出的檢驗和,它不對頭部后面的數據進行計算。
原理:發送端首先將檢驗和字段置 0,然后對頭部中每 16 位二進制數進行反碼求和的運算,并將結果存在校驗和字段中。由于接收方在計算過程中包含了發送方放在頭部的校驗和,因此,如果頭部在傳輸過程中沒有發生任何差錯,那么接收方計算的結果就應該是全 1。
源地址:占用 32 位二進制數,表示發送端 IP 地址。
目的地址:占用 32 位二進制數,表述目的端 IP 地址。
IP 數據報分片
在IP數據報頭中有三個字段與數據報的分片與重組有很大的關系,分別是標識符、標志和片偏移量。
標志:占3位,該字段目前只有后兩位有意義。
最低位記為 MF (More Fragment),用于把數據報最后一片與前面其它各片區分開來;
MF = 1代表片未完,即鈣片不是原始數據報的最后一片;MF = 0表示鈣片是原始數據報的最后一片。
次低位 DF(Don't Fragment),用來控制數據報是否允許分片。
DF = 1表示該數據報不允許分片;DF = 0允許分片。
其實,數據報的分片和重組都是由機器自動完成的,因此設置 DF 位的真正意義在于,程序員可以控制數據報的分片過程,這為程序調試提供了方便和靈活性。
標識:占 16 位,用于目的主機將數據報的各個分片重裝成原來的數據報。當數據報分片時,該標識字段的值被復制到所有的數據報片的標識字段中。
這樣,目的主句就可以正確的將標識字段值相同的各數據報分片重裝成原來的數據報。
片偏移:占 13 位,表示本片在原數據報中的偏移,偏移量以 8 字節為單位。由于各片數據均按照獨立數據報方式傳輸,因此到達目的站的片序是不定的,目的主機在重裝數據報時需要該字段提供偏移量。
除了最后一個分片,每個分片長度一定是 8B 的整數倍。
例題:IP 數據報計算(IP數據報分片)
一個數據報部分長度為3400字節(使用固定首部)。現在經過一個網絡傳輸,該網絡的 MTU 為 800 字節:(1)應分為幾個數據報片?(2)各數據報片的數據字段長度?(3)各數據報片的片偏移字段值?分析思路:IP 數據報由首部和數據部分組成;MTU:最大傳輸單元(首部 + 數據部分);IP 數據報的固定首部 20 字節。
MF = 1:表示后面還有分片數據報 MF = 0:表示后面沒有分片數據報 DF = 0:表示能分片 DF = 1:表示禁止分片解題分析:
這個題目固定首部:24 字節,正常情況下是 20 字節
原因:片偏移以 8 個字節為偏移單位,每個分片長度一定是 8 字節(64位)的整數倍。
該網絡的 MTU 為 800 字節:包括首部和數據部分,最大的數據部分(減去首部 24 字節)為 776 字節
(1)數據報部分長度為 3400 字節能分成多少個 776 => 3400 / 776 ≈ 4.38;剩余部分不能丟棄;所以應分為 5 個數據報片。
(2)各數據報片的數據字段長度:776 776 776 776 296
(3)各數據報片的片偏移字段值:0 97 194 291 388
IP 數據包分片 總結:
當需要進行分片時,在每個數據報片的首部存放著該數據報的標識、標志位和片偏移,在進行重組時,標識用來分辨該數據報片的原數據報是哪個,標志位中的 MF 用來分辨這是不是原數據報的最后一片,片偏移用來分辨這個數據報片相對原數據報的位置。通過這幾個字段,可以穩定的完成數據報的分片與重組操作。
IPv4 地址、IPv6 地址
IP 地址的分類
整個的因特網就是一個單一的、抽象的網絡。IP 地址就是給因特網上的每一個主機(或路由器)的每一個接口分配一個在全世界范圍內唯一的 32 位的標識符。
所謂分類的IP地址,就是將IP地址劃分為若干固定類,每一類地址都由兩個固定長度的字段組成,其中一個字段是網絡號 net - id,它標志主機(或路由器)所連接到的網絡,一個網絡號在整個因特網范圍內必須是唯一的。
IP 地址與硬件地址
硬件地址是數據鏈路層和物理層使用的地址,而IP地址是網絡層和以上各層使用的地址,是一種邏輯地址。
發送數據時,數據從高層下到地層,然后才到通信鏈路上傳輸。使用 IP 地址的 IP 數據報一旦交給了數據鏈路層,就被封裝成了 MAC 幀。MAC 幀在傳送時使用的源地址和目的地址都是硬件地址,這兩個硬件地址都寫在 MAC 幀的首部。
連接在通信鏈路上的設備在接受 MAC 幀時,其根據是 MAC 幀首部中的硬件地址。在數據鏈路層看不見隱藏在 MAC 幀的數據中的 IP 地址。
只有在剝去了 MAC 幀的首部和尾部后把 MAC 層的數據上交給網絡層后,網絡層才能在 IP 數據報的首部中找到源 IP 地址和目的 IP 地址。
IPv4 與 IPv6 的區別
首部:IPv6 的首部長度是 40 個字節,相對 IPv4 的首部長度 24 字節要長,但是,IPv6 首部結構比 IPv4 簡單。
在 IPv6 中,IPv4 報頭格式中一些冗余的域或被丟棄或被列為擴展報頭,從而降低了包處理和報頭帶寬的開銷。
擴展了路由和尋址的能力:IPv6 把 IP 地址由 32 位增加到 128 位,從而能夠支持更大的地址空間,有2128-1個 IPv6 地址,估計在地球表面每平米有 4*1018 個 IPv6 地址,使 IP 地址在可預見的將來不會用完。
IPv6 地址的編碼采用類似于 CIDR 的分層分級結構,如同電話號碼。簡化了路由, 加快了路由速度。
對可選項更大的支持:IPv6 的可選項不放入報頭,而是放在一個個獨立的擴展頭部。如果不指定路由器不會打開處理擴展頭部,這大大改變了路由性能。
IPv6 放寬了對可選項長度的嚴格要求 ( IPv4 的可選項總長最多為 40 字節 ) ,并可根據需要隨時引入新選項。
IPV6 的很多新的特點就是由選項來提供的,例如:對 IP 層安全 ( IPSEC ) 的支持,對巨報 ( jumbogram ) 的支持以及對 IP 層漫游 ( Mobile - IP ) 的支持等。
支持即插即用(即自動配置):IPv6 協議支持地址自動配置,這是一種即插即用的機制。IPv6 節點通過地址自動配置得到 IPv6 地址和網關地址。
IPv6 支持無狀態地址自動配置和狀態地址自動配置兩種地址自動配置方式。它會給配置 128
位的地址帶來很大的方便,特別是無狀態地址自動配置。
身份驗證和保密:在 IPv6 中加入了關于身份驗證、數據一致性和保密性的內容。
允許協議繼續擴充:技術總是在不斷發展的,而新的應用也還會出現。而 IPv4 的功能是固定不變的。
網絡地址轉換 NAT
NAT 英文全稱是“ Network Address Translation ”,中文意思是“網絡地址轉換”,它是一個IETF(Internet Engineering Task Force, Internet工程任務組)標準,允許一個整體機構以一個公用 IP(Internet Protocol)地址出現在 Internet 上。
顧名思義,它是一種把內部私有網絡地址(IP 地址)翻譯成合法網絡 IP 地址的技術。因此我們可以認為,NAT 在一定程度上,能夠有效的解決公網地址不足的問題。
NAT 有三種類型:靜態地址 NAT(Static NAT)、動態地址 NAT(Pooled NAT)、網絡地址端口轉換 NAPT(Port - Level NAT)
基本工作原理
NAT 的基本工作原理是:當私有網主機和公共網主機通信的 IP 包經過 NAT 網關時,將 IP 包中的源 IP 或目的 IP 在私有 IP 和 NAT 的公共 IP 之間進行轉換。
如下圖所示,NAT 網關有 2 個網絡端口,其中公共網絡端口的 IP 地址是統一分配的公共 IP,為 202.20.65.5 ;私有網絡端口的 IP 地址是保留地址,為 192.168.1.1。
私有網中的主機 192.168.1.2 向公共網中的主機 202.20.65.4 發送了 1 個 IP 包( Dst = 202.20.65.4;Src = 192.168.1.2 )
當 IP 包經過 NAT 網關時,NAT Gateway 會將 IP 包的源 IP 轉換為 NAT Gateway 的公共 IP 并轉發到公共網,此時 IP 包(Dst = 202.20.65.4,Src = 202.20.65.5)中已經不含任何私有網 IP 的信息。
由于 IP 包的源 IP 已經被轉換成 NAT Gateway 的公共 IP,Web Server 發出的響應 IP 包(Dst= 202.20.65.5;Src = 202.20.65.4)將被發送到 NAT Gateway。
這時,NAT Gateway會將 IP 包的目的 IP 轉換成私有網中主機的IP,然后將 IP 包(Dst = 192.168.1.2,Src = 202.20.65.4)轉發到私有網。對于通信雙方而言,這種地址的轉換過程是完全透明的。轉換示意圖如下:
如果內網主機發出的請求包未經過 NAT ,那么當 Web Server 收到請求包,回復的響應包中的目的地址就是私網 IP 地址,在 Internet 上無法正確送達,導致連接失敗。
在上述過程中,NAT Gateway 在收到響應包后,就需要判斷將數據包轉發給誰。此時如果子網內僅有少量客戶機,可以用靜態 NAT 手工指定;但如果內網有多臺客戶機,并且各自訪問不同網站,這時候就需要連接跟蹤(connection track)
在 NAT Gateway 收到客戶機發來的請求包后,做源地址轉換,并且將該連接記錄保存下來,當 NAT Gateway 收到服務器來的響應包后,查找 Track Table,確定轉發目標,做目的地址轉換,轉發給客戶機。
網絡地址轉換 NAT 應用功能
NAT主要可以實現以下幾個功能:數據包偽裝、平衡負載、端口轉發和透明代理。
數據偽裝: 可以將內網數據包中的地址信息更改成統一的對外地址信息,不讓內網主機直接暴露在因特網上,保證內網主機的安全。同時,該功能也常用來實現共享上網。
端口轉發: 當內網主機對外提供服務時,由于使用的是內部私有IP地址,外網無法直接訪問。因此,需要在網關上進行端口轉發,將特定服務的數據包轉發給內網主機。
負載平衡: 目的地址轉換NAT可以重定向一些服務器的連接到其他隨機選定的服務器。
失效終結: 目的地址轉換NAT可以用來提供高可靠性的服務。如果一個系統有一臺通過路由器訪問的關鍵服務器,一旦路由器檢測到該服務器當機,它可以使用目的地址轉換NAT透明的把連接轉移到一個備份服務器上。
透明代理: NAT可以把連接到因特網的HTTP連接重定向到一個指定的HTTP代理服務器以緩存數據和過濾請求。一些因特網服務提供商就使用這種技術來減少帶寬的使用而不用讓他們的客戶配置他們的瀏覽器支持代理連接。
子網劃分和子網掩碼
為什么要劃分子網?
IPv4 地址如果只使用有類(A、B、C類)來劃分,會造成大量的浪費或者不夠用,為了解決這個問題,可以在有限類網絡的基礎上,通過對 IP 地址的主機號進行再劃分,把一部分劃入網絡號,就能劃分各種類型大小的網絡了。
IPv4 子網劃分與聚合
為了解決 IPv4 的不足,提高網絡劃分的靈活性,誕生了兩種非常重要的技術,那就是 VLSM(可變長子網掩碼)和 CIDR(無類別域間路由),把傳統標準的 IPv4 有類網絡演變成一個更為高效,更為實用的無類網絡。
可變長子網掩碼:Variable Length Subnet Mask,VLSM 用于 IPv4 子網的劃分,也就是把一個大的網絡劃分成多個小的子網。
無類別域間路由:Classless Inter-Domain Routing,CIDR 則用于 IPv4 子網的聚合,當然主要是指路由方面的聚合,也就是路由匯總。
通過 CIDR 可以把多個小的子網路由條目匯總成一個大網絡的路由條目,以減少路由器中路由條目的數量,提高路由效率。
VLSM 子網劃分的基本思想
通過 VLSM 實現子網劃分的基本思想很簡單:就是借用現有網段的主機位的最左邊某幾位作為子網位,劃分出多個子網。
① 把原來有類網絡 IPv4 地址中的 “網絡 ID” 部分向 “主機 ID” 部分借位
② 把一部分原來屬于 “主機 ID” 部分的位變成 “網絡 ID” 的一部分(通常稱之為 “子網 ID” )。
③ 原來的 “網絡 ID” + “子網ID” = 新 “網絡 ID” ,“子網 ID” 的長度決定了可以劃分子網的數量。
IP 子網劃分 常見問題注意點
每個子網的廣播地址是什么?
答:主機位全為 1 就是該子網的廣播地址。通常我們這樣計算:廣播地址總是下一個子網前面的數,前面確定了子網為0、64、128 和 192
例如,子網 0 的廣播地址為 63,因為下一個子網為 64 ;子網 64 的廣播地址為 127,因為下一個子網為 128,以此類推。請記住,最后一個子網的廣播地址總是 255
每個子網可包含哪些主機地址?
合法的主機地址位于兩個子網之間,但全為 0 和全為 1 的地址除外。例如,如果子網號(網段號)為 64,而廣播地址為 127 ,則合法的主機地址范圍為 65 - 126 ,即子網地址和廣播地址之間的數字。
子網掩碼 ( subnet mask )
子網掩碼(subnet mask)又叫網絡掩碼、地址掩碼、子網絡遮罩,它是一種用來指明一個IP地址的哪些位標識的是主機所在的子網,以及哪些位標識的是主機的位掩碼。
子網掩碼不能單獨存在,它必須結合 IP 地址一起使用。子網掩碼就是將某個 IP 地址劃分成網絡地址和主機地址兩部分。
子網掩碼是一個32位地址,用于屏蔽 IP 地址的一部分以區別網絡標識和主機標識,并說明該IP地址是在局域網上,還是在遠程網上。
子網掩碼屏蔽一個 IP 地址的網絡部分的 “全 1” 比特模式。對于 A 類地址來說,默認的子網掩碼是255.0.0.0;對于B類地址來說默認的子網掩碼是255.255.0.0;對于C類地址來說默認的子網掩碼是255.255.255.0。
通過子網掩碼,就可以判斷兩個IP在不在一個局域網內部。子網掩碼可以看出有多少位是網絡號,有多少位是主機號。
網關 (Gateway)
網關(Gateway):又稱網間連接器、協議轉換器。默認網關在網絡層上以實現網絡互連,是最復雜的網絡互連設備,僅用于兩個高層協議不同的網絡互連。
網關的結構也和路由器類似,不同的是互連層。網關既可以用于廣域網互連,也可以用于局域網互連。
網關實質上是一個網絡通向其他網絡的IP地址。
比如有網絡 A 和網絡 B,網絡 A 的 IP 地址范圍為 “192.168.1.1 ~ 192. 168.1.254”,子網掩碼為 255.255.255.0;網絡 B 的 IP 地址范圍為 “192.168.2.1 ~ 192.168.2.254”,子網掩碼為 255.255.255.0。
在沒有路由器的情況下,兩個網絡之間是不能進行 TCP / IP 通信的,即使是兩個網絡連接在同一臺交換機(或集線器)上,TCP / IP 協議也會根據子網掩碼(255.255.255.0)判定兩個網絡中的主機處在不同的網絡里。
實現這兩個網絡之間的通信,則必須通過網關。如果網絡 A 中的主機發現數據包的目的主機不在本地網絡中,就把數據包轉發給它自己的網關,再由網關轉發給網絡 B 的網關,網絡 B 的網關再轉發給網絡 B 的某個主機。
只有設置好網關的IP地址,TCP / IP 協議才能實現不同網絡之間的相互通信。
那么這個 IP 地址是哪臺機器的IP地址呢?網關的 IP 地址是具有路由功能的設備的 IP 地址,具有路由功能的設備有路由器、啟用了路由協議的服務器(實質上相當于一臺路由器)、代理服務器(也相當于一臺路由器)。
廣播地址 (Broadcast Address)
廣播地址(Broadcast Address):專門用于同時向網絡中所有工作站進行發送的一個地址。
在使用 TCP / IP 協議的網絡中,主機標識段 host ID 為全1 的 IP 地址為廣播地址,廣播的分組傳送給 host ID 段所涉及的所有計算機。
例如,對于10.1.1.0 ( 255.255.255.0 )網段,其廣播地址為 10.1.1.255 (255 即為 2 進制的 11111111 ),當發出一個目的地址為 10.1.1.255 的分組(封包)時,它將被分發給該網段上的所有計算機。
使用子網時分組的轉發
例題探究(1):
一個主機的IP地址是 202.112.14.137,掩碼是 255.255.255.224,要求計算這個主機所在網絡的網絡地址和廣播地址
如何計算網絡地址?
網絡地址就是:把 IP 地址轉成二進制和子網掩碼進行與運算
什么是與運算: 0 & 0 = 0;0 & 1 = 0;1 & 0 = 0;1 &1 = 1 即:兩個同時為 1,結果為 1,否則為 0
11001010 01110000 00001110 10001001 IP 地址 11111111 11111111 11111111 11100000 子網掩碼 ----------------------------------- 與運算 11001010 01110000 00001110 10000000 網絡地址即:202.112.14.128如何計算廣播地址?
網絡地址 202.112.14.128 => 廣播地址:網絡地址的主機位全部變成1 ,10011111 即159 即:202.112.14.159
如何計算主機數?
主機號有 5 位,那么這個地址中,就只能有 25 ? 2 = 30 個主機
例題探究(2): 答案是 D
無分類編址 CIDR
無分類編址 CIDR(構造超網)
無分類編址 CIDR 的正式名字是無分類域間路由選擇 CIDR (Classless Inter-Domain Routing)
網絡前綴
CIDR 消除了傳統的 A 類、B 類和 C 類地址以及劃分子網的概念,因而可以更加有效地分配 IPv4 的地址空間。 CIDR 使用各種長度的 “網絡前綴” ( network-prefix ) 來代替分類地址中的網絡號和子網號。 IP 地址從三級編址(使用子網掩碼)又回到了兩級編址。CIDR 使用 “斜線記法” (slash notation),它又稱為 CIDR 記法,即在 IP 地址后面加上一個斜線 “/” ,然后寫上網絡前綴所占的位數(這個數值對應于三級編址中子網掩碼中 1 的個數)。
分類編址缺點 - > 無分類編址
分類編址缺點:比如一個 A 類地址對應的是224 - 2個 IP 地址(網絡地址和廣播地址),這個是個天文數字,一個公司或者組織是無法完全利用這么多 IP 地址的,就造成了 IP 地址的浪費。
CIDR無分類編址:無分類編址的做法是將IP分為兩部分(網絡號 + 主機號)
1、網絡號:網絡號對應的是一個網絡地址,一個網絡可以容納多個主機,主機的網絡號相同。
2、主機號:來唯一標識一個主機在一個網絡中的id。
怎么區分網絡號和主機號呢?
xx:xx:xx:xx/n:在IP地址后邊加入了 /n ,n 就前 n 位代表網絡號
CIDR 記法的其他形式:
10.0.0.0/10 可簡寫為 10/10,也就是把點分十進制中低位連續的 0 省略。
10.0.0.0/10 隱含地指出 IP 地址 10.0.0.0 的掩碼是 255.192.0.0。此掩碼可表示為 ( 10代表掩碼中1的個數 )
構成超網 路由聚合 (route aggregation)
一個 CIDR 地址塊可以表示很多地址,這種地址的聚合常稱為路由聚合,它使得路由表中的一個項目可以表示很多個(例如上千個)原來傳統分類地址的路由。
路由聚合有利于減少路由器之間的路由選擇信息的交換,從而提高了整個互聯網的性能。
補充:路由聚合也稱為構成 超網 (supernetting)
CIDR 雖然不使用子網了,但仍然使用 “掩碼” 這一名詞(但不叫子網掩碼)。
對于 / 20 地址塊,它的掩碼是 20 個連續的 1,斜線記法中的數字就是掩碼中 1 的個數。
最長前綴匹配
使用 CIDR 時,路由表中的每個項目由“網絡前綴”和“下一跳地址”組成。在查找路由表時可能會得到不止一個匹配結果。 應當從匹配結果中選擇具有最長網絡前綴的路由:最長前綴匹配 (longest-prefix matching)。 網絡前綴越長,其地址塊就越小,因而路由就越具體 (more specific) 。 最長前綴匹配又稱為最長匹配或最佳匹配。使用二叉線索查找路由表
就是從二叉線索的根節點自頂向下的深度最多有 32 層,每一層對應于 IP 地址中的一位。一個 IP 地址存入二叉線索的規則很簡單。
先檢查 IP 地址左邊的第一位,如為 0,則第一層的節點就在根節點的左下方;如為 1,則在右下方。然后再檢查地址的第二位,構造出第二層的節點。依此類推,直到唯一前綴的最后一位。
例如:10.100.122.2/24
考研例題展示:答案:B
傳輸層
傳輸層,上承應用層,下啟網絡層,主要作用是將上層(應用層)的數據進行處理封裝后,遞交給下層(網絡層),并在此過程中實現一定的網絡收發控制(比如網絡流量控制)。
傳輸層封裝后的數據一般稱為數據段或者報文段(Segment)
傳輸層主要有兩個協議:TCP, UDP
TCP協議(Transmission Control Protocol):可靠傳輸協議,即保證可靠交付報文段。
UDP協議(User Datagram Protocol):不可靠傳輸協議,即不保證可靠交付報文段。
UDP 協議、TCP 協議
TCP 是一種面向有連接的傳輸層協議,能夠對自己提供的連接實施控制。適用于要求可靠傳輸的應用,例如文件傳輸。特點:面向字節流,傳輸慢。
UDP 是一種面向無連接的傳輸層協議,不會對自己提供的連接實施控制。適用于實時應用,例如:IP電話、視頻會議、直播等。特點:以報文的方式傳輸,效率高。
UDP無連接,TCP面向連接
使用UDP協議的雙方隨時可以發送數據,使用TCP協議的雙方在發送數據之前必須使用“三次握手”建立TCP連接,TCP連接建立成功后,才能進行數據傳輸,數據傳輸結束后,必須使用“四報文揮手”來釋放連接。
TCP 字節流服務
字節流服務和數據報服務的這種區別對應到實際編程中,則體現為通信雙方是否必須執行相同次數的讀、寫操作(當然,這只是表現形式)。
當發送端應用程序連續執行多次寫操作時,TCP 模塊先將這些數據放入 TCP 發送緩沖區中。當 TCP 模塊真正開始發送數據時,發送緩沖區中這些等待發送的數據可能被封裝成一個或多個 TCP 報文段發出。因此,TCP 模塊發送出的TCP報文段的個數和應用程序執行的寫操作次數之間沒有固定的數量關系。
當接收端收到一個或多個 TCP 報文段后,TCP模塊將它們攜帶的應用程序數據按照 TCP 報文段的序號依次放人 TCP 接收緩沖區中,并通知應用程序讀取數據。接收端應用程序可以一次性將 TCP 接收緩沖區中的數據全部讀出,也可以分多次讀取,這取決于用戶指定的應用程序讀緩沖區的大小。因此,應用程序執行的讀操作次數和 TCP 模塊接收到的 TCP 報文段個數之間也沒有固定的數量關系。
TCP頭部結構
原端口號、目標端口號:長度為 16 位,表示發送端端口號和接收端端口號。
序列號:長度為 32 位,指發送數據端位置,每發送一次數據,就累加一個該數據字節數的大小。
確認應答號:長度為 32 位,是指下一次應該收到的數據的序列號。
數據偏移:長度位 4 位,表示 TCP 所傳輸的數據部分應該從 TCP 包的哪個位開始計算,可以看作是TCP 首部的長度。
保留:長度為 4 位,為了以后擴展時使用。
控制位:字段長位 8 位,每一位從左到右分別位 CWR、ECE、URG、ACK、PSH、RST、SYN、FIN;這就控制標識就叫做控制位。
| FIN 標志 | 用于斷開連接,為 1 時,表示今后都不會再有數據發送了。 |
| SYN 標志 | 用于建立連接,為 1 時,表示希望建立連接。 |
| RST 標志 | 為 1 時,表示 TCP 連接中出現異常必須強制斷開連接。 |
| PSH 標志 | 為 1 時,表示傳輸的數據立刻給上層應用,為 0 時,不需要立刻傳送可以進行緩存。 |
| ACK 標志 | 為 1 時,表示確認應答的字段為有效,在三次握手時,SYN 包之外該位必須為 1 。 |
| URG 標志 | 為 1 時,表示時需要緊急處理的數據。 |
| ECE 標志 | 當為 1 時,表示從對方到這邊的網絡有擁堵。 |
| CWR 標志 | 與 ECE 表示都用于 IP 首部的 ECN 字段。 |
窗口大小:長度為 16 位,表示可以發送數據的窗口大小,當為 0 時,表示可以發送窗口探測。
校驗和:長度為 16 位,校驗TCP偽首部是否正確。
緊急指針:長度為 16 位,只有在 URG 標志為 1 時有效,該字段的數值表示本報文段中緊急數據的指針。
選項:可以用于提高 TCP 傳輸性能。
填充:用于數據補全。
TCP 連接管理(三握四揮)
連接管理就是三次握手與四次揮手的過程。保證可靠的連接,是保證可靠性的前提。
三次握手(Three-way Handshake)
三次握手(Three-way Handshake)其實就是指建立一個TCP連接時,需要客戶端和服務器總共發送3個包。進行三次握手的主要作用就是為了確認雙方的接收能力和發送能力是否正常、指定自己的初始化序列號為后面的可靠性傳送做準備。實質上其實就是連接服務器指定端口,建立TCP連接,并同步連接雙方的序列號和確認號,交換TCP窗口大小信息。
剛開始客戶端處于 Closed 的狀態,服務端處于 Listen 狀態。
進行三次握手:
第一次握手:客戶端給服務端發一個 SYN 報文,并指明客戶端的初始化序列號 ISN。此時客戶端處于 SYN_SENT 狀態。
首部的同步位SYN=1,初始序號seq=x,SYN=1的報文段不能攜帶數據,但要消耗掉一個序號。
第二次握手:服務器收到客戶端的 SYN 報文之后,會以自己的 SYN 報文作為應答,并且也是指定了自己的初始化序列號 ISN(s)。同時會把客戶端的 ISN + 1 作為ACK 的值,表示自己已經收到了客戶端的 SYN,此時服務器處于 SYN_RCVD 的狀態。
在確認報文段中 SYN=1,ACK=1,確認號 ack=x+1,初始序號 seq=y。
第三次握手:客戶端收到 SYN 報文之后,會發送一個 ACK 報文,當然,也是一樣把服務器的 ISN + 1 作為 ACK 的值,表示已經收到了服務端的 SYN 報文,此時客戶端處于 ESTABLISHED 狀態。服務器收到 ACK 報文之后,也處于 ESTABLISHED 狀態,此時,雙方已建立起了連接。
確認報文段ACK=1,確認號 ack=y+1,序號 seq=x+1(初始為 seq=x,第二個報文段所以要+1),ACK報文段可以攜帶數據,不攜帶數據則不消耗序號。
四次揮手 (Four-way handshake)
建立一個連接需要三次握手,而終止一個連接要經過四次揮手(也有將四次揮手叫做四次握手的)。這由TCP的半關閉(half-close)造成的。所謂的半關閉,其實就是TCP提供了連接的一端在結束它的發送后還能接收來自另一端數據的能力。
TCP 連接的拆除需要發送四個包,因此稱為四次揮手 (Four-way handshake),客戶端或服務端均可主動發起揮手動作。
剛開始雙方都處于ESTABLISHED 狀態,假如是客戶端先發起關閉請求。
四次揮手的過程如下:
第一次揮手:客戶端發送一個 FIN 報文,報文中會指定一個序列號。此時客戶端處于 FIN_WAIT1 狀態。
即發出連接釋放報文段(FIN=1,序號seq=u),并停止再發送數據,主動關閉TCP連接,進入FIN_WAIT1(終止等待1)狀態,等待服務端的確認。
第二次揮手:服務端收到 FIN 之后,會發送 ACK 報文,且把客戶端的序列號值 +1 作為 ACK 報文的序列號值,表明已經收到客戶端的報文了,此時服務端處于 CLOSE_WAIT 狀態。
即服務端收到連接釋放報文段后即發出確認報文段(ACK=1,確認號ack=u+1,序號seq=v),服務端進入CLOSE_WAIT(關閉等待)狀態,此時的TCP處于半關閉狀態,客戶端到服務端的連接釋放。客戶端收到服務端的確認后,進入FIN_WAIT2(終止等待2)狀態,等待服務端發出的連接釋放報文段。
第三次揮手:如果服務端也想斷開連接了,和客戶端的第一次揮手一樣,發給 FIN 報文,且指定一個序列號。此時服務端處于 LAST_ACK 的狀態。
即服務端沒有要向客戶端發出的數據,服務端發出連接釋放報文段(FIN=1,ACK=1,序號seq=w,確認號ack=u+1),服務端進入LAST_ACK(最后確認)狀態,等待客戶端的確認。
第四次揮手:客戶端收到 FIN 之后,一樣發送一個 ACK 報文作為應答,且把服務端的序列號值 +1 作為自己 ACK 報文的序列號值,此時客戶端處于 TIME_WAIT 狀態。需要過一陣子以確保服務端收到自己的 ACK 報文之后才會進入 CLOSED 狀態,服務端收到 ACK 報文之后,就處于關閉連接了,處于 CLOSED 狀態。
即客戶端收到服務端的連接釋放報文段后,對此發出確認報文段(ACK=1,seq=u+1,ack=w+1),客戶端進入TIME_WAIT(時間等待)狀態。此時TCP未釋放掉,需要經過時間等待計時器設置的時間2MSL后,客戶端才進入CLOSED狀態。
TCP 擁塞控制
TCP 傳輸的過程中,發送端開始發送數據的時候,如果剛開始就發送大量的數據,那么就可能造成一些問題。網絡可能在開始的時候就很擁堵,如果給網絡中在扔出大量數據,那么這個擁堵就會加劇。擁堵的加劇就會產生大量的丟包,就對大量的超時重傳,嚴重影響傳輸。
所以 TCP 引入了慢啟動的機制,在開始發送數據時,先發送少量的數據探路。探清當前的網絡狀態如何,再決定多大的速度進行傳輸。這時候就引入一個叫做擁塞窗口的概念。發送剛開始定義擁塞窗口為 1,每次收到 ACK 應答,擁塞窗口加 1。在發送數據之前,首先將擁塞窗口與接收端反饋的窗口大小比對,取較小的值作為實際發送的窗口。
擁塞窗口的增長是指數級別的。慢啟動的機制只是說明在開始的時候發送的少,發送的慢,但是增長的速度是非常快的。為了控制擁塞窗口的增長,不能使擁塞窗口單純的加倍,設置一個擁塞窗口的閾值,當擁塞窗口大小超過閾值時,不能再按照指數來增長,而是線性的增長。在慢啟動開始的時候,慢啟動的閾值等于窗口的最大值,一旦造成網絡擁塞,發生超時重傳時,慢啟動的閾值會為原來的一半(這里的原來指的是發生網絡擁塞時擁塞窗口的大小),同時擁塞窗口重置為 1。
當輸入的負載到達一定程度,吞吐量不會增加,即一部分網絡資源會丟失掉,網絡的吞吐量維持在其所能控制的最大值,轉發節點的緩存不夠大這造成分組的丟失是擁塞的征兆。
TCP的四種擁塞控制算法:1.慢啟動 2.擁塞控制 3.快重傳 4.快恢復
快重傳、快恢復
“快重傳” ,就是讓發送方盡快重傳丟失報文段,而不是等待超時重傳計時器超時后再重傳。
“快恢復” 主要步驟:
當收到 3 個重復 ACK 時,把 ssthresh 設置為 cwnd 的一半,把 cwnd 設置為 ssthresh 的值加 3,然后重傳丟失的報文段,加3的原因是因為收到 3 個重復的ACK,表明有 3 個“老”的數據包離開了網絡。
再收到重復的 ACK 時,擁塞窗口增加 1。
當收到新的數據包的 ACK 時,把 cwnd 設置為第一步中的 ssthresh 的值。原因是因為該 ACK 確認了新的數據,說明從重復 ACK 時的數據都已收到,該恢復過程已經結束,可以回到恢復之前的狀態了,也即再次進入擁塞避免狀態。
TCP擁塞控制流程圖
網絡應用模型
HTTP協議(Hyper Text Transfer Protocol,超文本傳輸協議)
是一種最基本的客戶機/服務器的訪問協議。瀏覽器向服務器發送請求,而服務器回應相應的網頁,用于從萬維網(WWW:World Wide Web )服務器傳輸超文本到本地瀏覽器的傳送協議。
FTP協議(File Transfer Protocol,文件傳輸協議)
基于客戶服務器模式,FTP協議包括兩個組成部分,其一為FTP服務器,其二為FTP客戶端,提供交互式的訪問 面向連接 ,使用TCP/IP可靠的運輸服務,主要功能:減少/消除不同操作系統下文件的不兼容性。
SMTP 協議(簡單郵件傳送協議,用戶發信到郵件網關的傳輸協議)
面向連接 的Client/Server模式,基本功能:寫信、傳送、報告傳送情況、顯示信件、接收方處理信件。
DNS協議(域名解析協議)
DNS是一種用以將域名轉換為IP地址的Internet服務。
MQ協議(消息隊列)
消息從發送者到接收者的方式也有兩種:
一種我們可以稱為即時消息通訊,也就是說消息從一端發出后(消息發送者)立即就可以達到另一端(消息接收者),這種方式的具體實現就是我們已經介紹過的RPC(當然單純的http通訊也滿足這個定義)
另一種方式稱為延遲消息通訊,即消息從某一端發出后,首先進入一個容器進行臨時存儲,當達到某種條件后,再由這個容器發送給另一端。 這個容器的一種具體實現就是消息隊列。
JDBC協議(Java語言)
利用Tcp/Ip協議,是應用層的協議,和FTP,HTTP同一個級別。DBC(Java DataBase Connectivity, java數據庫連接)是一種用于執行SQL語句的Java API,可以為多種關系數據庫提供統一訪問,它由一組用Java語言編寫的類和接口組成。
DNS 域名解析系統
DNS使用的名稱集合就叫命名空間,與計算計文件夾和文件系統類似,都是劃分為層次且大小寫不敏感,類似于樹狀結構。
當一個用戶在地址欄輸入www.taobao.com時,DNS解析有大致十個過程:
瀏覽器先檢查自身緩存中有沒有被解析過的這個域名對應的 ip 地址,如果有,解析結束。同時域名被緩存的時間也可通過TTL屬性來設置。
如果瀏覽器緩存中沒有(專業點叫還沒命中),瀏覽器會檢查操作系統緩存中有沒有對應的已解析過的結果。而操作系統也有一個域名解析的過程。在 windows 中可通過 c 盤里一個叫hosts的文件來設置,如果你在這里指定了一個域名對應的 ip 地址,那瀏覽器會首先使用這個 ip 地址。
但是這種操作系統級別的域名解析規程也被很多黑客利用,通過修改你的 hosts 文件里的內容把特定的域名解析到他指定的 ip 地址上,造成所謂的域名劫持。所以在 windows 7 中將 hosts 文件設置成了 readonly,防止被惡意篡改。
如果至此還沒有命中域名,才會真正的請求本地域名服務器(LDNS)來解析這個域名,這臺服務器一般在你的城市的某個角落,距離你不會很遠,并且這臺服務器的性能都很好,一般都會緩存域名解析結果,大約 80% 的域名解析到這里就完成了。
如果LDNS仍然沒有命中,就直接跳到 Root Server 域名服務器請求解析。
根域名服務器返回給 LDNS 一個所查詢域的主域名服務器(gTLD Server,國際頂尖域名服務器,如.com .cn .org等)地址。
此時 LDNS 再發送請求給上一步返回的 gTLD。
接受請求的 gTLD 查找并返回這個域名對應的 Name Server 的地址,這 個Name Server 就是網站注冊的域名服務器。
Name Server根據映射關系表找到目標 ip,返回給 LDNS 本地域名服務器。
LDNS 緩存這個域名和對應的 ip 地址。
LDNS 把解析的結果返回給用戶,用戶根據 TTL 值緩存到本地系統緩存中,域名解析過程至此結束。
FTP 文件傳輸協議
FTP工作在TCP/IP模型的應用層,基于的傳輸協議是TCP,FTP客戶端和服務器之間的連接是可靠的,面向連接的,為數據的傳輸提供了可靠的保證。
FTP的主要特征:
控制連接是建立在客戶協議解釋器和服務器協議解釋器之間用于交換命令與應答的通信鏈路。
數據連接是傳輸數據的全雙工連接。傳輸數據可以發生在服務器數據傳輸過程DTP和客戶DTP之間,也可以發生在兩個服務器的DTP之間。
文件類型:
ASCII碼文件類型(默認選擇),以NVT ASCII碼形式通過數據連接傳輸。
EBCDIC文件類型,該文本文件傳輸方式要求兩端都是EBCDIC系統。
圖像文件類型(也成為二進制文件類型),數據發送形式呈現為一個連續的比特流。
數據結構:
文件結構(File Structure)字節流,無結構。
記錄結構(Record Structure)文件被劃分為記錄,用于文本文件。
頁結構(Page Structure)文件被劃分為頁,每頁有頁號和頁頭。可以進行隨機存取或順序存取。
SMTP 郵件傳輸協議
SMTP 是電子郵件傳輸的協議。SMTP 是建立在FTP文件傳輸服務上的一種郵件服務,主要用于系統之間的郵件信息傳遞,并提供有關來信的通知。SMTP協議屬于TCP/IP協議族,它幫助每臺計算機在發送或中轉信件時找到下一個目的地。
SMTP服務器是遵循SMTP協議的郵件服務器,用來發送或中轉電子郵件。首先, 客戶端需要建立一個與SMTP服務器的TCP連接 , 端口一般為25 。在連接建立之后,客戶端和服務器先執行一些應用層的握手操作,讓SMTP服務器知道客戶端的信息,并且對客戶端需求做出響應等。
在SMTP握手階段,客戶端向SMTP服務器分別指定發件人和收件人的電子郵件地址。握手階段完畢,SMTP服務器把客戶端發出的郵件消息添加到發信隊列中,通過TCP提供的可靠數據傳輸服務把該消息準確地傳送到收件人的服務器。
連接和發送過程
(1)首先建立 TCP 連接。
(2)客戶端發送 HELO 命令以標識發件人自己的身份,客戶端發送 MAIL 命令。服務器以 OK 作為響應,表明準備接收。
(3)使用 AUTH 命令登錄 SMTP 服務器,輸入用戶名和密碼(注意,用戶名和密碼都需要 base64 加密)。
(4)客戶端發送 RCPT 命令,標識該電子郵件的計劃接收人,可以有多個 RCPT 行。服務器以 OK 作為響應,表示愿意為收件人發送郵件。
(5)協商結束后,使用 DATA 命令發送。
(6)以 . 號表示結束,輸入內容一起發送出去,結束此次發送,用 QUIT 命令退出。
電子郵件系統組成
電子郵件系統應具有三個主要組成構件,用戶代理、郵件服務器、SMTP 和 POP3
萬維網 和 HTTP 協議
萬維網 概述
萬維網以 C/S 方式,即 客戶/服務器 的方式工作。其中,瀏覽器就是在用戶主機上的萬維網客戶程序。萬維網文檔(web文檔)所駐留的主機則運行服務器程序,如IIS 、Apache、Nginx等。所以這個主機也叫作萬維網服務器或者Web服務器。
當瀏覽器向web服務器發送出對某個Web文檔的請求時,Web服務器返回瀏覽器請求的Web文檔,瀏覽器將該文檔在窗口中顯示出來。Web文檔呈現在瀏覽器窗口中的就是我們所說的網頁和頁面。
超文本傳輸協議 http
超文本傳輸協議(英文:HyperText Transfer Protocol,縮寫:HTTP)是一種用于分布式、協作式和超媒體信息系統的應用層協議。HTTP是萬維網的數據通信的基礎。
HTTP的發展是由蒂姆·伯納斯-李于1989年在歐洲核子研究組織(CERN)所發起。HTTP的標準制定由萬維網協會(World Wide Web Consortium,W3C)和互聯網工程任務組(Internet Engineering Task Force,IETF)進行協調,最終發布了一系列的RFC,其中最著名的是1999年6月公布的 RFC 2616,定義了HTTP協議中現今廣泛使用的一個版本 HTTP 1.1。
HTTP協議概述
HTTP是一個客戶端終端(用戶)和服務器端(網站)請求和應答的標準(TCP)。通過使用網頁瀏覽器、網絡爬蟲或者其它的工具,客戶端發起一個HTTP請求到服務器上指定端口(默認端口為80)。我們稱這個客戶端為用戶代理程序(user agent)。應答的服務器上存儲著一些資源,比如HTML文件和圖像。我們稱這個應答服務器為源服務器(origin server)。在用戶代理和源服務器中間可能存在多個“中間層”,比如代理服務器、網關或者隧道(tunnel)。
HTTP 請求 / 響應 過程
客戶端連接到Web服務:一個HTTP客戶端,通常是瀏覽器,與Web服務器的HTTP端口(默認為80)建立一個TCP套接字連接。當然也有附帶簽名的 https,例如,https://www.baidu.com。
發送HTTP請求:通過TCP套接字,客戶端向Web服務器發送一個文本的請求報文,一個請求報文由請求行、請求頭部、空行和請求數據4部分組成。
服務器接受請求并返回HTTP響應:Web服務器解析請求,定位請求資源。服務器將資源復本寫到TCP套接字,由客戶端讀取。一個響應由狀態行、響應頭部、空行和響應數據4部分組成。
釋放連接TCP連接:若connection 模式為close,則服務器主動關閉TCP連接,客戶端被動關閉連接,釋放TCP連接;若connection 模式為keepalive,則該連接會保持一段時間,在該時間內可以繼續接收請求。
客戶端瀏覽器解析HTML內容:客戶端瀏覽器首先解析狀態行,查看表明請求是否成功的狀態代碼。然后解析每一個響應頭,響應頭告知以下為若干字節的HTML文檔和文檔的字符集。客戶端瀏覽器讀取響應數據HTML,根據HTML的語法對其進行格式化,并在瀏覽器窗口中顯示。
問題:在瀏覽器地址欄鍵入URL,按下回車之后會經歷的流程?
1. 瀏覽器向 DNS 服務器請求解析該 URL 中的域名所對應的 IP 地址; 2. 解析出 IP 地址后,根據該 IP 地址和默認端口 80,和服務器建立TCP連接; 3. 瀏覽器發出讀取文件(URL 中域名后面部分對應的文件)的HTTP 請求,該請求報文作為 TCP 三次握手的第三個報文的數據發送給服務器; 4. 服務器對瀏覽器請求作出響應,并把對應的 html 文本發送給瀏覽器; 5. 釋放 TCP連接; 6. 瀏覽器將該 html 文本并顯示內容;總結
以上是生活随笔為你收集整理的爆干3天整理出来,408考研计算机网络复习笔记(更新中)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 企业面试中关于MYSQL重点的28道面试
- 下一篇: https部署