1. 程式人生 > >五十二、linux 編程——網絡介紹

五十二、linux 編程——網絡介紹

占用 src 網絡會議 地址解析 進行 ip 地址 簡單 操作 transfer

52.1 網絡介紹

  • 使用遠程資源
  • 共享信息、程序和數據
  • 分布處理

52.1.1 協議的概念

  • 計算機網絡中實現通信必須有一些約定,如對速率、傳輸代碼、代碼結構、傳輸控制步驟和出錯控制等約定,這些約定即被稱為通信協議
  • 在兩個節點之間要成功地進行通信,兩個節點之間必須約定使用共同的“語言”,這些被通信各方共同遵守的約定、語言、規則被稱為協議
  • 在 Internet 中,最為通用的網絡協議是 TCP/IP 協議

52.1.2 網絡分層模型

  技術分享圖片

  • 應用層:制定完成某些用戶初始化任務的方法。應用協議通常由應用開發者設計和實現。如 FTP、skype燈
  • 表示層:指定對應用的數據表示格式和轉換規則的方法
  • 會話層:指定由多個連接組成一個通信回話的方法。包括關閉連接、重啟連接和檢查點進程
  • 傳輸層:指定運行在相同計算機系統中的多個程序之間的連接或關聯的方法,如果在其他地方沒有實現,本層可能實現可靠的傳輸
  • 網絡層:指定經過潛在不同類型鏈路層網絡的多跳通信方法。對於分組網絡,它描述了抽象的分組格式和標準的地址結構
  • 鏈路層:指定經過單一鏈路通信的方法,包括多個系統共享同一介質時的“介質訪問”控制協議。本層通常包括差錯檢測和鏈路層地址格式
  • 物理層:指定連接器、數據速率和如果在某些介質上進行位編碼。本層也描述了底層的差錯檢測和糾正、頻率分配。

52.1.3 OSI模型與TCP/IP模型對應關系

  技術分享圖片

51.2 TCP/IP 協議族

  數據包封裝:

  技術分享圖片

51.2.1 協議族介紹

  • TCP/IP 實際上是一個一起工作的通信家族,為網際數據通信提供通路
  • TCP/IP 協議族大體上分為三部分
    • Internet 協議(IP)
    • 傳輸控制協議(TCP)和用戶數據報文協議(UDP)
    • 處於 TCP 和 UDP 之上的一組協議開發的應用程序。它們包括:
      • 遠程登錄:TELNET
      • 文件傳送協議:FTP
      • 域名服務:DNS
      • 簡單的郵件傳送程序:SMTP
      • 等其他協議

51.2.2 網絡層協議

  • Internet 協議(IP)
    • 該協議本設計成互聯分組交換通信網,以形成一個網際通信環境。它負責在源主機和目的主機之間傳輸來自其較高層軟件的稱為數據報文的數據塊,它在源和目的地之間提供非連接型傳遞服務。
    • IP 的主要目的是為數據輸入/輸出網絡提供基本算法,為高層協議提供無連接的傳送服務。這意味著在 IP 將數據遞交給接收站點以前不在傳輸站點和接收站點之間建立對話(虛擬鏈路)。它只是封裝和傳遞數據,但不向發送者或接收者報告包的狀態,不處理所遇到的故障。
    • IP 協議有以下四個主要功能:
      • 數據傳送
      • 尋址
      • 路由選擇
      • 數據報文的分段
    • IP 協議不註意包內的數據類型,它所知道的一切是必須將某些稱為 IP 幀頭的控制協議加到高層協議(TCP 或 UDP)所接收的數據上
    • 技術分享圖片
  • 網絡層其他數據路由協議
    • 路由協議分析數據包的地址並且決定傳輸數據到目的電腦最佳路線。它們也可以把大的數據分成幾部分,並且在目的地再把它們組合起來。IP 處理實際上傳輸數據
      • 網際控制報文協議(ICMP,Internet Control Message Protocol)處理 IP 的狀態信息,比如能影響路由決策的數據錯誤或改變。ICMP 實際上不是IP 層部分,但直接同 IP 層一起工作,報告網絡上的某些出錯情況。允許網際路由器傳輸差錯信息或測試報文
      • RIP(路由信息協議,Routing Information Protocol),它是幾個決定信息傳輸的最佳路由協議中的一個
      • OSPF(Open Shortest Path First)一個用來決定路由的協議
    • 地址解析協議(ARP,Address Resolution Protocol)確定網絡上一臺電腦的數字地址。ARP 實際上不是網絡層部分,它處於 IP 和數據鏈路層之間,它是在 32位 IP 地址和 48 位局域網物理地址之間執行翻譯的協議。
    • DNS(域名系統,Domain Name System)從機器的名字確定一個機器的數字地址
    • RARP(反向地址解析協議,Reverse Address Resolution Protocol)確定網絡上一臺計算機的地址,和 ARP 正好相反

51.2.3 傳輸層協議

  • 傳輸控制協議(TCP)
    • 可靠的面向連接的傳輸層服務
    • 主要功能:
      • 監聽輸入對話建立請求
      • 請求另一網絡站點對話
      • 可靠的發送和接收數據
      • 適度的關閉對話
    • TCP(傳輸控制協議 Transmission Control Protocol)是重要的傳輸層協議,TCP 提供一種面向連接的、可靠的字節流服務
    • TCP 協議的目的是允許數據同網絡上的另外站點進行可靠的交換。它能提供端口編號的譯碼,以識別主機的應用程序,而且完成數據的可靠傳輸
    • TCP 協議具有嚴格的內裝差錯檢驗算法確保數據的完整性
    • TCP 協議是面向字節的順序協議,這意味著包內的每個字節被分配一個順序編號,並分配給每包一個順序編號
    • 技術分享圖片
  • 用戶數據報文協議(UDP)
    • UDP 提供不可靠的非連接型傳輸層服務
      • 它允許在源和目的地站點之間傳送數據,而不必在傳送數據之前建立對話
      • 不使用 TCP 使用的端對端差錯校驗
      • 傳輸層功能全部發揮,而開銷卻比較低
      • 主要用於那些不要求 TCP 協議的非連接型應用程序。例如,名字服務、網絡管理、視頻點播和網絡會議燈。
    • UDP(用戶數據報協議 User Datagram Protocol)也是 TCP/IP 的傳輸層協議,它是無連接的,不可靠的傳輸服務。當接收數據時,它不向發送方提供確認信息,它不提供輸入包的順序,如果出現丟失包或重份包的情況,也不會向發送方發出差錯報文
      • 它允許在源和目的地站點之間傳送數據,而不必在傳送數據之前建立對話
      • 不使用 TCP 使用的端對端差錯校驗
      • 傳輸層功能全都發揮,而開銷卻比較低
    • 由於它執行功能時具有較低的開銷,因而執行速度比 TCP 快。它多半用於不需要可靠傳輸的應用程序,例如網絡視頻點播和視頻會議等。
    • 技術分享圖片
  • TCP 和 UDP 協議的區別
    • TCP 以連接為基礎,即兩臺電腦必須先建立一個連接,然後才能傳輸數據。事實上,發送和接受的電腦必須一直互相通訊和聯系
    • UDP 是一個無連接服務,數據可以直接發送而不必在兩臺電腦之間建立一個網絡連接。它和有連接的 TCP 相比,占用帶寬少,但是無法確認數據是否真正到達了客戶端,而客戶端收到的數據也不知道是否還是原來的發送順序

51.2.4 應用層協議

  • BOOTP(啟動協議,Boot Protocol)由網絡服務器上取得啟動信息,然後將本地的網絡計算機啟動
  • Telnet(遠程登錄)允許一個遠程登錄,使用者可以從網絡上的一臺機器通過 TELNET 連線到另一臺機器,就像使用者直接在本地操作一樣
  • FTP 和 TFTP:文件傳送協議
    • FTP(文件傳輸協議,File Transfer Protocol)通過國際互聯網從一臺計算機上傳輸一個或多個文件到另外一臺計算機
  • SMTP:簡單的文件傳送協議
  • EGP(外部網關協議,Exterior Gateway Protocol)為外部網絡傳輸路由信息
  • GGP(網關到網關協議,Gateway-to-Gateway Protocol)在網關和網關之間傳輸路由協議
  • IGP(內部網關協議,Interior Gateway Protocol)在內部網絡傳輸路由信息
  • DNS:域名服務

51.3 IP 地址

51.3.1 介紹

  • 在 TCP/IP 網絡中,每個主機都由唯一的地址,它是通過 IP 協議來實現的
  • IP 協議要求在每次與 TCP/IP 網絡建立連接時,每臺主機都必須為這個連接分配一個唯一的 32 位地址,因為在這個 32 位 IP 地址中,不但可以用來識別某一臺主機,而且還隱含著網際間的路徑信息
  • 主機是指網絡上的一個節點,不能簡單地理解為一臺計算機,實際上 IP 地址是分配給計算機的網絡適配器(即網卡)的,一臺計算機可以由多個網絡適配器,就可以由多個 IP 地址,一個網絡適配器就是一個節點。
  • IP 地址為 32 位地址,一般以 4 個字節表示。每個字節的數字又用十進制表示,即每個字節的數的範圍是 0~255,且每個數字之間用點隔開,例如:192.168.0.112,這種記錄方法稱為“點-分”十進制記號法。IP 地址的結構如下所示:
    • 技術分享圖片
    • 192 為網絡類型;168.0 為網絡 ID;112 為主機 ID

51.3.2 IP 地址的分類

  技術分享圖片

  技術分享圖片

51.4 端口

51.4.1 端口號

  • TCP/UDP 協議使用 16 位整數存儲端口號,所以每個主機擁有 65535 個端口
  • 一些端口被 IANA 分配給制定應用
    • 21:FTP
    • 23:Telnet
    • 80:HTTP
    • RFC 1700(大約有2000個保留端口)

五十二、linux 編程——網絡介紹