Linux應用編程和網絡編程(10)------- 網絡的基礎知識


一,有關網絡設備的功能簡單介紹

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)路由器技術是網絡中最重要技術,決定了網絡的穩定性和速度。

在這裏插入圖片描述


二,網絡有關的詞: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的服務定義詳細說明了各層所提供的服務。某一層的服務就是該層及其下各層的一種能力,它通過接口提供給更高一層。各層所提供的服務與這些服務是怎麼實現的無關。

在這裏插入圖片描述

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模型的每一層都必須與目的端的對等層進行通信,這種通信方式稱爲對等層通信。在每一層通信過程中,使用本層自己協議進行通信。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章