乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      傳輸層------IP報(bào)文結(jié)構(gòu)

       chenc_lib 2014-04-24
      1、TCP數(shù)據(jù)段格式
        
        TCP是一種可靠的、面向連接的字節(jié)流服務(wù)。源主機(jī)在傳送數(shù)據(jù)前需要先和目標(biāo)主機(jī)建立連接。然后,在此連接上,被編號(hào)的數(shù)據(jù)段按序收發(fā)。同時(shí),要求對(duì)每個(gè)數(shù)據(jù)段進(jìn)行確認(rèn),保證了可靠性。如果在指定的時(shí)間內(nèi)沒有收到目標(biāo)主機(jī)對(duì)所發(fā)數(shù)據(jù)段的確認(rèn),源主機(jī)將再次發(fā)送該數(shù)據(jù)段。
        
        如圖1所示,是TCP頭部結(jié)構(gòu)(RFC 793、1323)。
       
       
       

          圖1  TCP頭部結(jié)構(gòu)   
        ●源、目標(biāo)端口號(hào)字段:占16比特。TCP協(xié)議通過使用"端口"來標(biāo)識(shí)源端和目標(biāo)端的應(yīng)用進(jìn)程。端口號(hào)可以使用0到65535之間的任何數(shù)字。在收到服務(wù)請(qǐng)求時(shí),操作系統(tǒng)動(dòng)態(tài)地為客戶端的應(yīng)用程序分配端口號(hào)。在服務(wù)器端,每種服務(wù)在"眾所周知的端口"(Well-Know Port)為用戶提供服務(wù)。
        
        ●順序號(hào)字段:占32比特。用來標(biāo)識(shí)從TCP源端向TCP目標(biāo)端發(fā)送的數(shù)據(jù)字節(jié)流,它表示在這個(gè)報(bào)文段中的第一個(gè)數(shù)據(jù)字節(jié)。
        
        ●確認(rèn)號(hào)字段:占32比特。只有ACK標(biāo)志為1時(shí),確認(rèn)號(hào)字段才有效。它包含目標(biāo)端所期望收到源端的下一個(gè)數(shù)據(jù)字節(jié)。
        
        ●頭部長度字段:占4比特。給出頭部占32比特的數(shù)目。沒有任何選項(xiàng)字段的TCP頭部長度為20字節(jié);最多可以有60字節(jié)的TCP頭部。
        
        ●標(biāo)志位字段(U、A、P、R、S、F):占6比特。各比特的含義如下:
        
        ◆URG:緊急指針(urgent pointer)有效。
        
        ◆ACK:確認(rèn)序號(hào)有效。
        
        ◆PSH:接收方應(yīng)該盡快將這個(gè)報(bào)文段交給應(yīng)用層。
        
        ◆RST:重建連接。
        
        ◆SYN:發(fā)起一個(gè)連接。
        
        ◆FIN:釋放一個(gè)連接。
        
        ●窗口大小字段:占16比特。此字段用來進(jìn)行流量控制。單位為字節(jié)數(shù),這個(gè)值是本機(jī)期望一次接收的字節(jié)數(shù)。
        
        ●TCP校驗(yàn)和字段:占16比特。對(duì)整個(gè)TCP報(bào)文段,即TCP頭部和TCP數(shù)據(jù)進(jìn)行校驗(yàn)和計(jì)算,并由目標(biāo)端進(jìn)行驗(yàn)證。
        
        ●緊急指針字段:占16比特。它是一個(gè)偏移量,和序號(hào)字段中的值相加表示緊急數(shù)據(jù)最后一個(gè)字節(jié)的序號(hào)。
        
        ●選項(xiàng)字段:占32比特??赡馨?窗口擴(kuò)大因子"、"時(shí)間戳"等選項(xiàng)。
        
        2、UDP數(shù)據(jù)段格式
        

        UDP是一種不可靠的、無連接的數(shù)據(jù)報(bào)服務(wù)。源主機(jī)在傳送數(shù)據(jù)前不需要和目標(biāo)主機(jī)建立連接。數(shù)據(jù)被冠以源、目標(biāo)端口號(hào)等UDP報(bào)頭字段后直接發(fā)往目的主機(jī)。這時(shí),每個(gè)數(shù)據(jù)段的可靠性依靠上層協(xié)議來保證。在傳送數(shù)據(jù)較少、較小的情況下,UDP比TCP更加高效。

       圖2  UDP數(shù)據(jù)段格式   
        ●源、目標(biāo)端口號(hào)字段:占16比特。作用與TCP數(shù)據(jù)段中的端口號(hào)字段相同,用來標(biāo)識(shí)源端和目標(biāo)端的應(yīng)用進(jìn)程。
        
        ●長度字段:占16比特。標(biāo)明UDP頭部和UDP數(shù)據(jù)的總長度字節(jié)。
        
        ●校驗(yàn)和字段:占16比特。用來對(duì)UDP頭部和UDP數(shù)據(jù)進(jìn)行校驗(yàn)。和TCP不同的是,對(duì)UDP來說,此字段是可選項(xiàng),而TCP數(shù)據(jù)段中的校驗(yàn)和字段是必須有的

      3、IP報(bào)文段格式:


       
       
      普通的 IP 頭部長度為20 個(gè)字節(jié),不包含IP 選項(xiàng)字段。


      版本號(hào)(Version)字段標(biāo)明了IP 協(xié)議的版本號(hào),目前的協(xié)議版本號(hào)為4。下一代IP 協(xié)議的版本號(hào)為6。


      報(bào)文長度指 IP 包頭部長度,占4 位。


      8 位的服務(wù)類型(TOS,Type of Service)字段包括一個(gè)3 位的優(yōu)先權(quán)字段(COS,Class of Service),4 位TOS 字段和1 位未用位。4 位TOS 分別代表最小時(shí)延、最大吞吐量、最高可靠性和最小費(fèi)用。


      總長度(Total length)是整個(gè)IP 數(shù)據(jù)報(bào)長度,包括數(shù)據(jù)部分。


      標(biāo)識(shí)符(Identification)字段唯一地標(biāo)識(shí)主機(jī)發(fā)送的每一份數(shù)據(jù)報(bào)。通常每發(fā)送一份報(bào)文它的值就會(huì)加1.


      生存時(shí)間(TTL,Time to Live)字段設(shè)置了數(shù)據(jù)包可以經(jīng)過的路由器數(shù)目。一旦經(jīng)過一個(gè)路由器,TTL 值就會(huì)減1,當(dāng)該字段值為0 時(shí),數(shù)據(jù)包將被丟棄。


      協(xié)議字段確定在數(shù)據(jù)包內(nèi)傳送的上層協(xié)議,和端口號(hào)類似,IP 協(xié)議用協(xié)議號(hào)區(qū)分上層協(xié)議。TCP 協(xié)議的協(xié)議號(hào)為6,UDP 協(xié)議的協(xié)議號(hào)為17。


      報(bào)頭校驗(yàn)和(Head checksum)字段計(jì)算IP 頭部的校驗(yàn)和,檢查報(bào)文頭部的完整性。源IP 地址和目的IP 地址字段標(biāo)識(shí)數(shù)據(jù)包的源端設(shè)備和目的端設(shè)備。

      Linux下各數(shù)據(jù)報(bào)頭部結(jié)構(gòu)體定義:

      #ifndef LITTLE_ENDIAN
      #define LITTLE_ENDIAN   (1)   //BYTE ORDER
      #else
      #error Redefine LITTLE_ORDER
      #endif

      //Mac頭部,總長度14字節(jié)
      typedef struct _eth_hdr
      {
      unsigned char dstmac[6]; //目標(biāo)mac地址
      unsigned char srcmac[6]; //源mac地址
      unsigned short eth_type; //以太網(wǎng)類型
      }eth_hdr;

      //IP頭部,總長度20字節(jié)
      typedef struct _ip_hdr
      {
      #if LITTLE_ENDIAN
      unsigned char ihl:4;   //首部長度
      unsigned char version:4, //版本 
      #else
      unsigned char version:4, //版本
      unsigned char ihl:4;   //首部長度
      #endif
      unsigned char tos;   //服務(wù)類型
      unsigned short tot_len; //總長度
      unsigned short id;    //標(biāo)志
      unsigned short frag_off; //分片偏移
      unsigned char ttl;   //生存時(shí)間
      unsigned char protocol; //協(xié)議
      unsigned short chk_sum; //檢驗(yàn)和
      struct in_addr srcaddr; //源IP地址
      struct in_addr dstaddr; //目的IP地址
      }ip_hdr;

      //TCP頭部,總長度20字節(jié)
      typedef struct _tcp_hdr
      {
      unsigned short src_port;   //源端口號(hào)
      unsigned short dst_port;   //目的端口號(hào)
      unsigned int seq_no;    //序列號(hào)
      unsigned int ack_no;    //確認(rèn)號(hào)
      #if LITTLE_ENDIAN
      unsigned char reserved_1:4; //保留6位中的4位首部長度
      unsigned char thl:4;    //tcp頭部長度
      unsigned char flag:6;    //6位標(biāo)志
      unsigned char reseverd_2:2; //保留6位中的2位
      #else
      unsigned char thl:4;    //tcp頭部長度
      unsigned char reserved_1:4; //保留6位中的4位首部長度
      unsigned char reseverd_2:2; //保留6位中的2位
      unsigned char flag:6;    //6位標(biāo)志 
      #endif
      unsigned short wnd_size;   //16位窗口大小
      unsigned short chk_sum;   //16位TCP檢驗(yàn)和
      unsigned short urgt_p;    //16為緊急指針
      }tcp_hdr;

      //UDP頭部,總長度8字節(jié)
      typedef struct _udp_hdr
      {
      unsigned short src_port; //遠(yuǎn)端口號(hào)
      unsigned short dst_port; //目的端口號(hào)
      unsigned short uhl;   //udp頭部長度
      unsigned short chk_sum; //16位udp檢驗(yàn)和
      }udp_hdr;

      //ICMP頭部,總長度4字節(jié)
      typedef struct _icmp_hdr
      {
      unsigned char icmp_type;   //類型
      unsigned char code;    //代碼
      unsigned short chk_sum;   //16位檢驗(yàn)和
      }icmp_hdr;

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多