傳輸層協(xié)議 傳輸層的主要功能是為了實(shí)現(xiàn)“端口到端口”的通信,以確保一條數(shù)據(jù)發(fā)送到主機(jī)上后,能夠正確的傳遞到對(duì)應(yīng)的端口上 UDP 為應(yīng)用程序提供了一種無需建立連接就可以發(fā)送封裝的 IP 數(shù)據(jù)包的方法,但是UDP也有自己的缺陷,一旦進(jìn)行通信,就不知道對(duì)方是否接收到數(shù)據(jù)了,很有可能會(huì)造成傳輸數(shù)據(jù)的丟包問題
特點(diǎn):
-
無連接:只需要知道目的ip和端口號(hào)就可以發(fā)送數(shù)據(jù),無需建立連接
-
不可靠:沒有一系列機(jī)制來應(yīng)對(duì)傳輸數(shù)據(jù)時(shí)的丟包問題
-
面向數(shù)據(jù)報(bào)發(fā)送:應(yīng)用層交給UDP什么樣的報(bào)文,UDP就會(huì)發(fā)送什么樣的,不會(huì)進(jìn)行拆分,合并
-
UDP一次傳輸?shù)臄?shù)據(jù)大小有限,最大64k
UDP的傳輸流程
UDP的適用范圍:
由于UDP不屬于連接型協(xié)議,所以具有資源消耗小。處理速度優(yōu)的特點(diǎn),因此經(jīng)常使用與視頻、音頻通話傳輸中,因?yàn)榘l(fā)送的數(shù)據(jù)較多,偶爾丟包一兩個(gè)不會(huì)產(chǎn)生太大影響
TCP
因?yàn)樯鲜鲋v到UDP的傳輸是不可靠的,經(jīng)常會(huì)導(dǎo)致連接錯(cuò)誤、數(shù)據(jù)丟包問題,針對(duì)這些問題規(guī)定了另一個(gè)傳輸層協(xié)議——TCP協(xié)議,TCP是一種面向連接、可靠的、基于字節(jié)流的傳輸層協(xié)議

-
面向連接:在傳輸數(shù)據(jù)是,要先建立起客戶端與服務(wù)端的連接,才能進(jìn)行數(shù)據(jù)傳輸
-
可靠的通信:TCP輸出數(shù)據(jù)中,會(huì)基于內(nèi)部的各種機(jī)制保證數(shù)據(jù)傳輸?shù)侥康亩丝?/p>
-
基于字節(jié)流:TCP傳輸數(shù)據(jù)是基于字節(jié)傳輸?shù)模子趯?duì)數(shù)據(jù)的拆分與合并發(fā)送
-
TCP的頭部比UDP的開銷要打,因?yàn)橐娣鸥嗟男畔?/p>
這里分享一張神圖,以便于更加形象的理解TCP和UDP的區(qū)別 網(wǎng)絡(luò)層是基于數(shù)據(jù)鏈路層和傳輸層之間的第三層協(xié)議,它在數(shù)據(jù)鏈路層提供的兩個(gè)相鄰端點(diǎn)之間的數(shù)據(jù)幀的傳送功能上,進(jìn)一步管理網(wǎng)絡(luò)中的數(shù)據(jù)通信,將數(shù)據(jù)設(shè)法從源端經(jīng)過若干個(gè)中間節(jié)點(diǎn)傳送到目的端,從而向傳輸層提供最基本的端到端的數(shù)據(jù)傳送服務(wù) 網(wǎng)絡(luò)層的目的是實(shí)現(xiàn)兩個(gè)端系統(tǒng)之間的數(shù)據(jù)透明傳送,具體功能包括尋址和路由選擇、連接的建立、保持和終止等。它提供的服務(wù)使傳輸層不需要了解網(wǎng)絡(luò)中的數(shù)據(jù)傳輸和交換技術(shù)。 IP協(xié)議是TCP/IP網(wǎng)絡(luò)模型中的核心部分,他提供了一種分層的、無關(guān)硬件的尋址方式,可以在復(fù)雜的路由式網(wǎng)絡(luò)中傳遞數(shù)據(jù)所需的服務(wù)IP協(xié)議可以將多個(gè)交換網(wǎng)絡(luò)連接起來,在源地址和目的地址之間傳輸數(shù)據(jù)包,同時(shí)它還能提供數(shù)據(jù)的組裝功能,以適應(yīng)不同網(wǎng)絡(luò)對(duì)數(shù)據(jù)包大小的要求
IP地址是互聯(lián)網(wǎng)協(xié)議特有的一種地址,它是IP協(xié)議提供的一種統(tǒng)一的地址格式,IP地址為互聯(lián)網(wǎng)的每個(gè)網(wǎng)絡(luò)和每臺(tái)主機(jī)分配了一個(gè)邏輯地址,以此來屏蔽物理地址的差異 |
IP地址為32位地址,被分為4個(gè)部分,如XXX.XXX.XXX.XXX,IP地址又被劃分為兩個(gè)部分網(wǎng)絡(luò)號(hào):前三部分用于標(biāo)識(shí)網(wǎng)段,保證相互連接的兩個(gè)網(wǎng)段有不同標(biāo)識(shí)主機(jī)號(hào):由最后一部分組成,用于標(biāo)識(shí)主機(jī),保證處于同一網(wǎng)段的兩臺(tái)主機(jī)有不同的主機(jī)號(hào)通過合理設(shè)置主機(jī)號(hào)和網(wǎng)絡(luò)號(hào), 就可以保證在相互連接的網(wǎng)絡(luò)中, 每臺(tái)主機(jī)的IP地址都不相同4 |
被稱為物理地址,是用來標(biāo)識(shí)網(wǎng)絡(luò)中每個(gè)設(shè)備的,MAC地址是設(shè)備出廠之后就寫死的 |
在單個(gè)局域網(wǎng)網(wǎng)段中,計(jì)算機(jī)與計(jì)算機(jī)之間可以使用數(shù)據(jù)鏈路層提供的MAC地址進(jìn)行通信如果在路由式網(wǎng)絡(luò)中,計(jì)算機(jī)之間就不能用MAC地址實(shí)現(xiàn)通信,主要是因?yàn)樵诼酚墒骄W(wǎng)絡(luò)中,數(shù)據(jù)只是經(jīng)過一次簡單的利用兩個(gè)計(jì)算機(jī)之間的MAC地址建立通信,而是需要進(jìn)行多次的通信,每次跳轉(zhuǎn)都會(huì)體目的主機(jī)更近一步,經(jīng)歷都次跳轉(zhuǎn),最終找到目的主機(jī)實(shí)現(xiàn)通信,而這個(gè)過程中,要知道每次向哪跳轉(zhuǎn)才能更接近目的主機(jī),必須使用一種邏輯化、層次化的尋址方案對(duì)網(wǎng)絡(luò)進(jìn)行組織,這就是 IP 地址 |
IP協(xié)議數(shù)據(jù)報(bào)格式

|
IP協(xié)議的工作方式:
由于網(wǎng)絡(luò)分為同網(wǎng)段和不同網(wǎng)段,所以會(huì)分成兩種方式
如果源地址主機(jī)和目的地址主機(jī)不處于同一網(wǎng)段,則數(shù)據(jù)包會(huì)經(jīng)歷多個(gè)過程最終發(fā)送給目的主機(jī)1、網(wǎng)關(guān)(一般為路由器)的 IP地址 被 ARP協(xié)議 解析為 MAC地址,根據(jù)該 MAC地址 源主機(jī)會(huì)將數(shù)據(jù)包發(fā)送到網(wǎng)關(guān)2、網(wǎng)關(guān)根據(jù)數(shù)據(jù)包中的網(wǎng)段ID找到目標(biāo)網(wǎng)絡(luò),如果找到,將數(shù)據(jù)包發(fā)送給目標(biāo)網(wǎng)路,如果沒有則重復(fù)第一步發(fā)送到更高一級(jí)網(wǎng)關(guān)
3、數(shù)據(jù)包經(jīng)過網(wǎng)關(guān)發(fā)送到正確的網(wǎng)段后,目標(biāo)IP被 ARP協(xié)議 解析為MAC地址,在根據(jù)該 MAC地址 將數(shù)據(jù)包發(fā)送給目標(biāo)地址的主機(jī)
ICMP協(xié)議又叫控制報(bào)文協(xié)議,ICMP協(xié)議用于在IP 和 路由器之間傳遞控制消息,描述網(wǎng)絡(luò)是否通暢、主機(jī)是否可達(dá)、路由器是否可用等網(wǎng)絡(luò)狀態(tài),ICMP本身并不傳輸數(shù)據(jù),但對(duì)于用戶間數(shù)據(jù)的傳遞起著重要的作用 在數(shù)據(jù)包從源主機(jī)傳輸?shù)侥康闹鳈C(jī)的過程中,會(huì)經(jīng)歷一個(gè)或多個(gè)路由器,而數(shù)據(jù)包在經(jīng)過這些路由器傳輸過程中,可能會(huì)遇到很多問題,最終導(dǎo)致數(shù)據(jù)包沒有成功傳遞給目的主機(jī)。為了了解數(shù)據(jù)包在傳輸過程中在哪個(gè)環(huán)節(jié)出了問題,就需要用到ICMP協(xié)議,它可以跟蹤數(shù)據(jù)包,并把消息返回給源主機(jī)。

數(shù)據(jù)鏈路層是TCP/IP網(wǎng)絡(luò)模型的第二層,基于物理層和網(wǎng)絡(luò)層之間,數(shù)據(jù)鏈路層在物理層提供的服務(wù)的基礎(chǔ)上向網(wǎng)絡(luò)層提供服務(wù),其最基本的服務(wù)是將源自物理層來的數(shù)據(jù)可靠地傳輸?shù)较噜徆?jié)點(diǎn)的目標(biāo)機(jī)網(wǎng)絡(luò)層。 ARP協(xié)議是數(shù)據(jù)進(jìn)行網(wǎng)絡(luò)傳輸過程中,通過IP地址向MAC地址的轉(zhuǎn)換,解決網(wǎng)絡(luò)層和物理層銜接問題 由于 IP 地址和 MAC 地址定位方式不同,ARP 協(xié)議成為數(shù)據(jù)傳輸?shù)谋貍鋮f(xié)議。主機(jī)發(fā)送信息前,必須通過 ARP 協(xié)議獲取目標(biāo) IP 地址對(duì)應(yīng)的 MAC 地址,才能正確地發(fā)送數(shù)據(jù)包。

ARP的工作流程:


如圖展示的是同一網(wǎng)段下的兩臺(tái)主機(jī),ARP的工作流程
在請(qǐng)求目標(biāo)主機(jī)的 MAC 地址時(shí),每次獲取目標(biāo)主機(jī) MAC 地址都需要發(fā)送一次 ARP 請(qǐng)求,然后根據(jù)響應(yīng)獲取到 MAC 地址。 為了避免重復(fù)發(fā)送 ARP 請(qǐng)求,每臺(tái)主機(jī)都有一個(gè) ARP 高速緩存。當(dāng)主機(jī)得到 ARP 響應(yīng)后,將目標(biāo)主機(jī)的 IP 地址和物理地址存入本機(jī) ARP 緩存中,并保留一定時(shí)間。 只要在這個(gè)時(shí)間范圍內(nèi),下次請(qǐng)求 MAC 地址時(shí),直接查詢 ARP 緩存,而無須再發(fā)送 ARP 請(qǐng)求,從而節(jié)約了網(wǎng)絡(luò)資源。 物理層,顧名思義就是用物理手段將兩個(gè)要通信的電腦連接起來,主要用來傳輸0、1光電信號(hào),因?yàn)檫@一層過于偏硬件,所以海翎光電的小編在本文不做過多的贅述了 經(jīng)過以上對(duì)網(wǎng)絡(luò)傳輸層中每一層理解下面和海翎光電的小編一起來看看,當(dāng)訪問一個(gè)網(wǎng)頁時(shí),到底發(fā)生了什么?主機(jī)A:發(fā)送網(wǎng)絡(luò)數(shù)據(jù)報(bào)
-
DNS解析:將域名轉(zhuǎn)換成對(duì)應(yīng)IP地址(本機(jī)DNS緩存棧開始找—>逐級(jí)向上查找,如果根域服務(wù)器找不到,表示公網(wǎng)上沒有該域名主機(jī))
-
找到IP后:通過目的IP找到對(duì)應(yīng)的目的MAC地址
-
根據(jù)目的IP計(jì)算目的主機(jī)是否和主機(jī)A處于同一網(wǎng)段
-
如在同網(wǎng)段:接通過ARP協(xié)議解析出對(duì)應(yīng)的目的MAC,跳轉(zhuǎn)到底9步
-
如不在同一網(wǎng)段:發(fā)送數(shù)據(jù)報(bào)到網(wǎng)關(guān),現(xiàn)在ARP緩存表查找,通過網(wǎng)關(guān)IP查找MAC地址,找不到發(fā)送查詢MAC廣播數(shù)據(jù)報(bào),最終返回網(wǎng)關(guān)自己的MAC
-
交換機(jī)轉(zhuǎn)發(fā):在MAC地址轉(zhuǎn)換表中找到對(duì)應(yīng)MAC交換機(jī)接口
-
路由器接收:分用數(shù)據(jù)報(bào)

8.途中的設(shè)備:與第7步同樣操作如目的IP對(duì)應(yīng)的MAC地址不是當(dāng)前設(shè)備則繼續(xù)重復(fù)該操作繼續(xù)往更接近目的IP的路由發(fā)送

9.找到目的主機(jī)B,主機(jī)B的服務(wù)器開始接受分用請(qǐng)求,解析,最終組織響應(yīng)

10.同上述操作一樣,由主機(jī)B向主機(jī)A發(fā)送數(shù)據(jù)11.最終主機(jī)A接受到數(shù)據(jù)報(bào),經(jīng)過分用,解析,最終得到響應(yīng) 好了,關(guān)于網(wǎng)絡(luò)協(xié)議就介紹到這里。