物理層
物理層是TCP/IP模型的最底層,物理層定義其設(shè)備的物理特性、電氣特性等,比如網(wǎng)絡(luò)接口卡、中繼器、集線器、網(wǎng)線、無線電。
物理層作用確保設(shè)備之間連接正常,包括建立、維護(hù)和斷開物理連接等,物理層傳輸數(shù)據(jù)是通過電信號中的高低電壓和低電壓,也就是0101010的比特流。
數(shù)據(jù)鏈路層
數(shù)據(jù)鏈路層位于物理層和網(wǎng)絡(luò)層之間
主要功能:邏輯連接的建立、維護(hù)、拆除,物理尋址,差錯校驗等,完成同網(wǎng)段的互通。
以太網(wǎng)
- 我們平常使用的網(wǎng)絡(luò)設(shè)備,數(shù)據(jù)鏈路都是Ethernet,所以通常使用的網(wǎng)絡(luò)都稱之為以太網(wǎng)。
- 以太網(wǎng)中可以同時連接多個設(shè)備,所以又稱為廣播型網(wǎng)絡(luò)
以太網(wǎng)數(shù)據(jù)幀格式
在以太網(wǎng)數(shù)據(jù)傳輸時是通過MAC地址來區(qū)分?jǐn)?shù)據(jù)來自哪里,去往哪里。
MAC地址 全球唯一的一個地址、物理地址、網(wǎng)卡地址。
MAC地址的組成:前24bit(廠商編號)+后24bit(廠商具體生產(chǎn)的網(wǎng)卡號) 一共 48bit(bit代表0或 1)
8個bit(位)為一個字節(jié)
- 目的地址:接收主機(jī)的MAC地址
- 源地址:發(fā)送數(shù)據(jù)主機(jī)的MAC地址
- 類型:表示上層在處理數(shù)據(jù)時用的什么協(xié)議,在此處標(biāo)記出來
- 數(shù)據(jù):就是用戶發(fā)出來的數(shù)—圖片 文字 文檔
- 幀校驗序列:他是核對用的,主要是查看數(shù)據(jù)是否被破壞,數(shù)據(jù)是好的話就接收
- 整個數(shù)據(jù)幀最大是多少: 6+6+2+1500+4 =1518個字節(jié)
- 整個數(shù)據(jù)幀最小是多少:6+6+2+46+4=64個字節(jié)
eNSP抓包實驗
在以太網(wǎng)數(shù)據(jù)通信過程中,來自網(wǎng)絡(luò)層的數(shù)據(jù)包會在在數(shù)據(jù)鏈路層裝上MAC頭部和尾部幀校驗序列,其中MAC頭部就包含目標(biāo)主機(jī)和自己的MAC地址,那么計算機(jī)是如何知道對方主機(jī)的MAC地址呢。我們通過抓包來觀察通信流程。
- 以太網(wǎng)內(nèi)的兩臺主機(jī)在第一次通信時,發(fā)送方并不知道接收方的mac地址,所以在通信前會以廣播的形式發(fā)送一個ARP包詢問192.168.1.2主機(jī)的mac地址,當(dāng)主機(jī)192.168.1.2收到這個請求包時會回復(fù)給主機(jī)192.168.1.1自己的mac地址,同時在以太網(wǎng)中的其它主機(jī)也會收到ARP包,但是打開看并不是給自己的就會將這個包丟棄掉。
- 主機(jī)192.168.1.1在收到目標(biāo)主機(jī)的MAC地址后,才會進(jìn)行數(shù)據(jù)幀的封裝,封裝完成后進(jìn)行傳輸數(shù)據(jù)。
網(wǎng)絡(luò)層
- 網(wǎng)絡(luò)層位于OSI模型的第三層
- 作用:定義網(wǎng)絡(luò)設(shè)備的邏輯地址,俗稱網(wǎng)絡(luò)層地址(如IP地址),在不同網(wǎng)段之間選擇最佳路徑轉(zhuǎn)發(fā)數(shù)據(jù)
- 協(xié)議:IP、ICMP、ARP、IPX、AppleTalk等協(xié)議
IP數(shù)據(jù)報格式
- 每一個位置為一個字段,如版本字段、首部長度字段、標(biāo)識符字段等
- IP數(shù)據(jù)包的單位是32bit,即4字節(jié),每一行的內(nèi)容是32bit
- IP報頭的固定部分為20字節(jié),分為5行,每一行的32bit(4字節(jié))
- 每個括號里的數(shù)字代表用多少二進(jìn)制數(shù)來表示這個地段
- IP報包有兩部分組成:固定部分和可選項部分
首部由兩部分組成:固定部分和可變部分
首部:固定部分(20個字)+可選項(0-40個字節(jié),一般情況沒有)
-
版本:指的是IP地址的版本(IPV4,IPV6)
-
首部長度:此數(shù)據(jù)包的部長度一共是多少,有沒有可選項
-
優(yōu)先級與服務(wù)類型:表示數(shù)據(jù)包是否需要優(yōu)先傳遞。如果有值為1如果沒有值為0
-
總長度:表示的是整個數(shù)據(jù)包的大小,也就是首部+數(shù)據(jù)
-
標(biāo)識符:表示數(shù)據(jù)包的編號,每一個數(shù)據(jù)包都有一個唯一的編號
-
標(biāo)志、端偏移量:將拆開的數(shù)據(jù)包進(jìn)行組合
-
TTL值:數(shù)據(jù)生命周期當(dāng)此值得數(shù)字變?yōu)?時,該數(shù)據(jù)包就被丟棄,每經(jīng)過一臺路由器TTL值減1
-
協(xié)議號:數(shù)據(jù)包在網(wǎng)絡(luò)中傳遞是所用的協(xié)議。
當(dāng)編號為1時,表示上層用的是ICMP協(xié)議—是網(wǎng)絡(luò)層的協(xié)議
當(dāng)編號為6時,表示上層用的是 TCP協(xié)議–傳輸層的協(xié)議
當(dāng)編號為17時,表示上層用的是 UDP協(xié)議–傳輸層的協(xié)議
- 首部校驗和:是用來做數(shù)據(jù)包核對用的,確定數(shù)據(jù)包是否是完整,如果是就接收,如果不是完整的數(shù)據(jù)包,不接收該數(shù)據(jù)包,讓重新發(fā)送(整個過程不需要我們來做,設(shè)備自己進(jìn)行計算)
- 源地址:發(fā)送方IP地址
- 目標(biāo)地址:接收方IP地址
- 可選項:他是一個可變長度,取值范圍:0-40個字節(jié) 一般數(shù)據(jù)包中不是加該選項的,什么情況下加該選項:當(dāng)想要傳輸用戶 密碼 軟件使用場景是會用到該字段
- 數(shù)據(jù):他是應(yīng)用層發(fā)出的數(shù)據(jù)-----在數(shù)據(jù)包中體現(xiàn),單獨(dú)看不到
科來抓包分析ip數(shù)據(jù)報格式
ICMP協(xié)議概述
- ICMP(internet Control Message Protocol),網(wǎng)絡(luò)控制消息協(xié)議
- 位于OSI模型第三層,即網(wǎng)絡(luò)層
作用:在IP網(wǎng)絡(luò)中發(fā)送控制消息,提供可能發(fā)生在通信環(huán)境中的各種問題的反饋,從而為網(wǎng)絡(luò)連通性測試以及網(wǎng)絡(luò)故障定位提供有效的指示信息。
ICMP協(xié)議封裝:ICMP協(xié)議屬于網(wǎng)絡(luò)層協(xié)議
- 傳輸ICMP信息時,要先封裝ICMP頭部
- 然后在封裝IP頭部
- 最后再交給數(shù)據(jù)鏈路層
eNSP抓包實驗
- Echo Request,請求報文
- Echo Reply,相應(yīng)報文
常見的ping反饋結(jié)果
- 連接建立成功,Reply from目的地址
- 目標(biāo)主機(jī)不可達(dá),Destination host unreachable
- 請求超時,Request timed Out
出現(xiàn)Destination host unreachable一般是本機(jī)網(wǎng)絡(luò)配置出現(xiàn)問題
出現(xiàn)Request timed Out可能是目標(biāo)主機(jī)或者傳輸路徑出現(xiàn)問題
ARP協(xié)議概述
ARP(address resolution protocol):地址解析協(xié)議
- ARP協(xié)議屬于OSI模型的第三層(網(wǎng)絡(luò)層)
- 主要作用:基于目標(biāo)IP地址獲得對應(yīng)目標(biāo)的MAC地址,從而完成數(shù)據(jù)幀的二層頭部封裝,實現(xiàn)數(shù)據(jù)的快速轉(zhuǎn)發(fā)
ARP報文類型
- ARP請求報文,源設(shè)備以廣播的方式發(fā)送,向所有設(shè)備請求MAC地址
- ARP回應(yīng)報文,目標(biāo)設(shè)備以單播的方式回應(yīng),直接返回給原設(shè)備
ARP核心工作表
- ARP表,包含的IP地址與MAC地址的對應(yīng)關(guān)系條目
- ARP條目分為靜態(tài)和動態(tài)的兩種類型
- 動態(tài)ARP條目的存活時間是1200s
任何設(shè)備發(fā)數(shù)據(jù)的原理
- 任何設(shè)備在發(fā)數(shù)據(jù)包之間,都會檢查ARP表,查看包含去往目標(biāo)IP地址時所使用的的MAC地址
- 如果ARP表包含目標(biāo)IP地址對應(yīng)的條目,則使用目標(biāo)MAC地址封裝數(shù)據(jù)
- 如果ARP表不包含目標(biāo)IP地址對應(yīng)的條目,則發(fā)送ARP請求,獲得目標(biāo)的MAC
eNSP抓包實驗
請求主機(jī)會根據(jù)收到的ARP回應(yīng)包實施更新ARP表
傳輸層
-
傳輸層:傳輸層位于網(wǎng)絡(luò)層和應(yīng)用層之間
-
作用:傳輸層提供端到端的連接(不同端口號,代表不同的應(yīng)用程序)
-
TCP(Transmission Control Protocol)
-
傳輸控制協(xié)議
-
可靠的、面向連接協(xié)議
-
傳輸效率低(建立連接需要很長的時間)
-
UDP(User Datagram Protocol)
-
用戶數(shù)劇報文協(xié)議
-
不可靠的、無連接的服務(wù)
-
傳輸效率高(無需建立連接、速度快)
TCP協(xié)議
TCP報文分為兩部分:TCP頭部,數(shù)據(jù)部分
- TCP頭部可能含有可選項內(nèi)容,因此TCP報頭的長度是不確定的
- 報頭不包含任何可選字段,則長度為20字節(jié),報頭最大長度為60字節(jié)
TCP報文頭部內(nèi)容
- 源端口:源端口和IP地址的作用是標(biāo)識報文的發(fā)送地址
- 目的端口:指明接收方計算機(jī)上的應(yīng)用程序接口(源端口是隨機(jī)的,目標(biāo)端口是固定的,一般指服務(wù)器。一共有65535個端口號,其中0-1024是常用的端口 )
- 序列號和確認(rèn)號:在TCP傳送一個數(shù)據(jù)包時,它會把這個數(shù)據(jù)包放入重發(fā)隊列中,同時啟動計時器,如果收到了關(guān)于這個包的確認(rèn)信息,便將此數(shù)據(jù)包從隊列中刪除,如果在計時器超時的時候仍然沒有收到確認(rèn)信息,則需要重新發(fā)送該數(shù)據(jù)包。TCP通過數(shù)據(jù)分段中的序列號來保證所有傳輸?shù)臄?shù)據(jù)可以按照正常的順序進(jìn)行重組,從而保障數(shù)據(jù)傳輸?shù)耐暾?。如果一個報文段的起始序號為158,此報文段數(shù)據(jù)部分的大小為100字節(jié),則下一個報文段的序號為258。
- 首部長度:此報文的長度是多少,有沒有可選項
- 保留:為將來定義新的用途保留,現(xiàn)在一般置0
-
控制位
URG=1 代表緊急指針開啟緊急指針:特別著急的數(shù)據(jù)段優(yōu)先傳遞
ACK=1 代表同意建立連接
PSH=1 代表開啟緩沖區(qū)(臨時存放數(shù)據(jù)的)
RST=1 數(shù)據(jù)沒有傳輸完成斷開了,在次請求建議連接
SYN=1 代表請求建立連接
FIN=1 代表請求斷開連接 - 窗口大小:代表數(shù)據(jù)在發(fā)送之前,設(shè)備間需要協(xié)商,依照最小單位為準(zhǔn)發(fā)送數(shù)據(jù)
- 校驗和:此校驗和是對整個TCP報文段,包括TCP頭部和TCP數(shù)據(jù)部分
eNSP抓包
- 建立如圖拓?fù)?/li>
- 配置web服務(wù)站點(diǎn)
- 客戶機(jī)訪問web服務(wù)
三次握手、四次揮手
三次握手
- 第一次:主機(jī)A發(fā)送SYN請求建立連接 seq=0 syn=1
- 第二次:主機(jī)B回應(yīng)并發(fā)起連接seq=0、ack=1, ACK=1,syn=1
- 第三次:主機(jī)A回應(yīng),seq=1、ack=1,ACK=1
四次揮手
- 第一次:主機(jī)A請求斷開連接,F(xiàn)IN=1、ACK=1
- 第二次:主機(jī)B發(fā)送確認(rèn)信息,ACK=1
- 第三次:主機(jī)B請求斷開連接,F(xiàn)IN=1、ACK=1
- 第四次:主機(jī)A確認(rèn)收到請求,ACK=1
UDP協(xié)議
DUP報文格式文章來源:http://www.zghlxwxcb.cn/news/detail-785871.html
- 源端口:源端口和IP地址的作用是標(biāo)識報文的返回地址
- 目的端口:目標(biāo)端口指明接收方計算機(jī)上的應(yīng)用程序接口
- 16位UDP長度:代表整個UDP的數(shù)據(jù)報是多大----8字節(jié)
- 16位UDP校驗和:是一個檢查機(jī)制,在發(fā)送數(shù)據(jù)包之前檢查一下數(shù)據(jù)包的完整性。
- 數(shù)據(jù): 就是應(yīng)用所有產(chǎn)生的數(shù)據(jù)了
eNSP抓包
在客戶機(jī)上模擬UDP發(fā)包
常見基于UDP的應(yīng)用文章來源地址http://www.zghlxwxcb.cn/news/detail-785871.html
到了這里,關(guān)于數(shù)據(jù)幀、IP數(shù)據(jù)包、TCP、UDP報文格式詳解----網(wǎng)絡(luò)通信原理的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!