標籤:建立 文字 src socket png 服務 上線 請求 alt
內容提要:
1.網路七層模型
2.什麼是HTTP協議
3.什麼是Socket介面
1.網路七層模型
第一層:物理層
為裝置之間的資訊提供傳輸提供可靠環境,那麼這個環境是什麼呢?
如:同軸電纜,插頭,接收器,水晶頭,網線等。可以在通訊的兩個資料終端的裝置之間串連起來形成一條通路。
再說下這個協議中的某一項規定:比如eiars-232-c及rs-449就可以相容於100序列線上。
第二層:資料連結層
提供資料的傳送服務。這裡涉及到一個資訊就是幀,它是資料轉送的單元,不同的協議幀的長短也不同。它還有差錯恢複,流量控制的功能(這個指的是硬體)
ISO1745--1975 、ISO7776 、ISO3309--1984 就是這一層的三種不同協議,而每一個協議幀的長短也是不同的。
我們常見的鏈路層產品就是網卡,橋接器等。
第三層:網路層
它的作用是路由的選擇,網路的啟用和終止。它還有的一個重要功能就是在一條資料鏈路上複用多條網路連接,大多採用的是分時複用的技術。
我們常見的是路由器、網關等
第四層:傳輸層
它是兩台電腦經過網路進行資料通訊時最基礎的端到端的一個層次。它的服務滿足了傳送品質,傳達速度,傳送費用的不同需要。它還具有差錯恢複,流量控制的功能(這個指的是軟體)
很多時候我們會發現QQ聊天的速度很快,但是我們上網速度就很慢,這就是因為QQ使用UDP協議,沒有錯誤修正功能,而網路的傳輸使用的是TCP協議,它的錯誤修正功能就會導致傳輸速度變慢。
第五層:會話層
它的服務可使應用建立和維持會話。再舉個栗子:就像兩個人打電話,一個人說,對方聽到後回應他,這就是會話層在發揮作用,它能夠使資訊傳遞時保持同步,並按次序進行。
第六層:展示層
它包括資料的表示形式,文字,圖形,圖片等都有各自的格式,就像圖片的格式有JPG,GIF等。
還有就是資料含義,就是資料的符號
這一層的作用就是為異種機通訊提供一種公用語言,以便相互操作。例如,IBM主機使用EBCDIC編碼,而大部分的PC機使用的是ASCII碼。這就要展示層來完成這一轉換。
第七層:應用程式層
實現應用進程之間的資訊交換。同時還有一系列的業務處理所需要的服務功能。像檔案的傳送,訪問和管理,列印服務都是屬於應用程式層。
簡單理解:
物理層,資料連結層,網路層對應的是一個裝置,這個裝置在某一層就有某種功能。
而傳輸層,會話層,展示層對應的是協議。
應用程式層就是使用什麼樣的軟體。
2.什麼是HTTP協議
HTTP 協議:超文字傳輸通訊協定 (HTTP),對應於應用程式層,用於如何封裝資料.
http 為短串連:用戶端發送請求都需要伺服器端回送響應.請求結束後,主動釋放連結,因此為短串連。通常的做法是,不需要任何資料,也要保持每隔一段時間向伺服器發送"保持串連"的請求。這樣可以保證用戶端在伺服器端是"上線"狀態。
HTTP串連使用的是"要求-回應"方式,不僅在請求時建立串連,而且用戶端向伺服器端請求後,伺服器才返回資料。
3.什麼是Socket介面
Socket介面是對TCP/UDP協議封裝的介面。
要想明白 Socket,必須要理解 TCP 串連。
TCP 三向交握:握手過程中並不傳輸資料,在握手後伺服器與用戶端才開始傳輸資料,理想狀態下,TCP 串連一旦建立,在通訊雙方中的任何一方主動中斷連線之前 TCP 串連會一直保持下去。
Socket 是對 TCP/IP 協議的封裝,Socket 只是個介面不是協議,通過 Socket 我們才能使用 TCP/IP 協議,除了 TCP,也可以使用 UDP 協議來傳遞資料。
建立 Socket 串連的時候,可以指定傳輸層協議,可以是 TCP 或者 UDP,當用 TCP 串連,該Socket就是個TCP串連,反之。
Socket 原理
Socket 串連,至少需要一對通訊端,分為 clientSocket,serverSocket 串連分為3個步驟:
(1) 伺服器監聽:伺服器並不定位具體用戶端的通訊端,而是時刻處於監聽狀態;
(2) 用戶端請求:用戶端的通訊端要描述它要已連線的服務器的通訊端,提供地址和連接埠號碼,然後向伺服器通訊端提出串連請求;
(3) 串連確認:當伺服器通訊端收到用戶端通訊端發來的請求後,就響應用戶端通訊端的請求,並建立一個新的線程,把伺服器端的通訊端的描述發給用戶端。一旦用戶端確認了此描述,就正式建立串連。而伺服器通訊端繼續處於監聽狀態,繼續接收其他用戶端通訊端的串連請求.
Socket為長串連:通常情況下Socket 串連就是 TCP 串連,因此 Socket 串連一旦建立,通訊雙方開始互發資料內容,直到雙方中斷連線。在實際應用中,由於網路節點過多,在傳輸過程中,會被節點中斷連線,因此要通過輪詢高速網路,該節點處於活躍狀態。
很多情況下,都是需要伺服器端向用戶端主動推送資料,保持用戶端與服務端的即時同步。
若雙方是 Socket 串連,可以由伺服器直接向用戶端發送資料。
若雙方是 HTTP 串連,則伺服器需要等用戶端發送請求後,才能將資料回傳給用戶端。
因此,用戶端定時向伺服器端發送請求,不僅可以保持線上,同時也詢問伺服器是否有新資料,如果有就將資料傳給用戶端。
【1】HTTP協議和Socket介面區別