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

正文內(nèi)容

tracer程序課程設(shè)計(jì)-文庫吧

2025-01-01 05:24 本頁面


【正文】 于30000,是因?yàn)橐话愕膽?yīng)用程序不可能使用如此高的端口號。當(dāng)然這并非絕對,若出現(xiàn)例外,則源主機(jī)會發(fā)現(xiàn)等待超時,于是隨機(jī)改變此UDP數(shù)據(jù)報(bào)的端口號,再次發(fā)送。這樣最終可以在目標(biāo)主機(jī)上找到一個空閑的端口號。另外,這里假設(shè)路由器和目標(biāo)主機(jī)沒有被配置為“過濾ICMP”或者做了其他的非常規(guī)處理,如果被做了類似的配置,則上面的追蹤機(jī)制就無能為力了。 traceRoute實(shí)現(xiàn)的功能IP數(shù)據(jù)報(bào)的首部由兩部分構(gòu)成:固定部分和可變部分。固定部分的長度是20個字段,可變部分由許多選項(xiàng)構(gòu)成,最長可達(dá)40個字節(jié)。雖然選項(xiàng)并不是IP數(shù)據(jù)報(bào)的必需部分,但選項(xiàng)的處理卻是IP軟件的必需部分。在現(xiàn)在的TCP/IP協(xié)議中,只定義了六種選項(xiàng),對于我們進(jìn)行路由追蹤技術(shù)有用的是記錄路由選項(xiàng),一個記錄路由選項(xiàng)是用來記錄處理IP數(shù)據(jù)報(bào)的互聯(lián)網(wǎng)路由器的IP地址。因?yàn)槭撞康淖畲箝L度是60個字節(jié),它包括20個字節(jié)的基本首部。這就意味著只剩下40個字節(jié)留下給選項(xiàng)部分,所以通過選項(xiàng)字段最多能夠記錄9個路由器的IP地址。源站在選項(xiàng)中創(chuàng)建一個位標(biāo)置(placeholder),用來填入所經(jīng)過的各路由器,圖2給出了記錄路由選項(xiàng)的格式。圖2 記錄路由選項(xiàng)向目的主機(jī)發(fā)送一個ICMP報(bào)文,這種方法只要求使用一個套接字。ICMP即Internet控制報(bào)文協(xié)議,是一種用于特殊用途的報(bào)文機(jī)制,可以使互聯(lián)網(wǎng)中的路由器或主機(jī)報(bào)告差錯或提供有關(guān)意外情況的信息。盡管UDP和ICMP工作在TCP/IP的不同層次上,但他們的封裝是類似的。ICMP報(bào)文為兩級封裝ICMP報(bào)文放在IP數(shù)據(jù)報(bào)的數(shù)據(jù)部分,數(shù)據(jù)報(bào)則放在幀的數(shù)據(jù)中進(jìn)行網(wǎng)絡(luò)傳輸(如圖3所示)ICMP報(bào)文與其他普通報(bào)文一樣,具有相同的路由選擇,并沒有特殊的優(yōu)先權(quán)和增加可靠性。通過路由選項(xiàng)的方法記錄路由的實(shí)現(xiàn)同UDP數(shù)據(jù)報(bào)是相似的,這里主要說明通過TTL方法的實(shí)現(xiàn)。圖3 ICMP報(bào)文的兩級封裝根據(jù)要求設(shè)計(jì)好的流程圖如圖4所示:圖4 流程圖 traceroute的核心程序整個設(shè)計(jì)過程的核心程序代碼:include include include include ifdef _DEBUGundef THIS_FILEstatic char THIS_FILE[]=__FILE__。define new DEBUG_NEWendifvoid CPing::Ping(int timeout){ m_hSocket = WSASocket (AF_INET, SOCK_RAW, IPPROTO_ICMP, NULL, 0,WSA_FLAG_OVERLAPPED)。 if (m_hSocket == INVALID_SOCKET) {AfxMessageBox(socket 創(chuàng)建失敗!)。 return 。}Start sending/receiving ICMP packets開始發(fā)送/接收ICMP的數(shù)據(jù)包//static int nCount = 0。靜態(tài)的nCount = 0。int nCount=0。 while(1) {int bwrote。if (nCount++ == 4) break。 ((IcmpHeader*)icmp_data)i_cksum = 0。 ((IcmpHeader*)icmp_data)timestamp = GetTickCount()。 ((IcmpHeader*)icmp_data)i_seq = seq_no++。 ((IcmpHeader*)icmp_data)i_cksum = checksum((USHORT*)icmp_data, datasize)。 bwrote = sendto(m_hSocket, icmp_data, datasize, 0, (struct sockaddr*)amp。m_addrDest, sizeof(m_addrDest))。 if (bwrote == SOCKET_ERROR) { if (WSAGetLastError() == WSAETIMEDOUT) {m_dlgm_result+=Timed out ! \r\n。m_dlgSetDlgItemText(IDC_EDIT2,m_dlgm_result)。 continue。 }AfxMessageBox(發(fā)送數(shù)據(jù)函數(shù)調(diào)用錯誤!)。 return 。} ,再單擊路由跟蹤,就可以詳細(xì)的觀察到路由整個的跟蹤過程,如圖5所示: traceroute程序運(yùn)行結(jié)果 圖5路由跟蹤示意圖4心得結(jié)論在整個課程設(shè)計(jì)過程中,首先得仔細(xì)分析課程設(shè)計(jì)任務(wù)書,根據(jù)要求編寫好程序代碼,然后運(yùn)行程序,分析得到的結(jié)果。在編寫代碼過程中,遇到許多問題。開始看到題目不知道該如何下手去做。編寫好的代碼,在VC++平臺上運(yùn)行時,總是出現(xiàn)錯誤,最終在老師的幫助下,成功的解決了該問題。還有在宿舍運(yùn)行tracert后一閃就沒了,也不知道是什么原因,上網(wǎng)查找了解到,必須得先運(yùn)行CMD,然后在CMD里運(yùn)行其他命令。成功的運(yùn)行tracert后,出現(xiàn)的一連串?dāng)?shù)字,不知道是什么意思,結(jié)合老師上課所講的東西并仔細(xì)分析才知道,0ms是跳到下個IP地址所用的時間。從整體來說這次課程設(shè)計(jì)是成功的。但中間存在一些細(xì)節(jié)問題,程序代碼過于復(fù)雜,沒有很好的用語句解釋出程序中的代碼。每次課程設(shè)計(jì)都讓我們學(xué)到了很多書本上學(xué)不到的東西,如嚴(yán)謹(jǐn)?shù)淖鍪嘛L(fēng)格,認(rèn)真學(xué)習(xí)的態(tài)度,不懂要問的道理。5參考文獻(xiàn)[1]W Richard Stevens. TCP/ IP Illust rated ,Volum 1 :The Protocols[M]1 北京:機(jī)械工業(yè)出版社,.[2]W Richard Stevens. UNIX Network ProgrammingVolum1Network
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1