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