Linux網絡知識入門篇

網絡基礎

入門

局域網和廣域網區別

局域網的就是少量的計算機,通過交換機和路由器連接在一起。廣域網其實就是一個大的局域網,只不過相連計算機的這跟網線比較長而已。

局域網通信的原理(兩種方式)

OSI七層模型

簡介

OSI(開放系統互連)七層網絡模型成爲開發式系統互聯參考模型,是一個邏輯上的定義和規範,把網絡從邏輯上分爲7層,每一層都有關,相對應的物理設備,比如路由器,交換機;

優點

讓不同類型的主機之間能實現數據傳輸

它將服務,接口和協議這三個概念明確的區分開了,概念清楚,理論也比較完整,通過七個層次化的結構模型使不同的系統不同的網絡之間實現可靠的通訊。

但是,它既複雜又不使用,我們按照TCP/IP四層模型來學習

TCP/IP五層模型

物理層 (集線器)

負責光/電信號的傳遞方式,比如現在以太網通用的網線,早起以太網採用的同軸電纜,光纖,現在的wifi無線網使用電磁波等都屬於物理層的概念,物理層的能力決定了最大傳輸速率,傳輸距離,抗干擾性等

數據鏈路層 (交換機—解決數據碰撞問題)

負責設備之間的數據幀的傳送和識別,例如網卡設備驅動,幀同步,衝突檢測(如果檢測到衝突就重發),數據差錯校驗等工作,有以太網令牌環網,無線LAN等標準,交換機工作在數據鏈路層。

網絡層 (路由器 — 實現網到網之間的轉發)

負責地址管理和路由選擇,例如在IP協議中,通過IP地址來標識一臺主機,並通過路由表的方式規劃出兩臺主機之間的數據的路線

傳輸層 (TCP/UDP)

負責兩臺主機之間的數據傳輸,如傳輸控制協議(TCP),能確保數據可靠的從源主機發送到目標主機.

應用層

負責應用程序間的溝通,如簡單電子郵件傳輸(SMTP),文件傳輸協議(FTP),網絡遠程訪問協議(telnet)等

與網絡有關的硬件

路由器

路由器是實現了網絡層到物理層,路由器實現的是網與網之間的轉發,根據目的IP就可以知道要將數據傳輸到哪一個局域網。

交換機

交換機實現了數據鏈路層到物理層,交換機是實現從A主機到B主機,利用不同的驅動程序還可以減少數據的衝突

集線器

它只實現了物理層,當信號比較薄弱的時候可以放大信號。

關於局域網我們必須知道

局域網通信原理

1.在一個局域網中,任何時候只有一個主機可以往網線發數據

2.只能有一個主機在網線上發數據,勢必會造成衝突的情況,想要解決數據衝突必須有相應的算法

解決局域網數據衝突的方法

以太網驅動程序 (防碰撞算法,等待)

實現一種防碰撞的算法,儘量的把局域網中的每個主機發送數據的時間錯開,假如有衝突發生,就讓其中一方進行等待,等另一方發送完再發送,檢測衝突可以通過比較發送後的內容是否與自己一直,即可知道當前網線是否已經有主機佔用。

令牌環驅動程序 (令牌,等待)

有一個令牌一直在局域網的每個主機上傳遞,拿到令牌的主機纔有權向局域網發消息,如果自己想發消息但是沒有權力,就得等到令牌傳到自己手中再發送消息,這樣就不會存在衝突的問題了。

IP地址

IP地址概念

IP地址就是我們平時所見的 192.168.0.123類似這樣的點分十進制,對於IPv4來說,IP地址是32位(4個字節),32位的整數,對於IPv6來說,IP地址是128位(16個字節)

IP地址的作用

IP地址是在IP協議中,用來標識網絡中不同主機的地址,提供一個目的爲數據指引方向

mac地址

mac地址概念

長度爲48位,及6個字節。一般用16進制數字加上冒號的形式來表示(如:08:00:27:03:fd:19),在網卡出廠時就確定了,不能修改,mac地址通常是唯一的(虛擬機中的mac地址不是真實的mac地址,可能會衝突,也有些網卡支持用戶配置mac地址)

mac地址作用

用來識別鏈路層中相連的節點

數據的封裝和分用

什麼是數據的封裝

在TCP/IP的五層模型中,數據在從用戶手中傳至物理層要經過自頂向下的封裝,從物理層傳到應用層也到自底向上的解包,封裝其實就是添加了不同層的一些信息,比如說傳輸層對數據進行封裝添加了信息,表示傳輸層使用的是TCP協議。報頭是當前層添加的,有效載荷是數據層添加的

封裝的目的

1.首部信息中包含了一些類似於首部多長,載荷有多長,上層協議是什麼等信息。有了自頂向下的封住,在數據到達另一個主機的時候,該主機通過之前的封裝就知道數據是否是給自己的,如果是給自己的,那麼數據的上層協議是什麼,我的上層應該用什麼協議去處理它。

  1. 自頂向下封裝幫助自下而上解包,分用的時候能知道上層使用的協議是什麼。
  1. 通過添加的報頭,每一層都可以知道有效載荷的長度和首部長度,以及上層協議使用的什麼。

4.也爲數據提供了保護

一個小例子

就比如在某寶上我們買了一個洗面奶,快遞公司A首先會對商家提供的商品進行打包,並且上面填上發貨人收件人等信息並且加上快遞公司的名稱,這其實就是封裝, 通過這個封裝我們可以確保我們的快遞會送到我們這邊的快遞公司A的一個小站點,而不是送到快遞公司B。

跨網絡傳輸的原理

把目的mac地址填寫成路由器的mac地址(還有一個mac地址是源mac地址),路由器至少連接了兩個局域網,路由器的細節只有兩層:鏈路層和網絡層(IP)

MAC地址和IP地址的區別

唐僧的例子

MAC地址是用來標識鏈路層中相連的主機的,在數據傳輸的過程中,必須得知道下一站要去哪,就好比唐僧取經,別人問他上一站從哪來下一站去哪裏,他回答上一站是女兒國,下一站準備去通天河。

IP實現的是不同網絡之間的傳輸,也就是跨網絡傳輸,它只能實現網絡到網絡的傳輸,IP爲數據的傳輸指明瞭方向,就好比唐僧取經,別人問他來自何方目的地是哪裏,唐僧說他來自東土大唐前去西天取經。

IP地址和端口號作用

(1)IP地址是表示網絡中唯一一臺主機

(2)端口號是標識主機中的唯一的一個進程 (TIME_WAIT是一個反例,多進程下的服務器也是一個反例)

(3)IP和端口號組合就是標識網絡中唯一的進程

(4)網絡通信其實也是兩個進程的通信,只不過是跨網絡通信

網絡數據序列是大端

兩個通信的主機可能一個是大端一個是小端,所以爲了防止因爲大小端問題導致的不能正常通信,我們統一規定網絡字節序是大端,所以有些操作我們必須用一個函數 htons–將本機字節序轉換爲網絡字節序,類似這樣的函數還有很多。

小結

IP-以太網怎麼配合傳輸數據包?

IP的任務是把原計算機發送的數據包發經路由器轉發到最後一站路由器(網到網轉發),然後以太網把數據包從路由器傳送給目的計算器。方法是使用數據包的報頭: 把IP報頭的的目的IP地址設爲目的計算器的IP地址,路由器根據1這個地址查看路由表而把數據包轉發到下一站。一站一戰的發送,左後把數據包轉發到目的計算機所在的路由器。 把鏈路層報頭的目的MAC地址設置爲目的計算機的MAC地,以太網中的每個主機都可以收到任何一個主機發送的數據,通過MAC報頭就可以知道所發送的數據是否是發送給自己的。

路由器怎麼轉發數據包?

路由協議計算出傳送路徑,存放在路由器的路由表裏。路由器上的數據包時,抽出報頭裏的目的IP地址,路由查看路由表,找到下一站的接口,把數據包從這個接口轉發,抵達下一站。IP地址,路由轉發

以太網怎麼把數據包傳輸到目的計算器?

以太網內的計算機用網卡鏈接到以太網,一個網卡可以有多個接口,每個網卡接口都配置一個IP地址,和一個固定的硬件地址,也叫單播MAC地址 ,由於以太網有廣播的屬性,數據包經過路由器的以太網接口轉發,會發送給以太網的所有接口,網卡接口在收到數據包時,把數據的目的MAC地址和自己的MAC地址比較,如果相同,就接受此句,反之就丟棄,這樣就只有接收方的技術會接受此包,其他接口會丟棄此包。

怎麼封裝報頭?

計算機發送信息前得先封裝報頭,把報頭和數據合起來,成爲一個數據包,發送時以數據包爲單位。報頭包含網絡設備,協議所需要的控制信息等。

網絡相關的指令

netstat 查看網絡狀態

-p 顯示建立相關鏈接的程序名

-a 顯示所有選項,默認不顯示LISTEN相關

-l 僅列出有在listen(監聽)的服務狀態

-t 僅顯示tcp相關

-u 僅顯示udp相關

-n 拒絕顯示別名,能顯示數字的全部轉化爲數字

關閉防火牆

systemctl stop firewalld

基於ssh登錄進行的網絡安全的遠程文件拷貝命令

將文件client拷貝到home目錄下

scp client [email protected]:/home/

scp /home/lijinhu/websocket.html [email protected]:/home/

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