OSI七層模型
OSI
七層模型包括實體層、資料鍊路層、網絡層、運輸層、會話層、表示層、應用層,其中會話層、表示層、應用層一般統稱為應用層,在
TCP/IP
四層模型中實體層與資料鍊路層歸為網絡接口層,網絡層與運輸層是單獨的層級,會話層、表示層、應用層歸為應用層。
實體層
實體層的主要任務描述為确定與傳輸媒體的接口的一些特性,提供用于建立、保持和斷開實體連接配接的機械的、電氣的、功能的和過程的條件,也就是說實體層提供有關同步和比特流在實體媒體上的傳輸手段。
信号相關概念
- 單向通信,也稱單工通信,隻能有一個方向的通信而沒有反方向的互動。
- 雙向交替通信,也稱半雙工通信,通信的雙方都可以發送資訊,但不能雙方同時發送,也不能同時接收。
- 雙向同時通信,也稱全雙工通信,通信的雙方可以同時發送和接收資訊。
- 基帶信号,即基本頻帶信号,來自信源的信号,像計算機輸出的代表各種文字或圖像檔案的資料信号都屬于基帶信号。
- 帶通信号,把基帶信号經過載波調制後,把信号的頻率範圍搬移到較高的頻段以便在信道中傳輸,即僅在一段頻率範圍内能夠通過信道。
基本二進制調制方法
- 調幅
:載波的振幅随基帶數字信号而變化。AM
- 調頻
:載波的頻率随基帶數字信号而變化。FM
- 調相
:載波的初始相位随基帶數字信号而變化。PM
信道複用
- 頻分複用
: 将用于傳輸信道的總帶寬劃分成若幹個子頻帶或稱為子信道,每一個子信道傳輸FDM
路信号。1
- 時分複用
: 時分複用則是将時間劃分為一段段等長的時分複用幀TDM
幀,每一個時分複用的使用者在每一個TDM
幀中占用固定序号的時隙。TDM
- 統計時分複用
: 根據使用者實際需要動态配置設定線路資源的時分複用方法,隻有當使用者有資料要傳輸時才給他配置設定線路資源。STDM
- 波分複用
: 就是光的頻分複用。WDM
- 碼分複用
: 靠不同的編碼來區分各路原始信号,有碼分多址,頻分多址、時分多址和同步碼分多址等相關技術。CDM
資料鍊路層
資料鍊路層用于建立、維持和拆除鍊路連接配接,實作無差錯傳輸的功能。将比特組合成位元組,再将位元組組合成幀,使用鍊路層位址,在以太網使用
MAC
位址,來通路媒體,并進行差錯檢測。
基本功能
- 封裝成幀: 在一段資料的前後分别添加首部和尾部,然後就構成了一個幀,确定幀的界限。
- 透明傳輸: 當幀中出現控制字元時便插入一個轉義字元,通常采用字元填充或零比特填充的方式。
- 差錯控制: 由于實體線路存在噪聲,可能出現比特差錯,可以采用糾錯碼或檢測碼的方式進行差錯控制,由于糾錯碼較為複雜且攜帶較多備援資訊,一般采用檢測碼配合重傳機制,一般常用檢測碼是循環備援編碼
。CRC
PPP協定
- 簡單
- 封裝成幀
- 透明性
- 多種網絡層協定
- 多種類型鍊路
- 差錯檢測
- 檢測連接配接狀态
- 最大傳送單元
- 網絡層位址協商
- 資料壓縮協商
以太網CSMA/CD協定
- 多點接入: 許多計算機以多點接入的方式連接配接在一根總線上。
- 載波監聽: 每一個站在發送資料之前先要檢測一下總線上是否有其他計算機在發送資料,如果有,則暫時不要發送資料,以免發生碰撞。
- 碰撞檢測: 也稱為沖突檢測,當總線上至少有兩個站同時在發送資料,表明産生了碰撞。
- 半雙工通信: 通信的雙方都可以發送資訊,但不能雙方同時發送,也不能同時接收。
- 争用期: 将端到端往返時延稱為争用期,經過争用期這段時間還沒有檢測到碰撞,就能肯定這次發送不會發生碰撞,以太網取
微秒為争用期。51.2
- 二進制指數類型退避算法: 發生碰撞的站在停止發送資料後,要推遲一個随機時間才能再發送資料。
- 最短有效幀長: 如果發生沖突,就一定是在發送的前
位元組之内,以太網規定凡長度小于64
位元組的幀都是由于沖突而異常中止的無效幀。64
- 透明網橋: 網橋通過自學習和轉發幀以及生成樹算法,記錄
位址和接口資訊,生成轉發表,進而拓展區域網路。MAC
網絡層
網絡層規定了網絡連接配接的建立、維持和拆除的協定,它的主要功能是利用資料鍊路層所提供的相鄰節點間的無差錯資料傳輸功能,通過路由選擇和中繼功能,實作兩個系統之間的連接配接。
采用設計
- 網絡層隻提供簡單靈活的、無連接配接的、盡最大努力傳遞的資料報服務。
- 網絡在發送分組時不需要先建立連接配接。每一個分組即
資料報,獨立發送,與其前後的分組無關,即不進行編号。IP
- 網絡層不提供服務品質的承諾,即所傳送的分組可能出錯、丢失、重複和失序,也不保證分組傳送的時限。
虛電路與電路交換
- 虛電路表示這隻是一條邏輯上的連接配接,分組都沿着這條邏輯連接配接按照存儲轉發方式傳送,而并不是真正建立了一條實體連接配接。
- 電路交換的電話通信是先建立了一條真正的連接配接,是以分組交換的虛連接配接和電路交換的連接配接隻是類似,但并不完全一樣。
虛電路與資料報
對比方面 | 虛電路服務 | 資料報服務 |
---|---|---|
思路 | 可靠通信應當由網絡來保證 | 可靠通信應當由使用者主機來保證 |
建立連接配接 | 必須有 | 不需要 |
終點位址 | 僅在連接配接建立階段使用,每個分組使用短的虛電路号 | 每個分組都有終點的完整位址 |
分組轉發 | 屬于同一條虛電路的分組均按照同一路由進行轉發 | 每個分組獨立選擇路由進行轉發 |
當結點出故障時 | 所有通過出故障的結點的虛電路均不能工作 | 出故障的結點可能會丢失分組,一些路由可能會發生變化 |
分組的順序 | 總是按發送順序到達終點 | 到達終點時不一定按發送順序 |
端到端的差錯處理和流量控制 | 可以由網絡負責,也由使用者主機負責 | 可以由使用者主機負責 |
IP位址分類
-
類位址: 網絡号字段A
為Net-Id
位元組,主機号字段1
Host-Id
位元組。3
-
B
Net-Id
2
Host-Id
2
-
C
Net-Id
3
Host-Id
1
-
類位址: 多點傳播位址。D
-
類位址: 保留為今後使用。E
ARP協定
- 不管網絡層使用的是什麼協定,在實際網絡的鍊路上傳送資料幀時,最終還是必須使用硬體``MAC`位址。
- 每一個主機都設有一個
高速緩存,裡面有所在的區域網路上的各主機和路由器的ARP
位址到硬體IP
位址的映射表。MAC
-
是解決同一個區域網路上的主機或路由器的ARP
位址和硬體IP
位址的映射問題。MAC
ICMP協定
ICMP
封包的種類有兩種,即
ICMP
差錯報告封包和
ICMP
詢問封包。
ICMP
協定主要用于在主機與路由器之間傳遞控制資訊,包括報告錯誤、交換受限控制和狀态資訊等。當遇到
IP
資料無法通路目标、
IP
路由器無法按目前的傳輸速率轉發資料包等情況時,會自動發送
ICMP
消息,
ping
指令就是基于
ICMP
協定。
劃分子網方式
- 從主機号借用若幹個位作為子網号
,而主機号Subnet-id
也就相應減少了若幹個位。Host-Id
- 使用子網路遮罩辨別将
位址劃分成網絡位址和主機位址兩部分。IP
- 使用無分類域間路由選擇
,在CIDR
位址後面加上一個斜線IP
,然後寫上網絡字首所占的位數,将網絡字首都相同的連續的/
位址組成IP
位址塊。CIDR
路由協定
- 内部網關協定
,即在一個自治系統内部使用的路由選擇協定,目前這類路由選擇協定使用得最多,如IGP
和RIP
OSPF
- 外部網關協定
,若源站和目的站處在不同的自治系統中,當資料報傳到一個自治系統的邊界時,就需要使用一種協定将路由選擇資訊傳遞到另一個自治系統中,這樣的協定就是外部網關協定EGP
,在外部網關協定中目前使用最多的是EGP
BGP-4
RIP協定
- 僅和相鄰路由器交換資訊。
- 交換的資訊是目前本路由器所知道的全部資訊,即自己的路由表。
- 按固定的時間間隔交換路由資訊。
-
存在的一個問題是當網絡出現故障時,要經過比較長的時間才能将此資訊傳送到所有的路由器。RIP
-
協定最大的優點就是實作簡單,開銷較小。RIP
-
限制了網絡的規模,它能使用的最大距離為RIP
,15
表示不可達。路由器之間交換的路由資訊是路由器中的完整路由表,因而随着網絡規模的擴大,開銷也就增加。16
OSPF協定
- 向本自治系統中所有路由器發送資訊,這裡使用的方法是洪泛法。
- 發送的資訊就是與本路由器相鄰的所有路由器的鍊路狀态,但這隻是路由器所知道的部分資訊,鍊路狀态就是說明本路由器都和哪些路由器相鄰,以及該鍊路的度量。
- 隻有當鍊路狀态發生變化時,路由器才用洪泛法向所有路由器發送此資訊。
- 由于各路由器之間頻繁地交換鍊路狀态資訊,是以所有的路由器最終都能建立一個鍊路狀态資料庫。
- 這個資料庫實際上就是全網的拓撲結構圖,它在全網範圍内是一緻的,這稱為鍊路狀态資料庫的同步。
-
的鍊路狀态資料庫能較快地進行更新,使各個路由器能及時更新其路由表。OSPF
的更新過程收斂得快是其重要優點。OSPF
-
規定每隔一段時間重新整理一次資料庫中的鍊路狀态。OSPF
-
沒有壞消息傳播得慢的問題。OSPF
- 一個路由器的鍊路狀态隻涉及到與相鄰路由器的連通狀态,因而與整個網際網路的規模并無直接關系,當網際網路規模很大時,
協定表現要比距離向量協定OSPF
好。RIP
BGP協定
-
是不同自治系統的路由器之間交換路由資訊的協定。BGP
- 每一個自治系統的管理者要選擇至少一個路由器作為該自治系統的
發言人。BGP
- 一個
發言人與其他自治系統中的BGP
發言人要交換路由資訊,就要先建立BGP
連接配接,然後在此連接配接上交換TCP
封包以建立BGP
會話,利用BGP
會話交換路由資訊。BGP
- 使用
連接配接能提供可靠的服務,也簡化了路由選擇協定。TCP
-
連接配接交換路由資訊的兩個TCP
發言人,彼此成為對方的鄰站或對等站。BGP
内網IP段
-
類:A
10.0.0.0 - 10.255.255.255
-
B
172.16.0.0 - 172.31.255.255
-
C
192.168.0.0 - 192.168.255.255
運輸層
運輸層完成網絡各層次之間的資料傳送控制,主要功能是開放系統之間的資料的收發确認,同時還用于彌補各種通信網絡的品質差異,對經過下三層之後仍然存在的傳輸差錯進行恢複,進一步提高可靠性,另外,還通過複用、分段群組合、連接配接和分離、分流和合流等技術措施,提高吞吐量和服務品質。
TCP協定
-
是面向連接配接的協定,提供全雙工通信,需要建立連結之後再傳輸資料,資料傳輸負載相對較大。TCP
-
提供可靠傳遞的服務,使用流量控制和擁塞控制等服務保證可靠通信。TCP
-
首部最小TCP
位元組,最大20
位元組,包括源端口、目的端口、序号、确認号、資料偏移、控制标志、視窗、校驗和、緊急指針、選項等資訊。60
-
隻能是一對一通信。TCP
-
面向位元組流通信。TCP
-
保證資料傳輸的順序,通過給TCP
連接配接中傳送資料流的每個位元組都編上序号來确定傳輸順序。TCP
-
提供校驗和、确認應答、序列号、逾時重傳、連接配接管理、流量控制、擁塞控制等功能。TCP
-
适用于要求可靠傳輸的應用,如檔案傳輸等TCP
三次握手
client server
主動打開 → SYN=1,seq=x → 被動打開,接收
(同步已發送) (同步收到)
接收 ← SYN=1,ACK=1,seq=y,ack=x+1 ← 發送
(已建立連結) (同步收到)
發送 → ACK=1,seq=x+1,ack=y+1 → 接收
(已建立連結) (已建立連結)
- 第一次握手:用戶端主動連結伺服器,發送初始序列号
與seq=x
同步請求标志,并進入同步已發送SYN=1
狀态,等待伺服器确認。SYN_SENT
- 第二次握手:服務端收到消息後發送确認标志
與同步請求标志ACK=1
,發送自己的序列号SYN=1
以及用戶端确認序号seq=y
,此時伺服器進入同步收到ack=x+1
狀态。SYN_RECV
- 第三次握手:用戶端收到消息後發送确認标志
ACK=1
與伺服器确認号seq=x+1
,發送過後即确認連結已建立狀态ack=y+1
,服務端接收确認資訊後進傳入連結接已建立狀态ESTABLISHED
ESTABLISHED
四次揮手
client server
主動關閉 → FIN=1,seq=u → 被動關閉,接收
(終止等待1) (關閉等待)
接收 ← ACK=1,seq=v,ack=u+1 ← 發送
(終止等待2) (關閉等待)
接收 ← FIN=1,ACK=1,seq=w,ack=u+1 ← 發送
(時間等待) (最後确認)
發送 → ACK=1,seq=u+1,ack=w+1 → 接收
(時間等待 2MSL 關閉) (關閉)
- 第一次揮手:用戶端發出釋放辨別
,自己的序列号FIN=1
,進入終止等待seq=u
狀态FIN-WAIT-1
- 第二次揮手:服務端收到消息後發出
确認标志和用戶端的确認号ACK=1
ack=u+1
,進入關閉等待seq=v
狀态,用戶端收到消息後進入終止等待CLOSE-WAIT
FIN-WAIT-2
- 第三次揮手:伺服器發送釋放辨別
信号,确認标志FIN=1
,确認序号ACK=1
ack=u+1
,伺服器進入最後确認seq=w
LAST-ACK
- 第四次揮手:用戶端收到回複後,發送确認标志
ACK=1
ack=w+1
,用戶端進入時間等待seq=u+1
狀态,經過TIME-WAIT
個最長封包段壽命後,用戶端2
。伺服器收到确認後,立刻進入CLOSE
CLOSE
傳輸控制
- 流量控制: 利用滑動視窗實作流量控制,讓發送方的發送速率不要太快,既要讓接收方來得及接收,也不要使網絡發生擁塞。
- 擁塞控制
- 慢開始,隻要網絡沒有出現擁塞,擁塞視窗就再增大一些,以便把更多的分組發送出去,但隻要網絡出現擁塞,擁塞視窗就減小一些,以減少注入到網絡中的分組數。
- 擁塞避免,無論在慢開始階段還是在擁塞避免階段,隻要發送方判斷網絡出現擁塞,就要把慢開始門限設定為出現擁塞時的發送方視窗值的一半。
- 快重傳: 首先要求接收方每收到一個失序的封包段後就立即發出重複确認,這樣做可以讓發送方及早知道有封包段沒有到達接收方,發送方隻要一連收到三個重複确認就應當立即重傳對方尚未收到的封包段。
- 快恢複: 當發送端收到連續三個重複的确認時,就執行乘法減小算法,把慢開始門限減半,但接下去不執行慢開始算法,而是設定為慢開始門限減半後的數值,然後開始執行擁塞避免算法加法增大,使擁塞視窗緩慢地線性增大。
- 逾時重傳: 一般使用
算法,當計算平均往返時延Karn
時,隻要封包段重傳了,就不采用其往返時間樣本,這樣得出的權重平均平均往返時間RTT
和逾時重傳時間RTT
就較準确。RTO
連續ARQ協定
- 接收方一般采用累積确認的方式。即不必對收到的分組逐個發送确認,而是對按序到達的最後一個分組發送确認,這樣就表示:到這個分組為止的所有分組都已正确收到了。
- 累積确認有的優點是:容易實作,即使确認丢失也不必重傳。缺點是:不能向發送方反映出接收方已經正确收到的所有分組的資訊。
UDP協定
-
是無連接配接的,即發送資料之前不需要建立連接配接,資料傳輸負載相對較小。UDP
-
使用盡最大努力傳遞,即不保證可靠傳遞,同時也不使用流量控制和擁塞控制。UDP
-
首部UDP
位元組,包括源端口、目的端口、長度、校驗和資訊。8
-
具有單點傳播、多點傳播、廣播的功能,支援一對一、一對多、多對多、多對一的資料傳輸方式。UDP
-
是面向封包通信,對應用層交下來的封包,既不合并,也不拆分,而是保留這些封包的邊界,在添加首部後就向下傳遞UDP
層。IP
-
不保證資料傳輸的順序,需要應用層程式在資料段加入序号等方式控制順序。UDP
-
隻在UDP
的資料報服務之上增加了很少一點的功能,即端口的功能和差錯檢測的功能。IP
-
适用于實時應用,如網絡電話、視訊會議、直播等UDP
應用層
一般将會話層、表示層、應用層歸為為應用層。
會話層
會話層依靠傳輸層以下的通信功能使資料傳送功能在開放系統間有效地進行。其主要功能是按照在應用程序之間的約定,按照正确的順序收發資料,進行各種形式的對話。控制方式可以歸納為以下兩類:一是為了在會話應用中易于實作接受處理和發送處理的逐次交替變換,設定某一時刻隻有一端發送資料。是以需要有交替改變發信端的傳送控制。二是在類似檔案傳送等單方向傳送大量資料的情況下,為了防備應用進行中出現意外,在傳送資料的過程中需要給資料記上标記。當出現意外時,可以由記标記處重發。例如可以将長檔案分頁發送,當收到上頁的接受确認後,再發下頁的内容。
表示層
表示層的主要功能是把應用層提供的資訊變換為能夠共同了解的形式,提供字元代碼、資料格式、控制資訊格式、加密等的統一表示,表示層僅對應用層資訊内容的形式進行變換,而不改變其内容本身。
應用層是
OSI
參考模型的最高層,其功能是實作應用程序之間的資訊交換,同時還具有一系列業務處理所需要的服務功能。
常見應用層協定
-
協定: 域名服務協定,将域名位址轉換為DNS
位址,域名解析查詢時通常使用IP
傳輸資料,預設端口UDP
,在區域傳輸資料同步時一般使用53
傳輸資料。TCP
-
協定: 檔案傳輸協定,提供互動式的通路,允許客戶指明檔案的類型與格式,并允許檔案具有存取權限,使用FTP
進行資料傳輸,控制資訊預設TCP
端口,主動模式下資料傳輸預設21
端口,被動模式下預設伺服器與用戶端協商在20
之間的端口。39000-40000
-
協定: 簡單檔案傳送協定,很小且易于實作的檔案傳送協定,使用TFTP
傳輸資料,預設UDP
端口。69
-
協定: 遠端終端協定,簡單的遠端終端協定,明文傳輸協定,使用TELNET
TCP
23
-
協定: 安全外殼協定,提供安全的遠端終端會話,使用SSH
TCP
22
-
協定: 超文本傳輸協定,簡單的請求響應協定,使用HTTP
TCP
80
-
協定: 超文本傳輸安全協定,在HTTPS
協定的基礎下加入HTTP
層實作加密傳輸,使用SSL
TCP
443
-
協定: 簡單郵件傳輸協定,提供可靠且有效的電子郵件傳輸的協定,使用SMTP
TCP
25
-
協定: 郵局協定,簡單的郵件讀取協定,使用POP3
TCP
110
-
協定: 互動郵件通路協定,互動式進行郵件的通路,使用IMAP
TCP
143
-
協定: 動态主機配置協定,用于動态配置設定DHCP
位址,使用IP
傳輸資料,用戶端發送到UDP
伺服器預設DHCP
端口,67
伺服器應答用戶端預設DHCP
68
-
協定: 簡單網絡管理協定,用于SNMP
網絡管理的協定,使用IP
傳輸資料,預設代理端口UDP
與管理站端口161
162
每日一題
https://github.com/WindrunnerMax/EveryDay