TCP/IP 協議族按層次分別分爲如下 4 層: 應用層、 傳輸層、 網絡層和數據鏈路層網絡
把 TCP/IP 層次化是有好處的。 好比, 若是互聯網只由一個協議統籌, 某個地方須要改變設計時, 就必須把全部部分總體替換掉。 而分層以後只需把變更的層替換掉便可。 把各層之間的接口部分規劃好以後, 每一個層次內部的設計就可以自由改動了。值得一提的是, 層次化以後, 設計也變得相對簡單了。 處於應用層上的應用能夠只考慮分派給本身的任務, 而不須要弄清對方在地球上哪一個地方、 對方的傳輸路線是怎樣的、 是否能確保傳輸送達等問題大數據
應用層操作系統
應用層決定了向用戶提供應用服務時通訊的活動。TCP/IP 協議族內預存了各種通用的應用服務。 好比, FTP(FileTransfer Protocol, 文件傳輸協議) 和 DNS(Domain Name System, 域名系統) 服務就是其中兩類。HTTP 協議也處於該層。設計
傳輸層3d
傳輸層對上層應用層, 提供處於網絡鏈接中的兩臺計算機之間的數據傳輸。在傳輸層有兩個性質不一樣的協議: TCP(Transmission ControProtocol, 傳輸控制協議) 和 UDP(User Data Protocol, 用戶數據報協議) 。blog
網絡層( 又名網絡互連層)接口
網絡層用來處理在網絡上流動的數據包。 數據包是網絡傳輸的最小數據單位。 該層規定了經過怎樣的路徑(所謂的傳輸路線) 到達對方計算機, 並把數據包傳送給對方。與對方計算機之間經過多臺計算機或網絡設備進行傳輸時, 網絡層所起的做用就是在衆多的選項內選擇一條傳輸路線。資源
鏈路層( 又名數據鏈路層, 網絡接口層)字符串
用來處理鏈接網絡的硬件部分。 包括控制操做系統、 硬件的設備驅動、 NIC(Network Interface Card, 網絡適配器, 即網卡) , 及光纖等物理可見部分(還包括鏈接器等一切傳輸媒介) 。 硬件上的範疇均在鏈路層的做用範圍以內。域名
利用 TCP/IP 協議族進行網絡通訊時, 會經過分層順序與對方進行通訊。 發送端從應用層往下走, 接收端則往應用層上走。
發送端在層與層之間傳輸數據時, 每通過一層時一定會被打上一個該層所屬的首部信息。 反之, 接收端在層與層傳輸數據時, 每通過一層時會把對應的首部消去
與 HTTP 關係密切的協議 : IP、 TCP 和DNS
負責傳輸的 IP 協議
幾乎全部使用網絡的系統都會用到 IP 協議,IP 協議的做用是把各類數據包傳送給對方。 而要保證確實傳送到對方那裏, 則須要知足各種條件。 其中兩個重要的條件是 IP 地址和 MAC地址(Media Access Control Address) 。IP 地址指明瞭節點被分配到的地址, MAC 地址是指網卡所屬的固定地址。 IP 地址能夠和 MAC 地址進行配對。 IP 地址可變換, 但 MAC地址基本上不會更改
IP 間的通訊依賴 MAC 地址。 在網絡上, 通訊的雙方在同一局域網(LAN) 內的狀況是不多的, 一般是通過多臺計算機和網絡設備中轉才能鏈接到對方。 而在進行中轉時, 會利用下一站中轉設備的 MAC地址來搜索下一個中轉目標。 這時, 會採用 ARP 協議(Address Resolution Protocol) 。 ARP 是一種用以解析地址的協議, 根據通訊方的 IP 地址就能夠反查出對應的 MAC 地址。
確保可靠性的 TCP 協議
TCP 協議爲了更容易傳送大數據把數據分割成數據包進行傳輸, 並且 TCP 協議可以確認數據最終是否送達到對方
爲了準確無誤地將數據送達目標處, TCP 協議採用了三次握手
握手過程當中使用了 TCP 的標誌(flag) —— SYN(synchronize) 和ACK(acknowledgement) 。
發送端首先發送一個帶 SYN 標誌的數據包給對方。 接收端收到後,回傳一個帶有 SYN/ACK 標誌的數據包以示傳達確認信息。 最後, 發送端再回傳一個帶 ACK 標誌的數據包, 表明「握手」結束。若在握手過程當中某個階段莫名中斷, TCP 協議會再次以相同的順序發送相同的數據包
負責域名解析的 DNS 服務
DNS 協議提供經過域名查找 IP 地址, 或逆向從 IP 地址反查域名的服務
經過這張圖來了解下 IP 協議、 TCP 協議和 DNS 服務在使用HTTP 協議的通訊過程當中各自發揮了哪些做用
URI 用字符串標識某一互聯網資源, 而 URL表示資源的地點(互聯網上所處的位置) 。 可見 URL是 URI 的子集