七層網絡模型

概念

國家標準化組織ISO指定的一個計算機互聯的標準。open system interconnection。
七層:安全

1.應用層:網絡服務與最終用戶的一個接口。協議有:http,ftp,tftp,smtp,dns,telnets,dhcp網絡

2.表示層:數據的表示,安全和壓縮。在五層網絡模型中已經被合併到應用層。例如jpeg,ascii等。tcp

3.會話層:創建,管理,終止會話,在五層模型裏面已經合併到了應用層。
以上三個統一爲應用層。3d

4.傳輸層:定義傳輸協議的協議端口號,以及流控和差錯校驗。協議有:tcp,udp,數據包一旦離開網卡即進入網絡傳輸層。指針

5.網絡層:進行邏輯地址的尋址,實現不一樣的網絡之間的路徑選擇。協議有icmp,igmp,arp,rarp。code

6.數據鏈路層:創建邏輯連接,進行硬件地址的尋址,差錯校驗等功能。將比特組合成字節而後組合成幀,用mac地址訪問介質,錯誤發現可是不能糾正。server

7.物理層:創建,維護,斷開物理連接。tcp/ip層級模型結構,應用層之間的協議經過逐級調用傳輸層,網絡鏈路層和物理數據鏈路層,而能夠實現應用層之間的應用程序通信互聯。blog

應用層須要關心應用程序的邏輯細節,而不是數據在網絡中的傳輸活動。應用層其下三層則處理真正的通訊細節。在整個internet的整個發展過程當中全部的思想和重點都以一種rfc(request for comments)的文檔格式存在,針對每一種特定的tcp/ip應用,都有相應的rfc文檔。
一些典型的tcp/ip應用有ftp,telnet,smtp等,rfc使一些基本相同的tcp/ip 協議應用程序實現了標準化,從而使得不一樣的廠家開發的應用程序能夠互相連通。
-------------
tcp/ip是一個協議簇,由許多的協議組成,而http屬於tcp/ip協議簇。
應用層包含應用層,表示層,會話層。傳輸層同等與傳輸層。網絡層同等與網絡層。數據鏈路層和物理層數據鏈路層。dns

osi七層網絡模型 tcp/ip四層網絡模型 對應的協議 描述
1應用層Application 1應用層 HTTP、TFTP, FTP, NFS, WAIS、SMTP
2表示層Presentation 1 Telnet, Rlogin, SNMP, Gopher
3會話層Session 1 SMTP, DNS
4傳輸層Transport 4傳輸層 tcp,udp,sctp,rtp
5網絡層Network 5網絡層 IP(網際協議)、ARP(地址解析協議)、RARP(逆地址解析協議)
6數據鏈路層Data Link 6數據鏈路層 FDDI, Ethernet, Arpanet, PDN, SLIP, PPP
7物理層Physical 6 IEEE 802.1A, IEEE 802.2到IEEE 802.11

tcp/ip如何通訊

利用tcp/ip協議族進行網絡通信時,會經過分層順序與對方進行通訊。發送端從應用層往下走,接受端則往應用層走,咱們以http舉例,首先做爲發送端的客戶端在應用層發出一個想看看某個web頁面的請求。接着爲了傳輸方便,在傳輸層把應用層收到的數據進行分割,並在各個報文上打上標記序號以及端口號後轉發給網絡層,在網絡層ip協議,增長通信目的地的mac地址後轉發給數據鏈路層。
而且發送端在層與層之間傳輸時,沒通過一層都會被打上該層所獨有的頭部信息,反而接收端在層與層之間一層層的把對應的首部消去。這種把數據包起來的方法叫作封裝。

ip傳輸的協議

ip協議就是將各類數據包傳輸給對方,其中最重要的就是知道目標機器的ip地址和mac地址。
ip地址就是指明瞭節點被分配的地址,mac地址時網卡所屬的固定地址。ip地址和mac地址進行配對,ip地址能夠變換,可是mac地址基本不會更改。多臺計算機通過多臺中專設備,中轉設備的mac地址來搜索下一個目標的。這時,會採用arp協議,一種地址解析的協議。
根據通訊對方的ip地址就能夠反差出對方的mac地址。

確保可靠的tcp協議

tcp位於傳輸層,提供可可靠的字節流服務。所謂字節流服務就是將大塊的數據切割成報文段爲單位的數據進行管理。
三次握手中,syn和ack,發送端首先會發送一個帶syn標誌的數據包給對方。接收端收到後,回傳以一個帶有syn/ack標誌的數據包,表明握手結束。若在握手過程當中莫名中斷,tcp會再次以相同的順序發送相同的數據包。

  • 三次握手
sequenceDiagram
發送端->>接收端: 標有syn的數據包發給你了
接收端->>發送端: 收到,且發送你標有syn/ack的數據包
發送端->>接收端: 發送標有ack的數據包了
  • 三次握手連接,四次握手斷開連接
sequenceDiagram
client->>server: SYN
server->>client: SYN/ACK
client->>server: ACK
client->>server: HTTP請求
server->>client: HTTP相應
server->>client: FIN
client->>server: ACK
client->>server: FIN
server->>client: ACK

UDP報文段首部

  • udp是無鏈接的,即發送以前不須要創建連接。
  • udp盡最大的努力交付。可是不保證可靠交付,也沒有擁塞控制。
  • udp是面向報文的。udp沒有擁塞控制,很適合多媒體通訊的要求。
  • udp支持一對一,一對多,多對一,多對多的交互通訊。
  • udp的首部開銷小,只有8個字節
  1. 端口號:用來表示發送和接受進程,因爲ip層已經把ip數據報分配給tcp或udp(根據IP首部的協議字段值),所以tcp端口由tcp查看,udp端口由udp查看。端口號互相獨立。

  2. 長度:udp長度字段指的是udp首部和udp數據的長度。該字段的最小值位8字節,發送一份0字節的udp數據報是OK
  3. 校驗和:udp校驗和是一個端到端校驗和,她由發送端計算,而後由接收端驗證。其目的是爲了發現udp首部和數據在發送端到接收端的之間發生的任何改動

TCP報文段首部

tcp報文首部的前20個字節時固定的,後面的字節時根據須要添加的。一個5個四字節段。

  • 第一個4字節

    • 源端口16位
    • 目標端口16位
  • 第二個和第三個4字節

    • 序號,32位;當前tcp數據段第一個字節佔整個字節流的相對位置。
    • 確認號,32位;表明接收端但願接受的數據序號,上次接受到的數據包的序號+1,當ack標誌爲1時生效。
  • 第四個4字節

    • 數據偏移,4位,表明tcp首部長度,最大位60字節
    • 6個標誌位,每一個標誌位佔1位
      • SYN,爲同步標誌,用於數據同步;
      • ACK,爲確認序號,ACK=1時確認號纔有效;
      • FIN,爲結束序號,用於發送端提出斷開鏈接;
      • URG,爲緊急序號,URG=1是緊急指針有效;
      • PSH,指示接收方當即將數據提交給應用層,而不是等待緩衝區滿;
      • RST,重置鏈接。
  • 第五個4字節

    • 校驗和,16位,用於校驗數據的完整性
    • 緊急指針,16位,只有當URG標識位爲1時,緊急指針纔有效。緊急指針的值和序號的相加值爲緊急數據的的最後一個字節位置。用於發送緊急數據。

IP報文段首部

  • 第一個4字節

    • 版本號(Version),4位;用於標識IP協議版本,IPv4是0100,IPv6是0110,也就是二進制的4和6
    • 首部長度(Internet Header Length),4位;用於標識首部的長度,單位爲4字節,因此首部長度最大值爲:(2^4 - 1) * 4 = 60字節,但通常只推薦使用20字節的固定長度。
    • 服務類型(Type Of Service),8位;用於標識IP包的優先級,但如今並未使用
    • 總長度(Total Length),16位;標識IP數據報的總長度,最大爲:2^16 -1 = 65535字節。
  • 第二個四字節

    • 標識(Identification),16位;用於標識IP數據報,若是由於數據鏈路層幀數據段長度限制(也就是MTU,支持的最大傳輸單元),IP數據報須要進行分片發送,則每一個分片的IP數據報標識都是一致的。
    • 標誌(Flag),3位,但目前只有2位有意義;最低位爲MF,MF=1表明後面還有分片的數據報,MF=0表明當前數據報已經是最後的數據報。次低位爲DF,DF=1表明不能分片,DF=0表明能夠分片。
    • 片偏移(Fragment Offset),13位;表明某個分片在原始數據中的相對位置
  • 第三個四字節

    • 生存時間(TTL),8位;之前表明IP數據報最大的生存時間,如今標識IP數據報能夠通過的路由器數
    • 協議(Protocol),8位;表明上層傳輸層協議的類型,1表明ICMP,2表明IGMP,6表明TCP,17表明UDP。
    • 校驗和(Header Checksum),16位;用於驗證數據完整性,計算方法爲,首先將校驗和位置零,而後將每16位二進制反碼求和即爲校驗和,最後寫入校驗和位置。
  • 第四個四字節:源IP地址
  • 第五個四字節:目的IP地址

以太網的幀

  1. 以太網幀中的數據長度規定最小46字節,最大1500字節。arp和rarp數據包的長度不夠46字節,要在後面補填充位,最大值1500稱爲以太網的最大大傳輸單元MTU,不一樣的網絡類型有不一樣的MTU。若是一個數據包從以太網路由到撥號電路上,數據包長度大於撥號鏈路的MTU,則須要對數據包進行分片了。
  2. ifconfig命令輸出的」MTU:1500「,這個概念中指數據幀中的有效載荷的最大長度,不包括幀首部長度。
  3. MAC地址值網卡的硬件地址。長度時48位。時網卡出廠時固化的。用ifconfig命令查看一下,「HWaddr 00:15:F2:14:9E:3F」,部分就時硬件地址。

相關文章
相關標籤/搜索