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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

抓包与分析

發布時間:2023/12/10 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 抓包与分析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

作業目的
(1)了解網絡通信的分層實現過程,了解不同層次PDU的逐層封裝與解封過程;
(2)了解數據通信的過程,進一步認知協議的構成與通信過程,進而對TCP/IP分層體系結構有更深刻的了解。
(二)作業內容
1.?在局域網范圍內從協議層面分析ping命令的執行過程,包括所使用協議,以及不同層級的數據包封裝與解封的過程。
2.?訪問www.ujs.edu.cn網站,分析其中所使用的協議,以及數據包的逐層封裝與解封過程。
3.?思考在數據鏈路層的數據包與網絡層數據包的異同,包括包長度和數據構成等,并進一步思考為何會存在這些區別?

(三)?作業要求
(1)能夠正確捕捉ping命令執行過程中所產生的數據包,并逐層分析其構成,進而了解數據包的封裝與解封過程;
(2)能夠正確捕捉訪問www.ujs.edu.cn網站過程所產生的相關數據包,分析出其所使用的協議,以及各協議的訪問流程;
(3)能夠正確分析數據鏈路層的數據包與網絡層數據包的異同。
(4)了解并熟悉常見的抓包工具,例如Wireshark、Sniffer等,熟悉以太網數據幀和IP數據包的結構
(5)以PDF文檔提交本次作業報告。

(四)實現過程

  • 數據包的捕獲
    • 在windows命令行輸入“ipconfig-all”獲取本機的MAC地址和DNS服務器地址

    圖 1

    本機的IP地址為:192.168.1.100

    本機的MAC地址為:C8-B2-9B-F4-80-1C

    DNS域名服務器地址為:8.8.8.8

    • 在windows命令行輸入“arp -a”獲取本機的高速緩存。

    圖2

    • 打開Wireshark進行抓包分析

    圖3

    NO:代表數據包編號

    Time:在Wireshark啟動的多長時間內抓到

    Source:來源IP地址

    Destination:目的IP地址

    Protocol:協議

    Length:數據包的長度

    Info:數據包的信息

    (2)數據包的層次結構

    選中一個數據包查看它的詳細信息,可以看到Packet Details上顯示出該數據包的4個層次結構信息,每層含義如下:

    Frame:物理層數據幀概況

    Etherent II:數據鏈路層幀頭部信息

    Internet Protocol Version 4:網絡層IP包頭部信息

    Transmission Control Protocol:傳輸層數據幀頭部信息

    ??

    圖4

    可見網絡是分層構成的,由低到高,分別為物理層,數據鏈路層,網絡層,傳輸層,應用層。

  • TCP/IP協議族
  • 圖 5

    應用層常用的協議有:HTTP,DNS協議

    傳輸層常用的協議有:TCP和UDP協議

    網絡層常用的協議有:IP,ICMP,IGMP協議

    數據鏈路層常用的協議有:ARP,以太網協議

    (4)數據包的封裝過程
    數據封裝一般分五層,第一層是應用層協議的數據,第二層分別是TCP/UDP封裝,第三層IP封裝,第四層以太網封裝,最后轉成二進制的物理報文。?

    圖 6

    • 傳輸層數據幀頭部信息

    Transmission Control Protocol, Src Port: 443, Dst Port: 51282, Seq: 1, Ack: 1, Len: 0

    Source Port: 443

    #源端口

    Destination Port: 51282

    #目的端口

    ????[Stream index: 1]

    ????[TCP Segment Len: 0]

    ????Sequence Number: 1 ???(relative sequence number)

    Sequence Number (raw): 413129997

    #序列號:確保數據可靠傳輸的一個唯一值。TCP使用序列號追蹤每個數據段的傳輸情況

    ????[Next Sequence Number: 1 ???(relative sequence number)]

    ????Acknowledgment Number: 1 ???(relative ack number)

    Acknowledgment number (raw): 3874393895

    #確認號:接收端發送,提示發送端下一次該發的數據在整個文件中的序號。接收端收到后,會把這個序號之前的數據從緩存中刪掉。

    0101 .... = Header Length: 20 bytes (5)

    #頭部長度

    Flags: 0x010 (ACK)

    #志字段:發起連接的數據包,連接即握手進程

    ????Window: 2053

    ????[Calculated window size: 2053]

    ????[Window size scaling factor: -1 (unknown)]

    Checksum: 0x9add [unverified]

    #效驗和:判斷接受數據的完整性。可以讓通信方確認TCP數據段中的內容是否發生變化了。

    ????[Checksum Status: Unverified]

    Urgent Pointer: 0

    #緊急指針:只有當?URG?標志置1時緊急指針才有效。TCP的緊急方式是發送端向另一端發送緊急數據的一種方式。

    [Timestamps]

  • TCP首部各部分所占字節數:
  • 圖 7

    • 網絡層幀數據包頭部信息:

    Internet Protocol Version 4, Src: 52.176.224.96, Dst: 192.168.1.100

    0100 .... = Version: 4

    #網際協議為IPV4

    版本:4位,值為0100。目前存在兩種版本IP協議:

    ?IPv4和IPv6,版本號分別為4和6, 這是IPv4首部格式。

    .... 0101 = Header Length: 20 bytes (5)

    #IP包頭部長度20

    首部長度:4位,首部長度字段以32位字為單位,即4個字節。

    字段最小值為5,用于沒有可選項的情況,20個字節。

    Differentiated Services Field: 0x04 (DSCP: LE, ECN: Not-ECT)

    #差分服務字段

    服務類型:8位,用于指定IP分組的優先級、延遲、

    ?吞吐率和可靠性要求及各種要求的組合。

    Total Length: 40

    #IP包總長度40

    總長度16位,以字節為單位給出包括首部和數據的IP分組的長度,首部

    ?長度是可變的,數據長度也是可變的,最大長度值為65535字節。

    Identification: 0xf232 (62002)

    #標識字段

    標識:16位,標識字段用于標識屬于同一IP分組的數據片,屬于同一IP分

    ?組的數據片具有相同的標識字段值。

    Flags: 0x40, Don't fragment

    #標志字段

    標志:3位,其中一位DF,一位MF,一位保留DF=1,不允許分片,MF=0,最后一片。

    Fragment Offset: 0

    #偏移量

    偏移量:13位,以8個字節為單位給出當前數據片在原始IP分組中的位置

    Time to Live: 106

    #生存期TTL

    生存時間:8位,用于限制IP分組在網絡中存在時間的一個計數器

    ?目前,該字段只是作為最大跳數使用,初始值由發送終端設定

    Protocol: TCP (6)

    #此包封裝的上層協議為TCP

    協議:8位,用于表示數據所屬的高層協議類型,告訴網絡層把該IP分組

    ?送給哪一個進程處理。

    Header Checksum: 0x4778 [validation disabled]

    #頭部數據的校驗和

    首部檢驗和:16位,對首部用檢驗和算法計算出的檢錯碼,用于檢測首部

    ?傳輸過程中發生的錯誤,每經過一個路由器計算機一次。

    ????[Header checksum status: Unverified]

    Source Address: 52.176.224.96

    #源IP 地址

    Destination Address: 192.168.1.100

    #目標IP地址

  • IP首部各部分所占字節數:
  • 圖8

    • 數據鏈路層幀數據包頭部信息:

    Ethernet II, Src: Tp-LinkT_b2:b2:2b (64:6e:97:b2:b2:2b), Dst: IntelCor_f4:80:1c (c8:b2:9b:f4:80:1c)

    Destination: IntelCor_f4:80:1c (c8:b2:9b:f4:80:1c)

    #目標MAC地址

    Source: Tp-LinkT_b2:b2:2b (64:6e:97:b2:b2:2b)

    #源MAC地址

    Type: IPv4 (0x0800)

    #網際協議為IPV4

    • 小結

    通過頭部信息可以看出,該數據幀在傳輸層被封裝為TCP數據包,到網絡層被封裝為IP數據包,數據鏈路層使用的是Ethernet?II協議進行封裝,最終在物理層轉化為二進制信號發送出去,并且此過程中沒有應用層協議。

    (5)訪問 www.ujs.edu.cn?分析數據包

    1.打開命令行ping www.ujs.edu.cn

    圖 9

    2.在WireShark中進行捕獲,并在過濾器中輸入“dns”獲取協議為DNS的數據列表,可以看到ping過程中終端向DNS服務器發送了1次域名請求響應,DNS服務器回復了1次IP回復報文。

    圖10

    • 終端向DNS服務器發送問題請求:

    Domain Name System (query)

    Transaction ID: 0xa418

    #DNS ID號

    Flags: 0x0100 Standard query

    #標志

    Questions: 1

    #問題計數

    Answer RRs: 0

    #回答計數

    Authority RRs: 0

    #域名服務器計數

    Additional RRs: 0

    #額外計數

    ????Queries

    ????????ujs.edu.cn: type A, class IN

    ????????????Name: ujs.edu.cn

    #請求的域名

    ????????????[Name Length: 10]

    ????????????[Label Count: 3]

    ????????????Type: A (Host Address) (1)

    #域名類型

    ????????????Class: IN (0x0001)

    #地址類型

    [Response In: 9362]

    • DNS服務器向終端返回IP地址

    Domain Name System (response)

    ????Transaction ID: 0xa418

    ????Flags: 0x8180 Standard query response, No error

    ????Questions: 1

    ????Answer RRs: 1

    ????Authority RRs: 0

    ????Additional RRs: 0

    ????Queries

    ????Answers

    ?ujs.edu.cn: type A, class IN, addr 202.195.160.7

    #返回www.ujs.edu.cn的IP地址

    ????[Request In: 9361]

    [Time: 0.006913000 seconds]

  • DNS首部各部分所占字節數:
  • 圖11

    觀察DNS數據包在網絡層的報頭信息:

    圖 12

    DNS數據包在傳輸層采用的UDP協議。

    • 小結

    通過頭部信息可以看出,該數據幀在應用層被封裝為DNS數據包,在傳輸層被封裝為UDP數據包,在網絡層被封裝為IP數據包,數據鏈路層使用的是Ethernet?II協議進行封裝,最終在物理層轉化為二進制信號發送出去。

    3.在WireShark中進行捕獲,并在過濾器中輸入ip.addr == 202.195.160.7獲取待分析數據列表,可見終端獲取域名www.ujs.edu.cn 的IP地址后,向其發送了4條請求響應,并收到其4次回復。

    圖 13

    點擊其中一個數據報文,觀察其詳細信息。

    • 傳輸層數據報頭信息:

    Internet Control Message Protocol

    ????Type: 8 (Echo (ping) request)

    ????Code: 0

    ????Checksum: 0x4d4c [correct]

    ????[Checksum Status: Good]

    ????Identifier (BE): 1 (0x0001)

    ????Identifier (LE): 256 (0x0100)

    ????Sequence Number (BE): 15 (0x000f)

    ????Sequence Number (LE): 3840 (0x0f00)

    ????[Response frame: 199]

    ????Data (32 bytes)

    • 網絡層數據報頭信息:

    Internet Protocol Version 4, Src: 192.168.1.100, Dst: 202.195.160.7

    ????0100 .... = Version: 4

    ????.... 0101 = Header Length: 20 bytes (5)

    ????Differentiated Services Field: 0x00 (DSCP: CS0, ECN: Not-ECT)

    ????Total Length: 60

    ????Identification: 0xdc8b (56459)

    ????Flags: 0x00

    ????Fragment Offset: 0

    ????Time to Live: 128

    Protocol: ICMP (1)

    #傳輸層/網絡層協議為ICMP

    ????Header Checksum: 0x0000 [validation disabled]

    ????[Header checksum status: Unverified]

    Source Address: 192.168.1.100

    #源IP地址

    Destination Address: 202.195.160.7

    #目標IP地址

    • 數據鏈路層數據報頭信息:

    Ethernet II, Src: IntelCor_f4:80:1c (c8:b2:9b:f4:80:1c), Dst: Tp-LinkT_b2:b2:2b (64:6e:97:b2:b2:2b)

    Destination: Tp-LinkT_b2:b2:2b (64:6e:97:b2:b2:2b)

    #目標MAC地址

    Source: IntelCor_f4:80:1c (c8:b2:9b:f4:80:1c)

    #源MAC地址

    Type: IPv4 (0x0800)

    #網際協議為IPV4

  • ICMP首部各部分所占字節數
  • ?圖 14

    從圖中可以看出,ICMP報文首部是被封裝在IP數據報的數據部分,而在ICMP首部前面仍需增加IP首部,即

    IP首部

    ICMP首部

    上層數據部分

    • 小結

    通過頭部信息可以看出,ping命令終端所發送的數據幀在傳輸層被封裝為ICMP數據包,到網絡層被封裝為IP數據包,數據鏈路層使用的是Ethernet?II協議進行封裝,最終在物理層轉化為二進制信號發送出去,并且此過程中沒有應用層協議。

  • 總結
  • 執行Ping www.ujs.edu.en命令首先終端會訪問DNS服務器詢問域名的IP地址,DNS服務器收到詢問請求后發送包含域名IP信息的DNS數據包,此過程中應用層協議為DNS,傳輸層協議為UDP,網絡層協議為IP。終端獲得www.ujs.edu.cn的IP地址后,再向其尋求訪問,www.ujs.edu.cn收到訪問請求后發送回復數據幀,此過程中傳輸層/網絡層協議為ICMP,在網絡層封裝為IP數據包。

    (6)數據鏈路層的數據包與網絡層數據包的異同

  • 數據鏈路層
    數據鏈路層在物理層提供的服務的基礎上向網絡層提供服務。數據鏈路層的作用:
    1、IP數據模塊發送和接收IP數據報;
    2、為ARP模塊發送ARP請求和接收ARP協議;
    3、為RARP發送RARP請求和接受RARP應答。
  • 以太網協議數據報頭:
    Ethernet II, Src: IntelCor_f4:80:1c (c8:b2:9b:f4:80:1c), Dst: Tp-LinkT_b2:b2:2b (64:6e:97:b2:b2:2b)

    #以太網協議版本,源地址:網卡地址,目的地址:網卡地址

    ????Destination: Tp-LinkT_b2:b2:2b (64:6e:97:b2:b2:2b)

    #目的地址:網卡地址————占6個字節

    ????Source: IntelCor_f4:80:1c (c8:b2:9b:f4:80:1c)

    #源地址:網卡地址————占6個字節

    ????Type: IPv4 (0x0800)

    #幀內封裝的上層協議類型為IPV4(十六進制碼0800)————占2個字節

  • 網絡層
    在數據鏈路層提供的兩個相鄰端點之間的數據幀的傳送功能上,進一步管理網絡中的數據通信,將數據設法從源端經過若干個中間節點傳送到目的端,從而向運輸層提供最基本的端到端的數據傳送服務。
    主要內容有:
    1、虛電路分組交換和數據報分組交換
    2、路由選擇算法
    3、阻塞控制方法
    5、綜合業務數據網(ISDN)
    6、異步傳輸模式(ATM)及網際互連原理與實現。
  • ICMP數據報頭:

    Internet Protocol Version 4, Src: 192.168.1.100, Dst: 202.195.160.182

    ????0100 .... = Version: 4

    ????.... 0101 = Header Length: 20 bytes (5)

    #IPV4協議————占1個字節

    ????Differentiated Services Field: 0x00 (DSCP: CS0, ECN: Not-ECT)

    ????Total Length: 60

    #IP首部長度————占2個字節

    ????Identification: 0xdc8b (56459)

    #差分服務字段————占2個字節

    ????Flags: 0x00

    #標記字段————占1個字節

    ????Fragment Offset: 0

    #偏移量————占1個字節

    ????Time to Live: 128

    #生存期————占1個字節

    ????Protocol: ICMP (1)

    #封裝的上層協議為ICMP————占1個字節

    ????Header Checksum: 0x0000 [validation disabled]

    #效驗碼————占2個字節

    ????[Header checksum status: Unverified]

    ????Source Address: 192.168.1.100

    #源IP地址————占4個字節

    ????Destination Address: 202.195.160.182

    #目標IP地址————占4個字節

  • 小結
  • 可見,數據鏈路層數據包報頭和網絡層數據包報頭有很大不同,就比如數據鏈路層的源地址和目的地址存放的是6個字節的MAC地址;而網絡層存放的是4個字節的IP地址,而這些區別取決于網絡層與數據鏈路層面臨問題不同作用功能不同,采用的協議不同

    總結

    以上是生活随笔為你收集整理的抓包与分析的全部內容,希望文章能夠幫你解決所遇到的問題。

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