關(guān)于網(wǎng)絡(luò)的知識(shí),我這里主要是從OSI分層,網(wǎng)絡(luò)協(xié)議等相關(guān)的知識(shí)。
(資料圖片僅供參考)
所謂七層模型和四層模型是前輩們?yōu)榱嗽鰪?qiáng)通用型和兼容性,設(shè)計(jì)出來(lái)的層次結(jié)構(gòu),每一層都遵守一定的規(guī)則。
物理層:通過(guò)光纜,網(wǎng)線等物理方式把電腦連接起來(lái),是傳遞比特流,并且規(guī)定了電平,速度,電纜針腳。數(shù)據(jù)鏈路層:把比特流封裝成數(shù)據(jù)幀的格式,幀是數(shù)據(jù)鏈路層的傳送單位。電腦連接起來(lái)之后,數(shù)據(jù)都是經(jīng)過(guò)網(wǎng)卡傳輸,而網(wǎng)卡定義了世界唯一的mac地址,通過(guò)廣播的形式向局域網(wǎng)所有的電腦發(fā)送數(shù)據(jù),根據(jù)數(shù)據(jù)中的mac地址和自身的進(jìn)行對(duì)比判斷是否發(fā)送給自己。數(shù)據(jù)鏈路層主要是幀編碼和誤差糾正控制。網(wǎng)絡(luò)層:網(wǎng)絡(luò)層定義了IP協(xié)議和子網(wǎng)掩碼,通過(guò)對(duì)IP和子網(wǎng)掩碼進(jìn)行運(yùn)算能確定是否是通一個(gè)子網(wǎng),通過(guò)路由器和交換機(jī)進(jìn)行傳輸。網(wǎng)絡(luò)層具有尋址和路由選擇,連接的建立,保持,終止等功能。傳輸層:傳輸層是端到端的連接,為了確定數(shù)據(jù)包是從哪個(gè)進(jìn)程發(fā)送過(guò)來(lái)的,就需要端口號(hào),通過(guò)端口來(lái)建立通信,比如TCP和UDP屬于這一層的協(xié)議。會(huì)話層:負(fù)責(zé)建立,管理,斷開表示層實(shí)體間的通信會(huì)話。表示層:服務(wù)于應(yīng)用層數(shù)據(jù)編碼和轉(zhuǎn)換功能,保證一個(gè)系統(tǒng)的應(yīng)用層數(shù)據(jù)發(fā)送到另外一個(gè)應(yīng)用層能識(shí)別。應(yīng)用層:最靠近用戶的一層,是為計(jì)算機(jī)用戶提供應(yīng)用接口,最終供用戶的能理解使用的一層。TCP/IP模型是四層,對(duì)于OSI的模型簡(jiǎn)化:
網(wǎng)絡(luò)接口層,也叫網(wǎng)絡(luò)訪問(wèn)層,包含OSI模型的物理層和數(shù)據(jù)鏈路層,把電腦連接起來(lái)。網(wǎng)絡(luò)層,也叫做IP層,處理IP數(shù)據(jù)包的傳輸、路由,建立主機(jī)間的通信。傳輸層,為兩臺(tái)主機(jī)設(shè)備提供端到端的通信。應(yīng)用層,包含OSI的會(huì)話層、表示層和應(yīng)用層,提供了一些常用的協(xié)議規(guī)范,比如FTP、SMPT、HTTP等。OSI模型總結(jié)物理層通過(guò)物理手段把電腦連接起來(lái),數(shù)據(jù)鏈路層是對(duì)比特流的封裝編碼,網(wǎng)絡(luò)層來(lái)建立主機(jī)對(duì)主機(jī)的通信,傳輸層建立端口到端口的通信,表示層處理數(shù)據(jù)編碼和轉(zhuǎn)換,應(yīng)用層最終負(fù)責(zé)建立連接,數(shù)據(jù)格式轉(zhuǎn)換,呈現(xiàn)給用戶。
在OSI七層參考模型中,每一層都有哪些協(xié)議?物理層協(xié)議有:EIA/TIA-232, EIA/TIA-499,V.35, V.24,RJ45, Ethernet, 802.3,F(xiàn)DDI數(shù)據(jù)鏈路層協(xié)議有:Frame Relay,HDLC,PPP, IEEE 802.3/802.2網(wǎng)絡(luò)層協(xié)議有:IP,IPX,AppleTalk DDP傳輸層協(xié)議有:TCP,UDP會(huì)話層協(xié)議有:RPC,SQL,NFS,NetBIOS,names,AppleTalk表示層協(xié)議有:TIFF,GIF,JPEG,PICT,ASCII,EBCDIC,encryption應(yīng)用層協(xié)議有:FTP,WWW,Telnet,NFS,SMTP,Gateway,SNMP如何知道兩臺(tái)機(jī)器是否相通?判斷兩臺(tái)機(jī)器是否相通,我們從上面的OSI模型中能知道在IP層實(shí)現(xiàn)就行了,IP層是實(shí)現(xiàn)兩臺(tái)機(jī)器的通信,關(guān)于IP層我們從上面也知道有IP協(xié)議,IPX協(xié)議等,其實(shí)我們只要能知道實(shí)現(xiàn)IP層協(xié)議的一些命令就能知道如何通過(guò)命令知道兩臺(tái)機(jī)器是否相通。
如何知道兩臺(tái)機(jī)器是否相通,我們可以通過(guò)ping或者traceroute命令,ping和traceroute命令基于ICMP協(xié)議實(shí)現(xiàn)。下面我們來(lái)分析一下ping和traceroute命令以及ICMP協(xié)議。
ping命令:。它是基于網(wǎng)絡(luò)層、通過(guò)發(fā)送和接收數(shù)據(jù)包來(lái)檢測(cè)兩臺(tái)計(jì)算機(jī)間的連接狀況。當(dāng)出現(xiàn)網(wǎng)絡(luò)故障的時(shí)候,我們就可以用ping命令來(lái)預(yù)估故障點(diǎn),如果ping命令沒有成功,那么就該考慮硬件連接是否出錯(cuò),比如網(wǎng)卡設(shè)置是否正確、比如網(wǎng)線是否連通,再考慮IP地址設(shè)置是否正確。也可以用于數(shù)據(jù)包一去一回所需耗的時(shí)間。使用命令:Ping IP地址。
ping命令就會(huì)將目的服務(wù)器的 IP 地址,數(shù)據(jù)大小,往返花費(fèi)的時(shí)間打印到屏幕上。如下圖:
traceroute命令:traceroute命令是一款充分利用 ICMP 差錯(cuò)報(bào)文類型的應(yīng)用,其主要用作追蹤路由信息。它的實(shí)現(xiàn)是利用從每個(gè)機(jī)器節(jié)點(diǎn)之間的IP報(bào)的TTL從1開始遞增同時(shí)發(fā)送UDP包,當(dāng)出錯(cuò)則接受ICMP包的超時(shí)錯(cuò)誤信息。
我們參考下圖,就能清楚的描述 traceroute 的整個(gè)過(guò)程。
tracerouter發(fā)UDP,為啥出錯(cuò)會(huì)回ICMP?正常情況下,協(xié)議棧能正常走到UDP,當(dāng)然正常返回UDP。但是,你主機(jī)不可達(dá),是IP層的(還沒到UDP)。IP層,當(dāng)然只知道回ICMP。
ICMP協(xié)議ICMP是 Internet Control Message Protocol 的縮寫,即互聯(lián)網(wǎng)控制消息協(xié)議。它是互聯(lián)網(wǎng)協(xié)議族的核心協(xié)議之一。它是IP層中發(fā)送控制消息,提供可能發(fā)生在通信環(huán)境中的各種問(wèn)題反饋,通過(guò)這些信息,使網(wǎng)絡(luò)管理者可以對(duì)所發(fā)送的問(wèn)題作出診斷,從而采取適當(dāng)措施來(lái)解決問(wèn)題。
ICMP本身是網(wǎng)絡(luò)層的一個(gè)協(xié)議,但是它的報(bào)文不是直接傳送給數(shù)據(jù)鏈路層,而是要封裝IP數(shù)據(jù)包,然后再傳送給數(shù)據(jù)鏈路層。ICMP的差錯(cuò)和控制信息傳輸只是要解決IP可能出現(xiàn)的不可靠問(wèn)題,它不能獨(dú)立于IP而單獨(dú)存在,因此應(yīng)該把它視為IP的一個(gè)部分,歸于IP體系。
ICMP協(xié)議報(bào)文協(xié)議報(bào)文
ICMP報(bào)文中各字段含義如下:
類型:占1字節(jié),表示ICMP消息的類型。代碼:占l字節(jié),進(jìn)一步劃分ICMP消息的子類型,如對(duì)類型3(目的不可達(dá))又細(xì)分為目的網(wǎng)絡(luò)不可達(dá)(代碼0)、目的主機(jī)不可達(dá)(代碼2)、目的協(xié)議不可達(dá)(代碼3)、目的端口不可達(dá)(代碼4)等。校驗(yàn)和:占2字節(jié),對(duì)ICMP報(bào)文首部和數(shù)據(jù)進(jìn)行校驗(yàn)。第4個(gè)字段:占4字節(jié),內(nèi)容取決于ICMP報(bào)文的類型,有的類型不定義該字段。數(shù)據(jù)部分:內(nèi)容和長(zhǎng)度取決于ICMP報(bào)文的類型。ICMP消息的類型分為查詢報(bào)文,差錯(cuò)控制報(bào)文:
ICMP報(bào)文類型 | 類型的值 | 說(shuō)明查詢報(bào)文 | 8 | 回應(yīng)請(qǐng)求查詢報(bào)文 | 0 | 應(yīng)答報(bào)文查詢報(bào)文 | 13 | 時(shí)間戳請(qǐng)求查詢報(bào)文 | 14 | 應(yīng)答報(bào)文查詢報(bào)文 | 17 | 子網(wǎng)掩碼請(qǐng)求查詢報(bào)文 | 18 | 應(yīng)答報(bào)文查詢報(bào)文 | 10 | 路由查詢查詢報(bào)文 | 9 | 通告報(bào)文差錯(cuò)控制報(bào)文 | 3 | 目標(biāo)不可達(dá)差錯(cuò)控制報(bào)文 | 4 | 源端控制差錯(cuò)控制報(bào)文 | 5 | 重定向差錯(cuò)控制報(bào)文 | 11 | 超時(shí)差錯(cuò)控制報(bào)文 | 12 | 報(bào)文參數(shù)出錯(cuò)
ICMP代碼類型:
代碼 | 含義0 | 目標(biāo)網(wǎng)絡(luò)不可達(dá)1 | 目標(biāo)主機(jī)不可達(dá)2 | 目標(biāo)協(xié)議不可達(dá)3 | 目標(biāo)端口不可達(dá)4 | 需要分段且已設(shè)置DF5 | 源路由失敗6 | 目的網(wǎng)絡(luò)未知7 | 目的主機(jī)未知8 | 源主機(jī)被隔離9 | 目的網(wǎng)絡(luò)被強(qiáng)制禁止10 | 目的主機(jī)被強(qiáng)制禁止11 | 網(wǎng)絡(luò)不能達(dá)到指定的服務(wù)類型12 | 主機(jī)不能達(dá)到指定的服務(wù)類型13 | 因管理結(jié)構(gòu)的主機(jī)設(shè)置了過(guò)濾器而不可達(dá)14 | 因主機(jī)所設(shè)置的優(yōu)先級(jí)收到破壞而不可達(dá)15 | 因優(yōu)先級(jí)被刪除而使主機(jī)不可達(dá)
了解了ICMP協(xié)議的報(bào)文了,我們來(lái)看下ping命令實(shí)現(xiàn)的ICMP協(xié)議的整個(gè)傳輸流程。ICMP 是 IP 的上層協(xié)議,但是ICMP也分擔(dān)了IP的一部分功能。下面展示了ICMP協(xié)議的實(shí)現(xiàn)的圖解。
? ?
標(biāo)簽: 網(wǎng)絡(luò)協(xié)議
- 全球短訊!通俗易懂圖解網(wǎng)絡(luò)面試知識(shí)—第一篇
- 全面進(jìn)化!機(jī)械師創(chuàng)物者X14高性能創(chuàng)作筆記本曝光
- 【時(shí)快訊】我有七種實(shí)現(xiàn)Web實(shí)時(shí)消息推送的方案
- 環(huán)球熱資訊!流量控制(流控)| 深入淺出MGR
- 全球速看:必知必會(huì),七張圖輕松理解 Kubernetes 集群內(nèi)服務(wù)通信
- 當(dāng)前消息!震驚!網(wǎng)絡(luò)還可以易容嗎?
- 天天熱點(diǎn)評(píng)!繞開5G直奔6G,俄做了一個(gè)“難以置信”的決定
- 世界短訊!HTTP 中的常用狀態(tài)碼及使用場(chǎng)景
- 當(dāng)前簡(jiǎn)訊:SDA全景深運(yùn)維策略加速提升客戶運(yùn)維能力
- 全球首發(fā)高通驍龍8cxGen3旗艦處理器 聯(lián)想X13s上市發(fā)售