發(fā)送TCP數(shù)據(jù)包

發(fā)送TCP數(shù)據(jù)包

ID:37794144

大?。?04.00 KB

頁數(shù):9頁

時間:2019-05-31

發(fā)送TCP數(shù)據(jù)包_第1頁
發(fā)送TCP數(shù)據(jù)包_第2頁
發(fā)送TCP數(shù)據(jù)包_第3頁
發(fā)送TCP數(shù)據(jù)包_第4頁
發(fā)送TCP數(shù)據(jù)包_第5頁
資源描述:

《發(fā)送TCP數(shù)據(jù)包》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。

1、沈陽理工大學(xué)課程設(shè)計專用紙No8目錄1課程設(shè)計目的12課程設(shè)計要求13相關(guān)知識14課程設(shè)計分析15程序代碼16運(yùn)行結(jié)果與分析17參考文獻(xiàn)1沈陽理工大學(xué)沈陽理工大學(xué)課程設(shè)計專用紙No81課程設(shè)計目的TCP協(xié)議是一種面向連接的,可靠的傳輸層協(xié)議,在網(wǎng)絡(luò)層的IP協(xié)議的基礎(chǔ)上,向應(yīng)用層的用戶進(jìn)程提供可靠的,全雙工的數(shù)據(jù)流傳輸。本課程設(shè)計的主要目的是通過TCP數(shù)據(jù)包的發(fā)送,了解TCP協(xié)議的工作原理與TCP包的基本格式。2課程設(shè)計要求本程序的功能是填充一個TCP數(shù)據(jù)包,并發(fā)送給目的主機(jī)。1)以命令行形式運(yùn)行:SendTCPsourse_ipsourse_portdest_ipdest_port其中

2、,SendTCP為程序名;sourse_ip為源主機(jī)的IP地址;sourse_port為源主機(jī)端口號;dest_ip為目的主機(jī)的IP地址;dest_port為目的主機(jī)的端口號。2)其它的TCP頭部參數(shù)請自行設(shè)定。數(shù)據(jù)字段內(nèi)容為“ThisisaTCPpacketfromsourcehosttodestinationhost!”。3)發(fā)送成功后在屏幕上輸出”sendOK”。3相關(guān)知識編制本程序前要對TCP協(xié)議有一定的了解。當(dāng)應(yīng)用程序有報文需要通過TCP發(fā)送時,它就將此應(yīng)用層報文傳送給執(zhí)行TCP協(xié)議的傳輸實體。TCP傳輸實體將用戶數(shù)據(jù)加上TCP報頭,形成TCP數(shù)據(jù)包,在TCP數(shù)據(jù)包上增加IP

3、頭部,形成IP包。下圖顯示的是TCP數(shù)據(jù)包和IP包的關(guān)系。TCP報頭TCP數(shù)據(jù)IP數(shù)據(jù)IP報頭TCP協(xié)議的傳輸單元為報文段,其格式如圖所示。報文段報頭的長度為20B~60B。其中固定長度為20B,報文段長度最多為40B。TCP報文段主要包括以下字段?!げ禾枺翰禾栕侄伟ㄔ床禾柡湍康牟禾?。每個埠號的長度是16位,分別表示發(fā)送該TCP包的應(yīng)用進(jìn)程的埠號和接收該TCP包的應(yīng)用進(jìn)程的埠號?!ば蛱枺洪L度為32位。由于TCP協(xié)議是面向數(shù)據(jù)流的,它所傳送的報文段可以視為連續(xù)的數(shù)據(jù)流,因此需要給每一個字節(jié)編號。序號字段的“序號”指的是本報文段數(shù)據(jù)的第一個字節(jié)的順序號。TCP頭部數(shù)據(jù)沈陽理工大學(xué)沈陽理工

4、大學(xué)課程設(shè)計專用紙No80151631源端口號目的端口號序號確認(rèn)號報頭長度保留URGACKPSHRSTSYNFIN窗口大小校驗和緊急指針選項及填充·確認(rèn)號:該字段的長度為32位,它表示接收端希望接收的下一個TCP包的第一個字節(jié)的序號?!箢^長度:該字段長度為4位。TCP報頭長度是以4B為一個單元來計算的,實際上報頭長度在20B~60B子間。因此這個字段的值在5~15之間?!けA簦洪L度為6位,留作今后使用,目前全部置0?!た刂疲哼@個字段定義了6種不同的標(biāo)志,每個標(biāo)志占一位,在同一時間可以設(shè)置一位或多位。URG為1時,表明有需要緊急處理的數(shù)據(jù)。ACK為1時,表明確認(rèn)號的字段有效。PST位為

5、1時,表明要強(qiáng)制切斷連接。SYN位為1時,表明有確立連接的請求,這時,把序號字段的初始值作為序號字段的值,以便開始通信。FIN為1時,表明發(fā)送方已經(jīng)沒有資料發(fā)送了?!ご翱诖笮。洪L度為16位,窗口對應(yīng)的數(shù)據(jù)是以字節(jié)為單位的數(shù)據(jù),因此最多能夠傳送的數(shù)據(jù)為65535B。·緊急指針:該字段的長度為16位,指向必須緊急處理的數(shù)據(jù)的位置,只有當(dāng)標(biāo)志URG=1時緊急指針才有效。從TCP報頭后面的報文資料開始,到緊急指針?biāo)赋龅拈L度的數(shù)據(jù),就是必須緊急處理的數(shù)據(jù)?!みx項:該字段可以多達(dá)40B,包括單字節(jié)選項和多字節(jié)選項。·校驗和:該字段長度多達(dá)16位,校驗和的校驗范圍包括偽頭部、TCP報頭以及應(yīng)用層來

6、的數(shù)據(jù)。其計算方法與IP協(xié)議頭部的校驗的計算方法一樣。偽頭部為12B,它本身并不是TCP數(shù)據(jù)包的真正頭部,只是在計算校驗和時,臨時和TCP數(shù)據(jù)包連接在一起。偽頭部的格式如下圖所示。源IP地址目的IP地址00000000協(xié)議號(6)TCP長度3課程設(shè)計分析協(xié)議本課程設(shè)計的目標(biāo)是發(fā)送一個TCP沈陽理工大學(xué)沈陽理工大學(xué)課程設(shè)計專用紙No8資料包,可以利用原始套接字來完成這個工作。整個程序由初始化原始套接字和發(fā)送TCP數(shù)據(jù)包兩個部分組成。流程圖如下:開始結(jié)束構(gòu)造原始套接字,并初始化發(fā)送TCP資料報計算TCP頭部校驗和填充IP頭部計算IP頭部校驗和構(gòu)造TCP偽頭部填充TCP頭部3程序代碼#inc

7、lude#include#include#pragmacomment(lib,"ws2_32.lib")沈陽理工大學(xué)沈陽理工大學(xué)課程設(shè)計專用紙No8//定義ip頭部機(jī)構(gòu)typedefstructIP_HEAD{union{unsignedcharVersion;unsignedcharHeadLen;};unsignedcharServiceType;unsignedsho

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費(fèi)完成后未能成功下載的用戶請聯(lián)系客服處理。