iOS之網絡編程---網絡協議淺談

1.TCP/UDP協議:
TCP:傳輸控制協議,提供面向連接的、可靠的、點到點的通信(可靠)
正式通信前必須要與對方建立連接(三次握手)。事先爲所發送的數據開闢出連接好的通道,然後再進行數據發送,
UDP:用戶數據報協議,提供非連接的不可靠的,點到多點的通信(快速)
正式通信前不必與對方建立連接,不管對方狀態就直接發送,UDP用於一次只傳送少量數據,可靠性要求低。

**TCP的三次握手:
1.客戶端發送syn包(syn=j)到服務器,並進入SYN_SEND狀態,等待服務器確認
2.服務器收到syn包,必須確認客戶的SYN(ack=j+1),同時自己也發送一個syn包(syn+ack包),此時服務器進入SYN_RECV狀態
3.客戶端收到服務器的SYN+ACK包,向服務器發送確認包ack=k+1,此包發送完畢,客戶端和服務端進入ESTABLISHED狀態

PS:socket
(基於TCP/UDP協議實現的):長連接,理論上客戶端和服務器一旦建立起連接就不會主動斷掉,雙方保持連接通道,都可以主動發送數據。(主要使用的類CFSocketRef)

2.http協議:短連接,客戶端向服務器發送一次請求,服務器端相應後立即斷掉連接,以節省資源。(主要使用的系統類是:NSURLConnection)

5.TCP/UDP
1)基本信息:(網絡協議的講解見blog)
物理層、數據鏈路層、網絡層、傳輸層、會話層、表示層和應用層
IP:網絡層
TCP:傳輸層
HTTP:應用層
TCP/IP主要解決數據如何在網絡中傳輸,HTTP主要解決如何包裝數據。

2)什麼是socket:對TCP/IP協議的封裝,socket本身不是協議,而是一個調用接口(API)。它使得程序員更方便地使用TCP/IP協議棧而已。
(HTTP是轎車,提供了封裝或者顯示數據的具體形式,那麼socket就是發動機,提供了網絡通信的能力)

3)主要使用CFSocketRef,使用到之後再詳細說明

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章