TCP、UDP略号、HTTP刑峡、Socket、XMPP的區(qū)別玄柠。

什么是Socket

計(jì)算機(jī)專業(yè)術(shù)語(yǔ)就是:

網(wǎng)絡(luò)上的兩個(gè)程序通過(guò)一個(gè)雙向的通信連接實(shí)現(xiàn)數(shù)據(jù)的交換突梦,這個(gè)連接的一端稱為一個(gè)socket。Socket的英文原義是“孔”或“插座”羽利。作為BSD UNIX的進(jìn)程通信機(jī)制宫患,取后一種意思。通常也稱作”套接字“铐伴,用于描述IP地址和端口撮奏,是一個(gè)通信鏈的句柄,可以用來(lái)實(shí)現(xiàn)不同虛擬機(jī)或不同計(jì)算機(jī)之間的通信当宴。在Internet上的主機(jī)一般運(yùn)行了多個(gè)服務(wù)軟件畜吊,同時(shí)提供幾種服務(wù)。每種服務(wù)都打開一個(gè)Socket户矢,并綁定到一個(gè)端口上玲献,不同的端口對(duì)應(yīng)于不同的服務(wù)。Socket正如其英文原意那樣,像一個(gè)多孔插座捌年。一臺(tái)主機(jī)猶如布滿各種插座的房間瓢娜,每個(gè)插座有一個(gè)編號(hào),有的插座提供220伏交流電礼预, 有的提供110伏交流電眠砾,有的則提供有線電視節(jié)目。 客戶軟件將插頭插到不同編號(hào)的插座托酸,就可以得到不同的服務(wù)褒颈。

通俗語(yǔ)

Socket稱"套接字"

網(wǎng)絡(luò)上的兩個(gè)程序通過(guò)一個(gè)雙向的通信連接實(shí)現(xiàn)數(shù)據(jù)的交換,這個(gè)連接的一端稱為一個(gè)Socket端,平時(shí)我們向服務(wù)器發(fā)送一個(gè)網(wǎng)絡(luò)請(qǐng)求,然后服務(wù)器響應(yīng)請(qǐng)求,返回服務(wù)器數(shù)據(jù)應(yīng)用程序通常通過(guò)"套接字"向網(wǎng)絡(luò)發(fā)出請(qǐng)求或者應(yīng)答網(wǎng)絡(luò)請(qǐng)求

細(xì)節(jié):

1.Socket相當(dāng)于一個(gè)"管道"或者說(shuō)"隧道"兩邊的連接,一個(gè)進(jìn)入,一個(gè)出來(lái)
2.用戶名和密碼是存儲(chǔ)在服務(wù)器的數(shù)據(jù)庫(kù)中
3.我們要保證客戶端程序是訪問(wèn)web應(yīng)用程序還是數(shù)據(jù)庫(kù)應(yīng)用程序呢?就是通過(guò)端口號(hào)

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

1.網(wǎng)絡(luò)上的請(qǐng)求就是通過(guò)Socket來(lái)建立連接后互相通信
2.IP地址(網(wǎng)絡(luò)上主機(jī)設(shè)備的唯一標(biāo)識(shí))(尋找服務(wù)器的主機(jī))
3.端口號(hào)(定位程序)
4.用于標(biāo)示進(jìn)程(一個(gè)程序就是一個(gè)進(jìn)程)的邏輯地址,不同進(jìn)程的標(biāo)示
5.有效端口:065535,其中01024由系統(tǒng)使用或者保留端口,開發(fā)中建議使用1024以上的端口
6.傳輸協(xié)議(用什么樣的方式進(jìn)行交互)(方式就是TCP和UDP需要還是不需要建立連接。)
7.通訊的規(guī)則(常見(jiàn)協(xié)議:TCP励堡、UDP)

TCP:


三次握手,是為了數(shù)據(jù)的安全性和可靠性 比如打電話
第一次握手:先撥過(guò)去
第二次握手:對(duì)方"喂"了一聲,響應(yīng)一下,
第三次握手:我聽(tīng)到對(duì)方之后,也說(shuō)了一句"喂",響應(yīng)谷丸。

只有這三個(gè)步驟,別人喂了一聲,你也喂了一聲,它能聽(tīng)到我的響應(yīng),我還能聽(tīng)到它的響應(yīng)才是成功的。加入借錢,這樣才能保證了安全性和可靠性
1.必須建立連接,效率會(huì)稍低(每一次都要建立連接)
2.進(jìn)行了多少次HTTP請(qǐng)求,就進(jìn)行了多少次三次握手(HTTP是效率低些,但是影響不大,因?yàn)橛脩粝麓伟l(fā)送網(wǎng)絡(luò)請(qǐng)求的時(shí)間不固定,所以沒(méi)有多大影響)(打電話如果一直保持,電話費(fèi)不就多了嗎)
3.HTTP就是每發(fā)送一次請(qǐng)求,就建立一次TCP連接,三次握手

UDP:

將數(shù)據(jù)及源和目的封裝到數(shù)據(jù)包中,不需要建立連接(就像老師(源)屏幕廣播,就及時(shí)的把數(shù)據(jù)同步發(fā)送到你的電腦上(目的),直接發(fā)送应结。假如網(wǎng)絡(luò)斷了,再次看到屏幕的時(shí)候,只能看到最新的內(nèi)容刨疼。沒(méi)了就沒(méi)了,錯(cuò)過(guò)了就錯(cuò)過(guò)了)
每個(gè)數(shù)據(jù)包的大小限制在64Kb之內(nèi)(首先是實(shí)時(shí)的,數(shù)據(jù)弄小點(diǎn),如果出問(wèn)題,就不會(huì)有太大的破壞)
因?yàn)闊o(wú)需連接,因此是不可靠協(xié)議(省去了三次握手,性能就高了)
不需要建立連接,速度快

應(yīng)用:

Socket通信流程圖:


1.bind()就是綁定端口(服務(wù)器要有端口標(biāo)識(shí)自己)
2.listen()就是監(jiān)聽(tīng)端口看有沒(méi)有連接過(guò)來(lái),我同意就接收連接 (假如客戶端要連接web應(yīng)用程序端口,就要監(jiān)聽(tīng)80端口。假如是惡意攻擊,多次并發(fā)請(qǐng)求,會(huì)造成網(wǎng)絡(luò)阻塞,那我就可以斷開你的連接)
3.accept()接收或拒絕網(wǎng)絡(luò)請(qǐng)求
4.write()客戶端發(fā)請(qǐng)求
5.read()服務(wù)端接受請(qǐng)求

假如客戶端發(fā)送登錄請(qǐng)求,我服務(wù)器是要做出來(lái)請(qǐng)求的,服務(wù)器要做回應(yīng)數(shù)據(jù),發(fā)數(shù)據(jù)給客戶端,做一個(gè)write()的操作一個(gè)HTTP的請(qǐng)求完了后,接下有個(gè)操作,結(jié)束連接鹅龄。因?yàn)橄麓握?qǐng)求的時(shí)間是不固定的揩慕。就做一個(gè)close()操作
HTTP的底層就通過(guò)Socket建立連接通信管道。實(shí)現(xiàn)數(shù)據(jù)的傳輸
HTTP是一個(gè)TCP的傳輸協(xié)議(方式),它是一個(gè)可靠的安全協(xié)議

實(shí)現(xiàn)Socket服務(wù)端監(jiān)聽(tīng)方法:

1.實(shí)現(xiàn)Socket的監(jiān)聽(tīng)方法就是使用C語(yǔ)言實(shí)現(xiàn)(系統(tǒng)默認(rèn)就有,但是麻煩)
2.使用CocoaAsyncSocket第三方框(是oc的),內(nèi)部是對(duì)C的封裝,耗時(shí)操作肯定是耗時(shí)的砾层。
3.Telnet命令 telnet host port/telnet 192.168.10.10 5288 telnet命令是連接服務(wù)器上的某個(gè)端口對(duì)應(yīng)的服務(wù)

Socket層上的協(xié)議:

1.Socket層上的協(xié)議指的是數(shù)據(jù)傳輸格式:


2:HTTP協(xié)議(類似于字典的協(xié)議)

3:XMPP協(xié)議(是一款即時(shí)通訊協(xié)議(目的是定義數(shù)據(jù)傳輸?shù)母袷?)

4:自定義即時(shí)通訊協(xié)議,json格式

補(bǔ)充:TCP漩绵、UDP贱案、HTTP肛炮、Socket之間的區(qū)別

IP:網(wǎng)絡(luò)層協(xié)議;

TCP和UDP:傳輸層協(xié)議;

HTTP:應(yīng)用層協(xié)議;

Socket:TCP/IP網(wǎng)絡(luò)的API。多指?jìng)鬏攲泳W(wǎng)絡(luò)接口

TCP/IP代表傳輸控制協(xié)議/網(wǎng)際協(xié)議,指的是一系列協(xié)議宝踪。

TCP和UDP使用IP協(xié)議從一個(gè)網(wǎng)絡(luò)傳送數(shù)據(jù)包到另一個(gè)網(wǎng)絡(luò)侨糟。把IP想像成一種高速公路,它允許其它協(xié)議在上面行駛并找到到其它電腦的出口瘩燥。TCP和UDP是高速公路上的“卡車”秕重,它們攜帶的貨物就是像HTTP,文件傳輸協(xié)議FTP這樣的協(xié)議等厉膀。

TCP和UDP是FTP溶耘,HTTP和SMTP之類使用的傳輸層協(xié)議。雖然TCP和UDP都是用來(lái)傳輸其他協(xié)議的服鹅,它們卻有一個(gè)顯著的不同:TCP提供有保證的數(shù)據(jù)傳輸凳兵,而UDP不提供。這意味著TCP有一個(gè)特殊的機(jī)制來(lái)確保數(shù)據(jù)安全的不出錯(cuò)的從一個(gè)端點(diǎn)傳到另一個(gè)端點(diǎn)企软,而UDP不提供任何這樣的保證庐扫。

HTTP(超文本傳輸協(xié)議)是利用TCP在兩臺(tái)電腦(通常是Web服務(wù)器和客戶端)之間傳輸信息的協(xié)議。客戶端使用Web瀏覽器發(fā)起HTTP請(qǐng)求給Web服務(wù)器形庭,Web服務(wù)器發(fā)送被請(qǐng)求的信息給客戶端铅辞。

記住,需要IP協(xié)議來(lái)連接網(wǎng)絡(luò);TCP是一種允許我們安全傳輸數(shù)據(jù)的機(jī)制萨醒,斟珊,使用TCP協(xié)議來(lái)傳輸數(shù)據(jù)的HTTP是Web服務(wù)器和客戶端使用的特殊協(xié)議。

Socket 接口是TCP/IP網(wǎng)絡(luò)的API富纸,Socket接口定義了許多函數(shù)或例程倍宾,用以開發(fā)TCP/IP網(wǎng)絡(luò)上的應(yīng)用程序。

**XMPP:是一個(gè)應(yīng)用層協(xié)議,協(xié)議基于XML結(jié)構(gòu)設(shè)計(jì)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末胜嗓,一起剝皮案震驚了整個(gè)濱河市高职,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌辞州,老刑警劉巖怔锌,帶你破解...
    沈念sama閱讀 211,265評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異变过,居然都是意外死亡埃元,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門媚狰,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)岛杀,“玉大人,你說(shuō)我怎么就攤上這事崭孤±噜停” “怎么了?”我有些...
    開封第一講書人閱讀 156,852評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵辨宠,是天一觀的道長(zhǎng)遗锣。 經(jīng)常有香客問(wèn)我,道長(zhǎng)嗤形,這世上最難降的妖魔是什么精偿? 我笑而不...
    開封第一講書人閱讀 56,408評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮赋兵,結(jié)果婚禮上笔咽,老公的妹妹穿的比我還像新娘。我一直安慰自己霹期,他們只是感情好叶组,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,445評(píng)論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著经伙,像睡著了一般扶叉。 火紅的嫁衣襯著肌膚如雪勿锅。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,772評(píng)論 1 290
  • 那天枣氧,我揣著相機(jī)與錄音溢十,去河邊找鬼。 笑死达吞,一個(gè)胖子當(dāng)著我的面吹牛张弛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播酪劫,決...
    沈念sama閱讀 38,921評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼吞鸭,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了覆糟?” 一聲冷哼從身側(cè)響起刻剥,我...
    開封第一講書人閱讀 37,688評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎滩字,沒(méi)想到半個(gè)月后造虏,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,130評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡麦箍,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,467評(píng)論 2 325
  • 正文 我和宋清朗相戀三年漓藕,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片挟裂。...
    茶點(diǎn)故事閱讀 38,617評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡享钞,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出诀蓉,到底是詐尸還是另有隱情栗竖,我是刑警寧澤,帶...
    沈念sama閱讀 34,276評(píng)論 4 329
  • 正文 年R本政府宣布交排,位于F島的核電站划滋,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏埃篓。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,882評(píng)論 3 312
  • 文/蒙蒙 一根资、第九天 我趴在偏房一處隱蔽的房頂上張望架专。 院中可真熱鬧,春花似錦玄帕、人聲如沸部脚。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,740評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)委刘。三九已至丧没,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間锡移,已是汗流浹背呕童。 一陣腳步聲響...
    開封第一講書人閱讀 31,967評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留淆珊,地道東北人夺饲。 一個(gè)月前我還...
    沈念sama閱讀 46,315評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像施符,于是被迫代替她去往敵國(guó)和親往声。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,486評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容