Socket學(xué)習(xí)記錄

Socket是為網(wǎng)絡(luò)服務(wù)提供的一種機(jī)制,學(xué)習(xí)之前對Socket沒有任何的理解,在此僅想分享自己的學(xué)習(xí)歷程和一些學(xué)習(xí)心得,第一次寫,若有不足之處還望指教

OSI、TCP\IP參考模型

簡單解釋:

1.物理層:主要定義物理設(shè)備標(biāo)準(zhǔn),如網(wǎng)線的接口類型、各種傳輸介質(zhì)的傳輸速率等。

2.數(shù)據(jù)鏈路層:主要將從物理層接收的數(shù)據(jù)進(jìn)行MAC地址的封裝與解封裝。

3.網(wǎng)絡(luò)層:選擇合適的網(wǎng)間路由和交換結(jié)點,確保數(shù)據(jù)及時傳送,將從下層接收到的數(shù)據(jù)進(jìn)行IP地址的封裝與解封裝

4.傳輸層:定義了一些傳輸數(shù)據(jù)的協(xié)議和端口,如TCP、UDP協(xié)議,主要將從下層接收的數(shù)據(jù)進(jìn)行分段和傳輸,到達(dá)目的地址后再進(jìn)行重組,以往把這一層數(shù)據(jù)叫做段

5.會話層:通過傳輸層建立數(shù)據(jù)傳輸通路。

6.表示層:主要是進(jìn)行對接收的數(shù)據(jù)進(jìn)行解釋、壓縮與解壓縮等,即把計算機(jī)能夠識別的東西轉(zhuǎn)化成人能夠識別的東西(如圖片、聲音等)。

7.應(yīng)用層:主要是一些終端的應(yīng)用,比如說FTP(各種文件下載)、瀏覽器、QQ等,可以將其理解為在電腦屏幕上可以看到的東西,也就是終端應(yīng)用。

網(wǎng)絡(luò)通訊要素:

IP地址:網(wǎng)絡(luò)中設(shè)備的標(biāo)示

端口號:用來標(biāo)示進(jìn)程的邏輯地址,不同進(jìn)程的標(biāo)示

傳輸協(xié)議:用什么樣的方式進(jìn)行交互,常見協(xié)議TCP/UDP

TCP/UDP

TCP(傳輸控制協(xié)議)

1.建立連接,形成數(shù)據(jù)傳輸?shù)耐ǖ?/p>

2.在連接中可進(jìn)行大數(shù)據(jù)傳輸(數(shù)據(jù)的大小不受限制)

3.通過三次握手建立連接,可靠協(xié)議,安全送達(dá)

4.先建立連接,效率較低

UDP(用戶數(shù)據(jù)報協(xié)議)

1.不需要建立連接,將數(shù)據(jù)封裝在數(shù)據(jù)包中

2.每個數(shù)據(jù)包得大小限制在64k之內(nèi)

3.無需連接,是不可靠協(xié)議

4.不需要連接,速度較快

Socket

1.網(wǎng)絡(luò)提供服務(wù)的一種機(jī)制

2.通信的兩端都是socket

3.網(wǎng)絡(luò)通信其實就是socket間的通信

4.數(shù)據(jù)在兩個socket間通過IO傳輸

iOS中常用的兩種Socket類型

流式Socket(SOCK_STREAM):流式是一種面向連接的Socket,針對于面向連接的TCP服務(wù)應(yīng)用

數(shù)據(jù)報式Socket(SOCK_DGRAM):數(shù)據(jù)報式Socket是一種無連接的Socket,對應(yīng)于無連接的UDP服務(wù)應(yīng)用

Http與Socket的區(qū)別

1.Http是基于Socket的實現(xiàn);Http應(yīng)用層協(xié)議,主要解決如何包裝數(shù)據(jù)

2.Http傳輸?shù)臄?shù)據(jù)格式是規(guī)定好的,Socket實現(xiàn)數(shù)據(jù)傳輸是最原始,Socket實現(xiàn)的數(shù)據(jù)傳輸格式可自定義

3.Http建立的連接稱為短連接,Socket建立的連接為長連接

4.Socket是對TCP/IP協(xié)議的封裝,Socket本身并不是協(xié)議,而是一個調(diào)用接口(API),通過Socket我們才能使用TCP/IP協(xié)議

最后

大家看完覺得還比較感興趣的話,可以自己模仿微信實現(xiàn)簡單的聊天功能

相關(guān)下載鏈接

iOS XMPP框架:https://github.com/robbiehanson/XMPPFramework

Server:http://www.igniterealtime.org/downloads/index.jsp

數(shù)據(jù)庫:http://dev.mysql.com/downloads/mysql/

最后編輯于
?著作權(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)容

  • 1.1 TCP/IP協(xié)議組 TCP/IP協(xié)議(傳輸控制協(xié)議)由網(wǎng)絡(luò)層的IP協(xié)議和傳輸層的TCP協(xié)議組成 IP層負(fù)責(zé)...
    F麥子閱讀 2,924評論 0 25
  • 一: 網(wǎng)絡(luò)各個協(xié)議:TCP/IP、SOCKET、HTTP 網(wǎng)絡(luò)七層由下往上分別為物理層、數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層、傳輸層...
    iYeso閱讀 1,512評論 0 13
  • 個人認(rèn)為,Goodboy1881先生的TCP /IP 協(xié)議詳解學(xué)習(xí)博客系列博客是一部非常精彩的學(xué)習(xí)筆記,這雖然只是...
    貳零壹柒_fc10閱讀 5,200評論 0 8
  • 1.這篇文章不是本人原創(chuàng)的,只是個人為了對這部分知識做一個整理和系統(tǒng)的輸出而編輯成的,在此鄭重地向本文所引用文章的...
    SOMCENT閱讀 13,383評論 6 174
  • 網(wǎng)絡(luò)概念第一天 兩臺電腦怎么通過網(wǎng)絡(luò)傳輸數(shù)據(jù)?怎樣才能知道傳輸?shù)氖菙?shù)據(jù)?誰摸過網(wǎng)線? 看電影,怎么看的?通過電流,...
    小吖朱閱讀 1,653評論 0 1

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