程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> VC >> vc教程 >> TCP/IP學習筆記補遺

TCP/IP學習筆記補遺

編輯:vc教程

  經過我對網絡上IP數據包的跟蹤,對我寫的《TCP/IP學習筆記》進行補充。通過本文,可以加深對TCP/IP的認識。

  ●網絡環境:ADSL寬帶

  ●IP數據包內容:通過Outlook發送郵件,帳號是[email protected],給我的其他郵箱[email protected]發送郵件,系統從而捕獲的IP包。

  ●所有IP包均為TCP協議

  1、關於IP包的分片情況:

  所有的IP包均不分片,也就是IP包傳輸過程從不進行分片,均保持原始IP包的大小。這可能跟網絡環境較好有關。

  2、關於IP首部和TCP首部的大小:

  IP首部的大小均為20,未見到包括選項的情況。但TCP首部有時會包括選項,大小為24到44不等,建立連接時的協商都帶有選項數據,一般為28。

  3、關於TCP連接的步驟:

  (1)客戶端發送建立報文的TCP報文給服務器端;

  (2)服務器端發送同意建立TCP連接的報文給客戶端;

  (3)客戶端再次進行確認;

  (4)服務器端發送服務器信息;

  (5)客戶端發送數據,服務器端發送數據;

  (6)客戶端發送結束連接的命令;

  (7)服務器端發送結束連接的TCP報文給客戶端;

  (8)客戶端發送同意結束連接的TCP報文給服務器端;

  4、TCP連接的具體過程,包括P包的唯一標識符ID、TCP報文連接的sequence和ACK數據,這是一個完整的TCP連接建立和結束的過程:

  序號數據大小客戶端服務器端IPIDsequenceACKIPIDsequenceACK102732098660028020547073904671124209866002930274209866002939046711254565470839046711252098660029514275209866002939046711816054709390467118120986600437113547103904671181209866004381227620986600433904671294918547113904671294209866005510182772098660055390467131211185471239046713122098660073121027820986600733904671330133154713390467133020986600831402792098660083390467136115342802098660083390467136116854714390467136120986601171735281209866011739046713691885471539046713692098660152196282209866015239046713772037547163904671377209866015821141428320986601583904671414220547173904671414209866157223993284209866157239046714142405471839046714142098662570255285209866256539046714142638547193904671414209866257027628620986625703904671452289547203904671452209866257629054721390467145250986625763002872098662576390467146231028820986625763904671462

  (1)數據大小不包括IP首部和TCP首部的大小。

  (2)除開始協商建立連接外,每一個sequence均等於上一sequence值加數據大小。開始協商的SYN標記要占用一個字節。

  (3)1和2行數據設置了SYN標志。

  (4)30和31行數據設置了FIN標志。

  (5)每個數據都包括發送方數據的起始字節sequence和期待對方發送數據位置的Ack值。

  5、程序說明:

  (1) 該程序收集通過本機網卡的所有協議為TCP的IP包。

  (2) 對於未加密的郵件內容,可以進行識別並獲得郵件首部內容。

  (3) 對於采集的數據包可以進行保存,文件名為scan.bin,也可以導入符合該格式的文件。數據格式請見源程序。

  (4) 源程序中還包括其他功能,有些尚未完成,有興趣的讀者可以幫我完成和修改.

  6、由於筆者水平有限,上述內容難免有錯誤和不足之處,歡迎批評指正,先謝了。

本文示例代碼或素材下載

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved