日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

TCP/IP协议基本概括+ARP协议详解+DNS协议详解---Linux学习笔记

發(fā)布時間:2023/12/20 linux 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 TCP/IP协议基本概括+ARP协议详解+DNS协议详解---Linux学习笔记 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

TCP/IP協(xié)議的體系結構:

TCP/IP協(xié)議族四層模型和OSI七層模型

上層協(xié)議使用下層協(xié)議的服務,下層協(xié)議給上層協(xié)議提供一個接口。

四層模型中各個層次的作用和特點

上圖說明:
最底層是數(shù)據(jù)鏈路層,主要實現(xiàn)了網(wǎng)卡接口的網(wǎng)絡驅動程序,用來處理數(shù)據(jù)在物理媒介上的傳輸。常見的物理媒介有以太網(wǎng)和令牌環(huán)。網(wǎng)絡驅動程序隱藏了物理網(wǎng)絡具有的不同電極特性,為上一層協(xié)議提供一個統(tǒng)一的接口。我們常見的交換機就是數(shù)據(jù)鏈路層的設備。
數(shù)據(jù)鏈路層之上是網(wǎng)絡層(或稱IP層)。主要實現(xiàn)數(shù)據(jù)報的選路和轉發(fā)。處理分組在網(wǎng)絡中的活動,也就是說為每一個數(shù)據(jù)報在復雜的網(wǎng)絡環(huán)境中選擇一個準確快速的道路。網(wǎng)絡層的通訊方式是逐跳進行。同時網(wǎng)絡層對上層協(xié)議隱藏了top連接的細節(jié)。也就是說在傳輸層和應用層來看,通訊的兩臺機器是直接相連的。我們使用的路由器就是工作在網(wǎng)絡層。
網(wǎng)絡層的上一層是傳輸層。傳輸層為網(wǎng)絡通信的兩臺機器提供了端到端的通信。在通訊方式這一點上,傳輸層跟網(wǎng)絡層是有所不同的。傳輸層只關心傳輸?shù)钠鹗级撕湍繕硕?#xff0c;不在乎數(shù)據(jù)包的中轉過程。
最上層是應用層。主要負責應用程序的邏輯,比如文件傳輸,網(wǎng)絡管理等這些功能。
TCP/IP協(xié)議中除應用層的其他層都是工作在內核空間。

四層模型中各個層析相應的協(xié)議


數(shù)據(jù)鏈路層主要的協(xié)議是ARP協(xié)議(地址解析協(xié)議)和RARP協(xié)議(逆地址解析協(xié)議)實現(xiàn)了IP地址和機器物理地址之間的轉換。在網(wǎng)絡層中使用IP地址尋找一臺機器,但是到了數(shù)據(jù)鏈路層就必須使用物理地址尋找一臺機器。所以網(wǎng)絡層必須先把目標機器的IP地址轉換成物理地址才能使用數(shù)據(jù)鏈路層提供的服務,這就是ARP協(xié)議的用途。
網(wǎng)絡層中最核心的協(xié)議是IP協(xié)議,IP協(xié)議根據(jù)數(shù)據(jù)報的目的IP地址來決定如何投遞數(shù)據(jù)包。如果數(shù)據(jù)包不能直接發(fā)送給目標主機,那么IP協(xié)議就為它尋找一個合適的下一跳路由器,并把數(shù)據(jù)包交付給這個路由器來轉發(fā),就這樣一直重復,直到到達目標端或者由于發(fā)送失敗而丟棄這個數(shù)據(jù)包。另一個重要協(xié)議是ICMP協(xié)議(因特網(wǎng)控制報文協(xié)議),是IP協(xié)議的重要補充,主要用于檢測網(wǎng)絡連接。
傳輸層的協(xié)議主要有3個:TCP協(xié)議(傳輸控制協(xié)議)、UDP協(xié)議、SCTP協(xié)議(流控制傳輸協(xié)議)。
TCP協(xié)議:為應用層提供了可靠的、面向連接的、基于流的服務。
UDP協(xié)議:為應用層提供的是不可靠、無連接、基于數(shù)據(jù)報的服務。
SCTP協(xié)議:為了因特網(wǎng)上傳輸電話信號而設計的。

應用層中常見的協(xié)議有:
OSPF協(xié)議(開放最短路徑優(yōu)先協(xié)議):是一種路由器更新協(xié)議,主要用于路由器之間的通信來告知對方各自的路由信息。
DNS協(xié)議:提供了機器域名到IP地址的轉換。使用的是傳輸層的UDP協(xié)議。
telnet協(xié)議:遠程登陸協(xié)議,使用的是傳輸層的TCP服務。
應用層協(xié)議可以直接跳過傳輸層直接使用網(wǎng)絡層提供的服務,比如ping命令和OSPF協(xié)議。

數(shù)據(jù)的封裝和分用

數(shù)據(jù)的封裝:
數(shù)據(jù)的封裝形式:

TCP報文段傳輸過程:

以太網(wǎng)幀格式:

數(shù)據(jù)分用過程:

ARP協(xié)議的工作原理:

ARP協(xié)議也就是地址解析協(xié)議,RARP協(xié)議是逆地址解析協(xié)議

ARP協(xié)議作用:能實現(xiàn)任意網(wǎng)絡地址到任意物理地址的轉換。也就是說將IP地址對應當相應的物理地址中,因為數(shù)據(jù)鏈路層要通過物理地址來尋找你要傳輸數(shù)據(jù)的機器,這樣才能通過數(shù)據(jù)鏈路層往外傳輸數(shù)據(jù)。

ARP協(xié)議的工作原理:
主機向自己所在的網(wǎng)絡廣播一個ARP請求(該請求包含目標機器的網(wǎng)絡地址),同時網(wǎng)絡上其他機器都將收到這個請求,但只有被請求的目標機器會回應一個ARP應答(其中包含了自己的物理地址)

ARP請求的報文格式:

ARP報文大小為28個字節(jié),
第一個字段 —— 2個字節(jié)大小—-硬件類型字段 —– 定義物理地址的類型。如果值為1,表示MAC地址
第二個字段——2個字節(jié)大小—-協(xié)議類型字段——表示映射的協(xié)議地址類型。如果值為0x80,表示IP地址
第三個字段——-1個字節(jié)大小—-硬件地址長度字段,對于MAC地址是6個字節(jié),對于IP地址是4個字節(jié)
第四個字段——1個字節(jié)大小—–協(xié)議地址長度字段,對于MAC地址是6個字節(jié),對于IP地址是4個字節(jié)
第五個字段—–2個字節(jié)大小—–OP(操作字段)——指出四種操作類型中的一種,ARP請求值為1,ARP應答值為2,RARP請求值為3,RARP應答值為4
最后四個字段,指定通訊雙方的MAC地址和IP地址,發(fā)送端填寫除了目的MAC地址的其他三個字段已構成ARP請求報文,并發(fā)送這個報文,接收端發(fā)現(xiàn)該請求的目的IP地址是自己,就把自己的MAC地址填充進去,然后交換兩個目的端地址和兩個發(fā)送端地址已構成ARP應答,并返回。

Linux中ARP高速緩存的查看和修改方法:

arp -a #查看ARP緩存 arp -d 192.168.1.111 #刪除IP為192.168.1.111對應的ARP緩存 arp -s 192.168.1.112 00:0c:29:6e:63:18 #添加IP為192.168.1.112 和 對應的ARP緩存

第一臺測試機中的操作:ping另一臺測試機

第二臺測試機中的操作:抓取這兩臺測試機之間數(shù)據(jù)交換的以太幀數(shù)據(jù)

當?shù)谝慌_主機ping了第二臺主機,第二臺主機中就會抓取到以下內容:

分析上圖中抓取到的數(shù)據(jù):
第一個粉色方塊中的數(shù)據(jù)是原端機器發(fā)送給目標機器的ARP請求包。
第二個粉色方塊中的數(shù)據(jù)是目標機器發(fā)送給原端機器的ARP應答包。

ARP請求包:
青色圓圈中的內容表示ARP請求的原端物理地址。
紅色圓圈中的內容表示以太網(wǎng)的廣播地址,用于表示整個局域網(wǎng),局域網(wǎng)中所有機器都會收到并處理這條以太幀。
“Request”,表示這個是一個ARP請求數(shù)據(jù)。
“who-has 219.245.84.162 tell 219.245.84.143”,表示當前主機要查詢的IP地址。

ARP應答包:
藍色圓圈中的數(shù)據(jù)表示ARP應答的原端物理地址。
青色圓圈中的數(shù)據(jù)表示ARP應答的目標端物理地址。
“Reply”:表示這是一個ARP應答數(shù)據(jù)
“219.245.84.162 is-at 00:0c:29:64:63:18”:表示目標機器報告其物理地址

DNS協(xié)議的工作原理:

我們平時是使用機器的域名來訪問這臺機器,而不是直接使用機器的IP地址來訪問。eg:訪問百度網(wǎng)站,就是用域名www.baidu.com來訪問。

DNS是應用于TCP/IP協(xié)議的應用層分布式數(shù)據(jù)庫,每個DNS服務器上都存在著大量的機器域名和IP地址的映射,并且都是動態(tài)更新的。

DNS協(xié)議的端口號是53。

DNS的作用:用于將機器的域名地址轉換為IP地址
DNS的工作原理:對于DNS的訪問是通過解析器來完成的,解析器通過一個或多個名字服務器來完成這種相互轉換。

DNS的查詢和應答報文詳解:

16位標識字段—-用于標記一對DNS的查詢和應答,以此區(qū)分一個DNS應答是哪個DNS查詢的回應。

16位標志字段—–用于協(xié)商具體的通訊方式和反饋通訊狀態(tài),16位標志字段的細節(jié)為下圖:

上圖中DNS報文頭部的標志字段的說明:
QR字段(查詢應答標志),如果是0,表示這是一個查詢報文,如果是1,表示一個應答報文。
opcode字段—-定義了查詢和應答的類型,0表示標準查詢,1表示反向查詢,2表示請求服務器狀態(tài)
AA字段—-授權應答標志,僅屬于應答報文使用,1表示域名服務器是授權服務器
TC字段—–截斷標志,只有當DNS報文使用了UDP服務時才使用該字段,因為UDP數(shù)據(jù)報有長度限制,所以過長的DNS報文就會被截斷。1表示DNS報文超過512字節(jié),如果出現(xiàn)這種情況就會被截斷
RD字段—-遞歸查詢標志,1表示執(zhí)行遞歸查詢,也就是說如果目標DNS服務器無法解析某一個主機名,那么他將在其他DNS服務器繼續(xù)查詢,如此遞歸直到獲得結果并把結果返回個客戶端。0表示迭代查詢,也就是說如果目標DNS服務器無法解析某一個主機名,那么他將自己知道的其他DNS服務器的IP地址返回給客戶端。
RA字段—-允許遞歸標志,僅供應答報文使用,1表示DNS服務器支持遞歸查詢
zero字段—–目前為止還沒有被使用,必須設置為0
rcode字段—–是四位的返回碼,表示應答的狀態(tài)。0表示無錯誤,3表示域名不存在。

下面的四個字段分別指出DNS報文的最后四個字段的資源記錄數(shù)目,
對于查詢報文而言,一般包含一個查詢問題,而應答資源記錄數(shù)、授權資源記錄數(shù)、額外資源記錄數(shù)都為0。
對于應答報文的應答資源記錄數(shù)至少為1,而授權資源記錄數(shù)和額外資源記錄數(shù)可以是0或非0。

查詢問題字段:

上圖解釋:
16位的查詢類型表示如何執(zhí)行查詢操作。常見的類型有以下幾種:
1————》獲取目標主機的IP地址
5————》獲取目標主機的別名
12———–》反向查詢
16位的查詢類通常為1,表示獲取因特網(wǎng)地址(IP地址)

應答字段、授權字段、額外信息字段都使用資源記錄的格式,如下圖:

上圖解釋:
32位域名是該記錄中與資源對應的名字,其格式與查詢問題字段的查詢問題格式相同。
16位類型16類的含義也和DNS查詢字段的對應問題相同。
32位生存時間表示該查詢記錄結果可被本地客戶端程序緩存多久,單位為s
16位數(shù)據(jù)長度字段和資源數(shù)據(jù)字段的內容取決于類型字段。

Linux下訪問DNS的方法:
第一個終端用來查詢百度的IP地址:

host命令 #表示使用DNS協(xié)議和DNS服務器通信 -t參數(shù) #表示告訴DNS協(xié)議使用什么類型(這里使用的A類型,表示通過機器的域名查詢其IP地址)

上圖中的數(shù)據(jù)解析:
第二行:www.baidu.com是www.a.shifen.com的別名。
第三四行:該機器名對應的兩個IP地址

第二個終端使用tcpdump命令抓取DNS通訊工程中網(wǎng)絡上傳出的以太網(wǎng)幀

上圖中的數(shù)據(jù)解析:
圖中的粉色的塊:表示是兩個查詢應答報文。
第一個粉色方塊中的第一條數(shù)據(jù)表示DNS查詢報文,第二條數(shù)據(jù)表示DNS應答報文。
第一個粉色方塊中的數(shù)據(jù)分析:
“32940”:是DNS查詢報文的標識值,因此該值也出現(xiàn)在DNS應答報文中
“+”:表示啟用遞歸查詢標志
“3/4/0”:表示該數(shù)據(jù)報中包含3個應答資源記錄,4個授權資源記錄和0個額外資源記錄
黃色圓圈中的數(shù)據(jù):表示3個應答記錄的內容

總結

以上是生活随笔為你收集整理的TCP/IP协议基本概括+ARP协议详解+DNS协议详解---Linux学习笔记的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。