引子
實現不同地點的通訊,有不同的標准,那么為了統一,所以大家就制定了統一的標准:英語。
Internet
實際上就是統一的標准,稱為互聯網協議(Internet Protocol Suite)。
互聯網協議的功能:定義計算機如何接入Internet
,以及接入interne
t的計算機通信的標准。
互聯網協議按照功能不同分為tcp/ip四層或tcp/ip五層或osi七層 :
用戶接觸的是最上面的應用層,越往下越接近硬件。
每層運行常見物理設備 :
它從低到高分別是:物理層、數據鏈路層、網絡層、傳輸層、會話層、表示層和應用層。(物數網傳會表應)
物理層(Physical Layer)是計算機網絡OSI模型中最低的一層。物理層規定:為傳輸數據所需要的物理鏈路創建、維持、拆除,而提供具有機械的,電子的,功能的和規范的特性。簡單的說,物理層確保原始的數據可在各種物理媒體上傳輸。
簡單理解:硬件基礎,包括網卡、光纖等;主要是基於電器特性發送高低電壓(電信號),高電壓對應數字1,低電壓對應數字0 。
數據鏈路層
數據鏈路層由來:單純的電信號0和1沒有任何意義,必須規定電信號多少位一組,每組什么意思
數據鏈路層的功能:定義了電信號的分組方式(以太網協議、mac地址、廣播 )
數據鏈路層實現的三大功能分別為:(1) 封裝成幀、(2) 透明傳輸、(3) 差錯控制
網絡層
作用:提供路由和尋址的功能,使兩終端系統能夠互連且決定最佳路徑,並具有一定的擁塞控制和流量控制的能力。相當於發送郵件時需要地址一般重要。
由於TCP/IP協議體系中的網絡層功能由IP協議規定和實現,故又稱IP層。
傳輸層
傳輸層的主要功能: 為端到端連接提供可靠的傳輸服務,為端到端連接提供流量控制,差錯控制,服務質量(Quality of Service,QoS)等管理服務,具有傳輸層功能的協議:TCP 、SPX 、NetBIOS
會話層
會話層(Session Layer)負責在數據傳輸中設置和維護計算機網絡中兩台計算機之間的通信連接。 主要為兩個會話層實體進行會話(Session),而進行的對話連接的管理服務。
表達層
表達層(Presentation Layer)把數據轉換為能與接收者的系統格式兼容並適合傳輸的格式。 為不同終端的上層用戶提供數據和信息正確的語法表示變換方法。如文本文件的ASCII格式和EBCDIC,用於表示數字的1S或2S補碼表示形式。
應用層
應用層(Application Layer)提供為應用軟件而設的接口,以設置與另一應用軟件之間的通信。例如: HTTP,HTTPS,FTP,TELNET,SSH,SMTP,POP3等。
數據傳輸過程
五層模型實際上把OSI七層簡化:將應用層、表示層和會話層 合並為應用層。
TCP/IP體系結構的優點:
-
結構簡化,7層變成4層,但是功能沒有減少
-
每一層獨立有聯系,獨立是指那一層出現問題不會影響到其它層的工作,聯系是因為上層又使用下層協議提供的服務。
功能:實現了網卡接口的網絡驅動程序,以處理數據在物理媒介(如以太網、令牌環等)上的傳輸。
常用協議:
(1)ARP(地址解析協議):它實現IP地址到物理地址(通常是MAC地址,通俗的理解就是網卡地址)的轉換。
(2)RARP(逆地址解析協議):顧名思義,它和ARP是相反的,它是實現從物理地址到IP地址的轉換。
那有人就會問它們的用途是什么呢???
ARP用途:網絡層使用IP地址尋找一台機器,而數據鏈路層則是使用物理地址尋找一台機器,因此網絡層必須先將目標機器的IP地址轉化成物理地址,才能使用數據鏈路層提供的服務。
RARP用途:RARP協議僅用於網絡上的某些無盤工作站,因為缺少儲存設備,無盤工作站無法記錄自己的IP地址,然而通過RARP就可以看到從物理地址到IP地址的映射。
2、網絡層
功能:實現數據包的選路和轉發。
常用協議:
(1)IP協議(英特網協議)據數據包的目的IP地址來決定如何將它發送給目標主機。如果數據包不能直接發送給目標主機,那么IP協議為它尋找一個合適的下一跳路由器,將數據包交給路由器來轉發,多次之后數據包將到達目標主機,或者因發送失敗而被丟棄。
(2)ICMP協議是網絡層的另一個重要協議,它是IP協議的重要補充,主要用於檢測網絡連接。
8位類型:將ICMP報文分為兩大類:一類是差錯報文,比如目標不可達(類型值為3)和重定向(類型值為5);另一類是查詢報文,用來查詢網絡信息。
有的ICMP報文還用8位代碼字段細分不同的條件。比如代碼值0表示網絡重定向,代碼值1表示主機重定向。
16位校驗和:對整個報文(包括頭部和內容部分)進行循環冗余校驗(CRC)。
注意:ICMP協議並非嚴格意義上的網絡層協議,因為它使用了處於同一層的IP協議提供的服務,而一般來說,上層協議使用下層協議提供的服務。
3、傳輸層
功能:為兩台主機上的應用程序提供端到端的通信。與網絡層使用的逐跳通信方式不同,傳輸層只關心通信的起始端和目的端,而不在乎數據包的中轉過程。
主要協議:
(1)TCP協議(傳輸控制協議):為應用層提供可靠的、面向連接的和流式服務。
(2)UDP協議(用戶數據報協議):為應用層提供不可靠的、無連接的和數據報服務。(TCP和UDP協議的詳解和區別將在下一篇詳講)
(3)SCTP協議(流控制傳輸協議)它是為在英特網上傳輸電話信號而設計的,這里不再細說。
4、應用層
功能:負責處理應用程序的邏輯,比如文件傳輸,名稱查詢和網絡管理等。
注意:數據鏈路層、網絡層、傳輸層復制處理網絡通信 細節,所以這些部分必須穩定且高效,因此它們都在內核空間實現(如上圖二),而應用層在用戶空間中實現,因為它負責眾多邏輯,在內核中實現的話,則會使內核變得非常龐大。也有少數服務器程序是在內核中實現,這樣代碼就不用在用戶空間和內核空間中來回切換(主要是數據的復制)提高了工作效率。
常用協議:
(1)OSPF(開放最短路徑優先)協議:是一種動態路由更新協議,用於路由器之間的通信,以告知對方各自的路由信息。
(2)DNS(域名服務)協議:提供機器域名到IP地址的轉換。
(3)telnet協議是一種遠程登陸協議,使我們能在本地完成遠程任務。
(4)HTTP協議(超文本傳輸協議)是一個基於請求與響應模式的、無狀態的、應用層的協議,常基於TCP的連接方式。
數據封裝以后:
應用層一個數據從一台主機應用程序上發出后,
傳輸層根據協議選擇傳輸方式,如選擇TCP協議,則在數據前面加上自己的頭部,
到達網絡層后,網絡層又選擇協議,再加上自己的頭部信息交給下一層,
再到數據鏈路層后加上以太網頭部后成為一個以太網幀,經過路由轉發,到達目標主機后有一層層的根據頭部信息選擇協議,然后去掉各自的頭部,一層層的交給上一層,最終到達目標主機的應用程序上。