linux網絡編程系列(一)--OSI七層模型和TCP-IP四層模型

1. ISO七層網絡模型

爲使不一樣計算機廠家之間的計算機可以互相通訊,以便在更大的範圍內創建計算機網絡,國際標準化組織ISO在1981年正式推出了一個網絡系統結構--OSI七層網絡模型,此後各大計算機廠商迅速向它靠攏,大大推進了計算機網絡的發展。 OSI七層網絡模型分別是:應用層、表示層、會話層、傳輸層、網絡層、數據鏈路層、物理層。算法

1.1 應用層

應用層是最靠近用戶的OSI層,這一層爲用戶的應用程序(例如電子郵件、文件傳輸和終端仿真)提供網絡服務,主要負責對軟件提供接口以使程序能使用網絡服務,從實現上講,其實就是使用了特定的端口號和特定的數據格式封裝了tcp或者udp,從而產生了應用層協議。安全

1.2 表示層

表示層是應用程序和網絡之間的翻譯官,可確保一個系統的應用層所發送的信息能夠被另外一個系統的應用層讀取。在表示層,數據將按照網絡能理解的方案進行格式化,這種格式化也因所使用網絡的類型不一樣而不一樣。例如,PC程序與另外一臺計算機進行通訊,其中一臺計算機使用擴展二一十進制交換碼(EBCDIC),而另外一臺則使用美國信息交換標準碼(ASCII)來表示相同的字符,若有必要,表示層會經過使用一種通用格式來實現多種數據格式之間的轉換。 一些典型的應用以下:服務器

  • 數據的解密與加密,如系統口令的處理;
  • 對圖片和文件格式信息進行解碼和編碼;

1.3 會話層

會話層負責在網絡中的兩節點之間創建、維持和終止通訊。會話層的功能包括:創建通訊鏈接,保持會話過程通訊鏈接的暢通,同步兩個節點之間的對話,決定通訊是否被中斷以及通訊中斷時從何處開始從新發送。你可能經常聽到有人把會話層稱做網絡通訊的「交通警察」。當經過撥號向你的 ISP (因特網服務提供商)請求鏈接到因特網時,ISP 服務器上的會話層向你與你的PC客戶機上的會話層進行協商鏈接。若你的電話線偶然從牆上插孔脫落時,你終端機上的會話層將檢測到鏈接中斷並從新發起鏈接。網絡

1.4 傳輸層

傳輸層是OSI七層模型中最重要的一層,傳輸協議同時進行流量控制或是基於接收方可接收數據的快慢程度規定適當的發送速率。除此以外,傳輸層按照網絡能處理的最大尺寸將較長的數據包進行強制分割。例如,以太網沒法接收大於1 5 0 0 字節的數據包,發送方節點的傳輸層將數據分割成較小的數據片,同時對每一數據片安排一個序列號,以便數據到達接收方節點的傳輸層時,能以正確的順序重組。該過程即被稱爲排序。工做在傳輸層的一種服務是 T C P / I P 協議套中的T C P (傳輸控制協議),另外一項傳輸層服務是I P X / S P X 協議集的S P X (序列包交換)。ssh

1.5 網絡層

網絡層主要功能是將網絡地址翻譯成對應的物理地址,並決定如何將數據從發送方路由到接收方。網絡層經過綜合考慮發送優先權、網絡擁塞程度、服務質量以及可選路由的花費來決定從一個網絡中節點A 到另外一個網絡中節點B的最佳路徑。因爲網絡層處理,並智能指導數據傳送,路由器鏈接網絡各段,因此路由器屬於網絡層。在網絡中,「路由」是基於編址方案、使用模式以及可達性來指引數據的發送。 網絡層負責在源機器和目標機器之間創建它們所使用的路由,這一層自己沒有任何錯誤檢測和修正機制,所以,網絡層必須依賴於端端之間可靠傳輸服務。    網絡層用於本地LAN網段之上的計算機系統創建通訊,它之因此能夠這樣作,是由於它有本身的路由地址結構,這種結構與第二層機器地址是分開的、獨立的。這種協議稱爲路由或可路由協議。路由協議包括I P、N o v e l l公司的I P X以及A p p l e Ta l k協議。 網絡層是可選的,它只用於當兩個計算機系統處於不一樣的由路由器分割開的網段這種狀況,或者當通訊應用要求某種網絡層或傳輸層提供的服務、特性或者能力時。例如,當兩臺主機處於同一個L A N網段的直接相連這種狀況,它們之間的通訊只使用L A N的通訊機制就能夠了(即OSI 參考模型的一二層)。tcp

1.6 數據鏈路層

數據鏈路層控制網絡層與物理層之間的通訊。它的主要功能是如何在不可靠的物理線路上進行數據的可靠傳遞。爲了保證傳輸,從網絡層接收到的數據被分割成特定的可被物理層傳輸的幀。幀是用來移動數據的結構包,它不只包括原始數據,還包括髮送方和接收方的物理地址以及檢錯和控制信息。其中的地址肯定了幀將發送到何處,而糾錯和控制信息則確保幀無差錯到達。 若是在傳送數據時,接收點檢測到所傳數據中有差錯,就要通知發送方重發這一幀。 數據鏈路層的功能獨立於網絡和它的節點和所採用的物理層類型,它也不關心是否正在運行 Wo r d 、E x c e l 或使用I n t e r n e t 。有一些鏈接設備,如交換機,因爲它們要對幀解碼並使用幀信息將數據發送到正確的接收方,因此它們是工做在數據鏈路層的。
數據鏈路層在不可靠的物理介質上提供可靠的傳輸。該層的做用包括:物理地址尋址、數據的成幀、流量控制、數據的檢錯、重發等。 數據鏈路層協議的表明包括:SDLC、HDLC、PPP、STP、幀中繼等。編碼

1.7 物理層

物理層是最底層,該層包括物理連網媒介,如電纜連線鏈接器。物理層的協議產生並檢測電壓以便發送和接收攜帶數據的信號。在你的桌面P C上插入網絡接口卡,你就創建了計算機連網的基礎。換言之,你提供了一個物理層。儘管物理層不提供糾錯服務,但它可以設定數據傳輸速率並監測數據出錯率。網絡物理問題,如電線斷開,將影響物理層。 用戶要傳遞信息就要利用一些物理媒體,如雙絞線、同軸電纜等,但具體的物理媒體並不在OSI的7層以內,有人把物理媒體當作第0層,物理層的任務就是爲它的上一層提供一個物理鏈接,以及它們的機械、電氣、功能和過程特性。如規定使用電纜和接頭的類型、傳送信號的電壓等。在這一層,數據尚未被組織,僅做爲原始的位流或電氣電壓處理,單位是bit比特。 主要定義物理設備標準,如網線的接口類型、光纖的接口類型、各類傳輸介質的傳輸速率等。它的主要做用是傳輸比特流(就是由一、0轉化爲電流強弱來進行傳輸,到達目的地後在轉化爲一、0,也就是咱們常說的數模轉換與模數轉換)。這一層的數據叫作比特。加密

2. TCP/IP四層模型

TCP/IP是一組協議的代名詞,它還包括許多協議,組成了TCP/IP協議簇。TCP/IP協議簇分爲四層,IP位於協議簇的第二層(對應OSI的第三層),TCP位於協議簇的第三層(對應OSI的第四層)。計算機網絡

2.1 四層模型

TCP/IP通信協議採用了4層的層級結構,每一層都呼叫它的下一層所提供的網絡來完成本身的需求。這4層分別爲:翻譯

  • 應用層:應用程序間溝通的層,如簡單電子郵件傳輸(SMTP)、文件傳輸協議(FTP)、網絡遠程訪問協議(Telnet)等。 負責應用程序的網絡訪問,這裏經過端口號來識別各個不一樣的進程。

  • 傳輸層:在此層中,它提供了節點間的數據傳送服務,如傳輸控制協議(TCP)、用戶數據報協議(UDP)等,TCP和UDP給數據包加入傳輸數據並把它傳輸到下一層中,這一層負責傳送數據,而且肯定數據已被送達並接收。 負責端對端之間的通訊會話鏈接和創建。傳輸協議的選擇根據數據傳輸方式而定。

  • 網絡層:負責提供基本的數據封包傳送功能,讓每一塊數據包都可以到達目的主機(但不檢查是否被正確接收),如網際協議(IP)。 負責將數據幀封裝成IP數據報,並運行必要的路由算法。

  • 數據鏈路層:對實際的網絡媒體的管理,定義如何使用實際網絡(如Ethernet、Serial Line等)來傳送數據,實現網卡接口的網絡驅動程序。負責將二進制流轉換爲數據幀,並進行數據幀的發送和接收。

2.2 四層模型分別有哪些協議

應用層{http超文本傳輸協議 ftp文件傳輸協議 telnet遠程登陸 ssh安全外殼協議 stmp簡單郵件發送 pop3收郵件} 傳輸層{tcp傳輸控制協議,udp用戶數據包協議} 網絡層{ip網際互聯協議 icmp網絡控制消息協議 igmp網絡組管理協議} 數據鏈路層{arp地址轉換協議,rarp反向地址轉換協議,mpls多協議標籤交換}

部分協議註解以下: ARP:(地址轉換協議)用於得到同一物理網絡中的硬件主機地址。 MPLS:(多協議標籤交換)頗有發展前景的下一代網絡協議。 IP:(網際互聯協議)負責在主機和網絡之間尋址和路由數據包。 ICMP:(網絡控制消息協議)用於發送報告有關數據包的傳送錯誤的協議。 IGMP:(網絡組管理協議)被IP主機用來向本地多路廣播路由器報告主機組成員的協議。 TCP:(傳輸控制協議)爲應用程序提供可靠的通訊鏈接。適合於一次傳輸大批數據的狀況。並適用於要求獲得相應的應用程序。 UDP:(用戶數據包協議)提供了無鏈接通訊,且不對傳送包進行可靠的保證。適合於一次傳輸少許數據。

2.3 最多見的應用層協議

注意:可使用cat /etc/services來查看有哪些應用層協議,以及他們使用了傳輸層的哪些協議。 一般咱們是使用ip地址後面跟上端口號來惟一肯定一個鏈接:ip用來定位主機,port區別應用(進程)。 例如: http-->80 ssh-->22 telnet-->23 ftp-->21
系統使用端口號通常是1-1024,用戶可以使用的是1025-65536。

原文首發自簡書:www.jianshu.com/p/8bae75a50…

相關文章
相關標籤/搜索