TCP UDP

TCP和UDP的誤解

一直都是說TCP/IP協(xié)議與UDP協(xié)議的區(qū)別棚贾,我覺得這是沒有從本質(zhì)上弄清楚網(wǎng)絡(luò)通信淫痰!
TCP/IP協(xié)議是一個協(xié)議簇病瞳。里面包括很多協(xié)議的践惑。UDP只是其中的一個慎颗。之所以命名為TCP/IP協(xié)議乡恕,因?yàn)門CP,IP協(xié)議是兩個很重要的協(xié)議言询,就用他兩命名了。

TCP簡介

TCP/IP協(xié)議集包括應(yīng)用層, 傳輸層傲宜,網(wǎng)絡(luò)層运杭,網(wǎng)絡(luò)訪問層。
TCP(Transmission Control Protocol函卒,傳輸控制協(xié)議)是面向連接的協(xié)議县习,也就是說,在收發(fā)數(shù)據(jù)前谆趾,必須和對方建立可靠的連接躁愿。

TCP建立連接要進(jìn)行3次握手

一個TCP連接必須要經(jīng)過三次“對話”才能建立起來,其中的過程非常復(fù)雜沪蓬,只簡單的描述下這三次對話的簡單過程:
(1)客戶向服務(wù)器發(fā)出連接請求數(shù)據(jù)包:“我想給你發(fā)數(shù)據(jù)彤钟,可以嗎?”跷叉,這是第一次對話逸雹;
(2)服務(wù)器向客戶發(fā)送同意連接和要求同步(同步就是兩臺主機(jī)一個在發(fā)送,一個在接收云挟,協(xié)調(diào)工作)的數(shù)據(jù)包:“可以梆砸,你什么時候發(fā)?”园欣,這是第二次對話帖世;
(3)客戶再發(fā)出一個數(shù)據(jù)包確認(rèn)服務(wù)器的要求同步:“我現(xiàn)在就發(fā),你接著吧沸枯!”日矫,這是第三次對話。
三次“對話”的目的是使數(shù)據(jù)包的發(fā)送和接收同步绑榴,經(jīng)過三次“對話”之后哪轿,客戶才向服務(wù)器正式發(fā)送數(shù)據(jù)。

201012122157476286.png

TCP釋放連接要進(jìn)行4次

1 當(dāng)主機(jī)A完成數(shù)據(jù)傳輸后,將控制位FIN置1,提出停止TCP連接的請求
2 主機(jī)B收到FIN后對其作出響應(yīng),確認(rèn)這一方向上的TCP連接將關(guān)閉,將ACK置1
3 由B 端再提出反方向的關(guān)閉請求,將FIN置1
4 主機(jī)A對主機(jī)B的請求進(jìn)行確認(rèn),將ACK置1,雙方向的關(guān)閉結(jié)束.
由TCP的三次握手和四次斷開可以看出,TCP使用面向連接的通信方式,大大提高了數(shù)據(jù)通信的可靠性,使發(fā)送數(shù)據(jù)端
和接收端在數(shù)據(jù)正式傳輸前就有了交互,為數(shù)據(jù)正式傳輸打下了可靠的基礎(chǔ)

201012122157494693.png

TCP采用四次揮手關(guān)閉連接如圖所示為什么建立連接協(xié)議是三次握手翔怎,而關(guān)閉連接卻是四次握手呢窃诉?

因?yàn)楫?dāng)Server端收到Client端的SYN連接請求報文后,可以直接發(fā)送SYN+ACK報文赤套。其中ACK報文是用來應(yīng)答的飘痛,SYN報文是用來同步的。但是關(guān)閉連接時于毙,當(dāng)Server端收到FIN報文時敦冬,很可能并不會立即關(guān)閉socket辅搬,所以只能先回復(fù)一個ACK報文唯沮,告訴Client端脖旱,”你發(fā)的FIN報文我收到了”。只有等到我Server端所有的報文都發(fā)送完了介蛉,我才能發(fā)送FIN報文萌庆,因此不能一起發(fā)送。故需要四步握手币旧。 TCPSocket和UDPSocket的具體實(shí)現(xiàn)

UDP(User Data Protocol践险,用戶數(shù)據(jù)報協(xié)議)

(1) UDP是一個非連接的協(xié)議,傳輸數(shù)據(jù)之前源端和終端不建立連接吹菱,當(dāng)它想傳送時就簡單地去抓取來自應(yīng)用程序的數(shù)據(jù)巍虫,并盡可能快地把它扔到網(wǎng)絡(luò)上。在發(fā)送端鳍刷,UDP傳送數(shù)據(jù)的速度僅僅是受應(yīng)用程序生成數(shù)據(jù)的速度占遥、計(jì)算機(jī)的能力和傳輸帶寬的限制;在接收端输瓜,UDP把每個消息段放在隊(duì)列中瓦胎,應(yīng)用程序每次從隊(duì)列中讀一個消息段。
(2) 由于傳輸數(shù)據(jù)不建立連接尤揣,因此也就不需要維護(hù)連接狀態(tài)搔啊,包括收發(fā)狀態(tài)等,因此一臺服務(wù)機(jī)可同時向多個客戶機(jī)傳輸相同的消息北戏。
(3) UDP信息包的標(biāo)題很短负芋,只有8個字節(jié),相對于TCP的20個字節(jié)信息包的額外開銷很小嗜愈。
(4) 吞吐量不受擁擠控制算法的調(diào)節(jié)示罗,只受應(yīng)用軟件生成數(shù)據(jù)的速率、傳輸帶寬芝硬、源端和終端主機(jī)性能的限制蚜点。
(5)UDP使用盡最大努力交付,即不保證可靠交付拌阴,因此主機(jī)不需要維持復(fù)雜的鏈接狀態(tài)表(這里面有許多參數(shù))绍绘。
(6)UDP是面向報文的。發(fā)送方的UDP對應(yīng)用程序交下來的報文迟赃,在添加首部后就向下交付給IP層陪拘。既不拆分,也不合并纤壁,而是保留這些報文的邊界左刽,因此,應(yīng)用程序需要選擇合適的報文大小酌媒。
我們經(jīng)常使用“ping”命令來測試兩臺主機(jī)之間TCP/IP通信是否正常欠痴,其實(shí)“ping”命令的原理就是向?qū)Ψ街鳈C(jī)發(fā)送UDP數(shù)據(jù)包迄靠,然后對方主機(jī)確認(rèn)收到數(shù)據(jù)包,如果數(shù)據(jù)包是否到達(dá)的消息及時反饋回來喇辽,那么網(wǎng)絡(luò)就是通的掌挚。

小結(jié)TCP與UDP的區(qū)別:

1.基于連接與無連接;
2.對系統(tǒng)資源的要求(TCP較多菩咨,UDP少)吠式;
3.UDP程序結(jié)構(gòu)較簡單;
4.流模式與數(shù)據(jù)報模式 抽米;
5.TCP保證數(shù)據(jù)正確性特占,UDP可能丟包,TCP保證數(shù)據(jù)順序云茸,UDP不保證摩钙。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市查辩,隨后出現(xiàn)的幾起案子胖笛,更是在濱河造成了極大的恐慌,老刑警劉巖宜岛,帶你破解...
    沈念sama閱讀 217,734評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件长踊,死亡現(xiàn)場離奇詭異,居然都是意外死亡萍倡,警方通過查閱死者的電腦和手機(jī)身弊,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,931評論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來列敲,“玉大人阱佛,你說我怎么就攤上這事〈鞫” “怎么了凑术?”我有些...
    開封第一講書人閱讀 164,133評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長所意。 經(jīng)常有香客問我淮逊,道長,這世上最難降的妖魔是什么扶踊? 我笑而不...
    開封第一講書人閱讀 58,532評論 1 293
  • 正文 為了忘掉前任泄鹏,我火速辦了婚禮,結(jié)果婚禮上秧耗,老公的妹妹穿的比我還像新娘备籽。我一直安慰自己,他們只是感情好分井,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,585評論 6 392
  • 文/花漫 我一把揭開白布车猬。 她就那樣靜靜地躺著霉猛,像睡著了一般。 火紅的嫁衣襯著肌膚如雪诈唬。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,462評論 1 302
  • 那天缩麸,我揣著相機(jī)與錄音铸磅,去河邊找鬼。 笑死杭朱,一個胖子當(dāng)著我的面吹牛阅仔,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播弧械,決...
    沈念sama閱讀 40,262評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼八酒,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了刃唐?” 一聲冷哼從身側(cè)響起羞迷,我...
    開封第一講書人閱讀 39,153評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎画饥,沒想到半個月后衔瓮,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,587評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡抖甘,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,792評論 3 336
  • 正文 我和宋清朗相戀三年热鞍,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片衔彻。...
    茶點(diǎn)故事閱讀 39,919評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡薇宠,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出艰额,到底是詐尸還是另有隱情澄港,我是刑警寧澤,帶...
    沈念sama閱讀 35,635評論 5 345
  • 正文 年R本政府宣布柄沮,位于F島的核電站慢睡,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏铡溪。R本人自食惡果不足惜漂辐,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,237評論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望棕硫。 院中可真熱鬧髓涯,春花似錦、人聲如沸哈扮。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,855評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至包各,卻和暖如春摘仅,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背问畅。 一陣腳步聲響...
    開封第一講書人閱讀 32,983評論 1 269
  • 我被黑心中介騙來泰國打工娃属, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人护姆。 一個月前我還...
    沈念sama閱讀 48,048評論 3 370
  • 正文 我出身青樓矾端,卻偏偏與公主長得像,于是被迫代替她去往敵國和親卵皂。 傳聞我的和親對象是個殘疾皇子秩铆,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,864評論 2 354

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

  • 計(jì)算機(jī)網(wǎng)絡(luò)七層模型中,傳輸層有兩個重要的協(xié)議:(1)用戶數(shù)據(jù)報協(xié)議UDP (User Datagram Proto...
    Q南南南Q閱讀 1,714評論 0 3
  • 個人認(rèn)為灯变,Goodboy1881先生的TCP /IP 協(xié)議詳解學(xué)習(xí)博客系列博客是一部非常精彩的學(xué)習(xí)筆記殴玛,這雖然只是...
    貳零壹柒_fc10閱讀 5,054評論 0 8
  • 1.這篇文章不是本人原創(chuàng)的,只是個人為了對這部分知識做一個整理和系統(tǒng)的輸出而編輯成的添祸,在此鄭重地向本文所引用文章的...
    SOMCENT閱讀 13,063評論 6 174
  • 最近面試總被問到網(wǎng)絡(luò)的知識族阅,在這里把我覺得要記錄的總結(jié)下來。 TCP/UDP 首先 網(wǎng)絡(luò)層次模型圖如下 TCP/U...
    love紫川閱讀 1,110評論 0 12
  • TCP鲤遥、UDP、HTTP與HTTPS都是通信協(xié)議林艘,在這里首先先介紹一下什么是通信協(xié)議盖奈。 什么是通信協(xié)議? 通信協(xié)議...
    神SKY閱讀 6,163評論 2 15