國家標準化組織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協議族進行網絡通信時,會經過分層順序與對方進行通訊。發送端從應用層往下走,接受端則往應用層走,咱們以http舉例,首先做爲發送端的客戶端在應用層發出一個想看看某個web頁面的請求。接着爲了傳輸方便,在傳輸層把應用層收到的數據進行分割,並在各個報文上打上標記序號以及端口號後轉發給網絡層,在網絡層ip協議,增長通信目的地的mac地址後轉發給數據鏈路層。
而且發送端在層與層之間傳輸時,沒通過一層都會被打上該層所獨有的頭部信息,反而接收端在層與層之間一層層的把對應的首部消去。這種把數據包起來的方法叫作封裝。
ip協議就是將各類數據包傳輸給對方,其中最重要的就是知道目標機器的ip地址和mac地址。
ip地址就是指明瞭節點被分配的地址,mac地址時網卡所屬的固定地址。ip地址和mac地址進行配對,ip地址能夠變換,可是mac地址基本不會更改。多臺計算機通過多臺中專設備,中轉設備的mac地址來搜索下一個目標的。這時,會採用arp協議,一種地址解析的協議。
根據通訊對方的ip地址就能夠反差出對方的mac地址。
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
端口號:用來表示發送和接受進程,因爲ip層已經把ip數據報分配給tcp或udp(根據IP首部的協議字段值),所以tcp端口由tcp查看,udp端口由udp查看。端口號互相獨立。
校驗和:udp校驗和是一個端到端校驗和,她由發送端計算,而後由接收端驗證。其目的是爲了發現udp首部和數據在發送端到接收端的之間發生的任何改動
tcp報文首部的前20個字節時固定的,後面的字節時根據須要添加的。一個5個四字節段。
第一個4字節
第二個和第三個4字節
第四個4字節
第五個4字節
第一個4字節
第二個四字節
第三個四字節
第五個四字節:目的IP地址