author:pasca time:2019/01/05編程
前言:部分來源於網絡,僅供學習使用。
複製代碼
[TOC]瀏覽器
大道尚有三千,而爲了多種維度描述網絡,到如今也有多種網絡體系結構。分別是TCP/IP四層網絡模型,TCP/IP五層網絡模型以及咱們廣爲人知的ISO七層網絡模型。 固然,不管哪一種模型,其目的都是爲了創建 一個標準而讓更多的人可使用它,就如同咱們的語言:普通話和英語。 而目前TCP/IP協議已經成爲Internet中的「通用語言」,學習和使用網絡必不可少。 bash
國際標準化組織(ISO)在1978年提出了「開放系統互聯參考模型」,即咱們熟知的OSI七層模型。此外,還有TCP/IP 四層模型、TCP/IP 五層模型。服務器
物理層主要是原始數據的傳輸,其中可能發生的錯誤由上層的數據鏈路層來校驗。這裏記住物理層兩個重要的網絡設備:中繼器和集線器。 二者的功能主要是鏈接客戶端之間信號的放大、 網絡
數據鏈路層在物理層提供的服務的基礎上向網絡層提供服務,其最基本的服務是將源自網絡層來的數據可靠地傳輸到相鄰節點的目標機網絡層。app
網絡層的目的是實現兩個端系統之間的數據透明傳送,具體功能包括尋址和路由選擇、鏈接的創建、保持和終止等。它提供的服務使傳輸層不須要了解網絡中的數據傳輸和交換技術。對於網絡層的理解,關鍵詞是「路徑選擇、路由及邏輯尋址」。 學習
傳輸層的任務是根據通訊子網的特性,最佳的利用網絡資源,爲兩個端系統的會話層之間,提供創建、維護和取消傳輸鏈接的功能,負責端到端的可靠數據傳輸。 網絡層只是根據網絡地址將源結點發出的數據包傳送到目的結點,而傳輸層則負責將數據可靠地傳送到相應的端口。 加密
會話層主要是利用傳輸層提供的端到端服務,向表示層提供增值服務,同時負責創建、管理以及終止會話進程,實現數據同步。url
表示層對上層數據或信息進行變換以保證一個主機應用層信息能夠被另外一個主機的應用程序理解。表示層的數據轉換包括數據的加密、壓縮、格式轉換等。spa
爲操做系統或網絡應用程序提供訪問網絡服務的接口。
鏈接在Internet中的每一臺主機(或 路由器)的全球惟一的標識符
IP地址 = 32位 = 網絡號 + 主機號;即IP地址 ={<網絡號>,<主機號>}
其中:
網絡號:標誌主機(或路由器)所鏈接到的網絡。一個網絡號在整個因特網範圍內必須是惟一的。
主機號:標誌該主機(或路由器)。一個主機號在它面前的網絡號所指明的網絡範圍必須是惟一的。
複製代碼
不一樣類型的IP地址,其主機號 & 網絡號所佔字節數不一樣;故:一個IP地址在整個網絡範圍內是惟一的
傳統的IP地址是分類的地址,分爲A,B,C,D,E五類
區別在於網絡號 & 主機號佔的字節數不一樣
複製代碼
IPv4地址協議中預留了3個IP地址段,做爲私有地址,供組織機構內部(公司內網)使用。這三個地址段分別位於A、B、C三類地址內: A類私有地址:10.0.0.0/8,範圍是:10.0.0.0~10.255.255.255 B類私有地址:172.16.0.0/12,範圍是:172.16.0.0~172.31.255.255 C類私有地址:192.168.0.0/16,範圍是:192.168.0.0~192.168.255.255
特別注意:在各種IP地址中,有一些IP地址用於特殊用途,不能用於作主機IP地址
Transmission Control Protocol,即 傳輸控制協議。
首部前20個字符固定、後面有4n個字節是根據需而增長的選項,故 TCP首部最小長度 = 20字節
結論 防止服務器端因接收了早已失效的鏈接請求報文,從而一直等待客戶端請求,最終致使造成死鎖、浪費資源
具體描述
在通訊結束後,雙方均可以釋放鏈接,共需 四次揮手
爲了保證通訊雙方都能通知對方 需釋放 & 斷開鏈接,即釋放鏈接後,都沒法接收 / 發送消息給對方
User Datagram Protocol,即 用戶數據報協議,無鏈接的、不可靠的、面向報文、無擁塞控制。
HTTP協議採用 請求 / 響應 的工做方式,以下圖。
意義:聲明請求方法 、主機域名、資源路徑 & 協議版本
請求行的組成 = 請求方法 + 請求路徑 + 協議版本
GET /buckets HTTP/1.1
複製代碼
Host: rs.qbox.me
Content-Type: application/x-www-form-urlencoded
User - Agent:Mozilla/5.0
複製代碼
可選部分,如 GET請求就無請求數據
複製代碼
有下面三種使用方式:
示例:
Soclet即套接字,是應用層 與 TCP/IP 協議族通訊的中間軟件抽象層,表現爲一個封裝了 TCP / IP協議族 的編程接口(API)。
Socket不是一種協議,而是一個編程調用接口(API),屬於傳輸層(主要解決數據如何在網絡中傳輸)
即:經過Socket,咱們才能在Andorid平臺上經過 TCP/IP協議進行開發
對用戶來講,只需調用Socket去組織數據,以符合指定的協議,便可通訊
複製代碼
Socket ={(IP地址1:PORT端口號),(IP地址2:PORT端口號)}
複製代碼
簡介
區別&對比
簡介
基於Cookie的身份驗證 & 驗證流程
基於Token的身份驗證 & 驗證流程
打開一個網頁,完成流程以下: