計算機網絡學習筆記day4

協議的概念

  1. 什麼是協議
      web

       從應用的角度出發,協議可理解爲「規則」,是數據傳輸和數據的解釋的規則。 假設,A、B雙方欲傳輸文件。規定:
      第一次,傳輸文件名,接收方接收到文件名,應答OK給傳輸方;   第二次,發送文件的尺寸,接收方接收到該數據再次應答一個OK;
      第三次,傳輸文件內容。一樣,接收方接收數據完成後應答OK表示文件內容接收成功。
      由此,不管A、B之間傳遞何種文件,都是經過三次數據傳輸來完成。A、B之間造成了一個最簡單的數據傳輸規則。雙方都按此規則發送、接收數據。A、B之間達成的這個相互遵照的規則即爲協議。
      這種僅在A、B之間被遵照的協議稱之爲原始協議。當此協議被更多的人採用,不斷的增長、改進、維護、完善。最終造成一個穩定的、完整的文件傳輸協議,被普遍應用於各類文件傳輸過程當中。該協議就成爲一個標準協議。最先的ftp協議就是由此衍生而來。shell

     TCP協議注重數據的傳輸。http協議着重於數據的解釋。
      設計模式

  2. 典型協議

  傳輸層 常見協議有TCP/UDP協議。
  應用層 常見的協議有HTTP協議,FTP協議。
  網絡層 常見協議有IP協議、ICMP協議、IGMP協議。
  網絡接口層 常見協議有ARP協議、RARP協議。瀏覽器


  • TCP傳輸控制協議(Transmission Control Protocol)是一種面向鏈接的、可靠的、基於字節流的傳輸層通訊協議。
  • UDP用戶數據報協議(User DatagramProtocol)是OSI參考模型中一種無鏈接的傳輸層協議,提供面向事務的簡單不可靠信息傳送服務。
  • HTTP超文本傳輸協議(HyperText Transfer Protocol)是互聯網上應用最爲普遍的一種網絡協議。 FTP文件傳輸協議(File TransferProtocol) IP協議是因特網互聯協議(Internet Protocol)
  • ICMP協議是Internet控制報文協議(Internet Control MessageProtocol)它是TCP/IP協議族的一個子協議,用於在IP主機、路由器之間傳遞控制消息
  • IGMP協議是 Internet組管理協議(Internet Group Management Protocol),是因特網協議家族中的一個組播協議。該協議運行在主機和組播路由器之間。
  • ARP協議是正向地址解析協議(AddressResolution Protocol),經過已知的IP,尋找對應主機的MAC地址。
  • RARP是反向地址轉換協議,經過MAC地址肯定IP地址。

網絡應用程序設計模式

  1. C/S模式
      傳統的網絡應用設計模式,客戶機(client)/服務器(server)模式。須要在通信兩端各自部署客戶機和服務器來完成數據通訊。
  2. B/S模式
      瀏覽器()/服務器(server)模式。只需在一端部署服務器,而另一端使用每臺PC都默認配置的瀏覽器便可完成數據的傳輸。

優缺點:
  1. cs優缺點:
    優勢: 1. 協議選用靈活。 2. 能夠緩存數據。
    缺點: 1. 對用戶的安全構成威脅 2. 開發工做量較大,調試困難
  2. bs優缺點:
   優勢:1. 安全不會侵犯用戶隱私 2.開發工做量小 3. 跨平臺性好
   缺點: 1. 協議選擇 必需完整支持HTTP協議 2. 不能緩存數據
  緩存

  對於C/S模式來講,其優勢明顯。客戶端位於目標主機上能夠保證性能,將數據緩存至客戶端本地,從而提升數據傳輸效率。且,通常來講客戶端和服務器程序由一個開發團隊創做,因此他們之間所採用的協議相對靈活。能夠在標準協議的基礎上根據需求裁剪及定製。例如,騰訊公司所採用的通訊協議,即爲ftp協議的修改剪裁版。
  所以,傳統的網絡應用程序及較大型的網絡應用程序都首選C/S模式進行開發。如,知名的網絡遊戲魔獸世界。3D畫面,數據量龐大,使用C/S模式能夠提早在本地進行大量數據的緩存處理,從而提升觀感。
  C/S模式的缺點也較突出。因爲客戶端和服務器都須要有一個開發團隊來完成開發。工做量將成倍提高,開發週期較長。另外,從用戶角度出發,須要將客戶端安插至用戶主機上,對用戶主機的安全性構成威脅。這也是不少用戶不肯使用C/S模式應用程序的重要緣由。安全

  B/S模式相比C/S模式而言,因爲它沒有獨立的客戶端,使用標準瀏覽器做爲客戶端,其工做開發量較小。只需開發服務器端便可。另外因爲其採用瀏覽器顯示數據,所以移植性很是好,不受平臺限制。如早期的偷菜遊戲,在各個平臺上均可以完美運行。
B/S模式的缺點也較明顯。因爲使用第三方瀏覽器,所以網絡應用支持受限。另外,沒有客戶端放到對方主機上,緩存數據不盡如人意,從而傳輸數據量受到限制。應用的觀感大打折扣。第三,必須與瀏覽器同樣,採用標準http協議進行通訊,協議選擇不靈活。
所以在開發過程當中,模式的選擇由上述各自的特色決定。根據實際需求選擇應用程序設計模式。服務器


分層模型

  1. OSI七層模型
    這裏寫圖片描述

  • 物、數、網、傳、會、表、應。
    1. 物理層: 主要定義物理設備標準,如網線的接口類型、光纖的接口類型、各類傳輸介質的傳輸速率等。它的主要做用是傳輸比特流(就是由一、0轉化爲電流強弱來進行傳輸,到達目的地後再轉化爲一、0,也就是咱們常說的數模轉換與模數轉換)。這一層的數據叫作比特。
    2. 數據鏈路層: 定義瞭如何讓格式化數據以幀爲單位進行傳輸,以及如何讓控制對物理介質的訪問。這一層一般還提供錯誤檢測和糾正,以確保數據的可靠傳輸。如:串口通訊中使用到的115200、八、N、1
    3. 網絡層: 在位於不一樣地理位置的網絡中的兩個主機系統之間提供鏈接和路徑選擇。Internet的發展使得從世界各站點訪問信息的用戶數大大增長,而網絡層正是管理這種鏈接的層。
    4. 傳輸層: 定義了一些傳輸數據的協議和端口號(WWW端口80等),如:TCP(傳輸控制協議,傳輸效率低,可靠性強,用於傳輸可靠性要求高,數據量大的數據),UDP(用戶數據報協議,與TCP特性偏偏相反,用於傳輸可靠性要求不高,數據量小的數據,如QQ聊天數據就是經過這種方式傳輸的)。 主要是將從下層接收的數據進行分段和傳輸,到達目的地址後再進行重組。經常把這一層數據叫作段。
    5. 會話層: 經過傳輸層(端口號:傳輸端口與接收端口)創建數據傳輸的通路。主要在你的系統之間發起會話或者接受會話請求(設備之間須要互相認識能夠是IP也能夠是MAC或者是主機名)。
    6. 表示層: 可確保一個系統的應用層所發送的信息能夠被另外一個系統的應用層讀取。例如,PC程序與另外一臺計算機進行通訊,其中一臺計算機使用擴展二一十進制交換碼(EBCDIC),而另外一臺則使用美國信息交換標準碼(ASCII)來表示相同的字符。若有必要,表示層會經過使用一種通格式來實現多種數據格式之間的轉換。
    7. 應用層: 是最靠近用戶的OSI層。這一層爲用戶的應用程序(例如電子郵件、文件傳輸和終端仿真)提供網絡服務。

TCP/IP四層模型

  TCP/IP網絡協議棧分爲應用層(Application)、傳輸層(Transport)、網絡層(Network)和鏈路層(Link)四層。以下圖所示:
  這裏寫圖片描述網絡

通訊過程

  兩臺計算機經過TCP/IP協議通信的過程以下所示:
這裏寫圖片描述
傳輸到主機2後再先去除幀頭幀尾,再依次去除段首包頭,將數據還原tcp

  上圖對應兩臺計算機在同一網段中的狀況,若是兩臺計算機在不一樣的網段中,那麼數據從一臺計算機到另外一臺計算機傳輸過程當中要通過一個或多個路由器,以下圖所示:
  這裏寫圖片描述
  路由表的路由信息:會記錄當前路由器鏈接了那些路由器,數據包裏會封裝上目標的MAC地址
  TCP協議尋路通常只發生一次,發送成功一次以後,每次不用再從新尋路,直接按照原來到達目的地的通路發送。
  UDP協議每次都要從新尋路。svg

以太網幀格式

以太網的幀格式以下所示:
這裏寫圖片描述
用類型爲0806的ARP請求探路,獲得目的地址的MAC而後再傳回來。

  其中的源地址和目的地址是指網卡的硬件地址(也叫MAC地址),長度是48位,是在網卡出廠時固化的。可在shell中使用ifconfig命令查看,「HWaddr
00:15:F2:14:9E:3F」部分就是硬件地址。協議字段有三種值,分別對應IP、ARP、RARP。幀尾是CRC校驗碼。
  以太網幀中的數據長度規定最小46字節,最大1500字節,ARP和RARP數據包的長度不夠46字節,要在後面補填充位。最大值1500稱爲以太網的最大傳輸單元(MTU),不一樣的網絡類型有不一樣的MTU,若是一個數據包從以太網路由到撥號鏈路上,數據包長度大於撥號鏈路的MTU,則須要對數據包進行分片(fragmentation)。ifconfig命令輸出中也有「MTU:1500」。注意,MTU這個概念指數據幀中有效載荷的最大長度,不包括幀頭長度。


ARP數據報格式

  在網絡通信時,源主機的應用程序知道目的主機的IP地址和端口號,殊不知道目的主機的硬件地址,而數據包首先是被網卡接收到再去處理上層協議的,若是接收到的數據包的硬件地址與本機不符,則直接丟棄。所以在通信前必須得到目的主機的硬件地址。ARP協議就起到這個做用。源主機發出ARP請求,詢問「IP地址是192.168.0.1的主機的硬件地址是多少」,並將這個請求廣播到本地網段(以太網幀首部的硬件地址填FF:FF:FF:FF:FF:FF表示廣播),目的主機接收到廣播的ARP請求,發現其中的IP地址與本機相符,則發送一個ARP應答數據包給源主機,將本身的硬件地址填寫在應答包中。
  每臺主機都維護一個ARP緩存表,能夠用arp -a命令查看。緩存表中的表項有過時時間(通常爲20分鐘),若是20分鐘內沒有再次使用某個表項,則該表項失效,下次還要發ARP請求來得到目的主機的硬件地址。想想,爲何表項要有過時時間而不是一直有效?
ARP數據報的格式以下所示:
這裏寫圖片描述
目的以太網地址和目的IP地址都是下一跳的地址,最終的目的地址封裝在網絡層的IP協議中

用類型爲0806的ARP請求廣播探路,獲得下一跳目的地址的MAC而後再傳回來。
這裏寫圖片描述
尋路:
這裏寫圖片描述

IP段格式

這裏寫圖片描述

  IP數據報的首部長度和數據長度都是可變長的,但老是4字節的整數倍。對於IPv4,4位版本字段是4。4位首部長度的數值是以4字節爲單位的,最小值爲5,也就是說首部長度最小是4x5=20字節,也就是不帶任何選項的IP首部,4位能表示的最大值是15,也就是說首部長度最大是60字節。8位TOS字段有3個位用來指定IP數據報的優先級(目前已經廢棄不用),還有4個位表示可選的服務類型(最小延遲、最大?吐量、最大可靠性、最小成本),還有一個位老是0。總長度是整個數據報(包括IP首部和IP層payload)的字節數。每傳一個IP數據報,16位的標識加1,可用於分片和從新組裝數據報。3位標誌和13位片偏移用於分片。TTL(Time to live)是這樣用的:源主機爲數據包設定一個生存時間,好比64,每過一個路由器就把該值減1,若是減到0就表示路由已經太長了仍然找不到目的主機的網絡,就丟棄該包,所以這個生存時間的單位不是秒,而是跳(hop)。協議字段指示上層協議是TCP、UDP、ICMP仍是IGMP。而後是校驗和,只校驗IP首部,數據的校驗由更高層協議負責。IPv4的IP地址長度爲32位。

相關文章
相關標籤/搜索