TCP/IP 是一類協議系統,它是用於網絡通訊的一套協議集合.瀏覽器
傳統上來講 TCP/IP 被認爲是一個四層協議:應用層(telnet, ftp, http, smtp, dns等),傳輸層(tcp, udp),網絡層(ip,icmp,arp,rarp),網絡接口層(各類物理通訊網絡接口)安全
三次握手服務器
四次揮手網絡
網絡接口層:架構
主要是指物理層次的一些接口,好比電纜等.tcp
網絡層:分佈式
提供獨立於硬件的邏輯尋址,實現物理地址與邏輯地址的轉換.ide
在 TCP / IP 協議族中,網絡層協議包括 IP 協議(網際協議),ICMP 協議( Internet 互聯網控制報文協議),以及 IGMP 協議( Internet 組管理協議).加密
3) 傳輸層:spa
爲網絡提供了流量控制,錯誤控制和確認服務.
在 TCP / IP 協議族中有兩個互不相同的傳輸協議: TCP(傳輸控制協議)和 UDP(用戶數據報協議).
4) 應用層:
爲網絡排錯,文件傳輸,遠程控制和 Internet 操做提供具體的應用程序
2.數據包
在 TCP / IP 協議中數據先由上往下將數據裝包,而後由下往上拆包
在裝包的時候,每一層都會增長一些信息用於傳輸,這部分信息就叫報頭,當上層的數據到達本層的時候,會將數據加上本層的報頭打包在一塊兒,繼續往下傳遞.
在拆包的時候,每一層將本層須要的報頭讀取後,就將剩下的數據往上傳.
3.網絡接口層
這一塊主要主要涉及到一些物理傳輸,好比以太網,無線局域網.這裏就不作詳細的介紹了
4.網絡層
前面有提到,網絡層主要就是作物理地址與邏輯地址之間的轉換.
目前市場上應用的最多的是 32 位二進制的 IPv4 ,由於 IPv4 的地址已經不夠用了,因此 128 位二進制的 IPv6 應用愈來愈普遍了(可是下面的介紹都是基於 IPv4 進行的)
TCP/IP 協議網絡上的每個網絡適配器都有一個惟一的 IP 地址.
IP 地址是一個 32 位的地址,這個地址一般分紅 4 端,每 8 個二進制爲一段,可是爲了方便閱讀,一般會將每段都轉換爲十進制來顯示,好比你們很是熟悉的 192.168.0.1
IP 地址分爲兩個部分:
網絡 ID
主機 ID
可是具體哪部分屬於網絡 ID,哪些屬於主機 ID 並無規定.
由於有些網絡是須要不少主機的,這樣的話表明主機 ID 的部分就要更多,可是有些網絡須要的主機不多,這樣主機 ID 的部分就應該少一些.
絕大部分 IP 地址屬於如下幾類
A 類地址:IP 地址的前 8 位表明網絡 ID ,後 24 位表明主機 ID。
B 類地址:IP 地址的前 16 位表明網絡 ID ,後 16 位表明主機 ID。
C 類地址:IP 地址的前 24 位表明網絡 ID ,後 8 位表明主機 ID。
這裏可以很明顯的看出 A 類地址可以提供出的網絡 ID 較少,可是每一個網絡能夠擁有很是多的主機
可是咱們怎麼才能看出一個 IP 地址究竟是哪類地址呢?
若是 32 位的 IP 地址以 0 開頭,那麼它就是一個 A 類地址。
若是 32 位的 IP 地址以 10 開頭,那麼它就是一個 B 類地址。
若是 32 位的 IP 地址以 110 開頭,那麼它就是一個 C 類地址。
那麼轉化爲十進制(四段)的話,咱們就能以第一段中的十進制數來區分 IP 地址究竟是哪類地址了。
2)地址解析協議 ARP
簡單的來講 ARP 的做用就是把 IP 地址映射爲物理地址,而與之相反的 RARP(逆向 ARP)就是將物理地址映射爲 IP 地址。
前面提到了 IP 地址的分類,可是對於 A 類和 B 類地址來講,每一個網絡下的主機數量太多了,那麼網絡的傳輸會變得很低效,而且很不靈活。好比說 IP地址爲 100.0.0.0 的 A 類地址,這個網絡下的主機數量超過了 1600 萬臺。
因此子網掩碼的出現就是爲了解決這樣的問題。
咱們先回顧一下以前如何區分主機 IP 和網絡 IP 的。
以 A 類地址 99.10.10.10 爲例,前 8 位是網絡 IP ,後 24 位是主機 IP 。
子網掩碼也是一個 32 爲的二進制數,也能夠用四個十進制數來分段,他的每一位對應着 IP 地址的相應位置,數值爲 1 時表明的是非主機位,數值爲 0 時表明是主機位。
5 傳輸層
傳輸層提供了兩種到達目標網絡的方式
傳輸控制協議(TCP):提供了完善的錯誤控制和流量控制,可以確保數據正常傳輸,是一個面向鏈接的協議。
用戶數據報協議(UDP):只提供了基本的錯誤檢測,是一個無鏈接的協議。
把數據打包
數據大小有限制(64k)
不創建鏈接
速度快,但可靠性低
創建鏈接通道
數據大小無限制
速度慢,可是可靠性高
因爲傳輸層涉及的東西比較多,好比端口,Socket等,都是咱們作移動開發須要瞭解的,以後的文章中咱們再具體作介紹,這裏就不講解了。
6 應用層
應用層作爲 TCP/IP 協議的最高層級,對於咱們移動開發來講,是接觸最多的。
運行在TCP協議上的協議:
HTTP(Hypertext Transfer Protocol,超文本傳輸協議),主要用於普通瀏覽。
HTTPS(Hypertext Transfer Protocol over Secure Socket Layer, or HTTP over SSL,安全超文本傳輸協議),HTTP協議的安全版本。
FTP(File Transfer Protocol,文件傳輸協議),由名知義,用於文件傳輸。
POP3(Post Office Protocol, version 3,郵局協議),收郵件用。
SMTP(Simple Mail Transfer Protocol,簡單郵件傳輸協議),用來發送電子郵件。
TELNET(Teletype over the Network,網絡電傳),經過一個終端(terminal)登錄到網絡。
SSH(Secure Shell,用於替代安全性差的TELNET),用於加密安全登錄用。
運行在UDP協議上的協議:
BOOTP(Boot Protocol,啓動協議),應用於無盤設備。
NTP(Network Time Protocol,網絡時間協議),用於網絡同步。
DHCP(Dynamic Host Configuration Protocol,動態主機配置協議),動態配置IP地址。
其餘:
DNS(Domain Name Service,域名服務),用於完成地址查找,郵件轉發等工做(運行在TCP和UDP協議上)。
ECHO(Echo Protocol,迴繞協議),用於查錯及測量應答時間(運行在TCP和UDP協議上)。
SNMP(Simple Network Management Protocol,簡單網絡管理協議),用於網絡信息的收集和網絡管理。
ARP(Address Resolution Protocol,地址解析協議),用於動態解析以太網硬件的地址。
HTTP協議是Hyper Text Transfer Protocol(超文本傳輸協議)的縮寫,是用於從萬維網(WWW:World Wide Web )服務器傳輸超文本到本地瀏覽器的傳送協議。
HTTP是一個基於TCP/IP通訊協議來傳遞數據(HTML 文件, 圖片文件, 查詢結果等)。
HTTP是一個屬於應用層的面向對象的協議,因爲其簡捷、快速的方式,適用於分佈式超媒體信息系統。它於1990年提出,通過幾年的使用與發展,獲得不斷地完善和擴展。目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的規範化工做正在進行之中,並且HTTP-NG(Next Generation of HTTP)的建議已經提出。
HTTP協議工做於客戶端-服務端架構爲上。瀏覽器做爲HTTP客戶端經過URL向HTTP服務端即WEB服務器發送全部請求。Web服務器根據接收到的請求後,向客戶端發送響應信息。
一、簡單快速:客戶向服務器請求服務時,只需傳送請求方法和路徑。請求方法經常使用的有GET、HEAD、POST。每種方法規定了客戶與服務器聯繫的類型不一樣。因爲HTTP協議簡單,使得HTTP服務器的程序規模小,於是通訊速度很快。
二、靈活:HTTP容許傳輸任意類型的數據對象。正在傳輸的類型由Content-Type加以標記。
3.無鏈接:無鏈接的含義是限制每次鏈接只處理一個請求。服務器處理完客戶的請求,並收到客戶的應答後,即斷開鏈接。採用這種方式能夠節省傳輸時間。
4.無狀態:HTTP協議是無狀態協議。無狀態是指協議對於事務處理沒有記憶能力。缺乏狀態意味着若是後續處理須要前面的信息,則它必須重傳,這樣可能致使每次鏈接傳送的數據量增大。另外一方面,在服務器不須要先前信息時它的應答就較快。五、支持B/S及C/S模式。