天天看點

Linux應用程式設計和網絡程式設計(10)------- 網絡的基礎知識一,有關網絡裝置的功能簡單介紹二,網絡有關的詞:DNS,DHCP,NAT解釋三,IP位址基礎四,OSI 7層網絡模型

目錄

  • 一,有關網絡裝置的功能簡單介紹
  • 二,網絡有關的詞:DNS,DHCP,NAT解釋
  • 三,IP位址基礎
  • 四,OSI 7層網絡模型

一,有關網絡裝置的功能簡單介紹

1、網卡

(1)計算機上網必備硬體裝置,CPU靠網卡來連接配接外部網絡

(2)串轉并裝置

(3)資料幀封包和拆包

(4)網絡資料緩存和速率适配

2、集線器(HUB)

(1)信号中繼放大,相當于中繼器

(2)組成區域網路絡,用廣播方式工作。

(3)注意集線器是不能用來連接配接外網的

3、交換機

(1)包含集線器功能,但更進階

(2)交換機中有位址表,資料包查表後直達目的通信口而不是廣播

(3)找不到目的口時廣播并學習

4、路由器

(1)路由器是區域網路和外部網絡通信的出入口

(2)路由器将整個internet劃分成一個個的區域網路,卻又互相聯通。

(3)路由器對内管理子網(區域網路),可以在路由器中設定子網的網段,設定有線端口的IP位址,設定dhcp功能等,是以區域網路的IP位址是路由器決定的。

(4)路由器對外實作聯網,聯網方式取決于外部網絡(如ADSL撥号上網、寬帶帳号、區域網路等)。這時候路由器又相當于是更高層級網絡的其中一個節點而已。

(5)是以路由器相當于有2個網卡,一個對内做網關、一個對外做節點。

(6)路由器的主要功能是為經過路由器的每個資料包尋找一條最佳路徑(路由)并轉發出去。其實就是區域網路内電腦要發到外網的資料包,和外網回複給區域網路内電腦的資料包。

(7)路由器技術是網絡中最重要技術,決定了網絡的穩定性和速度。

Linux應用程式設計和網絡程式設計(10)------- 網絡的基礎知識一,有關網絡裝置的功能簡單介紹二,網絡有關的詞:DNS,DHCP,NAT解釋三,IP位址基礎四,OSI 7層網絡模型

二,網絡有關的詞:DNS,DHCP,NAT解釋

1、DNS(Domain Name Service 域名服務)

(1)網絡世界的門牌号:IP位址

(2)IP位址的缺點:難記、不直覺

(3)IP位址的替代品:域名,譬如www.baidu.com。

(4)DNS伺服器就是專門提供域名和IP位址之間的轉換的服務的,是以域名要購買的。

(5)我們通路一個網站的流程是:先使用IP位址(譬如谷歌的DNS伺服器IP位址為8.8.8.8)通路DNS伺服器(DNS伺服器不能是域名,隻能是直接的IP位址),DNS伺服器會在它建立的映射表上查詢我們要通路的域名的IP位址,然後再使用該IP位址通路我們真正要通路的網站。這個過程被浏覽器封裝屏蔽,其中使用的就是DNS協定。

(6)浏覽器需要DNS服務,而QQ這樣的用戶端卻不需要(因為QQ軟體程式設計時已經知道了騰訊的伺服器的IP位址,是以可以直接IP方式通路伺服器)。

2、DHCP(dynamic host configuration protocl,動态主機配置協定)

(1)每台計算機都需要一個IP位址,且區域網路内各電腦IP位址不能重複,否則會位址沖突;不同區域網路内的電腦IP位址可以相同。

(2)計算機的IP位址可以靜态設定,也可以動态配置設定

(3)動态配置設定是區域網路内的DHCP伺服器來協調的,很多裝置都能提供DHCP功能,譬如路由器。

(4)動态配置設定的優勢:友善接入和斷開、有限的IP位址得到充分利用。

3、NAT(network address translation,網絡位址轉換協定)

(1)IP位址分為公網IP(internet範圍内唯一的IP位址)和私網IP(内網IP),區域網路内的電腦使用的都是私網IP(常用的就是192.168.1.xx)

(2)網絡通信的資料包中包含有目的位址的IP位址

這裡以擷取百度某張圖檔為例:首先子網中的某台裝置的IP位址為192.168.1.1,它所連接配接的路由器的IP位址為172.1.1.1,那麼裝置想要從百度擷取一張圖檔,一定是要向百度網站發送一個請求指令,這個指令就是一個資料,那麼在發送前網卡會将資料進行打包(標頭、資料、包尾),其中標頭儲存了公網IP(路由器)和私網IP(裝置)和目的地IP(百度伺服器),然後通過路由器規劃路徑後發送到百度的伺服器上,伺服器進行資料的解析,得知是要擷取某張圖檔,于是将圖檔資料進行打包(仍然是3部分),其中標頭中的目的位址和本地位址取反(發送地變為接收地,接收地變為發送地),将圖檔發送回網卡,路由器進行判斷,知道該圖檔應該發送給192.168.1.1對應的裝置,最終該裝置收到了圖檔。

(3)當區域網路中的主機要發送資料包給外網時,路由器要負責将資料標頭中的區域網路主機的内網IP替換為目前區域網路的對外外網IP這個過程就叫NAT。

(4)NAT的作用是緩解IPv4的IP位址不夠用問題,但隻是類似于打更新檔的形式,最終的解決方案還是要靠IPv6。

(5)NAT穿透簡介

P2P下載下傳方式叫做一種穿透,伺服器作為中介,讓兩台連接配接區域網路裝置相連的技術叫做穿透。

這裡以迅雷下載下傳為例:假設我要下載下傳一部電影(區域網路A的裝置1),如果從百度上下載下傳這部電影時,需要前一個例子那樣,走很長一段距離才能到達百度伺服器,這無疑會浪費很多時間。但是P2P下載下傳方式為我們提供了一種點對點的方式下載下傳,也就是如果這部電影在另外一台裝置上有(區域網路B的裝置1),同時我的裝置和那台裝置都連接配接了迅雷伺服器,那麼迅雷伺服器會為我們兩個區域網路之間構成了一條通路(本來兩個區域網路互相不知道IP是無法進行連接配接的,但是如果2台裝置都連接配接到了迅雷伺服器,那麼迅雷伺服器會自動安排一種連接配接通道),這樣我就可以直接到那台裝置上下載下傳電影。通過縮短了距離來提高了下載下傳速度。如果同時有100台裝置上都有這部電影,那麼我的裝置就與這100台裝置都構成了通路,進而實作了一種并行下載下傳,極大程度地提高了下載下傳速度。這就好像本來兩個區域網路之間有一堵牆隔着,P2P的下載下傳方式穿透了這堵牆,是以稱為NAT穿透。

三,IP位址基礎

1、IP位址的組成分析

(1)IP位址實際是一個32位二進制構成,在網絡通信資料包中就是32位二進制,而在人機互動中使用點分十進制方式顯示。

二進制方式 0xffffffff 0xC0A80166/0x6601A8C0
點分十進制方式 255.255.255.255 192.168.1.102

(2)IP位址中32位實際包含2部分,分别為:網絡位址和主機位址。子網路遮罩,用來說明網絡位址和主機位址各自占多少位。

IP位址 = 網絡位址 + 主機位址;網絡位址用來表示子網,主機位址是用來表示子網中的具體某一台主機的。

譬如可以8位表示網絡,24位表示主機

也可以16位表示網絡,16位表示主機

14為表示網絡,18位表示主機

子網路遮罩為255.255.255.0時表示前24位為網絡位址,後8位為主機位址

子網路遮罩為255.255.0.0時表示前16位為網絡位址,後16位為主機位址

網絡位址決定了這種網絡中一定可以有多少個網絡,譬如子網路遮罩為255.255.255.0時表示我們這一種網絡一共最多可以有2的24次方個,每個這種網絡中可以有2的8次方個主機。

2、如何判斷2個IP位址是否在同一子網内

(1)網絡辨別 = IP位址 & 子網路遮罩

(2)2個IP位址的網絡辨別一樣,那麼就處于同一網絡。

192.168.1.102 & 255.255.255.0 = 192.168.1.0
192.168.1.253 & 255.255.255.0 = 192.168.1.0
           

192.168.1.4和192.168.12.5,如果子網路遮罩是255.255.255.0那麼不在同一網段,如果子網路遮罩是255.255.0.0那麼就在同一個網段

四,OSI 7層網絡模型

1、OSI的來源

OSI(Open System Interconnect),即開放式系統互聯。 一般都叫OSI參考模型,是ISO(國際标準化組織)組織在1985年研究的網絡互連模型。

ISO為了更好的使網絡應用更為普及,推出了OSI參考模型。其含義就是推薦所有公司使用這個規範來控制網絡。這樣所有公司都有相同的規範,就能互聯了。

2、OSI七層模型的劃分

OSI定義了網絡互連的七層架構(實體層、資料鍊路層、網絡層、傳輸層、會話層、表示層、應用層),即ISO開放互連系統參考模型。如下圖。

每一層實作各自的功能和協定,并完成與相鄰層的接口通信。OSI的服務定義詳細說明了各層所提供的服務。某一層的服務就是該層及其下各層的一種能力,它通過接口提供給更高一層。各層所提供的服務與這些服務是怎麼實作的無關。

Linux應用程式設計和網絡程式設計(10)------- 網絡的基礎知識一,有關網絡裝置的功能簡單介紹二,網絡有關的詞:DNS,DHCP,NAT解釋三,IP位址基礎四,OSI 7層網絡模型

3、各層功能定義

這裡我們隻對OSI各層進行功能上的大概闡述,不詳細深究,因為每一層實際都是一個複雜的層。後面我也會根據個人方向展開部分層的深入學習。這裡我們就大概了解一下。我們從最頂層——應用層 開始介紹。整個過程以公司A和公司B的一次商業報價單發送為例子進行講解。

<1> 應用層

OSI參考模型中最靠近使用者的一層,是為計算機使用者提供應用接口,也為使用者直接提供各種網絡服務。我們常見應用層的網絡服務協定有:HTTP,HTTPS,FTP,POP3、SMTP等。

實際公司A的老闆就是我們所述的使用者,而他要發送的商業報價單,就是應用層提供的一種網絡服務,當然,老闆也可以選擇其他服務,比如說,發一份商業合同,發一份詢價單,等等。

<2> 表示層

表示層提供各種用于應用層資料的編碼和轉換功能,確定一個系統的應用層發送的資料能被另一個系統的應用層識别。如果必要,該層可提供一種标準表示形式,用于将計算機内部的多種資料格式轉換成通信中采用的标準表示形式。資料壓縮和加密也是表示層可提供的轉換功能之一。

由于公司A和公司B是不同國家的公司,他們之間的商定統一用英語作為交流的語言,是以此時表示層(公司的文秘),就是将應用層的傳遞資訊轉翻譯成英語。同時為了防止别的公司看到,公司A的人也會對這份報價單做一些加密的處理。這就是表示的作用,将應用層的資料轉換翻譯等。

<3> 會話層

會話層就是負責建立、管理和終止表示層實體之間的通信會話。該層的通信由不同裝置中的應用程式之間的服務請求和響應組成。

會話層的同僚拿到表示層的同僚轉換後資料,(會話層的同僚類似公司的外聯部),會話層的同僚那裡可能會掌握本公司與其他好多公司的聯系方式,這裡公司就是實際傳遞過程中的實體。他們要管理本公司與外界好多公司的聯系會話。當接收到表示層的資料後,會話層将會建立并記錄本次會話,他首先要找到公司B的位址資訊,然後将整份資料放進信封,并寫上位址和聯系方式。準備将資料寄出。等到确定公司B接收到此份報價單後,此次會話就算結束了,外聯部的同僚就會終止此次會話

<4> 傳輸層

傳輸層建立了主機端到端的連結,傳輸層的作用是為上層協定提供端到端的可靠和透明的資料傳輸服務,包括處理差錯控制和流量控制等問題。該層向高層屏蔽了下層資料通信的細節,使高層使用者看到的隻是在兩個傳輸實體間的一條主機到主機的、可由使用者控制和設定的、可靠的資料通路。我們通常說的,TCP UDP就是在這一層。端口号既是這裡的“端”。

傳輸層就相當于公司中的負責快遞郵件收發的人,公司自己的投遞員,他們負責将上一層的要寄出的資料投遞到快遞公司或郵局。

<5> 網絡層

本層通過IP尋址來建立兩個節點之間的連接配接,為源端的運輸層送來的分組,選擇合适的路由和交換節點,正确無誤地按照位址傳送給目的端的運輸層。就是通常說的IP層。這一層就是我們經常說的IP協定層。IP協定是Internet的基礎。

網絡層就相當于快遞公司龐大的快遞網絡,全國不同的集散中心,比如說,從深圳發往北京的順豐快遞(陸運為例啊,空運好像直接就飛到北京了),首先要到順豐的深圳集散中心,從深圳集散中心再送到武漢集散中心,從武漢集散中心再寄到北京順義集散中心。這個每個集散中心,就相當于網絡中的一個IP節點。

<6> 資料鍊路層

将比特組合成位元組,再将位元組組合成幀,使用鍊路層位址 (以太網使用MAC位址)來通路媒體,并進行差錯檢測。

資料鍊路層又分為2個子層:邏輯鍊路控制子層(LLC)和媒體通路控制子層(MAC)。

MAC子層處理CSMA/CD算法、資料出錯校驗、成幀等;LLC子層定義了一些字段使上次協定能共享資料鍊路層。 在實際使用中,LLC子層并非必需的。

<7> 實體層

實際最終信号的傳輸是通過實體層實作的。通過實體媒體傳輸比特流。規定了電平、速度和電纜針腳。常用裝置有(各種實體裝置)集線器、中繼器、數據機、網線、雙絞線、同軸電纜。這些都是實體層的傳輸媒體。

快遞寄送過程中的交通工具,就相當于我們的實體層,例如汽車,火車,飛機,船。

4、通信特點:對等通信

對等通信,為了使資料分組從源傳送到目的地,源端OSI模型的每一層都必須與目的端的對等層進行通信,這種通信方式稱為對等層通信。在每一層通信過程中,使用本層自己協定進行通信。