網(wǎng)絡(luò)結(jié)構(gòu)之TCP/IP四層網(wǎng)絡(luò)模型

1.網(wǎng)絡(luò)接口層:網(wǎng)卡及網(wǎng)絡(luò)硬件設(shè)備以及驅(qū)動程序。

2.網(wǎng)絡(luò)層:處理機器之間跨多個網(wǎng)絡(luò)的路由燥翅,并且管理網(wǎng)絡(luò)名稱和地址,以方便處理這種行為蜀漆。它執(zhí)行TCP/IP的3個主要任務(wù):分段兆解、尋址和路由昆婿。有IP協(xié)議菲饼、ICMP協(xié)議吵护、ARP協(xié)議赡若、RARP協(xié)議和BOOTP協(xié)議达布。

3.傳輸層:為應(yīng)用程序提供通信方法,通常設(shè)為TCP逾冬、UDP這兩個協(xié)議黍聂。

4.應(yīng)用層:通常被定義為處理層,是協(xié)議棧和主機上的應(yīng)用或者處理程序交界的層,用戶處理與應(yīng)用的接口也定義在這里分冈,有FTP圾另、HTTP、TELNET雕沉、SMTP集乔、DNS等協(xié)議。

HTTP:
HTTP協(xié)議是建立在請求/響應(yīng)模型上的坡椒。首先由客戶建立一條與服務(wù)器的TCP鏈接扰路,并發(fā)送一個請求到服務(wù)器,請求中包含請求方法倔叼、URI汗唱、協(xié)議版本以及相關(guān)的MIME樣式的消息。服務(wù)器響應(yīng)一個狀態(tài)行丈攒,包含消息的協(xié)議版本哩罪、一個成功和失敗碼以及相關(guān)的MIME式樣的消息。HTTP/1.0為每一次HTTP的請求/響應(yīng)建立一條新的TCP鏈接巡验,因此一個包含HTML內(nèi)容和圖片的頁面將需要建立多次的短期的TCP鏈接际插。一次TCP鏈接的建立將需要3次握手。另外显设,為了獲得適當?shù)膫鬏斔俣瓤虺冢瑒t需要TCP花費額外的回路鏈接時間(RTT)。每一次鏈接的建立需要這種經(jīng)常性的開銷捕捂,而其并不帶有實際有用的數(shù)據(jù)瑟枫,只是保證鏈接的可靠性,因此HTTP/1.1提出了可持續(xù)鏈接的實現(xiàn)方法指攒。HTTP/1.1將只建立一次TCP的鏈接而重復(fù)地使用它傳輸一系列的請求/響應(yīng)消息慷妙,因此減少了鏈接建立的次數(shù)和經(jīng)常性的鏈接開銷。
這里有必要再講一下三次握手的過程:

第一次握手:建立連接時允悦,客戶端發(fā)送syn包(syn=j)到服務(wù)器景殷,并進入SYN_SENT狀態(tài),等待服務(wù)器確認澡屡;SYN:同步序列編號(Synchronize Sequence Numbers)。

第二次握手:服務(wù)器收到syn包咐旧,必須確認客戶的SYN(ack=j+1)驶鹉,同時自己也發(fā)送一個SYN包(syn=k),即SYN+ACK包铣墨,此時服務(wù)器進入SYN_RECV狀態(tài)室埋;ACK:確認字符(Acknowledgement)

第三次握手:客戶端收到服務(wù)器的SYN+ACK包,向服務(wù)器發(fā)送確認包ACK(ack=k+1),此包發(fā)送完畢姚淆,客戶端和服務(wù)器進入ESTABLISHED(TCP連接成功)狀態(tài)孕蝉,完成三次握手。

Socket是什么呢腌逢? Socket是應(yīng)用層與TCP/IP協(xié)議族通信的中間軟件抽象層降淮,它是一組接口。在設(shè)計模式中搏讶,Socket其實就是一個門面模式佳鳖,它把復(fù)雜的TCP/IP協(xié)議族隱藏在Socket接口后面,對用戶來說媒惕,一組簡單的接口就是全部系吩,讓Socket去組織數(shù)據(jù),以符合指定的協(xié)議妒蔚。


socket2.jpg

TCP(Transmission Control Protocol穿挨,傳輸控制協(xié)議)是基于連接的協(xié)議,也就是說肴盏,在正式收發(fā)數(shù)據(jù)前科盛,必須和對方建立可靠的連接。一個TCP連接必須要經(jīng)過三次“對話”才能建立起來叁鉴,其中的過程非常復(fù)雜土涝,我們這里只做簡單、形象的介紹幌墓,你只要做到能夠理解這個過程即可但壮。我們來看看這三次對話的簡單過程:主機A向主機B發(fā)出連接請求數(shù)據(jù)包:“我想給你發(fā)數(shù)據(jù),可以嗎常侣?”蜡饵,這是第一次對話;主機B向主機A發(fā)送同意連接和要求同步(同步就是兩臺主機一個在發(fā)送胳施,一個在接收溯祸,協(xié)調(diào)工作)的數(shù)據(jù)包:“可以,你什么時候發(fā)舞肆?”焦辅,這是第二次對話;主機A再發(fā)出一個數(shù)據(jù)包確認主機B的要求同步:“我現(xiàn)在就發(fā)椿胯,你接著吧筷登!”,這是第三次對話哩盲。三次“對話”的目的是使數(shù)據(jù)包的發(fā)送和接收同步前方,經(jīng)過三次“對話”之后狈醉,主機A才向主機B正式發(fā)送數(shù)據(jù)。

UDP(User Data Protocol惠险,用戶數(shù)據(jù)報協(xié)議)是與TCP相對應(yīng)的協(xié)議苗傅。它是面向非連接的協(xié)議,它不與對方建立連接班巩,而是直接就把數(shù)據(jù)包發(fā)送過去渣慕! UDP適用于一次只傳送少量數(shù)據(jù)、對可靠性要求不高的應(yīng)用環(huán)境趣竣。比如摇庙,我們經(jīng)常使用“ping”命令來測試兩臺主機之間TCP/IP通信是否正常,其實“ping”命令的原理就是向?qū)Ψ街鳈C發(fā)送UDP數(shù)據(jù)包遥缕,然后對方主機確認收到數(shù)據(jù)包卫袒,如果數(shù)據(jù)包是否到達的消息及時反饋回來,那么網(wǎng)絡(luò)就是通的单匣。例如夕凝,在默認狀態(tài)下,一次“ping”操作發(fā)送4個數(shù)據(jù)包(如圖2所示)户秤。大家可以看到码秉,發(fā)送的數(shù)據(jù)包數(shù)量是4包,收到的也是4包(因為對方主機收到后會發(fā)回一個確認收到的數(shù)據(jù)包)鸡号。這充分說明了UDP協(xié)議是面向非連接的協(xié)議转砖,沒有建立連接的過程。正因為UDP協(xié)議沒有連接的過程鲸伴,所以它的通信效果高府蔗;但也正因為如此,它的可靠性不如TCP協(xié)議高汞窗。QQ就使用UDP發(fā)消息姓赤,因此有時會出現(xiàn)收不到消息的情況。

tcp協(xié)議和udp協(xié)議的差別
TCP UDP
是否連接 面向連接 面向非連接
傳輸可靠性 可靠 不可靠
應(yīng)用場合 傳輸大量數(shù)據(jù) 少量數(shù)據(jù)
速度 慢 快

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末仲吏,一起剝皮案震驚了整個濱河市不铆,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌裹唆,老刑警劉巖誓斥,帶你破解...
    沈念sama閱讀 216,591評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異许帐,居然都是意外死亡劳坑,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,448評論 3 392
  • 文/潘曉璐 我一進店門舞吭,熙熙樓的掌柜王于貴愁眉苦臉地迎上來泡垃,“玉大人,你說我怎么就攤上這事羡鸥∶镅ǎ” “怎么了?”我有些...
    開封第一講書人閱讀 162,823評論 0 353
  • 文/不壞的土叔 我叫張陵惧浴,是天一觀的道長存和。 經(jīng)常有香客問我,道長衷旅,這世上最難降的妖魔是什么捐腿? 我笑而不...
    開封第一講書人閱讀 58,204評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮柿顶,結(jié)果婚禮上茄袖,老公的妹妹穿的比我還像新娘。我一直安慰自己嘁锯,他們只是感情好宪祥,可當我...
    茶點故事閱讀 67,228評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著家乘,像睡著了一般蝗羊。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上仁锯,一...
    開封第一講書人閱讀 51,190評論 1 299
  • 那天耀找,我揣著相機與錄音,去河邊找鬼业崖。 笑死野芒,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的腻要。 我是一名探鬼主播复罐,決...
    沈念sama閱讀 40,078評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼雄家!你這毒婦竟也來了效诅?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,923評論 0 274
  • 序言:老撾萬榮一對情侶失蹤趟济,失蹤者是張志新(化名)和其女友劉穎乱投,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體顷编,經(jīng)...
    沈念sama閱讀 45,334評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡戚炫,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,550評論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了媳纬。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片双肤。...
    茶點故事閱讀 39,727評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡施掏,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出茅糜,到底是詐尸還是另有隱情七芭,我是刑警寧澤,帶...
    沈念sama閱讀 35,428評論 5 343
  • 正文 年R本政府宣布蔑赘,位于F島的核電站狸驳,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏缩赛。R本人自食惡果不足惜耙箍,卻給世界環(huán)境...
    茶點故事閱讀 41,022評論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望酥馍。 院中可真熱鬧辩昆,春花似錦、人聲如沸物喷。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,672評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽峦失。三九已至扇丛,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間尉辑,已是汗流浹背帆精。 一陣腳步聲響...
    開封第一講書人閱讀 32,826評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留隧魄,地道東北人卓练。 一個月前我還...
    沈念sama閱讀 47,734評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像购啄,于是被迫代替她去往敵國和親襟企。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,619評論 2 354

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

  • 個人認為狮含,Goodboy1881先生的TCP /IP 協(xié)議詳解學習博客系列博客是一部非常精彩的學習筆記顽悼,這雖然只是...
    貳零壹柒_fc10閱讀 5,054評論 0 8
  • 1.這篇文章不是本人原創(chuàng)的,只是個人為了對這部分知識做一個整理和系統(tǒng)的輸出而編輯成的几迄,在此鄭重地向本文所引用文章的...
    SOMCENT閱讀 13,063評論 6 174
  • 簡介 用簡單的話來定義tcpdump蔚龙,就是:dump the traffic on a network,根據(jù)使用者...
    保川閱讀 5,956評論 1 13
  • 1映胁、TCP狀態(tài)linux查看tcp的狀態(tài)命令:1)木羹、netstat -nat 查看TCP各個狀態(tài)的數(shù)量2)、lso...
    北辰青閱讀 9,423評論 0 11
  • 協(xié)議基礎(chǔ) 協(xié)議就是計算機之間通過網(wǎng)絡(luò)實現(xiàn)通信時實現(xiàn)所達成的一種“約定”解孙,這種約定使得那些由不同廠商的設(shè)備坑填,不同的C...
    d9fc24a0c9a9閱讀 2,362評論 0 6