some recource come from network, thanks all this people!
OSI 7 層模型:
在傳輸層的數據叫段,網絡層叫包,數據鏈路層叫幀,物理層叫比特流,這樣的叫法叫PDU(協議數據單元)。
每層封裝後的數據單元的叫法不同,
在應用層、表示層、會話層的協議數據單元統稱爲data(數據),
在傳輸層協議數據單元稱爲segment(數據段),
在網絡層稱爲packet(數據包),
數據鏈路層協議數據單元稱爲frame(數據幀),
在物理層叫做bits(比特流)
分層的好處是利用層次結構可以把開放系統的信息交換問題分解到一系列容易控制的軟硬件模塊-層中,
而各層可以根據需要獨立進行修改或擴充功能,
同時,有利於個不同製造廠家的設備互連,也有利於大家學習、理解數據通訊網絡。
OSI參考模型中不同層完成不同的功能,各層相互配合通過標準的接口進行通信。
第7層應用層:OSI中的最高層。爲特定類型的網絡應用提供了訪問OSI環境的手段。
應用層確定進程之間通信的性質,以滿足用戶的需要。
應用層不僅要提供應用進程所需要的信息交換和遠程操作,而且還要作爲應用進程的用戶代理,
來完成一些爲進行信息交換所必需的功能。
它包括:文件傳送訪問和管理FTAM、虛擬終端VT、事務處理TP、遠程數據庫訪問RDA、製造報文規範MMS、目錄服務DS等協議;
應用層能與應用程序界面溝通,以達到展示給用戶的目的。
在此常見的協議有:HTTP,HTTPS,FTP,TELNET,SSH,SMTP,POP3等。
第6層表示層:主要用於處理兩個通信系統中交換信息的表示方式。
爲上層用戶解決用戶信息的語法問題。它包括數據格式交換、數據加密與解密、數據壓縮與終端類型的轉換。
第5層會話層:在兩個節點之間建立端連接。
爲端系統的應用程序之間提供了對話控制機制。此服務包括建立連接是以全雙工還是以半雙工的方式進行設置,
儘管可以在層4中處理雙工方式 ;會話層管理登入和註銷過程。它具體管理兩個用戶和進程之間的對話。
如果在某一時刻只允許一個用戶執行一項特定的操作,會話層協議就會管理這些操作,如阻止兩個用戶同時更新數據庫中的同一組數據。
第4層傳輸層:—常規數據遞送-面向連接或無連接。
爲會話層用戶提供一個端到端的可靠、透明和優化的數據傳輸服務機制。
包括全雙工或半雙工、流控制和錯誤恢復服務;
傳輸層把消息分成若干個分組,並在接收端對它們進行重組。
不同的分組可以通過不同的連接傳送到主機。
這樣既能獲得較高的帶寬,又不影響會話層。
在建立連接時傳輸層可以請求服務質量,該服務質量指定可接受的誤碼率、延遲量、安全性等參數,
還可以實現基於端到端的流量控制功能。
第3層網絡層:本層通過尋址來建立兩個節點之間的連接,
爲源端的運輸層送來的分組,選擇合適的路由和交換節點,
正確無誤地按照地址傳送給目的端的運輸層。
它包括通過互連網絡來路由和中繼數據 ;除了選擇路由之外,
網絡層還負責建立和維護連接,控制網絡上的擁塞以及在必要的時候生成計費信息。常用設備有交換機;
第2層數據鏈路層:在此層將數據分幀,並處理流控制。
屏蔽物理層,爲網絡層提供一個數據鏈路的連接,在一條有可能出差錯的物理連接上,進行幾乎無差錯的數據傳輸(差錯控制)。
本層指定拓撲結構並提供硬件尋址。常用設備有網卡、網橋、交換機;
第1層物理層:處於OSI參考模型的最底層。
物理層的主要功能是利用物理傳輸介質爲數據鏈路層提供物理連接,以便透明的傳送比特流。
常用設備有(各種物理設備)集線器、中繼器、調制解調器、網線、雙絞線、同軸電纜。
數據發送時,從第七層傳到第一層,接收數據則相反。
上三層總稱應用層,用來控制軟件方面。下四層總稱數據流層,用來管理硬件。除了物理層之外其他層都是用軟件實現的。
數據在發至數據流層的時候將被拆分。
在傳輸層的數據叫段,網絡層叫包,數據鏈路層叫幀,物理層叫比特流,這樣的叫法叫PDU(協議數據單元)[2]
上面我們簡單的說明了7層體系的OSI參考模型,爲了方便起見,我們常常把上面的7個層次分爲低層與高層。
低層爲1~3層,是面向通信的,高層爲4~7層,是面向信息處理的。
OSI是一個定義良好的協議規範集,並有許多可選部分完成類似的任務。
它定義了開放系統的層次結構、層次之間的相互關係以及各層所包括的可能的任務。是作爲一個框架來協調和組織各層所提供的服務。
OSI參考模型並沒有提供一個可以實現的方法,而是描述了一些概念,用來協調進程間通信標準的制定。
即OSI參考模型並不是一個標準,而是一個在制定標準時所使用的概念性框架。
TCP/IP 四層模型: 實際使用的
當用戶輸入要瀏覽的網站信息後就由應用層產生相關的數據,
通過表示層轉換成爲計算機可識別的ASCII碼,再由會話層產生相應的主機進程傳給傳輸層。
傳輸層將以上信息作爲數據並加上相應的端口號信息以便目的主機辨別此報文,得知具體應由本機的哪個任務來處理;
在網絡層加上IP地址使報文能確認應到達具體某個主機,再在數據鏈路層加上MAC地址,轉成bit流信息,
從而在網絡上傳輸。報文在網絡上被各主機接收,通過檢查報文的目的MAC地址判斷是否是自己需要處理的報文,
如果發現MAC地址與自己不一致,則丟棄該報文,一致就去掉MAC信息送給網絡層判斷其IP地址;
然後根據報文的目的端口號確定是由本機的哪個進程來處理,這就是報文的解封裝過程。
應用層:Telnet,FTP,SMTP,SNMP.
傳輸層:TCP ,UDP,UGP
互聯網層: IP,ICMP,IGMP
網絡接口層:ARP,RARP
client:
socket(),setsockopt(),fcntl(),iocntl()
|
|
connect()
|
|
read(),write(),recv(),send(),recvfrom(),sendto(),writev()
|
|
data Processing
server:
socket(),setsockopt(),fcntl(),iocntl()
|
|
bind()
|
|
accept(), select(), poll(), epoll
|
|
read(),write(),recv(),send(),recvfrom(),sendto(),writev()
|
|
data Processing
對比:
OSI TCP/IP
┌─────┐
│ 應用層 │←第七層
├─────┤
│ 表示層 │ 應用層
├─────┤
│ 會話層 │
├─────┤-----------------------------------------
│ 傳輸層 │ 傳輸層
├─────┤-----------------------------------------
網絡層 │ IP層
├─────┤-----------------------------------------
│數據鏈路層│
├─────┤ 網絡接口層
│ 物理層 │←第一層
└─────┘