天天看點

Linux基礎網絡環境

      計算機網絡分類

1.區域網路LAN: 是指在某一區域内由多台計算機互聯成的計算機組。一般是方圓幾千米以内。區域網路可以實作檔案管理、應用軟體共享、列印機共享、工作組内的日程安排、電子郵件和傳真通信服務等功能計算機數量更多了, 通過交換機和路由器連接配接在一起;

Linux基礎網絡環境

2.廣域網WAN:通常跨接很大的實體範圍,所覆寫的範圍從幾十公裡到幾千公裡,它能連接配接多個城市或國家,或橫跨幾個洲并能提供遠距離通信,形成國際性的遠端網絡 将遠隔千⾥裡的計算機都連在一起                                        

Linux基礎網絡環境

所謂 "區域網路" 和 "廣域網" 隻是一個相對的概念

網絡通信協定

網絡通信協定為連接配接不同操作和不同硬體體系結構的網際網路絡引提供通信支援,是一種網絡通用語言。網絡通信協定 是計算機網絡和分布系統中,互相通信對等實體間交換資訊時所必須遵守的規則的集合。通信協定定義了網絡上的各種計算機和裝置之間的互相通信、資料管理、資料交換的整套規則。

例如:

Linux基礎網絡環境

計算機之間的傳輸媒介是光信号和電信号. 通過 "頻率" 和 "強弱" 來表⽰示 0 和 1 這樣的資訊. 要想傳遞各種不

同的資訊, 就需要約定好雙⽅方的資料格式.

  • 計算機⽣生産⼚廠商有很多;
  • 計算機作業系統, 也有很多;
  • 計算機網絡硬體裝置, 還是有很多;
  • 如何讓這些不同⼚廠商之間⽣生産的計算機能夠互相順暢的通信? 就需要有⼈人站出來, 約定一個共同的标準, ⼤大家都來遵守, 這就是網絡協定;

通過這些規則,網絡上的節點才有了彼此通信的“共同集合”。不同計算機之間必須使用相同的網絡協定才能通信。

網絡分層

就是将網絡節點所要完成的資料的發送或轉發、打包或拆包,控制資訊的加載或拆出等工作,分别由不同的硬體和軟體子產品去完成。這樣可以将往來通信和網絡互連這一複雜的問題變得較為簡單。

OSI(Open System Interconnection,開放系統互連)七層網絡模型稱為開放式系統互聯參考模型,是一個邏輯上的定義和規範;

把網絡從邏輯上分為了7層. 每一層都有相關、相對應的實體裝置,比如路由器,交換機;

OSI 七層模型是一種架構性的設計⽅方法,其最主要的功能使就是幫助不同類型的主機實作資料傳輸;

它的最⼤大優點是将服務、接⼝口和協定這三個概念明确地區分開來,概念清楚,理論也⽐比較完整. 通過七個階層化的結構模型使不同的系統不同的⺴⽹網絡之間實作可靠的通訊;

(1)實體層

實體層(Physical layer)是參考模型的最低層。該層是網絡通信的資料傳輸媒體,由連接配接不同結點的電纜與裝置共同構成。主要功能是:利用傳輸媒體為資料鍊路層提供實體連接配接,負責處理資料傳輸并監控資料出錯率,以便資料流的透明傳輸。

(2)資料鍊路層

資料鍊路層(Data link layer)是參考模型的第2層。 主要功能是:在實體層提供的服務基礎上,在通信的實體間建立資料鍊路連接配接,傳輸以"幀"為機關的資料包,并采用差錯控制與流量控制方法,使有差錯的實體線路變成無差錯的資料鍊路。

(3)網絡層

網絡層(Network layer)是參考模型的第3層。主要功能是:為資料在結點之間傳輸建立邏輯鍊路,通過路由選擇算法為分組通過通信子網選擇最适當的路徑,以及實作擁塞控制、網絡互聯等功能。

(4)傳輸層

傳輸層(Transport layer)是參考模型的第4層。主要功能是向使用者提供可靠的端到端(End-to-End)服務,處理資料包錯誤、資料包次序,以及其他一些關鍵傳輸問題。傳輸層向高層屏蔽了下層資料通信的細節,是以,它是計算機通信體系結構中關鍵的一層。

(5)會話層

會話層(Session layer)是參考模型的第5層。主要功能是:負責維護兩個結點之間的傳輸連結,以便確定點到點傳輸不中斷,以及管理資料交換等功能。

(6)表示層

表示層(Presentation layer)是參考模型的第6層。主要功能是:用于處理在兩個通信系統中交換資訊的表示方式,主要包括資料格式變換、資料加密與解密、資料壓縮與恢複等功能。

(7)應用層

  應用層(Application layer)是參考模型的最高層。主要功能是:為應用軟體提供了很多服務,例如檔案伺服器、資料庫服務、電子郵件與其他網絡軟體服務。

Linux基礎網絡環境

OSI參考模型中的資料流

TCP/IP五層(或四層)模型

TCP/IP是一組協定的代名詞,它還包括許多協定,組成了TCP/IP協定簇.

           TCP/IP通訊協定采⽤用了5層的層級結構,每一層都呼叫它的下一層所提供的網絡來完成自己的需求.

實體層: 負責光/電信号的傳遞⽅方式. ⽐比如現在以太網通⽤用的網線(雙絞 線)、早期以太網采⽤用的的同軸電纜(現在主要⽤用于有線電視)、光纖, 現在的wifi⽆無線⺴⽹網使⽤用電磁波等都屬于實體層的概念。實體層的能⼒力決定了最⼤大傳輸速率、傳輸距離、抗幹擾性等. 集線器(Hub)⼯工作在實體層.

          資料鍊路層: 負責裝置之間的資料幀的傳送和識别. 例如網卡裝置的驅動、幀同步(就是說從網線上檢測到什麼信号算作新幀的開始)、沖突檢測(如果檢測到沖突就⾃自動重發)、資料差錯校驗等工作.有以太網、令牌環網, 無線LAN等标準. 交換機(Switch)工作在資料鍊路層.

           網絡層: 負責位址管理和路由選擇. 例如在IP協定中, 通過IP位址來辨別一台主機, 并通過路由表的⽅方式規劃出兩台主機之間的資料傳輸的線路(路由). 路由器(Router)工作在網路層.

傳輸層: 負責兩台主機之間的資料傳輸. 如傳輸控制協定 (TCP), 能夠確定資料可靠的從源主機發送到目标主機.應⽤用層: 負責應⽤用程式間溝通,如簡單電⼦子郵件傳輸(SMTP)、⽂檔案傳輸協定(FTP)、網絡遠端通路協定(Telnet)等. 我們的網絡程式設計主要就是針對應⽤用層.

Linux基礎網絡環境

OCI參考模型與TCP模型對比

Linux基礎網絡環境

網絡傳輸基本流程 

Linux基礎網絡環境

      網絡位址 

網絡位址(Network address)是網際網路上的節點在網絡中具有的邏輯位址。網際網路絡是由互相連接配接的帶有連接配接節點(稱為主機和路由器)的LAN組成的。在TCP協定中,這這個位址也被叫做IP位址。

IP位址被用來給Internet上的電腦一個編号,IP位址是一個32位的二進制數,通常被分割為4個“8位二進制數”(也就是4個位元組)。IP位址通常用“點分十進制”表示成(a.b.c.d)的形式,其中,a,b,c,d都是0~255之間的十進制整數。例:點分十進IP位址(100.4.5.6),實際上是32位二進制數(01100100.00000100.00000101.00000110)。

端口

IP位址被配置設定後,要實作網絡節點間通信,還需要端口号。端口号就相當于辨別同一主機上的不同應用程式。

主機通過“IP位址+端口号”來區分不同的網絡服務。

TCP 端口  :Transmission Control Protocol傳輸控制協定,TCP是一種面向連接配接(連接配接導向)的、可靠的、基于位元組流的傳輸層(Transport layer)通信協定。在簡化的計算機網絡OSI模型中,它完成第四層傳輸層所指定的功能,UDP是同一層内另一個重要的傳輸協定。

UDP端口  :User Datagram Protocol使用者資料報協定,UDP是OSI參考模型中一種無連接配接的傳輸層協定,提供面向事務的簡單不可靠資訊傳送服務。UDP協定适用端口分别運作在同一台裝置上的多個應用程式。

傳輸控制協定

TCP(Transmission Control Protocol 傳輸控制協定)是一種面向連接配接的、可靠的、基于位元組流的傳輸層通信協定.

連接配接建立

TCP是網際網路中的傳輸層協定,使用三次握手協定建立連接配接。當主動方發出SYN連接配接請求後,等待對方回答

TCP的三次握手SYN+ACK [1]  ,并最終對對方的 SYN 執行 ACK 确認。這種建立連接配接的方法可以防止産生錯誤的連接配接,TCP使用的流量控制協定是可變大小的滑動視窗協定。

Linux基礎網絡環境

用戶端向伺服器端發出連接配接請求資料包:“我想給你發資料,不知是否可以”,第一次握手,

伺服器端向用戶端發出同意的連接配接請求資料包:“可以,你什麼時候發”,第二次握手

用戶端向伺服器端發出連接配接同步資料包:“我現在就發”,第三次握手

連接配接關閉

建立一個連接配接需要三次握手,而終止一個連接配接要經過四次握手,這是由TCP的半關閉(half-close),TCP的全雙工造成的。具體過程如下圖所示

Linux基礎網絡環境

用戶端向伺服器端發出關閉連接配接請求資料包:“我想關閉連接配接,不知是否可以”,第一次握手,

                               用戶端将不能再向  伺服器發送資料,但是可以接收資料

伺服器端向用戶端發出同意的連接配接和要求同步資料包:“可以”,第二次握手

伺服器端向用戶端再發出資料确認請求:“我想關閉連接配接,不知是否可以”,第三次握手

用戶端向伺服器端發出資料包:“可以”,第四次握手

繼續閱讀