<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      計算機網絡高頻面試題02、03

      02、TCP與UDP的聯系與區別

      TCP與UDP的聯系

      • TCP/IP協議集包括應用層,傳輸層,網絡層,網絡訪問層。
      • TCP/IP協議里,有兩個具有代表性的傳輸層協議,分別就是 TCP 和 UDP。

      TCP與UDP的區別

        TCP UDP
      可靠性 可靠 不可靠
      連接性 面向連接 無連接
      首部開銷 20字節 8字節
      報文 面向字節流 面向報文
      效率 傳輸效率低 傳輸效率高
      雙工性 全雙工 一對一、一對多、多對一、多對多
      流量控制 滑動窗口
      擁塞控制 慢開始、擁塞避免、快重傳、快恢復

      傳輸速度

      應用場景

      對效率要求低,對準確性要求高或者要求有連接的場景 對效率要求高,對準確性要求低

      TCP

      • TCP是面向連接的、可靠的流協議。它可以保證兩端通信主機之間的通信可達。TCP能夠正確處理在傳輸過程中的丟包、傳輸順序亂掉等異常情況。此外,TCP還能夠有效利用帶寬,緩解網絡擁堵。
      • TCP為了建立與斷開連接,正常過程至少需要來回發送7個包才能完成
      • TCP用于在傳輸層有必要實現可靠傳輸的情況。由于它是面向有連接并具備順序控制、重發控制等機制的,所以它可以為應用提供可靠傳輸。
      • TCP只能是一對一通信。

      UDP

      • UDP面向無連接,是不具有可靠性的數據報協議。在UDP的情況下,雖然可以確保發送消息的大小,卻不能保證消息一定會到達。
      • UDP主要用于那些對高速傳輸和實時性有較高要求的通信或廣播通信。
      • UDP支持一對一,一對多,多對一和多對多交互通信。

      03、網絡字節序與主機字節序的轉換函數實踐。

      • 主機字節序,即CPU存儲數據時采用的字節順序。不同的CPU設計時采用的字節序是不同的,談到字節序的問題,必然牽涉到兩大CPU派系。那就是Motorola的PowerPC系列CPU和Intel的x86與x86_64(該指令集由AMD率先設計推出)系列CPU。PowerPC系列采用big endian方式存儲數據,而x86與x86_64系列則采用little endian方式存儲數據。平常大多數PC與服務器如果使用的是Intel與AMD CPU,一般都是little endian。

      • 網絡字節序,是TCP/IP中規定好的一種數據表示格式,它與具體的CPU類型、操作系統等無關,從而可以保證數據在不同主機之間傳輸時能夠被正確解釋。網絡字節順序采用big endian排序方式。

      網絡字節序與主機字節序的相互轉換

      • 常用系統調用

        Linux socket網絡編程中,經常會使用下面四個C標準庫函數進行字節序間的轉換。

      #include <arpa/inet.h>
      
      uint32_t htonl(uint32_t hostlong);        //把uint32_t類型從主機序轉換到網絡序
      uint16_t htons(uint16_t hostshort);        //把uint16_t類型從主機序轉換到網絡序
      uint32_t ntohl(uint32_t netlong);        //把uint32_t類型從網絡序轉換到主機序
      uint16_t ntohs(uint16_t netshort);        //把uint16_t類型從網絡序轉換到主機序
      • 64位數值的轉換

      //主機序轉網絡序
      unsigned long long htonll(unsigned long long val)
      {
          if(__BYTE_ORDER == __LITTLE_ENDIAN)  
          {
               return (((unsigned long long )htonl((int)((val << 32) >> 32))) << 32) | (unsigned int)htonl((int)(val >> 32));  
          }  
          else if (__BYTE_ORDER == __BIG_ENDIAN)  
          {  
               return val;  
          }  
      }  
      
      //網絡序轉主機序
      unsigned long long ntohll(unsigned long long val)  
      {  
          if (__BYTE_ORDER == __LITTLE_ENDIAN)
          {
              return (((unsigned long long )ntohl((int)((val << 32) >> 32))) << 32) | (unsigned int)ntohl((int)(val >> 32));  
          }  
          else if (__BYTE_ORDER == __BIG_ENDIAN)  
          {  
              return val;  
          }
       }
      • 實踐

      #include <arpa/inet.h>
      
      uint32_t htonl(uint32_t hostlong);//<主機字節序轉換位網絡字節序32,轉換IP地址時用>
      uint16_t htons(uint16_t hostshort);//<主機字節序16位轉換為網絡字節序16位,轉換端口時用>
      
      uint32_t ntohl(uint32_t netlong);//<網絡字節序32位轉換為主機字節序32,讀的時候會涉及>
      uint16_t ntohs(uint6_t netshort)//<網絡字節序16位轉換位16位主機字節序,同上>
      
      //IP地址轉換函數;
      #include <arpa/inet.h>
      int inet_pton(int af,const charsrc,chardst);//192.168.1.24----->網絡字節序
      const char* inet_ntop(int af,const voidsrc,char dst,socklen_tsize);//網絡字節序—》點分十進制字符串IP;
      //參數af:如果時IPv4,選AF_INET,IPV6選擇AF_INET6;

      轉載:https://blog.csdn.net/K346K346/article/details/79053136

      posted @ 2022-10-09 00:11  酷i  閱讀(138)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 亚洲人妻精品中文字幕| 午夜福利国产精品视频| 99久久精品国产一区二区暴力| 国产精品无码av在线一区| 国模肉肉视频一区二区三区| 精品无码一区在线观看| 久久久久久无码午夜精品直播| 亚洲色偷偷色噜噜狠狠99| 日韩欧美aⅴ综合网站发布| 亚洲精品成人片在线观看精品字幕| 国产日韩av免费无码一区二区三区| 一区二区三区国产偷拍| 成人午夜福利视频一区二区| 不卡乱辈伦在线看中文字幕| 疯狂做受xxxx高潮欧美日本| 精品视频不卡免费观看| 一区二区三区国产亚洲网站| 国产一区二区不卡91| 精品久久久久久无码专区不卡| 亚洲中文字幕无码av永久| 久久人人97超碰精品| 亚洲精品国产字幕久久麻豆| 老妇xxxxx性开放| 激情国产一区二区三区四| 国产午夜福利视频合集| 亚洲精品中文字幕二区| 国产精品自在自线视频| 亚洲av激情久久精品人| 精品尤物TV福利院在线网站| 污网站在线观看视频| 久久精品国产99麻豆蜜月| 国产性生大片免费观看性| 美乳丰满人妻无码视频| 日韩亚av无码一区二区三区| 国产精品剧情亚洲二区| 国产精品福利自产拍久久| 激情综合色综合久久综合| 国产乱码日韩精品一区二区| 麻豆成人精品国产免费| 精品成在人线av无码免费看| 亚洲av日韩av一区久久|