Linux下套接字详解(补充)--OSI七层与TCP/IP五层网络架构详解
OSI七層模型
OSI是Open System Interconnect的縮寫,意為開放式系統互聯。
OSI是Open System Interconnect的縮寫,意為開放式系統互聯。
OSI七層參考模型的各個層次的劃分遵循下列原則:
-
根據不同層次的抽象分層
-
每層應當有一個定義明確的功能
-
每層功能的選擇應該有助于制定網絡協議的國際標準。
-
各層邊界的選擇應盡量節省跨過接口的通信量。
-
層數應足夠多,以避免不同的功能混雜在同一層中,但也不能太多,否則體系結構會過于龐大
-
同一層中的各網絡節點都有相同的層次結構,具有同樣的功能。
-
同一節點內相鄰層之間通過接口(可以是邏輯接口)進行通信。
-
七層結構中的每一層使用下一層提供的服務,并且向其上層提供服務。
-
不同節點的同等層按照協議實現對等層之間的通信。
根據以上標準,OSI參考模型分為物理層、數據鏈路層、網絡層、傳輸層、會話層、表示層、應用層。
物理層涉及在信道上傳輸的原始比特流。
數據鏈路層的主要任務是加強物理層傳輸原始比特流的功能,使之對應的網絡層顯現為一條無錯線路。發送包把輸入數據封裝在數據幀,按順序傳送出去并處理接收方回送的確認幀。
網絡層關系到子網的運行控制,其中一個關鍵問題是確認從源端到目的端如何選擇路由。
傳輸層的基本功能是從會話層接收數據而且把其分成較小的單元傳遞給網絡層。
會話層允許不同機器上的用戶建立會話關系。
表示層用來完成某些特定的功能。
應用層包含著大量人們普遍需要的協議。
| 應用層 | 用戶接口、應用程序(文件傳輸,電子郵件,文件服務,虛擬終端) | 網關 | TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet |
| 表示層 | 數據的表示、壓縮和加密(數據格式化,代碼轉換,數據加密) | 網關 | 沒有協議 |
| 會話層 | 會話的建立和結束(解除或建立與別的接點的聯系) | 網關 | 沒有協議 |
| 傳輸層 | 提供端對端的接口 | 網關 | TCP,UDP |
| 網絡層 | 為數據包選擇路由,尋址 | 路由器 | IP,ICMP,RIP,OSPF,BGP,IGMP |
| 數據鏈路層 | 保證誤差錯的數據鏈路,傳輸有地址的幀以及錯誤檢測功能 | 交換機、網橋、網卡 | SLIP,CSLIP,PPP,ARP,RARP,MTU |
| 物理層 | 傳輸比特流,以二進制數據形式在物理媒體上傳輸數據 | 集線器、中繼器 | ISO2110,IEEE802,IEEE802.2 |
七層模型的每一層都具有清晰的特征。基本來說,第七至第四層處理數據源和數據目的地之間的端到端 通信,而第三至第一層處理網絡設備間的通信。
另外,OSI模型的七層也可以劃分為兩組:上層(層7、層6和層5)和下層(層4、層3、層2和層 1)。
OSI模型的上層處理應用程序問題,并且通常只應用在軟件上。最高層,即應用層是與終端用戶最接近的。
OSI模型的下層是處理數據 傳輸的。物理層和數據鏈路層應用在硬件和軟件上。最底層,即物理層是與物理網絡媒介(比如說,電線)最接近的,并且負責在媒介上發送
第7層-應用層
- 定義了用于在網絡中進行通信和數據傳輸的接口 - 用戶程式;
- 提供標準服務,比如虛擬終端、文件以及任務的傳輸和處 理;
應用層為操作系統或網絡應用程序提供訪問網絡服務的接口。應用層協議的代表包括:Telnet、FTP、HTTP、SNMP等。
第6層-表示層
- 掩蓋不同系統間的數據格式的不同性;
- 指定獨立結構的數據傳輸格式;
- 數據的編碼和解碼;加密和解密; 壓縮和解壓縮
這一層主要解決擁護信息的語法表示問題。它將欲交換的數據從適合于某一用戶的抽象語法,轉換為適合于OSI系統內部使用的傳送語法。即提供格式化的表示和轉換數據服務。數據的壓縮和解壓縮, 加密和解密等工作都由表示層負責。
第5層-會話層
- 管理用戶會話和對話;
- 控制用戶間邏輯連接的建立和掛斷;
- 報告上一層發生的錯誤
這一層也可以稱為會晤層或對話層,在會話層及以上的高層次中,數據傳送的單位不再另外命名,而是統稱為報文。會話層不參與具體的傳輸,它提供包括訪問驗證和會話管理在內的建立和維護應用之間通信的機制。如服務器驗證用戶登錄便是由會話層完成的。
第4層-處理信息的傳輸層
- 管理網絡中端到端的信息傳送;
- 通過錯誤糾正和流控制機制提供可靠且有序的數據包傳送;
- 提供面向無連 接的數據包的傳送;
第4層的數據單元也稱作數據包(packets)。但是,當你談論TCP等具體的協議時又有特殊的叫法,TCP的數據單元稱為段 (segments)而UDP協議的數據單元稱為“數據報(datagrams)”。這個層負責獲取全部信息,因此,它必須跟蹤數據單元碎片、亂序到達的 數據包和其它在傳輸過程中可能發生的危險。第4層為上層提供端到端(最終用戶到最終用戶)的透明的、可靠的數據傳輸服務。所為透明的傳輸是指在通信過程中 傳輸層對上層屏蔽了通信傳輸系統的具體細節。傳輸層協議的代表包括:TCP、UDP、SPX等。
第3層-網絡層
- 定義網絡設備間如何傳輸數據;
- 根據唯一的網絡設備地址路由數據包;
- 提供流和擁塞控制以防止網絡資源 的損耗
在 計算機網絡中進行通信的兩個計算機之間可能會經過很多個數據鏈路,也可能還要經過很多通信子網。網絡層的任務就是選擇合適的網間路由和交換結點, 確保數據及時傳送。網絡層將數據鏈路層提供的幀組成數據包,包中封裝有網絡層包頭,其中含有邏輯地址信息- -源站點和目的站點地址的網絡地址。如 果你在談論一個IP地址,那么你是在處理第3層的問題,這是“數據包”問題,而不是第2層的“幀”。IP是第3層問題的一部分,此外還有一些路由協議和地 址解析協議(ARP)。有關路由的一切事情都在這第3層處理。地址解析和路由是3層的重要目的。網絡層還可以實現擁塞控制、網際互連等功能。在這一層,數據的單位稱為數據包(packet)。網絡層協議的代表包括:IP、IPX、RIP、OSPF等。
第2層-數據鏈路層(DataLinkLayer):
- 定義操作通信連接的程序;
- 封裝數據包為數據幀;
- 監測和糾正數據包傳輸錯誤
在物理層提供比特流服務的基礎上,建立相鄰結點之間的數據鏈路,通過差錯控制提供數據幀(Frame)在信道上無差錯的傳輸,并進行各電路上的動作系列。數據鏈路層在不可靠的物理介質上提供可靠的傳輸。該層的作用包括:物理地址尋址、數據的成幀、流量控制、數據的檢錯、重發等。在這一層,數據的單位稱為幀(frame)。數據鏈路層協議的代表包括:SDLC、HDLC、PPP、STP、幀中繼等。
第1層-物理層(PhysicalLayer)
- 定義通過網絡設備發送數據的物理方式;
- 作為網絡媒介和設備間的接口;
- 定義光學、電氣以及機械特性。
規定通信設備的機械的、電氣的、功能的和過程的特性,用以建立、維護和拆除物理鏈路連接。具體地講,機械 特性規定了網絡連接時所需接插件的規格尺寸、引腳數量和排列情況等;電氣特性規定了在物理連接上傳輸bit流時線路上信號電平的大小、阻抗匹配、傳輸速率 距離限制等;功能特性是指對各個信號先分配確切的信號含義,即定義了DTE和DCE之間各個線路的功能;規程特性定義了利用信號線進行bit流傳輸的一組 操作規程,是指在物理連接的建立、維護、交換信息是,DTE和DCE雙放在各電路上的動作系列。在這一層,數據的單位稱為比特(bit)。屬于物理層定義的典型規范代表包括:EIA/TIA RS-232、EIA/TIA RS-449、V.35、RJ-45等。
TCP/IP
TCP/IP(Transmission Control Protocol/Internet Protocol,傳輸控制協議/網間網協議)是目前世界上應用最為廣泛的協議,它的流行與Internet的迅猛發展密切相關—TCP/IP最初是為互聯網的原型ARPANET所設計的,目的是提供一整套方便實用、能應用于多種網絡上的協議,事實證明TCP/IP做到了這一點,它使網絡互聯變得容易起來,并且使越來越多的網絡加入其中,成為Internet的事實標準。
TCP/IP協議族包含了很多功能各異的子協議。為此我們也利用上文所述的分層的方式來剖析它的結構。TCP/IP層次模型共分為四層:應用層、傳輸層、網絡層、數據鏈路層。
| 數據鏈路層 | ARP,RARP |
| 網絡層 | IP,ICMP,IGMP |
| 傳輸層 | TCP ,UDP,UGP |
| 應用層 | Telnet,FTP,SMTP,SNMP |
TCP(Transmission Control Protocol)和UDP(User Datagram Protocol)協議屬于傳輸層協議。其中TCP提供IP環境下的數據可靠傳輸,它提供的服務包括數據流傳送、可靠性、有效流控、全雙工操作和多路復用。通過面向連接、端到端和可靠的數據包發送。通俗說,它是事先為所發送的數據開辟出連接好的通道,然后再進行數據發送;而UDP則不為IP提供可靠性、流控或差錯恢復功能。一般來說,TCP對應的是可靠性要求高的應用,而UDP對應的則是可靠性要求低、傳輸經濟的應用。
應用層
應用層是所有用戶所面向的應用程序的統稱。ICP/IP協議族在這一層面有著很多協議來支持不同的應用,許多大家所熟悉的基于Internet的應用的實現就離不開這些協議。如我們進行萬維網(WWW)訪問用到了HTTP協議、文件傳輸用FTP協議、電子郵件發送用SMTP、域名的解析用DNS協議、遠程登錄用Telnet協議等等,都是屬于TCP/IP應用層的;就用戶而言,看到的是由一個個軟件所構筑的大多為圖形化的操作界面,而實際后臺運行的便是上述協議。
傳輸層
這一層的的功能主要是提供應用程序間的通信,TCP/IP協議族
在這一層的協議有TCP和UDP。
網絡層
TCP/IP協議族中非常關鍵的一層,主要定義了IP地址格式,從而能夠使得不同應用類型的數據在Internet上通暢地傳輸,IP協議就是一個網絡層協議。
網絡接口層
這是TCP/IP軟件的最低層,負責接收IP數據包并通過網絡發送之,或者從網絡上接收物理幀,抽出IP數據報,交給IP層。
TCP支持的應用協議主要有:Telnet、FTP、SMTP等;UDP支持的應用層協議主要有:NFS(網絡文件系統)、SNMP(簡單網絡管理協議)、DNS(主域名稱系統)、TFTP(通用文件傳輸協議)等。
TCP/IP協議與低層的數據鏈路層和物理層無關,這也是TCP/IP的重要特點。
區別與聯系
除了層的數量之外,開放式系統互聯(OSI)模型與TCP/IP協議有什么區別?
開放式系統互聯模型是一個參考標準,解釋協議相互之間應該如何相互作用。TCP/IP協議是美國國防部發明的,是讓互聯網成為了目前這個樣子的標準之一。開放式系統互聯模型中沒有清楚地描繪TCP/IP協議,但是在解釋TCP/IP協議時很容易想到開放式系統互聯模型。兩者的主要區別如下:
TCP/IP協議中的應用層處理開放式系統互聯模型中的第五層、第六層和第七層的功能。
TCP/IP協議中的傳輸層并不能總是保證在傳輸層可靠地傳輸數據包,而開放式系統互聯模型可以做到。TCP/IP協議還提供一項名為UDP(用戶數據報協議)的選擇。UDP不能保證可靠的數據包傳輸。
轉載:http://blog.csdn.net/gatieme/article/details/50858920
總結
以上是生活随笔為你收集整理的Linux下套接字详解(补充)--OSI七层与TCP/IP五层网络架构详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: RESTful Web Service
- 下一篇: 产品经理,如何建立自己独特的产品观?(转