中文字幕精品亚洲无线码二区,国产黄a三级三级三级看三级,亚洲七七久久桃花影院,丰满少妇被猛烈进入,国产小视频在线观看网站

ARP協(xie)議(yi):網絡世界的臨(lin)門一腳

大家好,我是風箏。

各位同學肯(ken)定(ding)見(jian)過關(guan)于(yu)網(wang)(wang)絡(luo)(luo)的(de)面試題(ti),什么TCP協(xie)(xie)議(yi)和UDP的(de)區別啦,IP協(xie)(xie)議(yi)工作(zuo)在(zai)哪(na)層啊等等,這(zhe)(zhe)都(dou)是網(wang)(wang)絡(luo)(luo)中定(ding)義的(de)各種協(xie)(xie)議(yi)。這(zhe)(zhe)些標準(zhun)化(hua)的(de)協(xie)(xie)議(yi)就(jiu)是網(wang)(wang)絡(luo)(luo)分層模型標準(zhun)化(hua)的(de)核心部分。要想搞懂網(wang)(wang)絡(luo)(luo),必須搞明白其中的(de)幾種主要的(de)網(wang)(wang)絡(luo)(luo)協(xie)(xie)議(yi)。

今天我們就(jiu)開始介(jie)紹網(wang)絡世(shi)界(jie)的(de)協(xie)(xie)議。介(jie)紹的(de)順序大致是從網(wang)絡模型由底向(xiang)上來,包括(kuo)數據鏈(lian)路(lu)層(ceng)的(de)以(yi)太(tai)網(wang)協(xie)(xie)議,網(wang)絡層(ceng)的(de) ARP協(xie)(xie)議、RARP協(xie)(xie)議、IP協(xie)(xie)議、ICMP協(xie)(xie)議,傳輸層(ceng)的(de) TCP協(xie)(xie)議、UDP 協(xie)(xie)議,以(yi)及應用層(ceng)的(de) HTTP/HTTPS協(xie)(xie)議。

我(wo)們假設數據包都是在(zai)以(yi)(yi)太網(wang)傳(chuan)輸(shu),所(suo)以(yi)(yi)以(yi)(yi)太網(wang)協議一直是貫穿始終(zhong)的(de)(de),因(yin)為最終(zhong)所(suo)有的(de)(de)數據包都會被封裝成以(yi)(yi)太網(wang)幀,所(suo)以(yi)(yi)其他幾種協議的(de)(de)介(jie)紹過(guo)程中(zhong),會穿插這以(yi)(yi)太網(wang)協議,不用單獨(du)介(jie)紹,自然而然就理解了。

今天我們就徹底講清楚(chu) ARP 協(xie)議(地(di)址解析協(xie)議), 我把 ARP 協(xie)議比(bi)作數(shu)據(ju)(ju)包在網(wang)絡世界的臨門一(yi)(yi)腳,當數(shu)據(ju)(ju)包到達了一(yi)(yi)個(ge)局域網(wang)中,局域網(wang)中有那(nei)么多機器,踢開哪臺(tai)機器的大門,就靠 ARP 協(xie)議了。為什(shen)么這么說,一(yi)(yi)會兒(er)你就明白了。

其實 ARP 協議可以簡單概括為幾句話:

  1. ARP 工作在局域網內;
  2. ARP 的作用是根據 IP 地址獲取對應的 MAC 地址;
  3. 在網絡中最終傳輸的數據叫做數據幀,是數據鏈路層最后封裝的,而數據幀要根據 MAC 地址找到目的主機,一般是目的主機的某個網卡;
  4. 而一般我們只知道目的主機的 IP,不知道 MAC 地址,所以需要 ARP 協議。

好的,講完了。開個(ge)玩笑,當然沒有,最(zui)好還是繼續看下邊的內(nei)容。

在(zai) OSI 模型中,通常認為 ARP和RARP屬于(yu)數據(ju)鏈路層協(xie)議,因為它們不使用(yong)IP協(xie)議。而在(zai)TCP/IP 協(xie)議棧(zhan)中,將 ARP歸于(yu)網絡層,和IP協(xie)議在(zai)同一層。

只(zhi)要知(zhi)(zhi)道對方的 IP 地址或(huo)域名(ming),就能將數據發(fa)送(song)過(guo)(guo)去,這(zhe)是我們常識性的理(li)解。而且在平常的使用過(guo)(guo)程中也確實是這(zhe)樣的。比如我們開發(fa)過(guo)(guo)程中,建立一(yi)個 socket 連接(jie),只(zhi)要知(zhi)(zhi)道目標 IP 和 端口(kou)就可以了。

真實的網絡世(shi)界(jie)中是(shi)(shi)這樣的嗎,確實 IP 地(di)(di)址是(shi)(shi)必不可少的,但是(shi)(shi)還有另外一種(zhong)地(di)(di)址也是(shi)(shi)必不可少的,那就是(shi)(shi) MAC 地(di)(di)址。

最終(zhong),在數(shu)據(ju)到達以太網鏈(lian)路層(ceng),會被包裝成以太網數(shu)據(ju)幀(zhen),而數(shu)據(ju)幀(zhen)中決定最終(zhong)去向的是(shi)就(jiu)是(shi)目標 MAC 地(di)址(zhi),注意(yi)嘍,是(shi) MAC 地(di)址(zhi)(硬件(jian)地(di)址(zhi)),而不是(shi) IP 地(di)址(zhi)。

可以(yi)把 IP 比(bi)作現實(shi)世界中一個房子的標記(ji),比(bi)如北京(jing)市朝陽(yang)區(qu)XX路xx小(xiao)區(qu)1號樓1單元801,而 MAC 地(di)址(zhi)則是這個房子的經緯度(116.354856,39.942009),雖(sui)然我(wo)們看前面的一串標示更(geng)容易(yi)理解,但是當我(wo)們要導(dao)航去(qu)那里的時候還是要靠經緯度。

但是如(ru)何在(zai)一(yi)大(da)群(qun)機(ji)器中確定目標 IP 對應的(de) MAC 地址呢,數據已經(jing)到了局域網(wang),這么多大(da)門該開哪一(yi)扇呢,這就是 ARP 該做的(de)事兒了。

什么是 MAC 地址

MAC地(di)(di)(di)(di)址(Media Access Control Address),直譯為(wei)媒(mei)體存取(qu)控制位址,也稱為(wei)局域(yu)網(wang)(wang)地(di)(di)(di)(di)址(LAN Address),以太網(wang)(wang)地(di)(di)(di)(di)址(Ethernet Address)或(huo)物理(li)地(di)(di)(di)(di)址(Physical Address),它是一(yi)(yi)(yi)個用(yong)來確(que)認(ren)網(wang)(wang)路設(she)備位置(zhi)的(de)(de)位址。在OSI模型中,第(di)三層網(wang)(wang)路層負責IP地(di)(di)(di)(di)址,第(di)二層資(zi)料鏈結層則(ze)(ze)負責MAC位址。MAC地(di)(di)(di)(di)址用(yong)于在網(wang)(wang)絡中唯(wei)一(yi)(yi)(yi)標(biao)示一(yi)(yi)(yi)個網(wang)(wang)卡(ka)(ka),一(yi)(yi)(yi)臺設(she)備若有(you)(you)一(yi)(yi)(yi)或(huo)多個網(wang)(wang)卡(ka)(ka),則(ze)(ze)每(mei)個網(wang)(wang)卡(ka)(ka)都需(xu)要并(bing)會(hui)有(you)(you)一(yi)(yi)(yi)個唯(wei)一(yi)(yi)(yi)的(de)(de)MAC地(di)(di)(di)(di)址。

MAC 地址長度為6字節,48bit,用16進制的6個元組表示,例如 3c:22:fb:64:4f:1d,其中有一個特殊的地址就是所有比特位都是1的地址 ff:ff:ff:ff:ff:ff,表示是一個(ge)廣播地址(zhi),意思就是指消息要(yao)發給(gei)局(ju)域(yu)網(wang)中的所有網(wang)卡。

為什么需要 ARP 協議

直接的(de)(de)原因就是(shi)數(shu)據(ju)鏈路層要將(jiang)數(shu)據(ju)幀(zhen)發送到目(mu)的(de)(de)端,必須要知道目(mu)的(de)(de)端的(de)(de) MAC 地(di)址(zhi),這是(shi)由(you)網絡模型的(de)(de)架構設計(ji)決定的(de)(de)。

下面這張圖是網絡 4 層模型以及數(shu)據(ju)從(cong)(cong)發送(song)端到接收(shou)端的(de)(de)首發過(guo)程。發送(song)是從(cong)(cong)上向下經過(guo)層層包(bao)裝,最(zui)后形成一(yi)個(ge)數(shu)據(ju)幀(zhen)(最(zui)常(chang)用(yong)(yong)的(de)(de)以太(tai)網幀(zhen)),之后這個(ge)數(shu)據(ju)在紛繁復雜的(de)(de)網絡世界(jie)中勇(yong)往直前(qian),到達接收(shou)端,接收(shou)端從(cong)(cong)下向上層層拆(chai)包(bao),最(zui)后供應用(yong)(yong)層使用(yong)(yong)。

上(shang)面這張圖很有用(yong)的,在學(xue)習網絡知識(不(bu)管是(shi)基礎概念還是(shi)各種(zhong)協議)的時(shi)候可以為我們提供一(yi)個宏觀的視(shi)角(jiao)。

網絡中(zhong)的(de)(de)(de)(de)設備數以億計,一(yi)個(ge)發(fa)送終端(duan)怎(zen)么可(ke)(ke)能知(zhi)(zhi)道每(mei)一(yi)臺接(jie)收終端(duan)的(de)(de)(de)(de) MAC 地址呢,顯然,這是(shi)不(bu)可(ke)(ke)能的(de)(de)(de)(de)。但(dan)(dan)是(shi) IP 是(shi)知(zhi)(zhi)道的(de)(de)(de)(de),比(bi)如我們(men)(men)訪問 github,github 每(mei)一(yi)臺服務器的(de)(de)(de)(de) MAC 地址(準確的(de)(de)(de)(de)說(shuo)是(shi)一(yi)個(ge)網卡(ka)的(de)(de)(de)(de) MAC 地址,因為一(yi)臺機器上可(ke)(ke)能有(you)多個(ge)網卡(ka))我們(men)(men)是(shi)不(bu)知(zhi)(zhi)道的(de)(de)(de)(de),但(dan)(dan)是(shi)它的(de)(de)(de)(de)域名我們(men)(men)都知(zhi)(zhi)道,通過(guo)域名得到 IP 地址,這是(shi) DNS 的(de)(de)(de)(de)功能,大(da)多數同(tong)學都很清楚,所以間接(jie)的(de)(de)(de)(de)也就相當于我們(men)(men)知(zhi)(zhi)道了 github 的(de)(de)(de)(de)IP。

但(dan)是,為什么我們在(zai)做應(ying)用層開發的時候(hou)不(bu)需要(yao)關注 MAC 地(di)址(zhi)。

根本沒(mei)有(you)(you)什么歲月(yue)靜好,只是有(you)(you)人在(zai)替我(wo)們(men)負(fu)重(zhong)前(qian)行罷了。在(zai)這里幫(bang)我(wo)們(men)負(fu)重(zhong)前(qian)行的就是 ARP 協議。

這里面(mian)有一(yi)個關鍵點,最(zui)終在(zai)網(wang)絡上傳輸的包,必定是一(yi)個數據幀(zhen)(zhen),最(zui)常用(yong)的就(jiu)是以太網(wang)幀(zhen)(zhen)。

如果我們完全將這一過程當做一個黑盒,可以對照理解為一個程序中封裝好的方法,例如 getMacAddressByIP(Long ip) ,當我們(men)需(xu)要(yao)得到 MAC 地址(zhi)時,直接(jie)調用這個(ge)方法就可以了。

ARP 協議(yi)全稱(cheng)地(di)址(zhi)解析(xi)協議(yi),用來(lai)將 IP 地(di)址(zhi)解析(xi)出 MAC 地(di)址(zhi),還(huan)有(you)一個與之(zhi)相對的協議(yi) RARP,全稱(cheng)叫做逆地(di)址(zhi)解析(xi)協議(yi),用來(lai)將 MAC 地(di)址(zhi)解析(xi)出 IP 地(di)址(zhi)。

ARP 的工作過程

ARP 就是工作(zuo)在一個局域網中(zhong)的,

當(dang)一(yi)(yi)臺(tai)路由器(qi)或(huo)者一(yi)(yi)個(ge)(ge)具有路由轉發功能的(de)主機想要(yao)通(tong)過(guo)一(yi)(yi)個(ge)(ge) IP 地(di)(di)址(zhi)(zhi)(zhi)得到對(dui)應的(de) MAC 地(di)(di)址(zhi)(zhi)(zhi)時,就可以(yi)使用 ARP 協議了,這(zhe)(zhe)(zhe)個(ge)(ge)設(she)備(bei)向它所(suo)在(zai)的(de)目標子網中發送(song)一(yi)(yi)個(ge)(ge)廣播(bo)的(de) ARP 請(qing)求,請(qing)求中帶著這(zhe)(zhe)(zhe)個(ge)(ge) IP 地(di)(di)址(zhi)(zhi)(zhi),意(yi)思是說,在(zai)這(zhe)(zhe)(zhe)個(ge)(ge)網絡(luo)中的(de)各位,誰的(de) IP 是這(zhe)(zhe)(zhe)個(ge)(ge),請(qing)回(hui)復(fu)我一(yi)(yi)下,并告訴我你的(de) MAC 地(di)(di)址(zhi)(zhi)(zhi)。收到這(zhe)(zhe)(zhe)個(ge)(ge)請(qing)求的(de)主機對(dui)這(zhe)(zhe)(zhe)個(ge)(ge) ARP 包(bao)進(jin)行解(jie)析,如(ru)果發現攜帶的(de) IP 正(zheng)好是自己(ji)的(de),就返回(hui)一(yi)(yi)個(ge)(ge) ARP 回(hui)復(fu),回(hui)復(fu)中帶上自己(ji)的(de) MAC 地(di)(di)址(zhi)(zhi)(zhi)。

使用(yong) ARP 協議后,目的(de)(de)主機(ji)將自己的(de)(de) IP 地(di)址和 MAC 地(di)址返回給源主機(ji),源主機(ji)將 MAC 地(di)址加(jia)到(dao)以太網幀(zhen)中(zhong),構造成完整的(de)(de)幀(zhen)格式(shi),再(zai)將數據幀(zhen)通過鏈路層發出。

最終(zhong)數(shu)(shu)據(ju)幀到(dao)達目(mu)的(de)主機,鏈路層通過數(shu)(shu)據(ju)幀中的(de)目(mu)的(de) MAC 地(di)址判斷(duan)數(shu)(shu)據(ju)幀是不是發給自己的(de),如果是的(de)話,則接收(shou)數(shu)(shu)據(ju)幀,并經過層層解析,最終(zhong)交給應用層對應的(de)程序(xu)處理。

先說說以太網數據幀格式

以太網目的地址:目(mu)的端 MAC 地址,6字(zi)節。

以太網源地址:發送端的 MAC 地址,6字節。

幀類型:標記數據部分的類型,如(ru)(ru)果是 IP 數據報,值(zhi)為(wei) 0x0800,如(ru)(ru)果是 ARP 數據報,值(zhi)為(wei) 0x0806,2字(zi)節(jie)。

數據:以(yi)太(tai)幀搭載(zai)的數(shu)(shu)據(ju)(ju)。只(zhi)要(yao)是在(zai)以(yi)太(tai)網上發送數(shu)(shu)據(ju)(ju),最終都會被鏈路(lu)層封裝成以(yi)太(tai)網數(shu)(shu)據(ju)(ju)幀,所以(yi)數(shu)(shu)據(ju)(ju)部分即可以(yi)是 IP 數(shu)(shu)據(ju)(ju)報(bao)、ARP 協(xie)議包(bao)、ICMP 數(shu)(shu)據(ju)(ju)包(bao)等,以(yi)太(tai)網數(shu)(shu)據(ju)(ju)幀數(shu)(shu)據(ju)(ju)部分最小長(chang)度是 46 字節(jie),最大長(chang)度由 MTU 決定,是 1500 字節(jie)。

CRC:數(shu)據檢(jian)驗碼,用(yong)來在接收端(duan)檢(jian)驗接收的(de)數(shu)據是(shi)不是(shi)無差錯的(de),4字節(jie)。

既然大家都是(shi)程(cheng)序員(yuan),我們將(jiang)這個數據(ju)幀(zhen)抽象(xiang)成一個實體(ti)類(lei)表示,幫助(zhu)我們理解。

public class EthernetFrame {
    /**
     * 目的 MAC 地址,6字節,48bit
     */
    private Byte[] destinationMacAddress = new Byte[6];

    /**
     * 源 MAC 地址,6字節,48bit
     */
    private Byte[] sourceMacAddress = new Byte[6];


    /**
     * 標記搭載的數據類型,
     * 如果是 IP  數據報,值為 0x0800
     * 如果是 ARP 數據報,值為 0x0806
     */
    private Byte[] type = new Byte[2];

    /**
     * 數據
     * 以太網的數據長度為 46~1500字節。
     * 最短 46   字節,不夠的要填充(pad)
     * 最長 1500 字節,以太網的 MTU 決定的
     */
    private Byte[] data = new Byte[46];

    /**
     * 檢驗碼 4 字節,在幀尾部
     */
    private Byte[] crc = new Byte[4];
}

ARP 協議格式

以下是 ARP 協議的(de)格式,以及一(yi)對完整(zheng)的(de) ARP 請求數據幀和應答數據幀。

硬件類型:2字(zi)節(jie),用來表示硬件地址的類型,為 1 表示以太(tai)網地址。

協議類型:2字節,用來表示要映射的協議地址類型。ARP 不僅可以表示要將 IP 轉換為 MAC ,還允許其他的轉換關系,例如將另外一種非 IP 地址轉換為 MAC 地址。當它的值為0x0800表示 IP 地址(zhi),與(yu)包含(han)IP數據(ju)報的(de)以太網數據(ju)幀中(zhong)的(de)類型字段的(de)值相同。

硬件地址長度:1字(zi)節(jie),用來表(biao)示硬件地(di)址(zhi)(zhi)的長度,單位是(shi)字(zi)節(jie)。在以太網中就(jiu)是(shi) MAC 地(di)址(zhi)(zhi)的長度,值為6,也就(jiu)表(biao)示 MAC 地(di)址(zhi)(zhi)長度為 6 字(zi)節(jie)。

協議地址長度:1字(zi)(zi)節(jie)(jie),用來表(biao)示(shi)協議(yi)地(di)址的長(chang)度,單(dan)位(wei)是字(zi)(zi)節(jie)(jie)。在(zai)以太網中,如(ru)果協議(yi)類型是 IP,也就(jiu)是要將 IP 轉換(huan)為 MAC 時,它的值是 4 ,也就(jiu)是4字(zi)(zi)節(jie)(jie),表(biao)示(shi) IP 地(di)址的長(chang)度是 4 字(zi)(zi)節(jie)(jie)。

操作字段:2字節,用來表示(shi)當前操作的(de)類型。值為(wei)(wei)(wei)1,表示(shi) ARP 請(qing)求;值為(wei)(wei)(wei)2,表示(shi) ARP 應答(da);值為(wei)(wei)(wei)3,表示(shi) RARP 請(qing)求;值為(wei)(wei)(wei)4,表示(shi) RARP 應答(da)。此(ci)字段是用來區分請(qing)求和應答(da)的(de)必需字段。

發送端以太網地址:6字節,用(yong)來表示發送端的以太網 MAC 地址(zhi)。

發送端 IP 地址:4字節,用來表示發送端的 IP 地址。

目的以太網地址:6字節,用來表(biao)示(shi)目的端的 MAC 地址(zhi)。

目的 IP 地址:4字節,用(yong)來(lai)表示(shi)目的(de)端的(de) IP 地址(zhi)。

整個(ge) ARP 協議部分共 28字(zi)節,但是在以太網(wang)中,一個(ge)以太網(wang)數(shu)據幀數(shu)據最小長度為 46,所以,后面(mian)要(yao)有18字(zi)節的數(shu)據填充(chong)。

操(cao)作字(zi)段(duan)(duan)為1表示這是(shi)(shi)一個(ge) ARP 請(qing)(qing)求(qiu)(qiu),ARP 請(qing)(qing)求(qiu)(qiu)是(shi)(shi)個(ge)廣播消息,請(qing)(qing)求(qiu)(qiu)數據中沒有目的(de) MAC 地址,因為還不知(zhi)(zhi)道嘛,我們(men)要找的(de)就(jiu)是(shi)(shi)它。之后,ARP 應答(da)消息(操(cao)作字(zi)段(duan)(duan)是(shi)(shi)2)將本機(ji)的(de) MAC 地址放(fang)到源MAC地址中,并且將 ARP 請(qing)(qing)求(qiu)(qiu)中的(de)MAC地址替換(huan)為目的(de) MAC 地址,用來告知(zhi)(zhi) ARP 發送端。

還是用一個實(shi)現類(lei)來表示 ARP 協議中(zhong)的各個字段。

public class Arp {
    /**
     * 硬件類型,2字節,值為1表示以太網
     */
    private Byte[] hardwareType = new Byte[2];

    /**
     * 協議類型,2字節,要映射的協議地址類型
     * 0x0800 表示要轉換的源協議為 IP 協議
     */
    private Byte[] protocolType = new Byte[2];

    /**
     * 硬件地址長度,1字節,表示硬件地址的長度,單位為字節
     * 硬件地址長度在以太網表示 MAC 地址的長度,值為6,也就是 6 字節
     *
     */
    private Byte[] hardwareAddressLength = new Byte[1];

    /**
     * 協議地址長度,1字節,表示協議地址的長度,單位為字節
     * 在以太網轉換 IP 為 MAC 地址時,就表示為 IP 地址的長度,也就是4字節
     */
    private Byte[] protocolAddressLength = new Byte[1];

    /**
     * 操作字段,2字節,表示操作類型
     * 1:ARP 請求
     * 2:ARP 應答
     * 3:RARP 請求
     * 4:RARP 應答
     */
    private Byte[] op = new Byte[2];

    /**
     * 發送端 MAC 地址,6字節
     */
    private Byte[] sourceMacAddress = new Byte[6];

    /**
     * 發送端 IP 地址,4字節
     */
    private Byte[] sourceIpAddress = new Byte[4];

    /**
     * 目的端 MAC 地址,6字節
     * 在 ARP 請求中,這個地址為空
     */
    private Byte[] destinationMacAddress = new Byte[6];

    /**
     * 目的端 IP 地址,4字節
     * 接收 ARP 廣播的主機通過 IP 地址判斷是否回復 ARP 應答(IP 地址的所有者)
     */
    private Byte[] destinationIpAddress = new Byte[4];
}

用 Wireshark 抓個包

打開(kai)(kai) Wireshark ,開(kai)(kai)始抓包,等待一會兒,然后停止抓包。你電腦中(zhong)的各個程序會偷偷的發送(song)和應答(da)很(hen)多 ARP 包,

在 Wireshark 中過濾 arp.opcode == 1的 ARP 請求,然后找到其中一個。用 Wireshark 分析包特別直觀,我們用鼠標點擊上方的某個字段時,下面會自動將這個字段的值標記出來,這樣就可以清楚的看到這個字段在整個數據包中的位置了。例如下圖選中了 ARP 包中的 Opcode字段(操作字段),下面的 00 01 被標記了,這是用 16 進制表示的,00表示一個字節,01表示一個(ge)字節,表示這(zhe)個(ge)操(cao)作字段是(shi)(shi)2個(ge)字節,值是(shi)(shi)1,也(ye)就是(shi)(shi)ARP 請求。

image-20220916144713709

簡單分析一下這個包

圖(tu)中 1、2、3 三個部(bu)(bu)分分別是以太(tai)網幀概(gai)要(yao)信息、以太(tai)網數(shu)據幀首部(bu)(bu)、以太(tai)網數(shu)據幀數(shu)據內容。在第一部(bu)(bu)分概(gai)要(yao)信息可以看到這個幀的總大小是 60 bytes,以太(tai)網數(shu)據幀頭部(bu)(bu)的14 字節(jie),加上內容部(bu)(bu)分最少(shao)46字節(jie),剛好是 60 字節(jie),其(qi)實還(huan)有一個 CRC (數(shu)據檢(jian)驗碼),只不過本地(di)網卡會自動剝離掉,所以在 Wireshark 中是看不到的。

以太網數據幀首部

上(shang)圖是以太網(wang)數(shu)據幀首部(bu)信息。

1、目的 MAC 地址,都是 ff,表示(shi)這是(shi)個廣播請求,ARP 請求本身就是(shi)廣播的。

2、源 MAC 地址(zhi),本機(ji)的(de) MAC 地址(zhi)。

3、幀類型(xing),ARP 類型(xing)。

4、因為(wei)以(yi)太網幀數據部分(fen)最(zui)小是 46 字節(jie)(jie),ARP 只有(you)28字節(jie)(jie),所(suo)以(yi)要(yao)填充18字節(jie)(jie)。

ARP 請求信息

從(cong)上到(dao)下依(yi)次是(shi)硬件類型、協議類型、硬件地(di)址(zhi)長(chang)度(du)、協議地(di)址(zhi)長(chang)度(du)(一(yi)般就(jiu)是(shi)IP地(di)址(zhi))、操作(zuo)字段(duan)、發(fa)送(song)端 MAC 地(di)址(zhi)、發(fa)送(song)端 IP 地(di)址(zhi)、目標(biao) MAC 地(di)址(zhi)、目標(biao) IP 地(di)址(zhi)。

使用 wireshark 的 filter arp.opcode == 2 可過濾出 APR 請(qing)求。

是不是完全聽明白了,回(hui)頭(tou)發現,就(jiu)是我開頭(tou)總結的那幾點(dian)內容(rong)。

自己學(xue)容易(yi),寫出來真(zhen)難啊,如果對各位有(you)一點(dian)點(dian)幫(bang)助當然最好(hao)了。


如果覺得還不錯的話,給個推薦吧!

公眾號「古時的風箏」,Java 開(kai)發者,專注(zhu) Java 及周邊生(sheng)態。堅持原創干貨輸出(chu),你可(ke)選擇(ze)現(xian)在就關(guan)注(zhu)我,或者看看歷史文章再關(guan)注(zhu)也不遲。長按二維碼關(guan)注(zhu),跟我一起變(bian)優秀!

posted @ 2023-03-20 09:20  風的姿態  閱讀(661)  評論(0)    收藏  舉報