如下的內容和以後的幾篇博客只是比較初級的介紹,想要深刻學習的話建議本身鑽研《TCP/IP詳解 卷1:協議》
1.ISO/OSI七層模型
下四層是爲數據傳輸服務的,物理層是真正的傳輸數據的,數據鏈路層、網絡層、傳輸層主要是寫入對應數據的傳輸信息的
物理層:比特
設備之間的比特流的傳輸、物理接口、電氣特性
數據鏈路層:幀
保存的最主要的信息是網卡的 mac 地址,mac 地址負責局域網通訊的,發件人和收件人的mac 地址
mac地址的做用:儘管你是要在互聯網中傳輸數據(貌似須要IP地址就能夠了),可是在互聯網中傳輸數據實際上是經過在一個又一個的局域網進行依次傳遞,因此須要mac 地址
進行錯誤檢測和修正
網絡層:報文
保存的最主要的信息是 IP 地址,IP 地址是負責外網通訊的,發件人和收件人的IP 地址
選擇通路(路由器)
傳輸層:TPDU--傳輸協議數據單元
肯定端口號(IP是尋找互聯網中的哪一個電腦,端口是尋找電腦中的哪一個應用服務)
肯定傳輸協議是可靠的仍是不可靠的(UDP、TCP)
傳輸前的錯誤檢測
流量控制網絡
爲用戶提供服務的上三層
會話層:SPDU--會話協議數據單元
肯定網絡數據是否要經過遠程會話
好比你寫了一個word文檔,在保存以後(表示層完成格式轉化……)就會到達會話層,顯然判斷word文檔保存在本地便可,不須要進行網絡傳遞,因此直接交給硬盤進行存儲便可
可是你寫了一個郵件,點擊發送(表示層完成格式轉化……)就會到達會話層,顯然判斷郵件須要經過網絡進行傳輸,因此就會交給傳輸層進行處理
表示層:SPDU--表示協議數據單元
把你的數據進行數字化表示(把英文/中文/圖片/mp3……經過必定的規則翻譯成01 格式)
加密
壓縮
應用層:APDU--應用協議數據單元
給用戶提供服務的接口
2.TCP/IP四層網絡模型
上面所講到的ISO/OSI七層模型目前只是一個模型,在實際的網絡傳輸中其實並非這樣使用的,實際的網絡傳輸中使用的實際上是TCP/IP四層模型
網絡接口層、網際互連層、傳輸層、應用層學習
TCP/IP模型和ISO/OSI模型的對應(因此各層的功能參考ISO/OSI模型中各層的功能)
網絡接口層:對應物理層、數據鏈路層
負責監視數據在主機和網絡之間的交換。事實上,TCP/IP自己並無定義該層的協議,而由參與互連的各個網絡使用本身的物理層和數據鏈路層協議,而後與TCP/IP的網絡接入層進行連接
地址解析協議(ARP)工做在此層,即OSI參考模型的數據鏈路層:ARP就是將IP地址翻譯成mac 地址,由於在整個互聯網內傳輸須要IP 地址,可是在同一個網段以內(局域網)傳輸數據就不是使用IP 地址,而是須要使用mac 地址。
例如,在同一個局域網內傳輸數據,電腦點擊發送數據,而發送的目標是我同局域網內的另外一臺計算機,點擊以後數據就會發送到網線上,網線就會把你的請求發送到交換機上,交換機只能識別mac 地址,不認識IP地址
注意,局域網內部使用交換機,而在局域網之間的鏈接是經過路由器(路由器是用來進行跨網絡通訊的,在同一個網絡內通訊只須要交換機便可)
因此仍是須要再學習交換機、路由器等網絡設備及其做用、原理
網際互連層:對應網絡層
主要解決主機到主機的通訊問題。它所包含的協議設計數據包在整個網絡上的邏輯傳輸。
該層有三個主要協議:網際協議(IP)、互聯網組管理協議(IGMP)、互聯網控制報文協議(ICMP)
傳輸層:對應傳輸層
爲應用層實體提供端到端的通訊功能,保證了數據包的順序傳送及數據的完整性。
該層定義了兩個主要的協議:傳輸控制協議(TCP)、用戶數據報協議(UDP)。QQ傳輸使用的就是UDP協議
還須要深刻學習,好比TCP/IP三次握手(爲何要三次握手,搜索「什麼是兩軍問題」,其實三次握手也不能達到絕對可靠,可是相對來講三次已經至關可靠了,若是再握手更屢次就太費時間了,太少的話就不能保證足夠可靠)
應用層:對應會話層、表示層、應用層
爲用戶提供所須要的各類服務
例如:FTP、Telnet、DNS、SMTP等
OSI模型是在協議開發以前設計的,具備通用性。TCP/IP是先有協議集而後創建模型,不適用於非TCP/IP網絡ui
數據封裝的過程
加密
另外參考這個連接進行更詳細的學習TCP/IP的體系結構:http://blog.csdn.net/taoyingzhushui/article/details/8120296spa
TCP/IP 模型.net
2.3 數據單元計算機網絡
在網絡環境中,層間傳送的信息基本單位稱爲數據單元。翻譯
有了數據單元的概念,咱們就能夠很方便地描述兩個開放系統之間的通訊過程。設計
例如,以開放系統A的應用進程APA與開放系統B的應用進程APB之間的通訊過程爲例,應用進程APA經過本地系統管理模塊LSM將數據送交給第七層。第七層對該數據加上若干比特的控制信息做爲第六層的數據單元。blog
第六層收到此數據單元后,又加上本層的控制信息構成第五層的數據單元。
如下依次類推。直到第二層,將控制信息分紅兩個部分,分別加到本層數據單元的首部和尾部。
在第一層則再也不加任何控制信息,由於該層僅完成比特流的傳送任務。
接着,當比特流經過傳輸介質送到開放系統B時,由第一層逐層往上送至第七層。
每一層根據控制信息作必要的操做後,再將此控制信息去掉,將剩餘的數據單元提交給上一層。最後,把APA發送的數據交給應用進程APB。
在OSI環境中,對等實體按協議進行通訊,相鄰層實體按服務進行通訊。這些通訊都是以數據單元做爲信息傳遞單位來進行的。在OSI模型中,規定了下述三種類型的數據單元。
1)服務數據單元SDU(Service Data Unit)。OSI模型把相鄰層實體間傳送信息的數據單元稱爲服務數據單元,並將(N+1)層與(N)層之間傳送信息的服務單元記爲(N)SDU。(N)服務數據單元其實是確保(N)服務傳輸須要的邏輯單元。
2)協議數據單元PDU(Protocol Data Unit)。OSI模型把對等實體間傳送信息的數據單元稱爲協議數據單元,並將(N)層的協議數據單元記爲(N)PDU。(N)PDU由兩部分組成,即(N)用戶數據[記爲(N)UD]和(N)協議控制信息[記爲(N)PCI]。若是某層的協議數據單元只用於控制,則該協議數據單元中的用戶數據可省略,此時只有該層的PCI。
3)接口數據單元IDU(Interface Data Unit)。OSI模型把相鄰層實體經過層間服務訪問點依次交互信息的數據單元稱爲接口數據單元,並將(N)層的接口數據單元記爲(N)IDU。(N)IDU也由兩部分組成。其中,一部分是(N+1)實體與(N)實體交互的數據,稱爲接口數據[記爲(N)ID];另外一部分是爲了協調(N+1)實體與(N)實體的交互操做而附加的控制信息(如服務原語中的某些參數),這些拉制信息稱爲接口控制信息[記爲(N)ICI]。因爲接口控制信息只在交互信息經過服務訪問點時才起做用,因此,當接口數據單元經過服務訪問點後就能夠將其取掉。
數據單元關係示意圖
當(N)較長而(N)協議所要求的(N)較短時,就要對(N)SDU進行分段處理,分別加上各自的協議控制信息,構成多個(N)PDU。而在接收方則要進行相應的合段操做。 圖2.16描述了三種數據單元的簡單關係。(N+1)PDU是藉助(N)SDU經過(N)服務訪問點(SAP)傳送到(N)層的,此時(N)SDU就至關於(N)層的用戶數據,對它加上(N)PCI後便構成了(N)PDU。這樣,(N+1)PDU彷佛等同於(N)SDU,實際上,(N+1)PDU與(N)SDU不同長的狀況也是存在的。有時發送方實體須要將數個(N+1)PDU拼接成一個(N)SDU,而在接收方對等實體把一個(N)SDU分割成數個(N+1)PDU的操做。
事實上,也可能出現一個(N)SDU等於數個(N)IDU的狀況。此時,(N+l)實體與(N)實體之間就須要經過數次交互(N)IDU才能實現傳送(N)SDU。
2.4 服務與用戶
將計算機網絡表示成層次模型,在垂直式的層次表示方法中,第N層是第N-1層的用戶,又是第N+1層的服務提供者。而第N+1層的用戶雖然只能直接使用第N層所提供的服務,實際上它還經過第N層間接地使用了第N層如下各層的服務。
在每對相鄰層之間有一個接口,接口定義了較低層向較高層提供的原始操做和服務。所以,一臺計算機的第N層與另外一臺計算機的第N層進行通訊,實際上並非一臺計算機的第N層直接將數據傳送給另外一臺計算機的第N層(除最低層外),而是每一層將數據和控制信息經過層間接口傳送給與它相鄰的第N-l層,這樣直至最低層爲止。在最低層再經過物理介質實現與另外一計算機最底層的物理通訊。物理通訊與高層之間進行的虛擬通訊是不一樣的,是實通訊。
對於層間通訊,通訊雙方都必須遵照事先約定的規則,這些規則稱爲網絡協議。網絡協議不只要明確規定所交換的數據的格式,並且還要對事件發生的次序(即同步)作出詳細的過程說明。
圖2.17給出了一個5層原理模型,說明了層、協議和接口的關係。
協議與接口示意圖