玩轉iOS開發:iOS中的Socket編程(一)

文章分享至個人我的技術博客: https://cainluo.github.io/14986613643920.htmlhtml


Socket的解釋

Socket翻譯過來中文稱爲套接字, 這裏我找到了一段比較官方的解釋Socket是什麼東西:git

Socket是通訊的基石,是支持TCP/IP協議的網絡通訊的基本操做單元,包含進行網絡通訊必須的五種信息:鏈接使用的協議本地主機的IP地址本地進程的協議端口遠地主機的IP地址遠地進程的協議端口github

在實際當中, 確定是不止一個TCP/IP或者是一個應用程序進程在傳輸數據, 爲了能夠區分開來, 系統提供了一套API, 方便TCP/IP與應用程序交互, 通常把這個稱爲Socket API.服務器

醬紫應用層能夠和傳輸層經過這個Socket API, 區分來自不一樣的應用程序進程或者是網絡通訊, 使得數據能夠併發傳輸.微信


Socket的C/S端

Socket的使用其實也沒有咱們想象中那麼難, 只是這裏須要有一個前提條件, 由於創建Socket通訊是至少須要一對套接字, 其中一個是運行在咱們的客戶端上, 稱爲Client Socket, 還有一個是運行在服務器上, 稱爲Service Socket.網絡

Socket之間的鏈接過程分爲三個過程:併發

  • 服務器監聽
  • 客戶端請求
  • 鏈接確認

Socket同時支持TCPUDP兩種傳輸協議, 啥意思呢?app

Socket使用TCP協議通訊的時候, Socket就是一個TCP的鏈接, 那麼若是Socket使用的是UDP協議通訊, 那麼這時候的Socket就是UDP鏈接.翻譯

若是要有圖的話, 大概就這樣了:3d

1


網絡的協議

既然降到Socket, 那麼就要說說網絡裏面的協議, 這裏就要普及一下網絡裏面的到底都有啥, 首先咱們要知道, 在網絡裏面一共有七層協議.

從上往下分的話:

  • 應用層
  • 表達層
  • 會話層
  • 傳輸層
  • 網絡層
  • 數據鏈路層
  • 物理層

2

但咱們一般會把底下三層(網絡層, 數據鏈路層, 物理層)統稱爲媒體層, 通常都是專門搞網絡的網絡工程師大神們研究的對象.

而上面四層(傳輸層, 會話層, 表示層, 應用層)被稱爲主機層, 也是廣大用戶所面向和關心的內容.

說到協議, 咱們就不得不提一下HTTP:

  • HTTP協議: 它是對應着應用層.
  • TCP協議: 它是對應着傳輸層.
  • IP協議: 則對應着網絡層.

HTTP協議是基於TCP鏈接的, 因此三者根本就沒啥可比性.

  • TCP/IP協議: 屬於傳輸層協議, 主要解決數據如何在網絡中傳輸.
  • HTTP協議: 屬於應用層, 主要解決如何包裝數據.

Socket應用層TCP/IP協議族通訊中間的軟件抽象層, 是它的一組接口.


TCP/IP五層模型

既然都提到了TCP/IP這個協議, 那麼就來說講, TCP/IP裏的五層模型.

這裏面的五層模型分別爲:

  • 應用層
  • 傳輸層
  • 網絡層
  • 數據鏈路層
  • 物理層

那麼咱們平常生活中所接觸到的網絡器材有哪些? 分別處於哪一個模型?

  • 物理層: 中繼器, 集線器, 雙絞線
  • 數據鏈路層: 以太網交換機(Modem), 網卡(網卡有一半是工做在物理層)
  • 網絡層: 路由器, 三層交換機
  • 傳輸層: 四層交換機, 路由器(也有一些特殊的路由器在傳輸層中工做)

其中TCP/IP應用層比較特殊, 它是包含了會話層, 表達層, 應用層等功能, 這裏要說一點, TCP/IP協議並不能在傳輸層老是保證可靠的傳輸數據包, 但七層模型能夠作到.

TCP/IP還提供了另外一種傳輸模式, 叫作UDP(用戶數據報協議), 但這種協議不能保證可靠的數據包傳輸.

這裏再解釋一下:

  • TCP: 面向鏈接, 提供可靠的數據傳輸, 用於傳輸大量數據, 使用數據流模式, 速度慢, 創建鏈接時開銷較大
  • UDP: 非面向鏈接, 傳輸不可靠, 用於傳輸少許的數據, 速度快

總的來講TCP是一個數據流的模式協議, 而UDP是一種數據報模式的協議.

剛剛說了Socket是基於TCP/IP協議上的抽象, 也就是說Socket只是對TCP/IP的封裝, 自己是沒有協議的, 只有經過Socket API, 咱們纔可以使用TCP/IP協議.

大概的關係圖就是醬紫吧:


總結

這篇文章雖然不涉及任何的代碼, 但都是一些必備的基礎知識, 若是想更詳細的瞭解或者是找更官方的文檔, 能夠去看看蘋果爸爸提供的Networking Overview這篇文章.


最後

碼字很費腦, 看官賞點飯錢可好

微信

支付寶
相關文章
相關標籤/搜索