網(wǎng)絡(luò)編程-協(xié)議篇

典型協(xié)議

應(yīng)用層: 常見的協(xié)議有HTTP協(xié)議,F(xiàn)TP協(xié)議。

傳輸層: 常見協(xié)議有TCP/UDP協(xié)議。

網(wǎng)絡(luò)層: 常見協(xié)議有IP協(xié)議、ICMP協(xié)議、IGMP協(xié)議。

網(wǎng)絡(luò)接口層: 常見協(xié)議有ARP協(xié)議、RARP協(xié)議



各個(gè)協(xié)議用途簡(jiǎn)述:

IP協(xié)議是因特網(wǎng)互聯(lián)協(xié)議(Internet Protocol)

TCP傳輸控制協(xié)議(Transmission Control Protocol)是一種面向連接的、可靠的、基于字節(jié)流的傳輸層通信協(xié)議。

UDP用戶數(shù)據(jù)報(bào)協(xié)議(User Datagram Protocol)是OSI參考模型中一種無連接的傳輸層協(xié)議,提供面向事務(wù)的簡(jiǎn)單不可靠信息傳送服務(wù)。

ICMP協(xié)議是Internet控制報(bào)文協(xié)議(Internet Control Message Protocol)它是TCP/IP協(xié)議族的一個(gè)子協(xié)議,用于在IP主機(jī)、路由器之間傳遞控制消息。

IGMP協(xié)議是 Internet 組管理協(xié)議(Internet Group Management Protocol),是因特網(wǎng)協(xié)議家族中的一個(gè)組播協(xié)議。該協(xié)議運(yùn)行在主機(jī)和組播路由器之間。

ARP協(xié)議是正向地址解析協(xié)議(Address Resolution Protocol),通過已知的IP,尋找對(duì)應(yīng)主機(jī)的MAC地址。

RARP是反向地址轉(zhuǎn)換協(xié)議,通過MAC地址確定IP地址。



應(yīng)用分層



層與協(xié)議

每一層都是為了完成一種功能,為了實(shí)現(xiàn)這些功能,就需要大家都遵守共同的規(guī)則。大家都遵守這規(guī)則,就叫做“協(xié)議”(protocol)。

網(wǎng)絡(luò)的每一層,都定義了很多協(xié)議。這些協(xié)議的總稱,叫“TCP/IP協(xié)議”。TCP/IP協(xié)議是一個(gè)大家族,不僅僅只有TCP和IP協(xié)議,它還包括其它的協(xié)議,如下圖:




鏈路層

以太網(wǎng)規(guī)定,連入網(wǎng)絡(luò)的所有設(shè)備,都必須具有“網(wǎng)卡”接口。數(shù)據(jù)包必須是從一塊網(wǎng)卡,傳送到另一塊網(wǎng)卡。通過網(wǎng)卡能夠使不同的計(jì)算機(jī)之間連接,從而完成數(shù)據(jù)通信等功能。網(wǎng)卡的地址——MAC 地址,就是數(shù)據(jù)包的物理發(fā)送地址和物理接收地址。

網(wǎng)卡對(duì)應(yīng)到協(xié)議里面就是與鏈路層ARP協(xié)議相關(guān)的

每個(gè)網(wǎng)卡有自己唯一的Mac地址

ARP可以幫助借助IP獲取Mac地址

RARP可以借助Mac地址獲取IP

網(wǎng)絡(luò)層

網(wǎng)絡(luò)層的作用是引進(jìn)一套新的地址,使得我們能夠區(qū)分不同的計(jì)算機(jī)是否屬于同一個(gè)子網(wǎng)絡(luò)。這套地址就叫做“網(wǎng)絡(luò)地址”,這是我們平時(shí)所說的IP地址。這個(gè)IP地址好比我們的手機(jī)號(hào)碼,通過手機(jī)號(hào)碼可以得到用戶所在的歸屬地。

網(wǎng)絡(luò)地址幫助我們確定計(jì)算機(jī)所在的子網(wǎng)絡(luò),MAC 地址則將數(shù)據(jù)包送到該子網(wǎng)絡(luò)中的目標(biāo)網(wǎng)卡。網(wǎng)絡(luò)層協(xié)議包含的主要信息是源IP和目的IP。

于是,“網(wǎng)絡(luò)層”出現(xiàn)以后,每臺(tái)計(jì)算機(jī)有了兩種地址,一種是 MAC 地址,另一種是網(wǎng)絡(luò)地址。兩種地址之間沒有任何聯(lián)系,MAC 地址是綁定在網(wǎng)卡上的,網(wǎng)絡(luò)地址則是管理員分配的,它們只是隨機(jī)組合在一起。

網(wǎng)絡(luò)地址幫助我們確定計(jì)算機(jī)所在的子網(wǎng)絡(luò),MAC 地址則將數(shù)據(jù)包送到該子網(wǎng)絡(luò)中的目標(biāo)網(wǎng)卡。因此,從邏輯上可以推斷,必定是先處理網(wǎng)絡(luò)地址,然后再處理 MAC 地址。

IP地址本質(zhì):2進(jìn)制數(shù)。----點(diǎn)分十進(jìn)制IP地址(string)

傳輸層

當(dāng)我們一邊聊QQ,一邊聊微信,當(dāng)一個(gè)數(shù)據(jù)包從互聯(lián)網(wǎng)上發(fā)來的時(shí)候,我們?cè)趺粗?,它是來自QQ的內(nèi)容,還是來自微信的內(nèi)容?

也就是說,我們還需要一個(gè)參數(shù),表示這個(gè)數(shù)據(jù)包到底供哪個(gè)程序(進(jìn)程)使用。這個(gè)參數(shù)就叫做“端口”(port),它其實(shí)是每一個(gè)使用網(wǎng)卡的程序的編號(hào)。每個(gè)數(shù)據(jù)包都發(fā)到主機(jī)的特定端口,所以不同的程序就能取到自己所需要的數(shù)據(jù)。

端口就是在傳輸層指定的。

port -- 在一臺(tái)主機(jī)上唯一標(biāo)識(shí)一個(gè)進(jìn)程

端口特點(diǎn):

對(duì)于同一個(gè)端口,在不同系統(tǒng)中對(duì)應(yīng)著不同的進(jìn)程

對(duì)于同一個(gè)系統(tǒng),一個(gè)端口只能被一個(gè)進(jìn)程擁有

常用協(xié)議:TCP、UDP

應(yīng)用層

應(yīng)用程序收到“傳輸層”的數(shù)據(jù),接下來就要進(jìn)行解讀。由于互聯(lián)網(wǎng)是開放架構(gòu),數(shù)據(jù)來源五花八門,必須事先規(guī)定好格式,否則根本無法解讀。“應(yīng)用層”的作用,就是規(guī)定應(yīng)用程序的數(shù)據(jù)格式。

FTP、HTTP、或自定義協(xié)議

對(duì)數(shù)據(jù)進(jìn)行封裝、解封裝



?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容