一:TCP/IP 協議族(TCP/IP 協議棧)
互聯網協議族(Internet Protocol Suite,縮寫IPS)是一個網絡通信模型,以及一整個網絡傳輸協議家族,爲互聯網的基礎通信架構。它常被通稱爲TCP/IP協議族(TCP/IP Protocol Suite),簡稱TCP/IP,因爲該協議家族的兩個核心協議:TCP(傳輸控制協議)和IP(網際協議)。
TCP/IP提供點對點的鏈接機制,將數據應該如何封裝、定址、傳輸、路由以及在目的地如何接收,都加以標準化。
二:互聯網分層與各層主要功能
互聯網分層方式主要有以下三種:
這裏主要分析互聯網五層結構:
1,物理層
就是把電腦連接起來的物理手段,可以用光纜、電纜、雙絞線、無線電波等方式。主要規定了網絡的一些電氣特性,作用是負責傳送0和1的電信號
2,數據鏈路層
單純的0和1沒有任何意義,必須規定解讀方式:多少個電信號算一組?每個信號位有何意義?
本層的主要功能就是確定 0與1 的分組方式。
2.1 以太網協議--一種確定0與1分組的標準
MAC地址:相當於網卡編號;每塊網卡出廠的時候,都有一個全世界獨一無二的MAC地址,長度是48個二進制位,通常用12個十六進制數表示。前6個十六進制數是廠商編號,後6個是該廠商的網卡流水號。
以太網規定,一組電信號構成一個數據包,叫做”幀”(Frame)。每一幀分成兩個部分:標頭(Head)和數據(Data)(具體格式見上圖)。
2.2 廣播:以太網發送數據包的方式
向本子網絡內所有計算機發送數據包,讓每臺計算機自己判斷(對比MAC地址或IP地址),是否爲接收方,是則接收該數據包,不是則丟棄。
2.3 ARP協議:能從IP地址得到對方MAC地址的實現方式
在一個子網絡內,以IP地址與MAC地址(FF:FF:FF:FF:FF:FF 稱爲廣播地址)進行廣播,IP地址匹配的那臺機器接收數據,然後回覆本機的MAC地址。
3,網絡層
3.1 爲啥要有網絡層
以太網依靠MAC地址採用廣播方式發送數據包,所有成員人手一"包",不僅效率低,而且侷限在發送者所在的子網絡。如果兩臺計算機不在同一個子網絡,廣播是傳不過去的。這種設計是合理的,否則互聯網上每一臺計算機都會收到所有數據包,那會引起災難。
所以就有了網絡層:它的作用是引進一套新的地址,使得我們能夠區分不同的計算機是否屬於同一個子網絡。這套地址就叫做"網絡地址”,簡稱”網址 ”。
3.2 IP協議:規定網絡地址(IP地址)的協議
IP協議的作用主要有兩個,一個是爲每一臺計算機分配IP地址,另一個是確定哪些地址在同一個子網絡
目前,廣泛採用的是IP協議第四版,簡稱IPv4。這個版本規定,網絡地址由32個二進制位組成。習慣上,我們用分成四段的十進制數表示IP地址,從0.0.0.0一直到255.255.255.255
IP地址:分成兩個部分,前一部分代表網絡,後一部分代表主機(可從子網掩碼中判斷出哪部分是網絡,哪部分是主機)
3.3 如何確定兩主機是否在同一個子網絡
子網掩碼:subnet mask 表示子網絡特徵的一個參數;它在形式上等同於IP地址,也是一個32位二進制數字,它表示網絡部分全部爲1,主機部分全部爲0
將兩個IP地址與子網掩碼分別進行AND運算,若結果相同,就表明它們在同一個子網絡中
簡單的說就是:根據子網掩碼判斷出兩IP的網絡部分(對應子網掩碼二進制格式爲1部分),再對比兩IP的網絡部分,一樣則表示這兩主機在同一個子網絡內,不同則表示不在同一個子網絡內。
4,傳輸層
同一臺主機上有許多程序都需要用到網絡,當一個數據包從互聯網上發來的時候,如何確定這個數據包該給哪個程序使用?傳輸層主要就是用來解決這個問題的,傳輸層的功能,就是建立"端口到端口"的通信。
4.1 端口 port
這裏指的是虛擬端口,TCP/IP協議規定的使用網卡的一種虛擬接口,這種接口有多個,它們的編號稱爲端口號
端口號是0-65535之間的一個整數;0-1023的端口被系統佔用,用戶的應用程序會被系統隨機分配一個大於1023的端口
一個應用程序要使用網絡需通過網卡接收和發送數據,系統會自動爲該應用程序分配一個能使用網卡的虛擬接口,表現形式就是系統爲該應用程序隨機分配一個端口號。有了端口號,計算機就能確定從互聯網接收到的數據包該給誰使用了。
4.2 UDP協議:User Datagram Protocol 用戶數據報協議
UDP是一種無連接的,不可靠的,面向報文的傳輸層通信協議
無連接:傳輸數據之前源端和終端不建立連接,當它想傳送時就簡單地去抓取來自應用程序的數據,並儘可能快地把它扔到網絡上
不可靠:不提供數據傳送的保證機制,在網絡質量很差的環境下,UDP協議數據包丟失會比較嚴重
面向報文:對應用程序交下來的報文,在添加首部後就向下交付給IP層;既不拆分,也不合並,而是保留這些報文的邊界,因此,應用程序需要選擇合適的報文大小。
標頭(首部)格式:固定8字節,分爲四部分,各部分均爲2字節;源端口號 目標端口號 數據報長度 校驗和
4.3 TCP協議:Transmission Control Protocol 傳輸控制協議
TCP是一種面向連接的、可靠的、基於字節流的傳輸層通信協議
面向連接:在彼此交換數據包之前必須先建立一個TCP連接(這一過程與打電話很相似)
可靠的:包含了專門的傳遞保證機制,當數據接收方收到發送方傳來的信息時,會自動向發送方發出確認消息,數據包丟失會重發
基於字節流:TCP把應用程序交下來的報文看成一連串無結構的字節流,然後把數據流分割成適當長度的報文段,適當加工後添加首部向下交付給IP層。
標頭(首部)格式:20-60字節;源端口號 目標端口號 數據包中的第一個字節的序列號 確認序列號 校驗和.....
優點 | 缺點 | 應用場景 | |
UDP | 佔用系統資源少,傳輸速度快,效率高 | 不可靠傳輸 | 實時音視頻聊天等 |
TCP | 可靠傳輸 | 佔用系統資源多,傳輸速度較慢 | 大部分情況;when in doubt, use TCP. |
5,應用層
應用層的主要作用是規定應用程序的數據格式
主要協議有以下幾種:
超文本傳輸協議(HTTP):用於實現WWW服務;規定了瀏覽器這類應用程序通信的數據格式
文件傳輸協議(FTP):用於實現交互式文件傳輸功能;規定了文件傳輸形式的數據格式
域名系統(DNS):用於實現網絡設備名字到IP地址映射的網絡服務。
簡單郵件傳送協議(SMTP):用於實現電子郵箱傳送功能
遠程登錄協議(Telnet):用於實現遠程登錄功能。
簡單網絡管理協議(SNMP):用於管理與監視網絡設備