網(wǎng)絡基礎TCP/IP協(xié)議

我們通常使用的網(wǎng)絡是在TCP/IP協(xié)議族的基礎上運作的裆甩,HTTP屬于它內部的一個子集。
HTTP是一個基于TCP/IP通信協(xié)議來傳遞數(shù)據(jù)医吊。(HTML 文件, 圖片文件, 查詢結果等)

網(wǎng)絡基礎TCP/IP

通常使用的網(wǎng)絡(包括互聯(lián)網(wǎng))是在TCP/IP協(xié)議族的基礎上運作的设哗。HTTP屬于它內部的一個子集诵棵。

TCP/IP協(xié)議族

計算機與網(wǎng)路設備要相互通信,雙方就必須基于相同的方法赊堪。比如面殖,如何探測到通信目標,由哪一邊先發(fā)起通信,使用哪種語言進行通信哭廉,怎樣結束通信等規(guī)則都需事先確定脊僚。不同的硬件,操作系統(tǒng)之間的通信遵绰,等都需要一種規(guī)則辽幌,我們把這種規(guī)則稱之為協(xié)議(protocol)


TCP/IP是互聯(lián)網(wǎng)相關的各類協(xié)議的總稱

TCP/IP的分層管理

TCP/IP協(xié)議族里最重要的一點是分層。TCP/IP協(xié)議族按層次分可分為4層:應用層街立,傳輸層舶衬,網(wǎng)絡層和數(shù)據(jù)鏈路層。
分層的好處是什么呢赎离?如果互聯(lián)網(wǎng)只有一個協(xié)議統(tǒng)籌逛犹,某個地方需要改變設計時,就必須把所有部分整體替換掉。分層之后虽画,只需要把變動的層次替換掉舞蔽。把各層之間的接口部分規(guī)劃好之后,每個層次內部的設計可自由改動码撰。


TCP模型圖

應用層

應用層決定了向用戶提供應用服務時通信的活動渗柿。
TCP/IP協(xié)議族內預存了各類通用的應用服務。如:FTP(File Transfer Protocol,文件傳輸協(xié)議)和DNS(Domain Name System,域名系統(tǒng))脖岛,HTTP協(xié)議也屬于網(wǎng)絡層朵栖。

表示層

表示層:將應用處理的信息轉換為適合網(wǎng)絡傳輸?shù)母袷剑驅碜韵乱粚拥臄?shù)據(jù)轉換為上層能夠處理的格式柴梆;主要負責數(shù)據(jù)格式的轉換陨溅,確保一個系統(tǒng)的應用層信息可被另一個系統(tǒng)應用層讀取

會話層

會話層:負責建立和斷開通信連接(數(shù)據(jù)流動的邏輯通路),記憶數(shù)據(jù)的分隔等數(shù)據(jù)傳輸相關的管理

傳輸層

傳輸層對上層應用層绍在,提供處于網(wǎng)絡連接中的兩臺計算機直接的數(shù)據(jù)傳輸门扇。
這一層有兩個不同性質的協(xié)議:TCP(Transmission Control Protocol,傳輸控制協(xié)議)和UDP(User Data Protocol,用戶數(shù)據(jù)報協(xié)議)。

網(wǎng)絡層(網(wǎng)絡互連層)

網(wǎng)絡層用來處理在網(wǎng)絡上流動的數(shù)據(jù)包偿渡。數(shù)據(jù)包是網(wǎng)絡傳輸?shù)淖钚?shù)據(jù)單位臼寄。這層規(guī)定了通過怎樣的路徑(即傳輸路線)到達對方計算機,并把數(shù)據(jù)包傳給對方溜宽。
如果與對方計算機之間通過多臺計算機或網(wǎng)絡設備進行傳輸時吉拳,網(wǎng)絡層的作用就是在多個選項內選擇一條傳輸路線。網(wǎng)絡層的協(xié)議有IP坑质,
ICMP(Internet Control Message Protocol,Internet控制報文協(xié)議合武,用于在IP主機、路由器之間傳遞控制消息涡扼。),
IGMP(互聯(lián)網(wǎng)組管理協(xié)議,用于IP主機向任一個直接相鄰的路由器報告他們的組成員情況)

鏈路層(數(shù)據(jù)鏈路層盟庞,網(wǎng)絡接口層)

數(shù)據(jù)鏈路層用來處理連接網(wǎng)絡的硬件部分吃沪。包括控制操作系統(tǒng),硬件的設備驅動什猖,NIC(Network INterface Card,網(wǎng)絡適配器票彪,即網(wǎng)卡),及光纖等物理可見部分不狮。硬件上的范疇均在鏈路層的作用范圍內降铸。


TCP/IP通信傳輸流

利用TCP/IP協(xié)議族網(wǎng)絡通信時,會通過分層順序與對方進行通信摇零。發(fā)送端從應用層往下走推掸,接收端則從鏈路層往上走。

物理層

物理層:負責0、1 比特流(0/1序列)與電壓的高低谅畅、逛的閃滅之間的轉換
規(guī)定了激活登渣、維持、關閉通信端點之間的機械特性毡泻、電氣特性、功能特性以及過程特性;該層為上層協(xié)議提供了一個傳輸數(shù)據(jù)的物理媒體卵佛。只是說明標準
在這一層蛇受,數(shù)據(jù)的單位稱為比特(bit)
用http舉個栗子:

  1. 發(fā)送端的客戶端在應用層(Http協(xié)議)發(fā)出一個想看某個Web頁面的http請求;
  2. 為了傳輸方便丹墨,在傳輸層(TCP協(xié)議)把從應用層收到的數(shù)據(jù)(HTTP請求報文)進行分割廊遍,并在各個報文上打上標記序號及端口號后轉發(fā)給網(wǎng)絡層。
  3. 在網(wǎng)絡層(IP協(xié)議)带到,增加作為通信目的的MAC地址后轉發(fā)給數(shù)據(jù)鏈路層昧碉。這樣整個發(fā)往網(wǎng)絡的通信請求準備齊全。
  4. 接收端的服務器在數(shù)據(jù)鏈路層接收到數(shù)據(jù)揽惹,按照往上層發(fā)送被饿,一直到應用層。直到傳輸?shù)綉脤犹虏潘阏嬲邮盏娇蛻舳税l(fā)送過來的Http請求狭握。

與HTTP關系密切的協(xié)議:IP、TCP疯溺、DNS

負責傳輸?shù)腎P協(xié)議

按照層次分论颅,IP(Internet Protocol)網(wǎng)際協(xié)議位于網(wǎng)絡層。
IP協(xié)議的作用:把各種數(shù)據(jù)包傳送給對方囱嫩。若要保證確實傳送到對方那里恃疯,則需要滿足割裂條件。其中兩個重要的條件是IP地址和MAC地址(Media Access Control Address).
IP地址指明了節(jié)點被分配到的地址墨闲,MAC地址是指網(wǎng)卡所屬的固定地址今妄。IP地址可以和MAC地址進行配對。IP地址可變化鸳碧,但MAC地址基本上不會改變盾鳞。

使用ARP協(xié)議憑借MAC地址進行通信

IP間的通信依賴MAC地址。在網(wǎng)絡上瞻离,通信的雙方在同一局域網(wǎng)(LAN)內的情況是很少的腾仅,通常是通過多臺計算機和網(wǎng)路設備中轉才能連接到對方。那么在進行中轉時套利,會利用下一站中轉設備的MAC地址來搜索下一個中轉目標推励。此時鹤耍,會采用ARP協(xié)議(Address Resolution Protocol)。
**ARP是一種用來解析地址的協(xié)議吹艇,根據(jù)通信方的IP地址就可以反查出對應得MAC地址惰蜜。

ARP協(xié)議憑借MAC地址進行通信

各層之間傳輸數(shù)據(jù)

TCP協(xié)議確保可靠性

TCP位于傳輸層受神,提供可靠的字節(jié)流服務抛猖。
字節(jié)流服務(Byte Stream Service):為了便于傳輸,將大塊數(shù)據(jù)分割成以報文段(segment)為單位的數(shù)據(jù)包進行管理鼻听。
可靠的傳輸服務:能夠吧數(shù)據(jù)準確可靠的傳給對方财著。
TCP協(xié)議為了更容易傳送大數(shù)據(jù)才把數(shù)據(jù)分割,且TCP協(xié)議能夠確認數(shù)據(jù)最終是否送達到對方撑碴。
為了準確無誤的將數(shù)據(jù)送達目標處撑教,TCP協(xié)議采用了三次握手(three-way handshaking)策略。
用TCP協(xié)議把數(shù)據(jù)包送出去后醉拓,TCP不會對傳送后的情況置之不理伟姐,它一定會向對方確認是否成功送達。握手過程中使用了TCP的標志——SYN(synchronize)和ACK(acknowledgement).
發(fā)送端首先發(fā)送一個帶SYN標志的數(shù)據(jù)包給對方亿卤。接收端收到后愤兵,回傳一個帶有SYN/ACK標志的數(shù)據(jù)包以示傳達確認信息。最后排吴,發(fā)送端再回傳一個帶有ACK標志的數(shù)據(jù)包秆乳,代表'握手'結束。
(若在握手過程中某個階段莫名中斷钻哩,TCP協(xié)議會再次以相同的順序發(fā)送相同的數(shù)據(jù)包)

TCP三次握手

第一次握手
客戶主動(active open)去connect服務器屹堰,并且發(fā)送SYN 假設序列號為J,
服務器是被動打開(passive open)
第二次握手
服務器在收到SYN后,它會發(fā)送一個SYN以及一個ACK(應答)給客戶街氢,
ACK的序列號是 J+1表示是給SYN J的應答扯键,新發(fā)送的SYN K 序列號是K
第三次握手
客戶在收到新SYN K, ACK J+1 后,也回應ACK K+1 以表示收到了珊肃,
然后兩邊就可以開始數(shù)據(jù)發(fā)送數(shù)據(jù)了

負責域名解析的DNS服務

DNS(Domain Name System)服務是和HTTP協(xié)議一個位于應用層的協(xié)議忧陪。
它提供域名到IP地址之間的解析服務。
(我們通常使用主機名或域名來訪問某個網(wǎng)站近范,如www.baidu.com,而不是之間通過IP地址來訪問)
DNS協(xié)議提供通過域名查找IP地址延蟹,或逆向從IP地址反查域名的服務评矩。

DNS域名解析

下圖為IP協(xié)議,TCP協(xié)議阱飘,DNS服務在使用HTTP協(xié)議通信過程中各自發(fā)揮的作用


各協(xié)議的職責
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末斥杜,一起剝皮案震驚了整個濱河市虱颗,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌蔗喂,老刑警劉巖忘渔,帶你破解...
    沈念sama閱讀 218,941評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異缰儿,居然都是意外死亡畦粮,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評論 3 395
  • 文/潘曉璐 我一進店門乖阵,熙熙樓的掌柜王于貴愁眉苦臉地迎上來宣赔,“玉大人,你說我怎么就攤上這事瞪浸∪褰” “怎么了?”我有些...
    開封第一講書人閱讀 165,345評論 0 356
  • 文/不壞的土叔 我叫張陵对蒲,是天一觀的道長钩蚊。 經常有香客問我,道長蹈矮,這世上最難降的妖魔是什么砰逻? 我笑而不...
    開封第一講書人閱讀 58,851評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮含滴,結果婚禮上诱渤,老公的妹妹穿的比我還像新娘。我一直安慰自己谈况,他們只是感情好勺美,可當我...
    茶點故事閱讀 67,868評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著碑韵,像睡著了一般赡茸。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上祝闻,一...
    開封第一講書人閱讀 51,688評論 1 305
  • 那天占卧,我揣著相機與錄音,去河邊找鬼联喘。 笑死华蜒,一個胖子當著我的面吹牛,可吹牛的內容都是我干的豁遭。 我是一名探鬼主播叭喜,決...
    沈念sama閱讀 40,414評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼蓖谢!你這毒婦竟也來了捂蕴?” 一聲冷哼從身側響起譬涡,我...
    開封第一講書人閱讀 39,319評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎啥辨,沒想到半個月后涡匀,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 45,775評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡溉知,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年陨瘩,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片着倾。...
    茶點故事閱讀 40,096評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡拾酝,死狀恐怖,靈堂內的尸體忽然破棺而出卡者,到底是詐尸還是另有隱情蒿囤,我是刑警寧澤,帶...
    沈念sama閱讀 35,789評論 5 346
  • 正文 年R本政府宣布崇决,位于F島的核電站材诽,受9級特大地震影響,放射性物質發(fā)生泄漏恒傻。R本人自食惡果不足惜脸侥,卻給世界環(huán)境...
    茶點故事閱讀 41,437評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望盈厘。 院中可真熱鬧睁枕,春花似錦、人聲如沸沸手。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽契吉。三九已至跳仿,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間捐晶,已是汗流浹背菲语。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評論 1 271
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留惑灵,地道東北人山上。 一個月前我還...
    沈念sama閱讀 48,308評論 3 372
  • 正文 我出身青樓,卻偏偏與公主長得像英支,于是被迫代替她去往敵國和親胶哲。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,037評論 2 355

推薦閱讀更多精彩內容