天天看點

Linux-網絡基礎

作者:不寐旋律

#頭條創作挑戰賽#

1 網絡基礎

1.1 網絡概念

計算機網絡是一組計算機或網絡裝置通過有形的線纜或無形的媒介如無線,連接配接起來,按照一定的規則,進行通信的集合。

Linux-網絡基礎

網絡功能和優點

資料和應用程式

  • 資源
  • 網絡存儲
  • 備份裝置

作用範圍分類

  • 廣域網(WAN,Wide Area Network)
  • 城域網(MAN,Metropolitan Area Network)
  • 區域網路(LAN,Local Area Network)

1.2 常見的網絡實體元件

Linux-網絡基礎

1.3 網絡應用程式

1.3.1 各種網絡應用

  • Web 浏覽器(Chrome、IE、Firefox等)
  • 即時消息(QQ、微信、釘釘等)
  • 電子郵件(Outlook、foxmail 等)
  • 協作(視訊會議、VNC、Netmeeting、WebEx 等)
  • web網絡服務(apache,nginx,IIS)
  • 檔案網絡服務(ftp ,nfs,samba)
  • 資料庫服務( MySQL,MariaDB,MongoDB)
  • 中間件服務(Tomcat,JBoss)
  • 安全服務(Netfilter)

1.3.2 應用程式對網絡的要求

  • 批處理應用程式
  1. FTP、TFTP、庫存更新
  2. 無需直接人工互動
  3. 帶寬很重要,但并非關鍵性因素
  • 互動式應用程式
  1. 庫存查詢、資料庫更新
  2. 人機互動
  3. 因為使用者需等待響應,是以響應時間很重要,但并非關鍵性因素,除非要等待很長時間
  • 實時應用程式
  1. VoIP、視訊
  2. 人與人的互動
  3. 端到端的延時至關重要

1.4 網絡的特征

  • 速度
  • 成本
  • 安全性
  • 可靠性
  • 可用性
  • 可擴充性
  • 拓撲

1.4.1 速度(帶寬)

Linux-網絡基礎

1.4.2 網絡拓撲

拓撲結構一般是指由點和線排列成的幾何圖形

計算機網絡的拓撲結構是指一個網絡的通信鍊路和計算機結點互相連接配接構成的幾何圖形

拓撲分類

  • 實體拓撲描述了實體裝置的布線方式
  • 邏輯拓撲描述了資訊在網絡中流動的方式

拓撲結構分類

Linux-網絡基礎
  • 總線拓撲:所有裝置均可接收信号
  • 星型拓撲:通過中心點傳輸,單一故障點
  • 擴充星型拓撲:比星型拓撲的複原能力更強
  • 環拓撲:信号繞環傳輸,單一故障點
  • 雙環拓撲:信号沿相反方向傳輸,比單環的複原能力更強
  • 全網狀拓撲:容錯能力強,實施成本高
  • 部分網狀拓撲:在容錯能力與成本之間尋求平衡

1.5 網絡标準

1.5.1 網絡标準和分層

舊模型:專有産品,由一個廠商控制應用程式和嵌入的軟體

基于标準的模型:多廠商軟體,分層方法

層次劃分的必要性

計算機網絡是由許多硬體、軟體和協定交織起來的複雜系統。由于網絡設計十分複雜,如何設計、組織和實作計算機網絡是一個挑戰,必須要采用科學有效的方法

層次劃分的方法

  • 網絡的第一層應當具有相對獨立的功能
  • 梳理功能之間的關系,使一個功能可以為實作另一個功能提供必要的服務,進而形成系統的層次結構
  • 為提高系統的工作效率,相同或相近的功能僅在一個層次中實作,而且盡可能在較高的層次中實作
  • 每一層隻為相鄰的上一層提供服務
Linux-網絡基礎

層次劃分的優點

  • 各層之間互相獨立,每一層隻實作一種相對獨立的功能,使問題複雜程度降低
  • 靈活性好,各層内部的操作不會影響其他層
  • 結構上可分割開,各層之間都可以采用最合适的技術來實作
  • 易于實作和維護,因為整個系統已被分解成相對獨立的子系統
  • 能促進标準化工作,因為每一層的功能及其提供的服務都有了精确的說明

1.5.2 開放系統互聯 OSI

Linux-網絡基礎

在制定計算機網絡标準方面,起着重大作用的兩大國際組織是:國際電信聯盟電信标準化部門,與國際标準組織(ISO),雖然它們工作領域不同,但随着科學技術的發展,通信與資訊處理之間的界限開始變得比較模糊,這也成了國際電信聯盟電信标準化部門和ISO共同關心的領域。1984年,ISO釋出了著名的OSI(Open System Interconnection)标準,它定義了網絡互聯的7層架構,實體層、資料鍊路層、網絡層、傳輸層、會話層、表示層和應用層),即OSI開放系統互連參考模型

OSI 模型的七層結構

Linux-網絡基礎
  • 第7層 應用層

應用層(Application Layer)提供為應用軟體而設的接口,以設定與另一應用軟體之間的通信。例如:HTTP、HTTPS、FTP、TELNET、SSH、SMTP、POP3、MySQL等

  • 第6層 表示層

主條目:表示層(Presentation Layer)把資料轉換為能與接收者的系統格式相容并适合傳輸的格式

  • 第5層 會話層

會話層(Session Layer)負責在資料傳輸中設定和維護電腦網絡中兩台電腦之間的通信連接配接。

  • 第4層 傳輸層

傳輸層(Transport Layer)把傳輸表頭(TH)加至資料以形成資料包。傳輸表頭包含了所使用的協定等發送資訊。例如:傳輸控制協定(TCP)等。

  • 第3層 網絡層

網絡層(Network Layer)決定資料的路徑選擇和轉寄,将網絡表頭(NH)加至資料包,以形成封包。網絡表頭包含了網絡資料。例如:網際網路協定(IP)等。

  • 第2層 資料連結層

資料鍊路層(Data Link Layer)負責網絡尋址、錯誤偵測和改錯。當表頭和表尾被加至資料包時,會形成資訊框(Data Frame)。資料連結清單頭(DLH)是包含了實體位址和錯誤偵測及改錯的方法。資料連結清單尾(DLT)是一串訓示資料包末端的字元串。例如以太網、無線區域網路(Wi-Fi)和通用分組無線服務(GPRS)等。分為兩個子層:邏輯鍊路控制(logical link control,LLC)子層和媒體通路控制(Media access control,MAC)子層

  • 第1層 實體層

實體層(Physical Layer)在局部區域網路上傳送資料幀(Data Frame),它負責管理電腦通信裝置和網絡媒體之間的互通。包括了針腳、電壓、線纜規範、集線器、中繼器、網卡、主機接口卡等

1.5.3 網絡的通信過程

1.5.3.1 資料封裝和資料解封

Linux-網絡基礎

1.5.3.2 協定資料單元 PDU

Linux-網絡基礎

PDU: Protocol Data Unit,協定資料單元是指對等層次之間傳遞的資料機關

  • 實體層的 PDU是資料位 bit
  • 資料鍊路層的 PDU是資料幀 frame
  • 網絡層的PDU是資料包 packet
  • 傳輸層的 PDU是資料段 segment
  • 其他更高層次的PDU是消息 message

1.5.3.3 三種通訊模式

unicast: 單點傳播,目标裝置是一個

broadcast: 廣播,目标裝置是所有

multicast: 多點傳播,多點傳播,目标裝置是多個

Linux-網絡基礎

1.5.3.4 沖突域和廣播域

沖突域:兩個網絡裝置同時發送資料,如果發生了沖突,則兩個裝置處于同一個沖突域,反之,則各自處于不同的沖突域

廣播域:一個網絡裝置發送廣播,另一個裝置收到了,則兩個裝置處于同一個廣播域,反之,則各自處于不同的廣播域

1.5.3.5 三種通訊機制

Linux-網絡基礎
  • 單工通信:隻有一個方向的通信,比如: 收音機
  • 半雙工通信:通信雙方都可以發送和接收資訊,但不能同時發送,也不能同時接收,比如:對講機
  • 全雙工通信:通信雙方可以同時發送和同時接收,比如: 手機

案例:檢視雙工和速度

[root@nginx ~]# mii-tool ens33
ens33: negotiated 1000baseT-FD flow-control, link ok

[root@nginx ~]# mii-tool -v ens33
ens33: negotiated 1000baseT-FD flow-control, link ok
  product info: Yukon 88E1011 rev 3
  basic mode:   autonegotiation enabled
  basic status: autonegotiation complete, link ok
  capabilities: 1000baseT-FD 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD
  advertising:  1000baseT-FD 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD
  link partner: 1000baseT-HD 1000baseT-FD 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD
[root@nginx ~]# 

[root@nginx ~]# ethtool ens33
[root@nginx ~]# ethtool -i ens33
driver: e1000
version: 7.3.21-k8-NAPI
firmware-version: 
expansion-rom-version: 
bus-info: 0000:02:01.0
supports-statistics: yes
supports-test: yes
supports-eeprom-access: yes
supports-register-dump: yes
supports-priv-flags: no
[root@nginx ~]#            
Linux-網絡基礎