freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

網絡數據包的協議分析程序的設計開發(fā)畢業(yè)設計-畢業(yè)設計(參考版)

2025-01-23 02:48本頁面
  

【正文】 圖 51 程序運行界面 。 測試結果評價 本設計在 Fedora Core 4 環(huán)境試運行下,編碼后經過多次測試并將發(fā)現的錯誤及時修改,系統(tǒng)運行正常,基本達到設計目標,運行結果比較良好。 然后 對每個功能模塊進行數據合法性檢查、數據一致性檢查。 測試步驟 首先,用多臺 PC搭建局域網絡。 第 20 頁 共 23 頁 5 程序運行與測試 測試環(huán)境 硬件環(huán)境 處理器 P3 800Mhz 以上;內存 128M 以上;多臺普通搭載網卡的 PC、經過 集線器 互聯。這是因為得到的端口號是短暫端口號,沒有檢索到它的端口名稱。把端口名稱賦給 s_name。 servent型的結構體在 明。 getportname()函數的核心是調用getservbyport()函數。 } } 現在介紹一下 getportname()函數。關鍵代碼如下 void getportname (int portn, char portch[], char *protocol){ if (getservbyport (htons (portn), protocol) != NULL){ strcpy(portch, getservbyport(htons(portn),protocol)s_name)。短暫端口號是不可再生的,被運行系統(tǒng)分配給客戶端程序。公認端口號有很多,工人端口號被定義在 unix類操作系統(tǒng)下的 /etc/services文件中下表列出了其中的一部分。當某一網絡客戶端利用其他計算機上的服務程序時,在根據 IP地址指定服務計算機的同時,也指定了被分配的服務程序的公 認端口號。一種為公認端口,另一種為短暫端口。端口是應用程序在網絡通信上使用的數據輸入輸出口。如果必要的話,可以由兩個八位復合而成。 (4)校驗和 — 16 位。該用戶數據報的八位長度,包括協議頭和數據。目標端口在特殊因特網目標地址的情況下具有意義。如果不使用,設置值為 0。源端口是可選字段。此協議是面向操作的,未提供提交和復制保護。此協議默認認為網路協議 (IP)是其下層協議。 第 18 頁 共 23 頁 (11)選項 (option):為提高利用 TCP的通信性能所準備的選項。 (9)校驗和 (checksum):一個 2字節(jié)的字段,為 TCP段提供位級別的完整性校驗。 (8)窗口 (window):一個 2字節(jié)的字段,表明該段的發(fā)送方的接收緩沖區(qū)中可供使用的空間有多少字節(jié)數。 (7)標志 (flags):一個 6字節(jié)字段,指示 6個 TCP標志。在不包括選項的情況下, TCP報頭是 20個字節(jié), offset的值為 5。是用于保證可靠性的確認號碼。利用隨機值確定初始值,以字節(jié)為單位表示所發(fā)送數據的位置。 (3)序列號 (sequence number):指示段的第一個 8位組的輸出字節(jié)流的序列號,是一個 4字節(jié)字段。 (2)目的端口 (destination port):指示目的應用層協議,是一個 2字節(jié)字段。在一般情況下,應用層協議的 服務器端在己知的端口上偵聽。 IP頭中的源地址和 TCP頭中的源端口聯合起來提供一個源套接字。如圖 45所示,是 TCP段的封裝結構 。TCP正為目前 Intemet上幾乎所有的應用 協議所利用,這是因為大部分應用程序都需要可靠的、可糾錯的傳輸協議以保證不丟失或破壞數據。然后就可以對 TCP/UDP數據包進行分析了。 (12)選項和填充:此字段跟在 IP頭之后,但必須是以 4個字節(jié)為增量單位,以使 IP頭的大小能用報頭長度字段表示。 (10)報頭校驗和 (header checksum):長度為 2字節(jié),是用于確認 IP數據包是否己毀壞的字段。 (9)協議 (protocol):長度為 1字節(jié),表示包含在有效載荷中的上層協議。 (7)片偏移 (fragment offset):長度為 13位,表示分片相對于原始 IP數據報有效載荷的偏移量。 (6)標志 (flags):長度為 3位,包含兩個用于分片的標志。 第 16 頁 共 23 頁 (4)數據包總長 (total length):長度為 2位,表示 IP數據報總的字節(jié)數,包括 IP頭和有效載荷。典型的 IP頭不包括任何選項,長度為 20字節(jié)。目前在所有互聯網絡和 Inter中使用的標準 IP版本 號 是 4(即 IPv4) 。雖 然很多時候一個 IP數據報就是一個 IP包,但它們在概念上是不同 的 實體。只要設備需要通過 IP網絡向其他網絡發(fā)送數據,它就會創(chuàng)建一個 數據報來發(fā)送數據。就得到了指向 IP報頭的指針,我們就可以進行相應的分析了。 IP 首部的分析與提取 因為以太幀報頭的長度都是一樣的。 (6)幀校驗序列 (Frame Check Sequence, FCS): 4字節(jié)長,提供位級別的完整性校驗,也被稱為循環(huán)冗余校驗 (CRC)。 第 15 頁 共 23 頁 因為以太網具有沖突檢測機制,以太網 II的最小幀有效載荷為 46字節(jié)。 (5)有效載荷 (Payload):以太網 II的幀的有效載荷由上層協議 的協議數據單元組成,是數據包本身的具體內容。該幀將被丟棄。這個字段被用來將以太網的有效載荷傳給正確的上層協議實體。 (3)源地址 ((Source Address): 6字節(jié)長,指明發(fā)送節(jié)點的單播地址。目的地址可以是單播、多播 或者以太網的廣播地址。需要注意的是,幀初始同步字段在網絡監(jiān)視器中是不可見的。在以太網內的 IP和 ARP數據報或者使用以太網 II的或者使用 IEEE: 子網訪問協議 (SNAP)來封裝數據。 由于在定義 IEEE ,以太網就存在,因為有多個以太網標準,所以TCP/IP可以支持多種不同的鏈路層協議,如以太網、令牌環(huán)網、 FDDI(光纖 分布式數據接口 )等。把這個指針強制轉換為以太幀 格式: (struct ether_header *) p。 以太網首部的分析與提取 因為每一個使用 Libpcap捕獲的數據包,都會有一個指向原始報文頭的指針。 對 TCP/IP 模型中各層協議的分析 前面的內容已經提到過,我們在對數據包根據應用層協議進行分析的時候都需要首先剝離數據包中的包頭并且需要根據包頭信息判斷是何種應用層協議。 (4)對數傳輸層數據報去除掉傳輸層 報 頭以后,就獲得了應用層數據報,在應用層 進行協議分析的工作就是按照應用層的工作原理、協議規(guī)范,還原獲得應用層的內容,如 SMTF/POP3協議分析可以還原出正在傳輸的郵件信息, FTP協議分析可以還原出傳輸中的文件名以及用戶名口令密碼等信息, HTTP協議分析可以還原出目標主機瀏覽網頁的原貌等等。 (2)然后 需要去掉數據鏈層的 報 頭,此時可以獲得 IP數據報、 arp、 rarp數據包,在這一層中可以對 IP數據報做一定的統(tǒng)計和分析等等;對 arp、 rarp數據包可以獲得發(fā)送端 IP和目的 IP等重要信息。協用戶數據 用戶數據 APP 首部 應用數據 TCP 首 部 應用數據 TCP 首部 IP 首部 應用數據 TCP 首部 IP 首部 以太網頭 以太網尾 應用程序 TCP IP 以太網驅動程序 第 13 頁 共 23 頁 議分析就是數據封裝的逆過程。比如發(fā)送方在數據鏈路層通常會在包頭加上目的 MAC地址、源 MAC地址、其他一些具體網絡信息及幀定界符,在包尾加上循環(huán)冗余碼,并使用字節(jié)填充或位填充,由接收方數據鏈路層去掉包頭與包尾進行相關解釋工作。而實際上,數據包并不是從某一計算機網絡系統(tǒng)的第 N層直接傳導另一計算機網絡系統(tǒng)的第 N層的,而是從這臺計算機的某一層直接傳送 N十 1層,直至到達物理層最后分解為比特流流經物理介質到達另一臺計算機,然后在從另一臺計算機中的底層逐層向上傳送的。pcap_findalldevs () pcap_open_live () pcap_datalink () pcap_pile() pcap_setfilter() pcap_loop() end Begin N Y 第 12 頁 共 23 頁 這樣一來,應用程序收到的數據包是最原始的數據包,也就是說監(jiān)聽主機接收到的數據包中,除了數據包本身的內容之外,還帶有從對方主機中的傳輸層、網絡層以及數據鏈路層的數據包頭信息,所以要想獲得數據包里的應用數據,是需要我們自己來按照每一層的協議剝離數據包頭中的每一層首部內容的,這就是協議分析需要完成的工作。 第五步調用 pcap_loop進行循環(huán)捕獲數據包,直到用戶中止。 第三步通過調用 pcap_datalink檢查該網卡所在網絡是不是以太網,如果不是則中止程序。 第 11 頁 共 23 頁 數據捕獲模塊的實現 第一步調用 pcap_findalldevs查找出所有可用的網卡,顯示出來,并接收用戶選擇網卡。 sockaddr * dstaddr。 sockaddr * broadaddr。 sockaddr * mask。 sockaddr * addr。 pcap_addr * next。 sockaddr *dstaddr。 sockaddr * mask。 被網卡丟棄的數據報的數目; struct pcap_addr{ pcap_addr * next。 接受數據報的數目; u_int ps_drop。 /* drops by interface XXX not yet supported */ }。 /* number of packets received */ u_int ps_drop。它用來處理不同數據報網卡的不同報頭問題。 當前分片的長度; dpf_u_int32 len。 timeval ts。 /*length of portion present*/ bpf_u_int32 len。 struct pcap_pkthdr { struct timeval ts。 PCAP_IF_ 網 卡 的 標 志 。 指向網卡地址鏈中的第一個元素。 如果非空,指向一個對設備的人性化的描述字符串。 char *name。 如果非空,指向鏈的下一個元素。 }。 struct pcap_addr *addresses。 char *name。最后一個參數在有些應用里有用,但更多時候則置為 NULL。 參數:第一個參數是會話句柄,接下來是一個整型,它告訴 pcap_loop()在返回前應捕獲多少個數據包(若為負值則表示應該一直工作直至錯誤發(fā)生)。 參數:這非常直觀,第一個參數是會話句柄,第二個參數是被編譯表達式版本的引用(可推測出它與 pcap_pile()的第二個參數相同)。函數返回 1 為失敗,其他的任何值都表明是成功的。再下邊是一個定義表達式是否被優(yōu)化的整形量( 0 為 false, 1為 true,標準規(guī)定)。接下 第 9 頁 共 23 頁 來的是我們存儲被編譯的過濾器版本的地址的引用。最后, ebuf
點擊復制文檔內容
范文總結相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1