天天看點

嵌入式技術筆記(十九):網絡通信基礎知識

1. 實作網絡通信需要哪些支援?

  • 通信裝置:網卡(PC機自帶),交換機,路由器,光纖,電纜,基站。
  • 通信協定:作業系統自帶協定棧(Linux的特點:豐富的協定);裸機開發需要獨立的協定棧
  • 套接字的作用:傳輸層的檔案描述符

    類型:流式套接字(TCP)、資料報套接字(UDP——資料報形式)

    簡單的網絡通信隻需要學會使用系統API

2. 什麼是通信協定及作用?

含義:通信協定是指雙方實體完成通信或服務所必須遵循的規則和約定。協定定義了資料單元使用的格式,資訊單元應該包含的資訊與含義,連接配接方式,資訊發送和接收的時序,進而確定網絡中資料順利地傳送到确定的地方。簡單來說,就是通信雙方确定一種資料格式,以及通過什麼形式來發送。

作用:通過通信信道和裝置互連起來的多個不同地理位置的資料通信系統,使其能協同工作實作資訊交換和資源共享。

3. TCP/IP協定棧

OSI七層網絡模型,Linux四層網絡模型

OSI七層網絡模型 Linux四層網絡模型 對應的協定
應用層 應用層 TFTP,FTP,NFS,WAIS
表示層 應用層 Telnet,Rlogin,SNMP,Gopher
會話層 應用層 SMTP,DNS
傳輸層 傳輸層 TCP,UDP
網絡層 網際層 IP,ICMP,ARP,RARP,AKP,UUCP
資料鍊路層 網絡接口層 PDN,SLIP,PPP
實體層 網絡接口層 IEEE 802.1A,IEEE 802.2

OSI七層網絡模型中每層的作用:

實體層:通信媒體的信号到數字信号(二進制)的轉換;

資料鍊路層:區域網路之間計算機通信通過MAC位址(實體網卡)通信;

網絡層:IP位址,路由(通過公網IP來通路全世界);

傳輸層:TCP、UDP、端口

會話層:控制發包的資料

表示層:檔案格式

應用層:應用程式的使用

分層的好處:

1、各層之間是獨立的

2、靈活性強

3、結構上可以分開

4、易于維護

5、能促進标準化工作

TCP/IP協定棧的作用:

協定棧實作資料的壓縮加密和解壓解密

4. IP位址

IP位址:實際上是32位的二進制數

公網IP(廣域網通信):

A類:1.0.0.1~126.255.255.254

B類:128.0.0.1~191.255.255.254

C類:192.0.0.1~223.255.255.254

D類:224.0.0.1~239.255.255.254

E類:240.0.0.1~255.255.255.254

私網(區域網路):

A類:10.0.0.1~10.255.255.255

B類:172.16.0.0~172.255.255.255

C類:192.168.0.0~192.168.255.255

IPv4的位址範圍:0.0.0.0~255.255.255.255
           

如何解決IP位址荒:

1、IPv6

2、網絡位址轉換NAT()

一些協定的作用:
DNS:将域名解析成IP位址
SMTP:郵件發送
FTP:下載下傳/上傳檔案
IP:定義IP位址解析
           

子網路遮罩的作用:決定一個網段的大小(可用IP數量)

同一個網段的IP才可以直接互相通信,不同網段需要路由器。

舉例說明:

192.168.11.0/24:8個可用

192.168.11.0 網絡号

192.168.11.255 廣播位址

5. 端口号

端口的作用是對TCP/IP體系的應用程序進行統一的标志,使運作不同作業系統的計算機的應用程序能夠互相通信。

協定 端口号
FTP 21
TELNET 23
SMTP 25
DNS 53
TFTP 69
HTTP 80

著名端口号:0~1023

注冊端口号:1024~49151

動态端口号:49152~65535

6. TCP封包格式

嵌入式技術筆記(十九):網絡通信基礎知識

TCP協定的特點:面向連接配接、可靠的位元組流傳輸

校驗方式:

1、奇偶校驗

2、bcc異或校驗

3、crc循環備援校驗

4、MD5校驗和數字簽名

5、海明碼校驗

TCP在區域網路中傳輸資料的長度=1518-18-20-20=1460bit;

廣域網傳輸不限定大小,因為超過大小時會自動進行拆包。

7. TCP如何建立連接配接

通過三次握手建立連接配接;通過四次揮手端口連接配接。

網絡通信是全雙工的。

8. UDP協定(無連接配接不可靠)

  • UDP傳輸資料的最長長度

    區域網路:UDP傳輸資料的最長長度=1518-18-20-8=1472bit

    廣域網:UDP傳輸資料的最長長度=65535-IP(頭20)-UDP(8)=65507bit,使用sendto函數發送超過65507會傳回錯誤。

  • 協定的特點:

    1、無連接配接,減少了開銷和發送資料前的延遲

    2、盡最大努力進行傳遞(不保證可靠傳遞),主機不需要維持複雜的連接配接狀态表

    3、面向封包:發送方的UDP對應用程式傳遞下來的封包,在添加首部之後就向下傳遞給IP層,既不拆分也不合并

    4、沒有阻塞控制

    5、支援一對一、多對一和多對多互動通信

9. TCP和UDP的對比

特點 TCP UDP
是否連接配接 連接配接 不連接配接
是否可靠 可靠,使用流量控制和擁塞控制 不可靠,不使用流量控制和擁塞控制
連接配接對象的個數 隻能一對一 支援一對一、多對一和多對多互動通信
傳輸方式 面向位元組流 面向資料報
前部開銷 開銷大,首部最小20位元組,最大60位元組 開銷小,8位元組
适用場景 适用于要求可靠傳輸的應用 适用于實時應用

10. C/S

  • 優點:

    1、由于用戶端實作與伺服器的直接連接配接沒有中間環,是以響應更快

    2、操作界面漂亮,形式多樣,可以充分滿足客戶自身的個性化要求

    3、C/S結構的管理資訊系統具有較強的事務處理能力,能實作複雜的業務流程

  • 缺點:

    1、需要安裝專門的用戶端程式,分布功能弱針對面廣,且不具備網絡條件的使用者群體不能夠實作快速不是和安裝

    2、相容性差,對不同的開發工具,具有較大的局限性,采用不同的工具需要程式改寫程式

    3、開發成本高,需要具有一定的專業水準的技術人員才能完成

11. B/S

  • 優點:

    1、具有分布式特點,可以随時随地進行查詢、浏覽等業務

    2、業務擴充簡單,通過增加網頁即可增加伺服器功能

    3、維護友善,隻需要改變網頁,即可實作所有使用者同步更新

    4、開發簡單

  • 缺點:

    1、表現要達到C/S程式的程度需要花費不少精力

    2、速度和安全上需要花費巨大的設計成本,這是B/S架構最大的問題

繼續閱讀