版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、TCP數(shù)據(jù)包的封裝與發(fā)送一、實驗?zāi)康恼莆誘CP的工作特點;熟悉TCP數(shù)據(jù)包的結(jié)構(gòu);深刻理解網(wǎng)絡(luò)體系結(jié)構(gòu)中傳輸層與上下層之間的關(guān)系;二、實驗壞境PC機(jī)一臺Windows操作系統(tǒng)三、實驗準(zhǔn)備復(fù)習(xí)TCP協(xié)議的相關(guān)內(nèi)容:熟練掌握TCP數(shù)據(jù)包中各自段的作用;四、實驗內(nèi)容(二選一)編寫程序構(gòu)造TCP包結(jié)構(gòu),并填寫各字段,將封裝后的TCP包的內(nèi)容在屏幕上輸出并寫入指定的文件中;TCP包的數(shù)據(jù)字段內(nèi)容額長度自定;五、實驗報告要求報告內(nèi)容要有主程序的流程圖和程序代碼;報告內(nèi)容要有運行結(jié)果的截圖;對實驗過程進(jìn)行分析,對存在的問題分析。實驗相關(guān)代碼iiiclude#include#include#includemc
2、lude#piagniaconmient(lib,ws2_32.libH)數(shù)據(jù)結(jié)構(gòu)及宏定義:#defineIPVER4/IP協(xié)議預(yù)定defineMAX_EUFF_LEN65500發(fā)送緩沖區(qū)最人值#defineDEST_PORT5050目的端II號#defineSOUR.PORT8080源端II號tvpedefstmctipJidr定義IP首部UCHARh_veilen;UCHARtos;USHORTtotalJen;USHORTident;USHORTfiag_aiid_flags;UCHARttl;UCHARproto;USHORTchecksum;ULONGsouicelP;ULONGde
3、stIP;4位首部長度,4位IP版本號/8位服務(wù)類型TOS16位總長度(字節(jié))/16位標(biāo)識3位標(biāo)志位8位生存時間TTL8位協(xié)議(TCP,UDP或其他)/16位IP首部校驗和/32位源IP地址/32位目的IP地址IP_HEADER;ULONGsaddr;ULONGdaddr;UCHARmbz;UCHARptcl;USHORTtcpl;PSD_HEADER;源地址目的地址沒用協(xié)議類型/TCP長度tvpedefstmcttcp_hdr定義TCP首部USHORTth.sport;USHORTth_dport;ULONGth_seq;ULONGthwack;UCHARthjeiires;UCHARth_
4、flag;USHORTth_win;USHORTth.sum;USHORTth_uip;TCP_HEADER;usingnamespacestd;主要函數(shù):/Checksum:計算校驗和的子函數(shù)/16位源端II16位目的端II/32位序列號/32位確認(rèn)號4位首部長度/6位保留字6位標(biāo)志位16位窗口大小/16位校驗和16位緊急數(shù)據(jù)偏移量USHORTchecksum(USHORTbuffer,mtsize)unsignedlongcksum=0;whil亡(size1)cksum+=*buffer+;size=sizeof(USHORT);tvpedefstmcttsd_hdr定義TCP偽首部if
5、(size)cksum+=*(UCHAR*)buffer;cksum=(cksum16)+(cksum&Oxffiff);cksum+=(cksum16);return(USHORT)(cksum);主函數(shù)mtmaiii(void)IP.HEADERipHeader;TCP.HEADERtcpHeader;PSD_HEADERpsdHeader;chai-TCP.BuffMAX_BUFF.LEN;發(fā)送緩沖區(qū)unsignedshortcheck.BuffIMAX_BUFF.LEN;檢驗和緩沖區(qū)constchartcp_send_data=HThisistest?*;填充IP首部ipHeader.
6、h-veilen=(IPzER4|sizeof(ipHeader)/sizeof(unsignedlong);ipHeader.tos=(UCHAR)0;ipHeader.totaLlen=htons(unsignedshort)sizeof(ipHeadei)+sizeof(tcpHeader)+sizeof(tcp_send_data);ipHeader.ident=O;/16位標(biāo)識lpHeader.fiag_and_flags=O;/3位標(biāo)志位ipHeader.ttl=128;/8位生存時間ipHto=IPPROTO_UDP;協(xié)議類型lpHeader.checksum=
7、O;/檢驗和暫時為0ipHeader.sourceIP=inet_addr(H,f);/32位源IP地址ipHeader.destIP=ineCaddi(nn);/32位目的IP地址計算IP頭部檢驗和meniset(check_Buff,O,NIAX_BUFF_LEN);memcpy(check_Buff.&ipH亡adei;siz亡oIP_HEADER);ipHeader.checksum=checksum(check_Buff.sizeof(IP_HEADER);構(gòu)造TCP偽首部psdHeader.saddi-ipHeader.sourcelP;psdH
8、eader.daddi-ipHeadei.destIP;psdHeader.mbz=O;psdHeader.ptcl=ipHto;psdHeader.tcpl=htons(sizeof(TCP_HEADER)+sizeof(tcp_send_data);填充TCP首部tcpHeader.th.dport=htons(DEST_PORT);/16位目的端I丨號tcpHeader.th_spoit=htons(SOUR_PORT);/16位源端I丨號tcpHeader.th_seq=O:/SYN序列號tcpHeader.th_ack=O;/ACK序列號置為0/TCP長度和保留位t
9、cpHeader.th_lemes=(sizeof(tcpHeader)/sizeof(unsigiiedlong)4|0);tcpHeader.th_flag=2;/i|改這里來實現(xiàn)不同的標(biāo)志位探測,2是SYN,1是/TIN,16是ACK探測等等tcpHeader.th_wm=htoiis(unsignedshort)16384);窗丨I人小tcpHeader.th_urp=O:/偏移大小tcpHeader.th_sum=0;檢驗和暫時填為0計算TCP校驗和meniset(check_Buff,O,MAX_BUFF_LEN);memcpy(check_Buff.&psdHeacki;size
10、of(psdHeack);memcpy(check_Buffrsizeof(psdHeadei),&tcpHdei;sizeof(tcpH亡adeQ);memcpy(check_Buffrsizeof(PSD_HEADER)+sizeof(TCP_HEADER),tcp-send_data5sizeof(tcp-send_data);tcpHeader.th_sum=checksum(check_Buff,sizeof(PSD_HEADER)+siz亡of(TCP_HEADER)+sizeof(tcp_send_data);填充TCP報文meniset(TCP_Buff.0,MAX.BUFF.
11、LEN);memcpy(TCP_Buff,&tcpHeader,sizeof(TCP_HEADER);memcpy(TCP_Buff+sizeof(TCP_HEADER),tcp_send_data,sizeof(tcp_send_data);mtdatasize=sizeof(TCP_HEADER)+sizeof(tcp_send_data);printfC封裝的TCP包如下:nH);char*decodeptr=TCP_Buff;printf(M源端I丨號:%d,nH,ntohs(*(unsignedshort*)decodepti-);decodepti+=sizeof(uiisigne
12、dshort);printff1目的端II號:%dnH,ntohs(*(unsignedshort*)decodeptr);decodepti+=sizeof(uiisignedshort);printf(M序列號:dn”,ntolil(*(unsignedmt*)decodeptr);decodepti+=sizeof(uiisignediiit);printf(M確認(rèn)號:%dn”,ntolil(*(unsignedmt*)decodeptr);decodepti+=sizeof(uiisignediiit);clwheadlen=(*decodeptr)4)*4;piintf(”首部長度:
13、headlen);decodepti+=sizeof(uiisignedchai);pmitf(標(biāo)志:”);switch(*decodepti)case32:pnntf(HURGnn);break;case16:printf(HACKn,);break;case8:prmtfnPSHjiM);break;case4:printf(nRSTnH);break;case2:pnntfSYNS”);bdk;case1:pimtf(nFIIsr,ar,);bieak;default:未知n”);decodepti+=sizeoffunsignedchai);printf(M窗I丨人?。篸iT;ntoh
14、s(*(unsignedshort*)decodeptr);decodepti+=sizeoffunsignedshort);printf(”校驗和:%dn”,ntohs(*(unsignedshort*)decodeptr);decodepti+=sizeoffunsignedshort);printf(”緊急指針:diT;ntohs(*(unsignedshort*)decodeptr);decodepti+=sizeoffunsignedshort);printf(M數(shù)據(jù)區(qū):%sndecodeptr);將TCP包寫入二進(jìn)制文件FILE*fp=NULL;if(fp=fopenCTCP.daf;nwbM)=NULL)priiitf(ncan,topenf
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度租車行業(yè)信用體系建設(shè)合同2篇
- 二零二五年度餐廳裝修與品牌推廣合作合同3篇
- 二零二五年度電子產(chǎn)品組裝加工合同范本3篇
- 二零二五版電商平臺法律風(fēng)險防范與合規(guī)管理合同3篇
- 二零二五版城市核心區(qū)二手房交易中介合同2篇
- 封窗合同范本(2篇)
- 展會參展商培訓(xùn)合同(2篇)
- 二零二五版高新技術(shù)產(chǎn)業(yè)勞動合同標(biāo)準(zhǔn)文本3篇
- 二零二五版建筑工程合同管理與索賠爭議調(diào)解服務(wù)協(xié)議3篇
- 二零二五版房地產(chǎn)項目股權(quán)出資轉(zhuǎn)讓合同樣本3篇
- 資本金管理制度文件模板
- 2025年生產(chǎn)主管年度工作計劃
- 2025年急診科護(hù)理工作計劃
- 高中家長會 高二寒假線上家長會課件
- 2024-2025學(xué)年山東省聊城市高一上學(xué)期期末數(shù)學(xué)教學(xué)質(zhì)量檢測試題(附解析)
- 違規(guī)行為與處罰管理制度
- 個人教師述職報告錦集10篇
- 四川省等八省2025年普通高中學(xué)業(yè)水平選擇性考試適應(yīng)性演練歷史試題(含答案)
- 《內(nèi)部培訓(xùn)師培訓(xùn)》課件
- 《雷達(dá)原理》課件-3.3.3教學(xué)課件:相控陣?yán)走_(dá)
- 西方史學(xué)史課件3教學(xué)
評論
0/150
提交評論