TCP/IP 協(xié)議族

一偎蘸、 計(jì)算機(jī)網(wǎng)絡(luò)體系結(jié)構(gòu)分層

計(jì)算機(jī)網(wǎng)絡(luò)體系結(jié)構(gòu)分層

物理層作用:定義一些電器,機(jī)械杰妓,過(guò)程和規(guī)范,確保原始的數(shù)據(jù)可在各種物理媒體上傳輸碘勉;

數(shù)據(jù)傳輸基本單位:bit/比特巷挥;

設(shè)備:中繼器(放大器)和集線器;

備注:沒(méi)有尋址的概念验靡;

-----------------------------------------------------------------------

數(shù)據(jù)鏈路層作用:物理地址尋址倍宾、數(shù)據(jù)的成幀、流量控制胜嗓、數(shù)據(jù)的檢錯(cuò)高职、重發(fā)等;

典型協(xié)議:以太網(wǎng)辞州;

數(shù)據(jù)傳輸基本單位:frame(幀)怔锌;

設(shè)備:網(wǎng)橋和交換機(jī);

備注:交換機(jī)通過(guò)MAC地址轉(zhuǎn)發(fā)數(shù)據(jù)变过,邏輯鏈路控制埃元;

-----------------------------------------------------------------------

網(wǎng)絡(luò)層作用:定義一個(gè)邏輯的尋址,選擇最佳路徑傳輸媚狰,路由數(shù)據(jù)包岛杀;

典型協(xié)議:IP,ICMP崭孤,ARP类嗤,BOOTP衫生;

數(shù)據(jù)傳輸基本單位:packet/數(shù)據(jù)包;

設(shè)備:路由器土浸;

-----------------------------------------------------------------------

傳輸層作用:負(fù)責(zé)將上層數(shù)據(jù)分段并提供端到端的、可靠的或不可靠的傳輸以及端到端的差錯(cuò)控制和流量控制問(wèn)題彭羹;

典型協(xié)議:TCP黄伊,UDP,port(65535個(gè)端口)派殷;

數(shù)據(jù)傳輸基本單位:fragment 段还最;

設(shè)備:網(wǎng)關(guān);

-----------------------------------------------------------------------

會(huì)話層作用:控制會(huì)話毡惜,建立管理終止應(yīng)用程序會(huì)話拓轻;

NFS,SQL经伙,ASP扶叉,PHP,JSP帕膜,RSVP(資源源預(yù)留協(xié)議)枣氧;?

-----------------------------------------------------------------------

表示層作用:對(duì)上層數(shù)據(jù)或信息進(jìn)行變換以保證一個(gè)主機(jī)應(yīng)用層信息可以被另一個(gè)主機(jī)的應(yīng)用程序理解;

如:ASCII垮刹,JPEG达吞,PNG,MP3荒典,WAV酪劫,AVI;

備注:表示層的數(shù)據(jù)轉(zhuǎn)換包括數(shù)據(jù)的加密寺董、壓縮覆糟、格式轉(zhuǎn)換等;

-----------------------------------------------------------------------

應(yīng)用層作用:控制應(yīng)用程序螃征,為操作系統(tǒng)或網(wǎng)絡(luò)應(yīng)用程序提供訪問(wèn)網(wǎng)絡(luò)服務(wù)的接口搪桂;

典型協(xié)議:HTTP,TELNET盯滚,SSH踢械,F(xiàn)TP,SMTP魄藕,DNS内列;

數(shù)據(jù)傳輸基本單位:報(bào)文;

二背率、TCP/IP 協(xié)議族基礎(chǔ)

TCP/IP 是不同的通信協(xié)議的大集合话瞧。

TCP/IP 協(xié)議族

TCP - 傳輸控制協(xié)議(Transmission Control Protocol)

TCP 用于從應(yīng)用程序到網(wǎng)絡(luò)的數(shù)據(jù)傳輸控制嫩与。

TCP 負(fù)責(zé)在數(shù)據(jù)傳送之前將它們分割為 IP 包,然后在它們到達(dá)的時(shí)候?qū)⑺鼈冎亟M交排。

IP - 網(wǎng)際協(xié)議(Internet Protocol)

IP 負(fù)責(zé)計(jì)算機(jī)之間的通信划滋。

IP 負(fù)責(zé)在因特網(wǎng)上發(fā)送和接收數(shù)據(jù)包。

HTTP - 超文本傳輸協(xié)議(Hyper Text Transfer Protocol)

HTTP 負(fù)責(zé) web 服務(wù)器與 web 瀏覽器之間的通信埃篓。

HTTP 用于從 web 客戶端(瀏覽器)向 web 服務(wù)器發(fā)送請(qǐng)求处坪,并從 web 服務(wù)器向 web 客戶端返回內(nèi)容(網(wǎng)頁(yè))。

HTTPS - 安全的 HTTP(HTTP Secure)

HTTPS 負(fù)責(zé)在 web 服務(wù)器和 web 瀏覽器之間的安全通信架专。

作為有代表性的應(yīng)用同窘,HTTPS 會(huì)用于處理信用卡交易和其他的敏感數(shù)據(jù)。

SSL - 安全套接字層(Secure Sockets Layer)

SSL 協(xié)議用于為安全數(shù)據(jù)傳輸加密數(shù)據(jù)部脚。

SMTP - 簡(jiǎn)易郵件傳輸協(xié)議(Simple Mail Transfer Protocol)

SMTP 用于電子郵件的傳輸想邦。

MIME - 多用途因特網(wǎng)郵件擴(kuò)展(Multi-purpose Internet Mail Extensions)

MIME 協(xié)議使 SMTP 有能力通過(guò) TCP/IP 網(wǎng)絡(luò)傳輸多媒體文件,包括聲音委刘、視頻和二進(jìn)制數(shù)據(jù)丧没。

IMAP - 因特網(wǎng)消息訪問(wèn)協(xié)議(Internet Message Access Protocol)

IMAP 用于存儲(chǔ)和取回電子郵件。

POP - 郵局協(xié)議(Post Office Protocol)

POP 用于從電子郵件服務(wù)器向個(gè)人電腦下載電子郵件钱雷。

FTP - 文件傳輸協(xié)議(File Transfer Protocol)

FTP 負(fù)責(zé)計(jì)算機(jī)之間的文件傳輸骂铁。

NTP - 網(wǎng)絡(luò)時(shí)間協(xié)議(Network Time Protocol)

NTP 用于在計(jì)算機(jī)之間同步時(shí)間(鐘)。

DHCP - 動(dòng)態(tài)主機(jī)配置協(xié)議(Dynamic Host Configuration Protocol)

DHCP 用于向網(wǎng)絡(luò)中的計(jì)算機(jī)分配動(dòng)態(tài) IP 地址罩抗。

SNMP - 簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議(Simple Network Management Protocol)

SNMP 用于計(jì)算機(jī)網(wǎng)絡(luò)的管理拉庵。

LDAP - 輕量級(jí)的目錄訪問(wèn)協(xié)議(Lightweight Directory Access Protocol)

LDAP 用于從因特網(wǎng)搜集關(guān)于用戶和電子郵件地址的信息。

ICMP - 因特網(wǎng)消息控制協(xié)議(Internet Control Message Protocol)

ICMP 負(fù)責(zé)網(wǎng)絡(luò)中的錯(cuò)誤處理套蒂。

ARP - 地址解析協(xié)議(Address Resolution Protocol)

ARP - 用于通過(guò) IP 來(lái)查找基于 IP 地址的計(jì)算機(jī)網(wǎng)卡的硬件地址钞支。

RARP - 反向地址轉(zhuǎn)換協(xié)議(Reverse Address Resolution Protocol)

RARP 用于通過(guò) IP 查找基于硬件地址的計(jì)算機(jī)網(wǎng)卡的 IP 地址。

BOOTP - 自舉協(xié)議(Boot Protocol)

BOOTP 用于從網(wǎng)絡(luò)啟動(dòng)計(jì)算機(jī)操刀。

PPTP - 點(diǎn)對(duì)點(diǎn)隧道協(xié)議(Point to Point Tunneling Protocol)

PPTP 用于私人網(wǎng)絡(luò)之間的連接(隧道)烁挟。

三、傳輸層中的 TCP 協(xié)議骨坑、UDP 協(xié)議及端口

1撼嗓、TCP?與?UDP?的區(qū)別:

1)TCP基于連接,UDP無(wú)連接欢唾;

2)TCP對(duì)系統(tǒng)資源的要求較多且警,UDP少;

3)UDP程序結(jié)構(gòu)較簡(jiǎn)單礁遣;

4)TCP具有流量控制模式斑芜,UDP是數(shù)據(jù)報(bào)模式;

5)TCP保證數(shù)據(jù)正確性祟霍,UDP可能丟包杏头;

6)TCP保證數(shù)據(jù)順序盈包,UDP不保證;

7)TCP用于在傳輸層有必要實(shí)現(xiàn)可靠傳輸?shù)那闆r醇王,UDP主要用于那些對(duì)高速傳輸和實(shí)時(shí)性有較高要求的即時(shí)通信或廣播通信呢燥。

使用TCP的協(xié)議:FTP(文件傳輸協(xié)議)、Telnet(遠(yuǎn)程登錄協(xié)議)寓娩、SMTP(簡(jiǎn)單郵件傳輸協(xié)議)疮茄、POP3(和SMTP相對(duì),用于接收郵件)根暑、HTTP協(xié)議等。

使用UDP協(xié)議包括:TFTP(簡(jiǎn)單文件傳輸協(xié)議)徙邻、SNMP(簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議)排嫌、DNS(域名解析協(xié)議)、NFS缰犁、BOOTP淳地。

2、TCP三次握手與四次揮手

1)三次握手

TCP 提供面向有連接的通信傳輸帅容。面向有連接是指在數(shù)據(jù)通信開(kāi)始之前先做好兩端之間的準(zhǔn)備工作颇象。所謂三次握手是指建立一個(gè) TCP 連接時(shí)需要客戶端和服務(wù)器端總共發(fā)送三個(gè)包以確認(rèn)連接的建立。在socket編程中并徘,這一過(guò)程由客戶端執(zhí)行connect來(lái)觸發(fā)遣钳。


三次握手

第一次握手:客戶端將標(biāo)志位SYN置為1,隨機(jī)產(chǎn)生一個(gè)值seq=J麦乞,并將該數(shù)據(jù)包發(fā)送給服務(wù)器端蕴茴,客戶端進(jìn)入SYN_SENT狀態(tài),等待服務(wù)器端確認(rèn)姐直。

第二次握手:服務(wù)器端收到數(shù)據(jù)包后由標(biāo)志位SYN=1知道客戶端請(qǐng)求建立連接倦淀,服務(wù)器端將標(biāo)志位SYN和ACK都置為1,ack=J+1声畏,隨機(jī)產(chǎn)生一個(gè)值seq=K撞叽,并將該數(shù)據(jù)包發(fā)送給客戶端以確認(rèn)連接請(qǐng)求,服務(wù)器端進(jìn)入SYN_RCVD狀態(tài)插龄。

第三次握手:客戶端收到確認(rèn)后愿棋,檢查ack是否為J+1,ACK是否為1辫狼,如果正確則將標(biāo)志位ACK置為1初斑,ack=K+1,并將該數(shù)據(jù)包發(fā)送給服務(wù)器端膨处,服務(wù)器端檢查ack是否為K+1见秤,ACK是否為1砂竖,如果正確則連接建立成功,客戶端和服務(wù)器端進(jìn)入ESTABLISHED狀態(tài)鹃答,完成三次握手乎澄,隨后客戶端與服務(wù)器端之間可以開(kāi)始傳輸數(shù)據(jù)了。

三次握手的特點(diǎn):沒(méi)有應(yīng)用層的數(shù)據(jù)测摔;SYN這個(gè)標(biāo)志位只有在TCP建產(chǎn)連接時(shí)才會(huì)被置1置济;握手完成后SYN標(biāo)志位被置0;

2)四次揮手

四次揮手即終止TCP連接锋八,就是指斷開(kāi)一個(gè)TCP連接時(shí)浙于,需要客戶端和服務(wù)端總共發(fā)送4個(gè)包以確認(rèn)連接的斷開(kāi)。在socket編程中挟纱,這一過(guò)程由客戶端或服務(wù)端任一方執(zhí)行close來(lái)觸發(fā)羞酗。

由于TCP連接是全雙工的,因此紊服,每個(gè)方向都必須要單獨(dú)進(jìn)行關(guān)閉檀轨,這一原則是當(dāng)一方完成數(shù)據(jù)發(fā)送任務(wù)后,發(fā)送一個(gè)FIN來(lái)終止這一方向的連接欺嗤,收到一個(gè)FIN只是意味著這一方向上沒(méi)有數(shù)據(jù)流動(dòng)了参萄,即不會(huì)再收到數(shù)據(jù)了,但是在這個(gè)TCP連接上仍然能夠發(fā)送數(shù)據(jù)煎饼,直到這一方向也發(fā)送了FIN讹挎。首先進(jìn)行關(guān)閉的一方將執(zhí)行主動(dòng)關(guān)閉,而另一方則執(zhí)行被動(dòng)關(guān)閉吆玖。


四次揮手

中斷連接端可以是客戶端淤袜,也可以是服務(wù)器端。

第一次揮手:客戶端發(fā)送一個(gè)FIN=M衰伯,用來(lái)關(guān)閉客戶端到服務(wù)器端的數(shù)據(jù)傳送铡羡,客戶端進(jìn)入FIN_WAIT_1狀態(tài)。意思是說(shuō)"我客戶端沒(méi)有數(shù)據(jù)要發(fā)給你了"意鲸,但是如果你服務(wù)器端還有數(shù)據(jù)沒(méi)有發(fā)送完成烦周,則不必急著關(guān)閉連接,可以繼續(xù)發(fā)送數(shù)據(jù)怎顾。

第二次揮手:服務(wù)器端收到FIN后读慎,先發(fā)送ack=M+1,告訴客戶端槐雾,你的請(qǐng)求我收到了夭委,但是我還沒(méi)準(zhǔn)備好,請(qǐng)繼續(xù)你等我的消息募强。這個(gè)時(shí)候客戶端就進(jìn)入FIN_WAIT_2 狀態(tài)株灸,繼續(xù)等待服務(wù)器端的FIN報(bào)文崇摄。

第三次揮手:當(dāng)服務(wù)器端確定數(shù)據(jù)已發(fā)送完成,則向客戶端發(fā)送FIN=N報(bào)文慌烧,告訴客戶端逐抑,好了,我這邊數(shù)據(jù)發(fā)完了屹蚊,準(zhǔn)備好關(guān)閉連接了厕氨。服務(wù)器端進(jìn)入LAST_ACK狀態(tài)。

第四次揮手:客戶端收到FIN=N報(bào)文后汹粤,就知道可以關(guān)閉連接了命斧,但是他還是不相信網(wǎng)絡(luò),怕服務(wù)器端不知道要關(guān)閉嘱兼,所以發(fā)送ack=N+1后進(jìn)入TIME_WAIT狀態(tài)冯丙,如果Server端沒(méi)有收到ACK則可以重傳。服務(wù)器端收到ACK后遭京,就知道可以斷開(kāi)連接了∨⒗颍客戶端等待了2MSL后依然沒(méi)有收到回復(fù)哪雕,則證明服務(wù)器端已正常關(guān)閉,那好鲫趁,我客戶端也可以關(guān)閉連接了斯嚎。最終完成了四次握手。

上面是一方主動(dòng)關(guān)閉挨厚,另一方被動(dòng)關(guān)閉的情況堡僻,實(shí)際中還會(huì)出現(xiàn)同時(shí)發(fā)起主動(dòng)關(guān)閉的情況。

3)名詞解釋

ACK??TCP報(bào)頭的控制位之一,對(duì)數(shù)據(jù)進(jìn)行確認(rèn).確認(rèn)由目的端發(fā)出,用它來(lái)告訴發(fā)送端這個(gè)序列號(hào)之前的數(shù)據(jù)段都收到了.比如,確認(rèn)號(hào)為X,則表示前X-1個(gè)數(shù)據(jù)段都收到了,只有當(dāng)ACK=1時(shí),確認(rèn)號(hào)才有效,當(dāng)ACK=0時(shí),確認(rèn)號(hào)無(wú)效,這時(shí)會(huì)要求重傳數(shù)據(jù),保證數(shù)據(jù)的完整性疫剃。

FIN??發(fā)送端完成發(fā)送任務(wù)位,當(dāng)TCP完成數(shù)據(jù)傳輸需要斷開(kāi)時(shí),提出斷開(kāi)連接的一方將這位置1钉疫。

SYN??同步序列號(hào),TCP建立連接時(shí)將這個(gè)位置1。

3巢价、端口

數(shù)據(jù)鏈路和 IP 中的地址牲阁,分別指的是 MAC 地址和 IP 地址。前者用來(lái)識(shí)別同一鏈路中不同的計(jì)算機(jī)壤躲,后者用來(lái)識(shí)別 TCP/IP 網(wǎng)絡(luò)中互連的主機(jī)和路由器城菊。在傳輸層也有這種類似于地址的概念,那就是端口號(hào)碉克。端口號(hào)用來(lái)識(shí)別同一臺(tái)計(jì)算機(jī)中進(jìn)行通信的不同應(yīng)用程序凌唬。因此,它也被稱為程序地址漏麦。

四客税、應(yīng)用層中的 HTTP 協(xié)議

五况褪、網(wǎng)絡(luò)層中的 IP 協(xié)議

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市霎挟,隨后出現(xiàn)的幾起案子窝剖,更是在濱河造成了極大的恐慌,老刑警劉巖酥夭,帶你破解...
    沈念sama閱讀 211,948評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件赐纱,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡熬北,警方通過(guò)查閱死者的電腦和手機(jī)疙描,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,371評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)讶隐,“玉大人起胰,你說(shuō)我怎么就攤上這事∥籽樱” “怎么了效五?”我有些...
    開(kāi)封第一講書人閱讀 157,490評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)炉峰。 經(jīng)常有香客問(wèn)我畏妖,道長(zhǎng),這世上最難降的妖魔是什么疼阔? 我笑而不...
    開(kāi)封第一講書人閱讀 56,521評(píng)論 1 284
  • 正文 為了忘掉前任戒劫,我火速辦了婚禮,結(jié)果婚禮上婆廊,老公的妹妹穿的比我還像新娘迅细。我一直安慰自己,他們只是感情好淘邻,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,627評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布茵典。 她就那樣靜靜地躺著,像睡著了一般宾舅。 火紅的嫁衣襯著肌膚如雪敬尺。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書人閱讀 49,842評(píng)論 1 290
  • 那天贴浙,我揣著相機(jī)與錄音砂吞,去河邊找鬼。 笑死崎溃,一個(gè)胖子當(dāng)著我的面吹牛蜻直,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 38,997評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼概而,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼呼巷!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起赎瑰,我...
    開(kāi)封第一講書人閱讀 37,741評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤王悍,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后餐曼,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體压储,經(jīng)...
    沈念sama閱讀 44,203評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,534評(píng)論 2 327
  • 正文 我和宋清朗相戀三年源譬,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了集惋。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,673評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡踩娘,死狀恐怖刮刑,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情养渴,我是刑警寧澤雷绢,帶...
    沈念sama閱讀 34,339評(píng)論 4 330
  • 正文 年R本政府宣布,位于F島的核電站理卑,受9級(jí)特大地震影響翘紊,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜傻工,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,955評(píng)論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望孵滞。 院中可真熱鬧中捆,春花似錦、人聲如沸坊饶。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 30,770評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)匿级。三九已至蟋滴,卻和暖如春钾挟,著一層夾襖步出監(jiān)牢的瞬間慎王,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 32,000評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工破讨, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留孤页,地道東北人尔苦。 一個(gè)月前我還...
    沈念sama閱讀 46,394評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親允坚。 傳聞我的和親對(duì)象是個(gè)殘疾皇子魂那,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,562評(píng)論 2 349

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