iOS中tcp/ip協(xié)議,udp/ip協(xié)議,http和https協(xié)議

一、TCP/IP協(xié)議(傳輸控制協(xié)議)

1. 核心特性

  • 面向連接:通信前需通過"三次握手"建立連接,結(jié)束時通過"四次揮手"斷開。
  • 可靠傳輸:通過確認應(yīng)答(ACK)、超時重傳、流量控制(滑動窗口)、擁塞控制(慢啟動、擁塞避免)確保數(shù)據(jù)不丟失、不重復(fù)、按序到達。
  • 全雙工通信:支持雙向數(shù)據(jù)傳輸。
  • 字節(jié)流傳輸:數(shù)據(jù)被看作無結(jié)構(gòu)的字節(jié)流,需應(yīng)用層處理消息邊界。

2. 協(xié)議棧層級

graph LR
    A[應(yīng)用層 HTTP/FTP] --> B[傳輸層 TCP]
    B --> C[網(wǎng)絡(luò)層 IP]
    C --> D[鏈路層 Ethernet]

3. 典型應(yīng)用場景

  • 網(wǎng)頁瀏覽(HTTP)、文件傳輸(FTP)、電子郵件(SMTP)、數(shù)據(jù)庫連接等需要高可靠性的場景。

4. 關(guān)鍵參數(shù)

  • 端口號(21/22/80等)、序列號(Seq)、確認號(Ack)、窗口大小(Window Size)。

二、UDP/IP協(xié)議(用戶數(shù)據(jù)報協(xié)議)

1. 核心特性

  • 無連接:無需建立連接,直接發(fā)送數(shù)據(jù)包。
  • 不可靠傳輸:不保證數(shù)據(jù)到達、不保證順序、無重傳機制。
  • 高效性:頭部僅8字節(jié)(TCP至少20字節(jié)),無連接管理開銷。
  • 支持廣播/多播:可同時向多個主機發(fā)送數(shù)據(jù)。

2. 與TCP對比

特性 TCP UDP
連接方式 面向連接 無連接
可靠性 可靠 不可靠
傳輸效率 較低(約60-70%) 高(接近100%)
適用場景 網(wǎng)頁、文件傳輸 視頻流、DNS查詢

3. 典型應(yīng)用場景

  • 實時視頻/音頻(Zoom、抖音)、DNS查詢、在線游戲(王者榮耀)、物聯(lián)網(wǎng)傳感器數(shù)據(jù)。

三、HTTP協(xié)議(超文本傳輸協(xié)議)

1. 核心特性

  • 無狀態(tài):服務(wù)器不記錄客戶端狀態(tài)(依賴Cookie/Session彌補)。
  • 明文傳輸:請求/響應(yīng)頭和數(shù)據(jù)均未加密。
  • 基于TCP:默認端口80,需先建立TCP連接。
  • 請求-響應(yīng)模型:客戶端發(fā)起請求,服務(wù)器返回響應(yīng)。

2. 工作流程

sequenceDiagram
    Client->>Server: GET /index.html HTTP/1.1
    Server->>Client: HTTP/1.1 200 OK + 網(wǎng)頁數(shù)據(jù)

3. 版本演進

  • HTTP/1.1:持久連接(Keep-Alive)、管道化(Pipelining)。
  • HTTP/2:二進制分幀、多路復(fù)用、頭部壓縮。
  • HTTP/3:基于QUIC(UDP實現(xiàn)),解決隊頭阻塞。

四、HTTPS協(xié)議(安全超文本傳輸協(xié)議)

1. 核心改進

  • 加密傳輸:通過SSL/TLS加密數(shù)據(jù),防竊聽、篡改。
  • 身份認證:CA證書驗證服務(wù)器身份,防中間人攻擊。
  • 默認端口443,兼容HTTP協(xié)議。

2. TLS握手流程

sequenceDiagram
    Client->>Server: ClientHello(支持加密套件)
    Server->>Client: ServerHello(選定加密套件)+ 證書
    Client->>Server: 預(yù)主密鑰(用證書公鑰加密)
    Server->>Client: 切換加密通信

3. 加密技術(shù)

  • 對稱加密(AES):加密通信內(nèi)容。
  • 非對稱加密(RSA/ECC):交換對稱密鑰。
  • 哈希算法(SHA-256):驗證數(shù)據(jù)完整性。

五、協(xié)議對比總結(jié)

協(xié)議 傳輸層 可靠性 加密性 典型應(yīng)用
TCP/IP TCP 可靠 網(wǎng)頁、郵件、SSH
UDP/IP UDP 不可靠 直播、游戲、VoIP
HTTP TCP 可靠 普通網(wǎng)頁瀏覽
HTTPS TCP 可靠 支付、登錄等安全場景

六、iOS開發(fā)中的實際應(yīng)用

  1. TCP使用場景

    • 即時通訊消息收發(fā)(如微信文字消息)。
    • 需要可靠傳輸?shù)腁PI請求(如銀行交易)。
  2. UDP使用場景

    • 音視頻通話(集成聲網(wǎng)SDK)。
    • 實時游戲狀態(tài)同步(如王者榮耀位置同步)。
  3. HTTPS強制要求

    • App Transport Security (ATS) 要求iOS應(yīng)用默認使用HTTPS。
    • 例外域名需在Info.plist中配置NSExceptionDomains。

通過理解這些協(xié)議的特性,開發(fā)者可以更合理地選擇網(wǎng)絡(luò)方案(如直播用UDP+QUIC,支付用HTTPS+TCP),并優(yōu)化App的網(wǎng)絡(luò)性能與安全性。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容