青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

山寨:不是最好的,是最適合我們的!歡迎體驗山寨 中文版MSDN

Blog @ Blog

當華美的葉片落盡,生命的脈絡才歷歷可見。 -- 聶魯達

常用鏈接

統計

積分與排名

BBS

Blog

Web

最新評論

TCP/IP 數據包頭格式 (轉)

最近狂補基礎,猛看TCP/IP協議。不過,書上的東西太抽象了,沒有什么數據實例,看了不 久就忘了。于是,搬來一個sniffer,抓了數據包來看,呵呵,結合書里面得講解,理解得 比較快。我就來灌點基礎知識。 

  開始吧,先介紹IP協議。 

  IP協議(Internet Protocol)是網絡層協議,用在因特網上,TCP,UDP,ICMP,IGMP數據都是按照IP數據格式發送得。IP協議提供的是不可靠無連接得服務。IP數據包由一個頭部和一個正文部分構成。正文主要是傳輸的數據,我們主要來理解頭部數據,可以從其理解到IP協議。 

  IP數據包頭部格式(RFC791)

  Example Internet Datagram Header 

  上面的就是IP數據的頭部格式,這里大概地介紹一下。 

  IP頭部由20字節的固定長度和一個可選任意長度部分構成,以大段點機次序傳送,從左到 右。 

  TCP協議 

  TCP協議(TRANSMISSION CONTROL PROTOCOL)是傳輸層協議,為應用層提供服務,和UDP不同的是,TCP協議提供的可靠的面向連接的服務。在RFC793中是基本的TCP描述。關于TCP協議的頭部格式內容的說明: 

  TCP Header FORMat 

 

  TCP Header FORMat 

  跟IP頭部差不多,基本的長度也是20字節。TCP數據包是包含在一個IP數據報文中的。 

  好了,簡單介紹到此為止。來看看我捕獲的例子吧。這是一次FTP的連接,呵呵,是cuteftp默認的cuteftp的FTP站點,IP地址是:216.3.226.21。我的IP地址假設為:192.168.1.1。下面的數據就是TCO/IP連接過程中的數據傳輸。我們可以分析TCP/IP協議數據格式以及TCP/IP連接的三次握手(ThreeWay-Handshake)情況。下面的這些十六進制數據只是TCP/IP協議的數據,不是完整的網絡通訊數據。 

  第一次,我向FTP站點發送連接請求(我把TCP數據的可選部分去掉了) 

  192.168.1.1->216.3.226.21 

  IP頭部: 45 00 00 30 52 52 40 00 80 06 2c 23 c0 a8 01 01 d8 03 e2 15 

  TCP頭部:0d 28 00 15 50 5f a9 06 00 00 00 00 70 02 40 00 c0 29 00 00 

  來看看IP頭部的數據是些什么。 

  第一字節,“45”,其中“4”是IP協議的版本(Version),說明是IP4。“5”是IHL位,表示IP頭部的長度,是一個4bit字段,最大就是1111了,值為12,IP頭部的最大長度就是60字節。而這里為“5”,說明是20字節,這是標準的IP頭部長度,頭部報文中沒有發送可選部分數據。 

  接下來的一個字節“00”是服務類型(Type of Service)。這個8bit字段由3bit的優先權子字段(現在已經被忽略),4 bit的TOS子字段以及1 bit的未用字段(現在為0)構成.4 bit的TOS子字段包含:最小延時、最大吞吐量、最高可靠性以及最小費用構成,這四個1bit位最多只能有一個為1,本例中都為0,表示是一般服務。 

  接著的兩個字節“00 30”是IP數據報文總長,包含頭部以及數據,這里表示48字節。這48字節由20字節的IP頭部以及28字節的TCP頭構成(本來截取的TCP頭應該是28字節的,其中8字節為可選部分,被我省去了)。因此目前最大的IP數據包長度是65535字節。 

  再是兩個字節的標志位(Identification):“5252”,轉換為十進制就是21074。這個是讓目的主機來判斷新來的分段屬于哪個分組。 

  下一個字節“40”,轉換為二進制就是“0100 0000”,其中第一位是IP協議目前沒有用上的,為0。接著的是兩個標志DF和MF。DF為1表示不要分段,MF為1表示還有進一步的分段(本例為0)。然后的“0 0000”是分段便移(Fragment Offset)。 

  “80”這個字節就是TTL(Time To Live)了,表示一個IP數據流的生命周期,用Ping顯示的結果,能得到TTL的值,很多文章就說通過TTL位來判別主機類型。因為一般主機都有默認的TTL值,不同系統的默認值不一樣。比如WINDOWS為128。不過,一般Ping得到的都不是默認值,這是因為每次IP數據包經過一個路由器的時候TTL就減一,當減到0時,這個數據包就消亡了。這也時Tracert的原理。本例中為“80”,轉換為十進制就是128了,我用的WIN2000。 

  繼續下來的是“06”,這個字節表示傳輸層的協議類型(Protocol)。在RFC790中有定義,6表示傳輸層是TCP協議。 

  “2c 23”這個16bit是頭校驗和(Header Checksum)。 

  接下來“c0 a8 01 01”,這個就是源地址(Source Address)了,也就是我的IP地址。

  轉換為十進制的IP地址就是:192.168.1.1,同樣,繼續下來的32位“d8 03 e2 15”是目標地址,216.3.226.21 

  好了,真累啊,終于看完基本的20字節的IP數據報頭了。繼續看TCP的頭部吧,這個是作為IP數據包的數據部分傳輸的。 

  TCP頭部:0d 28 00 15 50 5f a9 06 00 00 00 00 70 02 40 00 c0 29 00 00 

  一來就是一個兩字節段“0d 28”,表示本地端口號,轉換為十進制就是3368。第二個兩字節段“00 15”表示目標端口,因為我是連接FTP站點,所以,這個就是21啦,十六進制當然就是“00 15”。 

  接下來的四個字節“50 5f a9 06”是順序號(Sequence Number),簡寫為SEQ,SEQ=1348446470下面的四個字節“00 00 00 00”是確認號(Acknowledgment Number),簡寫為ACKNUM。 

  繼續兩個字節,“70 02”,轉換為二進制吧,“0111 0000 0000 0010”。這兩個字節,總共16bit,有好多東西呢。第一個4bit“0111”,是TCP頭長,十進制為7,表示28個字節(剛才說了,我省略了8字節的option數據,所以你只看見了20字節)。接著的6bit現在TCP協議沒有用上,都為0。最后的6bit“00 0010”是六個重要的標志。這是兩個計算機數據交流的信息標志。接收和發送斷根據這些標志來確定信息流的種類。下面是一些介紹: 

  URG:(Urgent Pointer field significant)緊急指針。用到的時候值為1,用來處理避免TCP數據流中斷 

  ACK:(Acknowledgment fieldsignificant)置1時表示確認號(AcknowledgmentNumber)為合法,為0的時候表示數據段不包含確認信息,確認號被忽略。 

  PSH:(Push Function),PUSH標志的數據,置1時請求的數據段在接收方得到后就可直接送到應用程序,而不必等到緩沖區滿時才傳送。 

  RST:(Reset the connection)用于復位因某種原因引起出現的錯誤連接,也用來拒絕非法數據和請求。如果接收到RST位時候,通常發生了某些錯誤。 

  SYN:(Synchronize sequence numbers)用來建立連接,在連接請求中,SYN=1,ACK=0,連接響應時,SYN=1,ACK=1。即,SYN和ACK來區分Connection Request和Connection Accepted。 

  FIN:(No more data from sender)用來釋放連接,表明發送方已經沒有數據發送了。 

  這6個標志位,你們自己對號入座吧。本例中SYN=1,ACK=0,當然就是表示連接請求了。我們可以注意下面兩個過程的這兩位的變換。 

  后面的“40 00 c0 29 00 00”不講了,呵呵,偷懶了。后面兩次通訊的數據,自己分開看吧。我們看看連接的過程,一些重要地方的變化。 

  第二次,FTP站點返回一個可以連接的信號。 

  216.3.226.21->192.168.1.1 

  IP頭部: 45 00 00 2c c6 be 40 00 6a 06 cd ba d8 03 e2 15 c0 a8 01 01 

  TCP頭部:00 15 0d 28 4b 4f 45 c1 50 5f a9 07 60 12 20 58 64 07 00 00 

  第三次,我確認連接。TCP連接建立起來。 

  192.168.1.1->216.3.226.21 

  IP頭部: 45 00 00 28 52 53 40 00 80 06 2c 2a c0 a8 01 01 d8 03 e2 15 

  TCP頭部:0d 28 00 15 50 5f a9 07 4b 4f 45 c2 50 10 40 b0 5b 1c 00 00 

  好,我們看看整個Threeway_handshake過程。 

  第一步,我發出連接請求,TCP數據為:SEQ=50 5f a9 06,ACKNUM=00 00 00 00,SYN=1,ACK=0。 

  第二步,對方確認可以連接,TCP數據為:SEQ=4b 4f 45 c1,ACKNUM=50 5f a9 07,SYN=1,ACK=1。 

  第三步,我確認建立連接。SEQ=50 5f a9 07, ACKNUM=4b 4f45c2,SYN=0,ACK=1。 

  可以看出什么變化么?正式建立連接了呢,這些東西是什么值? 

  我接收從216.3.226.21->192.168.1.1的下一個數據包中: 

  SEQ=4b 4f 45 c2,ACKNUM=50 5f a9 07,SYN=0,ACK=1這些都是很基礎的東西,對于編寫sniffer這樣的東西是必須非常熟悉的。這里只講解了TCP/IP協議的一點點東西,主要是頭部數據的格式

posted on 2008-05-16 14:50 isabc 閱讀(4326) 評論(0)  編輯 收藏 引用 所屬分類: C++基礎

廣告信息(免費廣告聯系)

中文版MSDN:
歡迎體驗

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美成人国产一区二区| 免费亚洲婷婷| 久久久久久久999精品视频| 欧美日本国产在线| 亚洲国产色一区| 欧美成人精品在线播放| 亚洲九九精品| 136国产福利精品导航网址| 欧美日韩成人综合在线一区二区| 一区二区在线视频播放| 国产日产欧产精品推荐色| 欧美日韩一二三区| 欧美日韩一区三区| 欧美视频在线观看免费网址| 欧美日韩成人综合天天影院| 欧美日韩成人激情| 日韩午夜视频在线观看| 一区二区三区免费看| 国产中文一区二区三区| 欧美高清视频www夜色资源网| 欧美电影免费观看大全| 久久电影一区| 欧美色另类天堂2015| 亚洲国产高清自拍| 久久精品国产免费看久久精品 | 99精品国产高清一区二区| 欧美天堂亚洲电影院在线观看 | 另类天堂av| 欧美在线看片| 国产精品国产亚洲精品看不卡15| 免费在线视频一区| 国产日本欧美视频| 亚洲图片欧美午夜| 在线视频亚洲一区| 欧美成人免费小视频| 免费高清在线一区| 韩国v欧美v日本v亚洲v| 欧美一区二区日韩一区二区| 欧美国产亚洲另类动漫| 久久精品毛片| 久久精品电影| 亚洲韩国青草视频| 亚洲成色精品| 欧美理论在线| 亚洲尤物视频网| 亚洲在线网站| 国产午夜亚洲精品理论片色戒| 亚洲视频第一页| 亚洲视频在线免费观看| 国产精品国产三级国产普通话99 | 中国日韩欧美久久久久久久久| 亚洲日本免费电影| 国产精品久久久久久久久久久久久久| 亚洲精品久久久久久一区二区| 亚洲高清一二三区| 欧美亚州一区二区三区| 久久一区中文字幕| 欧美激情精品久久久久久变态| 9人人澡人人爽人人精品| 日韩一级二级三级| 91久久精品国产91性色| 国产精品久久福利| 免费视频久久| 欧美亚洲在线播放| 99亚洲视频| 亚洲第一中文字幕在线观看| 欧美亚洲网站| 亚洲级视频在线观看免费1级| 美女免费视频一区| 亚洲精品人人| 欧美一级成年大片在线观看| 国产综合在线看| 亚洲精选久久| 最新日韩av| 亚洲国产日韩一区二区| 久久久青草青青国产亚洲免观| 亚洲麻豆一区| 亚洲毛片网站| 亚洲欧洲日本专区| 在线观看成人av| 一区二区三区在线不卡| 国内精品久久久久久| 国产亚洲观看| 国产一区二区成人| 国外成人在线| 亚洲第一页中文字幕| 亚洲成色777777女色窝| 在线观看国产精品网站| 91久久精品一区二区别| 亚洲人成绝费网站色www| 日韩手机在线导航| 亚洲精品在线观看视频| 亚洲破处大片| 亚洲图片欧洲图片av| 亚洲欧美日韩一区二区三区在线| 亚洲视频一区| 久久久欧美精品sm网站| 亚洲高清不卡| 亚洲视频导航| 久久久精彩视频| 欧美+日本+国产+在线a∨观看| 欧美巨乳在线观看| 国产精品久久久亚洲一区| 在线观看视频一区| 亚洲欧美日韩在线| 免费美女久久99| 亚洲视频日本| 欧美激情一区二区三区在线视频| 欧美性大战久久久久久久| 激情视频亚洲| 午夜一区在线| 99视频精品全部免费在线| 亚洲乱码国产乱码精品精| 亚洲精品免费电影| 一区二区三区波多野结衣在线观看| 亚洲无人区一区| 另类av导航| 欧美一站二站| 国产日韩精品视频一区| 这里只有精品丝袜| 亚洲国产一区二区精品专区| 午夜宅男久久久| 国产精品私人影院| 午夜精品www| 午夜精品久久久久久99热软件| 欧美色欧美亚洲另类二区| 亚洲美女少妇无套啪啪呻吟| 欧美成人69av| 欧美乱妇高清无乱码| 亚洲精品影院| 日韩午夜中文字幕| 欧美日精品一区视频| 国产在线观看一区| 久久在线观看视频| 久久午夜影视| 亚洲精品一二区| 亚洲色诱最新| 国产亚洲精品高潮| 亚洲人被黑人高潮完整版| 国产精品美女999| 玖玖视频精品| 欧美日韩国产美| 久久久国际精品| 欧美片在线播放| 久久噜噜噜精品国产亚洲综合| 久久综合精品国产一区二区三区| 亚洲精品日本| 久久精品99国产精品| 一区二区免费在线观看| 欧美在线综合| 亚洲砖区区免费| 欧美国内亚洲| 欧美aⅴ一区二区三区视频| 国产精品国产三级国产a| 亚洲国产精品成人| 在线日韩av永久免费观看| 国产欧美一区二区三区久久人妖 | 美女网站久久| 亚洲欧美日韩一区二区在线| 久久久久久久精| 久久精品噜噜噜成人av农村| 国产精品久久久久久久久久久久久久 | 日韩午夜一区| 免费日韩成人| 亚洲福利视频一区二区| 激情综合色丁香一区二区| 亚洲欧美春色| 久久激情视频免费观看| 国产一区二区三区高清在线观看| 亚洲性视频网址| 亚洲欧洲99久久| 国产精品一区一区| 午夜精品久久99蜜桃的功能介绍| 欧美在线999| 亚洲福利视频一区| 欧美成人精品在线观看| 亚洲欧洲中文日韩久久av乱码| 日韩亚洲不卡在线| 国产伦精品免费视频| 久久婷婷国产综合尤物精品| 欧美电影在线播放| 亚洲午夜激情在线| 国产日韩精品一区二区| 性欧美大战久久久久久久免费观看| 麻豆国产精品va在线观看不卡| 国产精品一区二区女厕厕| 亚洲天堂av综合网| 久久人体大胆视频| 亚洲一区国产一区| 在线观看国产日韩| 国产精品igao视频网网址不卡日韩| 午夜精品美女久久久久av福利| 欧美成人影音| 久久一区二区三区四区| 一区二区三区四区国产精品| 国产一区在线视频| 久久躁日日躁aaaaxxxx| 亚洲欧美久久久久一区二区三区| 精东粉嫩av免费一区二区三区| 欧美日韩亚洲视频一区|