1. 程式人生 > >嵌入式Linux網路程式設計,網路基礎,OSI七層模型,TCP/IP四層模型,TCP/IP通訊模型、協議結構、封包與拆包,TCP/UDP協議特點及適用情況

嵌入式Linux網路程式設計,網路基礎,OSI七層模型,TCP/IP四層模型,TCP/IP通訊模型、協議結構、封包與拆包,TCP/UDP協議特點及適用情況

文章目錄

1,TCP協議分成了兩個不同的協議----->TCP/IP協議誕生

  1. 用來檢測網路傳輸中差錯的傳輸控制協議TCP
  2. 專門負責對不同網路進行互聯的網際網路協議IP

2,網路的體系結構

  1. 網路採用分而治之的方法設計,將網路的功能劃分為不同的模組,以分層的形式有機組合在一起。
  2. 每層實現不同的功能,其內部實現方法對外部其他層次來說是透明的。每層向上層提供服務,同時使用下層提供的服務
  3. 網路體系結構即指網路的層次結構和每層所使用協議的集合
  4. 兩類非常重要的體系結構:OSI與TCP/IP

2.1,OSI開放系統互聯模型

OSI模型相關的協議已經很少使用,但模型本身非常通用
OSI模型是一個理想化的模型,尚未有完整的實現
OSI模型共有七層(右圖)
低層是Linux核心中的內容
高層是在應用空間
  1. 交換機:
    ·兩層交換機(偏硬體)—資料鏈路層
    ·三層交換機(偏軟體)—網路層
  2. 交換機屬於OSI第二層即資料鏈路層裝置。它根據MAC地址定址,通過站表選擇路由,站表的建立和維護由交換機自動進行。
  3. 路由器屬於OSI第三層即網路層裝置,它根據IP地址進行定址,通過路由表路由協議產生。交換機最大的好處是快速,路由器最大的好處是控制能力強。

2.2,TCP/IP協議族的體系結構

TCP/IP協議是Internet事實上的工業標準。
一共有四層
下三層是Linux核心中的內容
應用層是在應用空間
  1. 網路介面和物理層:硬體驅動,遮蔽硬體差異,形成統一的介面(核心中的struct net_device)
  2. 網路層(IP層):跨不同的作業系統和機器,實現端到端的傳輸資料
  3. 傳輸層:資料應該交給哪一個任務處理
  4. 應用層:各種應用層的協議
各層典型的協議
應用層 HTTP/HTTPS:網頁訪問協議
郵件傳送接收協議: POP3(收)/SMTP(發) 、IMAP(可接收郵件的一部分)
FTP:檔案傳輸
Telnet/SSH: 遠端登入
嵌入式相關:NTP: 網路時鐘協議
嵌入式相關:SNMP: 簡單網路管理協議(實現對網路裝置集中式管理)
嵌入式相關:RTP/RTSP:傳輸音視訊的協議(安防監控)
傳輸層 TCP: (Transfer Control protocol,傳輸控制協議) 提供面向連線的,一對一的可靠資料傳輸的協議 即資料無誤、資料無丟失、資料無失序、資料無重複到達的通訊
UDP: (user Datagram Protocol, 使用者資料報協議): 提供不可靠,無連線的盡力傳輸協議 是不可靠的無連線的協議。在資料傳送前,因為不需要進行連線,所以可以進行高效率的資料傳輸。
SCTP: 是可靠傳輸,是TCP的增強版,它能實現多主機、多鏈路的通訊
網路層(IP層) IP: Internet protocol(分為IPV4和IPV6)
ICMP: Internet控制管理協議,ping命令屬於ICMP
IGMP: Internet分組管理協議,廣播、組播
網路介面和物理層 MAC地址:48位的數,全球唯一,網路裝置的身份標識
ARP:通過IP地址找到(解析)MAC地址
RARP:通過MAC地址找到IP地址
PPP協議:撥號協議(電話線、3G、4G)

3,TCP/IP協議通訊模型

在這裡插入圖片描述

3.1,TCP/IP結構

在這裡插入圖片描述

3.2,TCP/IP協議通訊模型

在這裡插入圖片描述

  • MTU(Max Transfer Unit):最大傳輸單元,和網路型別有關
    ·乙太網:MTU=1500位元組
  • mss(maximum segment size):最大段大小,和網路型別、線路、系統特性等相關

3.3,資料的封裝與傳遞過程(封包和拆包)

在這裡插入圖片描述

4,TCP協議特點

  1. TCP(即傳輸控制協議):是一種面向連線的傳輸層協議,它能提供高可靠性通訊(即資料無誤、資料無丟失、資料無失序、資料無重複到達的通訊)
  2. 適用情況:
    ·適合於對傳輸質量要求較高,以及傳輸大量資料的通訊。
    ·在需要可靠資料傳輸的場合,通常使用TCP協議
    ·MSN/QQ等即時通訊軟體的使用者登入賬戶管理相關的功能通常採用TCP協議

5,UDP協議特點

  1. UDP(User Datagram Protocol)使用者資料報協議,是不可靠的無連線的協議。在資料傳送前,因為不需要進行連線,所以可以進行高效率的資料傳輸。

  2. 適用情況:
    ·傳送小尺寸資料(如對DNS伺服器進行IP地址查詢時)
    ·在接收到資料,給出應答較困難的網路中使用UDP。(如:無線網路)
    ·適合於廣播/組播式通訊中。
    ·MSN/QQ/Skype等即時通訊軟體的點對點文字通訊以及音視訊通訊通常採用UDP協議
    ·流媒體、VOD、VoIP、IPTV等網路多媒體服務中通常採用UDP方式進行實時資料傳輸