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

正文內(nèi)容

計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)(1)-在線瀏覽

2025-08-07 15:16本頁(yè)面
  

【正文】 .........................................................33 啟用安靜模式 .................................................................................................................34 設(shè)置數(shù)據(jù)包大小 .............................................................................................................34 設(shè)置服務(wù)類型 .................................................................................................................35 偽裝源地址 ....................................................................................................................35 ......................................................................................................................36 不加任何選項(xiàng)的 ping ....................................................................................................36 八、總結(jié) ................................................................................................................ 錯(cuò)誤 !未定義書簽。 九、同組人分工情況 .............................................................................................. 錯(cuò)誤 !未定義書簽。本實(shí)驗(yàn)通過 Wireshark 軟件的安裝使用,監(jiān)控局域網(wǎng)的狀態(tài),捕獲在局域網(wǎng)中傳輸?shù)臄?shù)據(jù)包,并結(jié)合在計(jì)算機(jī)網(wǎng)絡(luò)課程中學(xué)習(xí)到的理論知識(shí),對(duì)常用網(wǎng)絡(luò)協(xié)議的數(shù)據(jù)包做出分析,加深網(wǎng)絡(luò)課程知識(shí)的理解和掌握。具體內(nèi)容及要求如下: ? Wireshark 軟件的安裝; ? Wireshark 軟件的啟動(dòng),并設(shè)置網(wǎng)卡的狀態(tài)為混雜狀態(tài),使得 Wireshark 可以監(jiān)控局域網(wǎng)的狀態(tài); ? 啟動(dòng)數(shù)據(jù)包的捕獲,跟蹤 PC 之間的報(bào)文,并存入文件以備重新查; ? 設(shè)置過濾器過濾網(wǎng)絡(luò)報(bào)文以檢測(cè)特定數(shù)據(jù)流; ? 對(duì)常用協(xié)議的數(shù)據(jù)包的報(bào)文格式進(jìn)行分析,利用協(xié)議分析軟件的統(tǒng)計(jì)工具顯示網(wǎng)絡(luò)報(bào)文的各種統(tǒng)計(jì)信息。對(duì)偏底層的網(wǎng)絡(luò)程序設(shè)計(jì),有一定的認(rèn)識(shí)和理解。 內(nèi)容和要求 : 本實(shí)驗(yàn)為 ICMP 實(shí)驗(yàn)。不顯示每個(gè)收到的包的分析結(jié)果,只在結(jié)束時(shí),顯示匯總結(jié)果 Ping 命令的基本 描述 Ping 的操作是向某些 IP 地址發(fā)送一個(gè) ICMP Echo 消息,接著該節(jié)點(diǎn)返回一個(gè) ICMP Echo reply 消息。網(wǎng)絡(luò)是一個(gè)很龐大的系統(tǒng),是系統(tǒng)就得有人去管理,然而要想管理好網(wǎng)絡(luò),那么就得對(duì)網(wǎng)絡(luò)有非常深入的認(rèn)識(shí)和了解。這個(gè)實(shí)驗(yàn)我們需要對(duì)數(shù)據(jù)包進(jìn)行捕獲和分析,這恰恰對(duì)我們學(xué)習(xí)網(wǎng)絡(luò)是有非常大的幫助的。我們還得保證我們與提供內(nèi)容的那臺(tái)服務(wù)器的連接是通暢的,這就得用到我們編寫的 ping 程序了。 邏輯框圖 : 開始 處理命令行參數(shù) 1 啟動(dòng)發(fā)送模塊 根據(jù)參數(shù)設(shè)置包格式 接收應(yīng)答包 打印輸出信息 發(fā)送每個(gè)包之間的間隔時(shí)間到了嗎? 填充相應(yīng)的 ICMP 頭格式 發(fā)送回射請(qǐng)求數(shù)據(jù) 包 是 否 設(shè)置網(wǎng)卡工作在混雜模式 開始抓包 編寫過濾規(guī)則 統(tǒng)計(jì)信息 結(jié)束 四、程序核心功能的實(shí)現(xiàn)機(jī)制 實(shí)驗(yàn)一數(shù)據(jù)包的捕獲與分析 本實(shí)驗(yàn)分為兩大部分:一部分主要是對(duì)抓包程序的基本運(yùn)用,進(jìn)行簡(jiǎn)單抓包。比較簡(jiǎn)單,就是啟動(dòng) Wireshark 軟件,并設(shè)置網(wǎng)卡的狀態(tài)為混雜狀態(tài),使得 Wireshark 可以監(jiān)控局域網(wǎng)的狀態(tài);啟動(dòng)數(shù)據(jù)包的捕獲,跟蹤 PC 之間的報(bào)文,并存入文 件以備重新查。另一部分由 SIGALARM 信號(hào)每秒驅(qū)動(dòng)一次。然后鬧鐘到了又會(huì)調(diào)用這個(gè)函數(shù),如此一直循環(huán)下去。所以,在主函數(shù)中,我們應(yīng)該設(shè)計(jì)的是整個(gè)程序的框架,把整個(gè)程序分成若干個(gè)模塊,然后再去一點(diǎn)一點(diǎn)的實(shí)現(xiàn)各個(gè)模塊。 本程序的主函數(shù)起到了類似總線的功能,它把所有的模塊都串了起來,掌控著這一切,控制著程序的穩(wěn)步運(yùn)行。對(duì)這套函數(shù)的具體介紹如下: main readloop sig_alarm send recvfrom proc 注冊(cè) SIGALARM信號(hào)處理函數(shù) 無限接收循環(huán) 每隔固定秒數(shù)發(fā)送一個(gè)數(shù)據(jù)包 表頭文件 include 定義函數(shù) int getopt(int argc,char * const argv[ ],const char * optstring)。參數(shù) argc 和 argv 是由 main()傳遞的參數(shù)個(gè)數(shù)和內(nèi)容。如果在處理期間遇到了不符合 optstring 指定的其他選項(xiàng) getopt()將顯示一個(gè)錯(cuò)誤消息,并將全域變量 optopt 設(shè)為 “?”字符,如果不希望 getopt()印出錯(cuò)信息,則只要將全域變量 opterr 設(shè)為 0 即可。 optind——再次調(diào)用 getopt() 時(shí)的下一個(gè) argv 指針的索引。 命令行參數(shù)處理完了就開始下一個(gè)規(guī)程了,那就是注冊(cè)兩個(gè)信號(hào)的處理函數(shù),一個(gè) 是 SIGALARM 鬧鐘的處理函數(shù),后面用于發(fā)送回射請(qǐng)求包。 再后面就是根據(jù)用戶輸入的網(wǎng)絡(luò)地址來得到目標(biāo)主機(jī)地址信息了,用了 host_serv函數(shù),此函數(shù)又調(diào)用 getaddrinfo 完成了具 體的獲得地址信息的工作。 最后調(diào)用循環(huán)接收數(shù)據(jù)包函數(shù) readloop,等此函數(shù)退出后,整個(gè)程序退出。接下來是進(jìn)入無限接收循環(huán),接收到一個(gè)分組,記錄接到的時(shí)間,調(diào)用相應(yīng)的處理函數(shù),進(jìn) 行分組的分析。 整個(gè) readloop 函數(shù)的邏輯流程圖如下: 到了這個(gè)函數(shù)就既有了發(fā)送,又有了接收了,只是整個(gè)函數(shù)它只管接收到分組,不管后續(xù)的處理,具體是怎么分析的分組就得下面的函數(shù)來處理啦,下面主要有兩個(gè)函數(shù),一個(gè)是發(fā)送函數(shù),主要管理著發(fā)送相關(guān)的處理;另一個(gè)是接收函數(shù),主要管理著接收相關(guān)的處理。 V4 版本處理的是 ipv4 的分組, v6 版本處理的是 ipv6 的分組,各個(gè)版本根據(jù)相應(yīng)的 ip 頭格式和icmp 的頭格式,把需要的信息讀取出來,并把數(shù)據(jù)段的第一個(gè)字節(jié)讀取出來,因?yàn)檫@個(gè)字節(jié)存放的是這個(gè)分組發(fā)送時(shí)的時(shí)間,然后與結(jié)束的時(shí)間相減得出這條路線的延遲時(shí)間。 發(fā)送分組函數(shù) send 設(shè)計(jì)與實(shí)現(xiàn) 此函數(shù)與 proc 函數(shù)非常類似也是有 v4 和 v6 兩個(gè)版本,各個(gè)版本的函數(shù)填充并發(fā)送對(duì)應(yīng)版本的數(shù)據(jù)包,唯一不同的就是 v4 版本中如果用戶指定了偽裝源地址的話,是需要自己填寫一個(gè) ip 頭的。 整個(gè) send 函數(shù)的邏輯流程圖如下: 五、程序源代碼 實(shí)驗(yàn)一數(shù)據(jù)包的捕獲與分析 在實(shí)驗(yàn)一中,因?yàn)橹饕亲グ?,所以,沒有什么 源代碼,主要也就有一些過濾條件,可以算是代碼。所以,把這個(gè)寫到 filter 窗格里就可以只顯示發(fā)往百度主頁(yè)的 ip 包的信息了。 3. == 80 and = 過濾條件可以用與、或、非的關(guān)系運(yùn)算符進(jìn)行連接,所以這句就可以顯示出所有發(fā)往百度主頁(yè)的端口為 80 的數(shù)據(jù)包了。 相反,那個(gè)表達(dá)式為真值 的 條件源地址或目標(biāo)地址中的任意一個(gè)不等于 即可。 因?yàn)橐粋€(gè) ip 數(shù)據(jù)報(bào)同含源地址和目標(biāo)地址,只要兩個(gè)地址有一個(gè)不為 表達(dá)式就為真。 int temp。 quite_mode=0。 =0。 =0。false_source_addr,sizeof(struct sockaddr_in))。 /* don39。v39。 break。h39。 return 0。q39。 break。t39。 ttl=atoi(optarg)。 else if(ttl255) err_quit(The ttl value is too big! It must between 1 and 255!)。 case 39。: allow_broadcast=1。 case 39。: ping_count=atoi(optarg)。 case 39。: delay=atoi(optarg)。 case 39。: datalen=atoi(optarg)。 else if(datalen 1472 amp。 datalen 65400) printf(The datalen value is bigger than MTU(1500),so you may not be sucess!\n)。 break。o39。 if(temp3 |temp0) err_quit(The server type is not exist!)。 en_server_type=1。 case 39。: i_aton(optarg,amp。 en_false_source_addr=1。 case 39。: err_quit(Your option is wrong. ping h for help!)。 host = argv[optind]。 signal(SIGALRM, sig_alrm)。 ai = host_serv(host, NULL, 0, 0)。 /* 4initialize according to protocol */ if (aiai_family == AF_INET) { pr = amp。 ifdef IPV6 } else if (aiai_family == AF_INET6) { pr = amp。 if (IN6_IS_ADDR_V4MAPPED(amp。 endif } else err_quit(unknown address family %d, aiai_family)。amp。t use on ipv6!)。 prsarecv = calloc(1, aiai_addrlen)。 readloop()。 } 循環(huán)接收數(shù)據(jù)包函數(shù) readloop 核心代碼 void readloop(void) { int size。 char recvbuf[BUFSIZE]。 ssize_t n。 sockfd = socket(prsasendsa_family, SOCK_RAW, pricmpproto)。 /* don39。 /* OK if setsockopt fails */ setsockopt(sockfd, SOL_SOCKET, SO_RCVBUF, amp。 if(en_ttl) setsockopt(sockfd,prttllevel,prttloptname,amp。 if(allow_broadcast) setsockopt(sockfd,SOL_SOCKET,SO_BROADCAST,amp。 if(en_server_type) setsockopt(sockfd,IPPROTO_IP,IP_TOS,amp。 if(en_false_source_addr) setsockopt(sockfd,IPPROTO_IP,IP_HDRINCL,amp。 sig_alrm(SIGALRM)。 n = recvfrom(sockfd, recvbuf, sizeof(recvbuf), 0, prsarecv, amp。 if (n 0) { if (errno == EINTR) continue。 } gettimeofday(amp。 (*p
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1