IP頭
45 00 00 28 00 f6 40 00 40 06 84 46 c0 a8 12 23 dc b5 06 13
45 —— 4代表IP4版本,50代表IP頭長度20;
00 —— 8位0代表服務類型,定義了數據傳輸的優先級、延遲、吞吐量和可靠性等特性
00 28 —— 總長度40字節8個BIT的含義是:
000 前三位不用
0 表示最小時延,如Telnet服務使用該位
0 表示吞吐量,如FTP服務使用該位
0 表示可靠性,如SNMP服務使用該位
0 表示最小代價
0 不用
00 f6 —— IP包標識,主機使用它唯一確定每個發送的數據報
40 00 —— 表示片標志,占3個BIT。各位含義分別為:第一個“0”不用,第二個“0”為分片標志位,“1”表示分片,“0”表示不分版本。第三個0為是否最后一片標志位,0表示最后一片,1表示還有更多的片。 表示片偏移為0個Bytes。該部分占13個BIT。
40 —— 表示生存時間TTL值為40,該部分占8個BIT。
06 —— 6(TCP),表示協議類型為TCP,協議代碼是6。如果是UDP協議,則此處的協議代碼應為17。如果是ICMP協議,則此處的協議代碼應為1。該部分占8個BIT。
84 46 —— 表示IP包頭校驗和為,括號內的Correct表示此IP數據包是正確的,沒有被非法修改過。該部分占16個BIT,用十六進制表示。
c0 a8 12 23 —— 源IP地址
dc b5 06 13 —— 指向IP地址
TCP頭信息
04 0f 00 50 3e e1 60 31 ee 34 89 49 50 10 20 00 bf 50 00 00
04 0f —— 端口 1039
00 50 —— 80端口
3e e1 60 31 —— 表示初始連接的請求號,即SEQ值。該部分占32個BIT,值從1到2的32次方減1。
??? ?? ?? ? —— 對方應答也應該是這個值
ee 34 89 49 —— 響應碼
50 —— 數據偏移
10 —— 標記 ,該值用兩個十六進制數來表示。該部分長度為6個BIT,6個標志位的含義分別是:
0 URG,緊急數據標志,為1表示有緊急數據,應立即進行傳遞。20 00 —— 表示窗口,該部分占16個BIT。
0 ACK,確認標志位,為1表示此數據包為應答數據包
0 PSH,PUSH標志位,為1表示此數據包應立即進行傳遞。
0 RST:復位標志位。如果收到不屬于本機的數據包,則返回一個RST
0 SYN:連接請求標志位。為1表示為發起連接的請求數據包。
0 FIN:結束連接請求標志位。為1表示是結束連接的請求數據包。 ?
bf 50 —— 表示校驗和。該部分占16個BIT,用十六進制表示。
00 00 —— 表示緊急指針為0。該部分占16個BIT。
DLC的頭和結尾在raw socket中不用設置。
Http報文問題。
在一次HTTP請求中,在 緊急指針 結束后,跟了 608 字節的Http Header
47 45 54 20 2f 69 6d 67 2f 62 61 69 64 75 5f 6c 6f 67 6f 2e 67 69 66 20 48 54 54 50 2f 31 2e 31 0d 0a 41 63 63 65 70 74 3a 20 2a 2f 2a 0d 0a 52 65 66 65 72 65 72 3a 20 68 74 74 70 3a 2f 2f 77 77 77 2e 62 61 69 64 75 2e 63 6f 6d 2f 0d 0a 41 63 63 65 70 74 2d 4c 61 6e 67 75 61 67 65 3a 20 7a 68 2d 63 6e 0d 0a 55 73 65 72 2d 41 67 65 6e 74 3a 20 4d 6f 7a 69 6c 6c 61 2f 34 2e 30 20 28 63 6f 6d 70 61 74 69 62 6c 65 3b 20 4d 53 49 45 20 38 2e 30 3b 20 57 69 6e 64 6f 77 73 20 4e 54 20 35 2e 32 3b 20 54 72 69 64 65 6e 74 2f 34 2e 30 3b 20 2e 4e 45 54 20 43 4c 52 20 31 2e 31 2e 34 33 32 32 3b 20 2e 4e 45 54 20 43 4c 52 20 32 2e 30 2e 35 30 37 32 37 3b 20 2e 4e 45 54 20 43 4c 52 20 33 2e 30 2e 30 34 35 30 36 2e 36 34 38 3b 20 2e 4e 45 54 20 43 4c 52 20 33 2e 35 2e 32 31 30 32 32 3b 20 2e 4e 45 54 20 43 4c 52 20 33 2e 30 2e 34 35 30 36 2e 32 31 35 32 3b 20 2e 4e 45 54 20 43 4c 52 20 33 2e 35 2e 33 30 37 32 39 29 0d 0a 55 41 2d 43 50 55 3a 20 78 38 36 0d 0a 41 63 63 65 70 74 2d 45 6e 63 6f 64 69 6e 67 3a 20 67 7a 69 70 2c 20 64 65 66 6c 61 74 65 0d 0a 49 66 2d 4d 6f 64 69 66 69 65 64 2d 53 69 6e 63 65 3a 20 57 65 64 2c 20 33 30 20 4a 75 6c 20 32 30 30 38 20 31 30 3a 32 33 3a 30 30 20 47 4d 54 0d 0a 49 66 2d 4e 6f 6e 65 2d 4d 61 74 63 68 3a 20 22 35 64 31 2d 34 38 39 30 34 31 30 34 22 0d 0a 48 6f 73 74 3a 20 77 77 77 2e 62 61 69 64 75 2e 63 6f 6d 0d 0a 43 6f 6e 6e 65 63 74 69 6f 6e 3a 20 4b 65 65 70 2d 41 6c 69 76 65 0d 0a 43 6f 6f 6b 69 65 3a 20 42 41 49 44 55 49 44 3d 38 45 38 34 31 39 36 35 32 43 32 38 43 34 31 44 37 41 35 44 34 42 42 32 35 32 34 36 31 33 32 32 3a 46 47 3d 31 3b 20 42 44 53 54 41 54 3d 36 62 39 64 65 66 35 36 38 32 37 61 38 35 34 33 33 30 34 65 32 35 31 66 39 35 63 61 64 31 63 38 61 37 38 36 63 39 31 37 37 66 33 65 36 37 30 39 63 39 33 64 37 30 63 66 33 61 63 37 39 33 33 64 0d 0a 0d 0a
接下來要試試 Raw Socket發送HTTP報文了。