網路協議基本概述

weixin_34321977發表於2018-07-12

在介紹Socket 套接字之前我們先簡單介紹一下網路OSI參考模型

OSI 網路參考模型:
五層 : 應用層 傳輸層 網路層 資料鏈路層 物理層
七層 :主要把應用層分成了三層 應用層 表示層 會話層 ,傳輸層 網路層 資料鏈路層 物理層
TCP 和 UDP
TCP: 三次握手 點對點進行連線 安全 效率低 資料無上限
UDP:不安全 效率高 資料64kb
IP協議
IP地址:確定網路的絕對路徑 可以確定具體位置
埠號
埠號用於區分計算機中的軟體 2個位元組 0-65535 65536個埠號
1.在同一個協議下埠號不能重複
2.1024以下埠奧不建議使用,這些埠是作業系統給某些廠商預留的
http:80 ftp:21

TCP:IO流 **
Socket:客戶端套接字類
ServerSocket:服務端套接字類

客戶端
1.建立客戶端套接字(IP地址 埠號)
2.獲取流 socket.getInputStream() socket.getOutputStream();
3.處理資料 完成流的讀寫
4.關閉流和套接字

伺服器端
1.建立伺服器端套接字 (埠號)
2.啟動監聽 阻塞方法
3.獲取流 socket.getInputStream() socket.getOutputStream();
4.處理資料 完成流的讀寫
5.關閉流和套接字

UDP: **
DatagramSocket:此類標識用來傳送和接受資料包包的套接字
DatagramPacket:

客戶端
傳送端傳送資料的步驟
1.建立客戶端傳送物件(可以帶埠號 也可以不帶)
2.明確傳送資料
3.把資料打包DatagramPacket:
4.傳送資料 socket.send(packet);
5.關閉客戶端資源

伺服器端
接受端接收傳送類的資訊
1.建立接收端物件(包裡的埠號)
2.準備容器(>=64kb)
3.封裝成資料包
4.接收資料
5.分析資料
6.處理獲得的資料
7.釋放接收端的資源

HTTP
超文字傳輸協議
HTTP 協議承載在TCP協議之上,有時候在TCP協議之上還承載了兩種協議 :TLS 協議 SSL協議 如果包含了以上的兩個協議 我們就稱之為 HTTPS 協議。
TTP協議:通過伺服器傳送文字到本地瀏覽器端的傳送協議
HTTP協議 :屬於應用層的協議 由請求和相應兩個部分組成的,是一個標準客戶端伺服器模型 C/S B/S
SSL 協議 安全套接字層協議
它位於可靠的面向連線的網路層的協議與應用層之間的一層
SSL 協議 :需要相互認證 ,一般通過資料簽名保證資料的完整性,使用加密技術確保私密性。 實現客戶端與伺服器端的安全通訊
SSL協議 :由兩個部分組成 SSL協議記錄 SSL 握手協議
TLS 協議 : (傳輸層安全協議) 通過應用層傳送資料 提供資料保密性完整性。
TLS協議 由兩個部分組成 TLS 記錄協議 TLS 握手協議
SSL協議提供了那些服務
A 認證了使用者和伺服器,確保資料傳送到正確的客戶端和伺服器。
B 加密了資料以防資料在中途被竊取
C 維護了資料完整性
HTTP 協議還被稱為請求相應模型
HTTP永遠都是客戶端傳送請求,伺服器端回覆請求
這樣做限制了http協議無法實現客戶端傳送請求的時候,伺服器端同送資訊給伺服器。
HTTP協議是無狀態協議,主要體現在同一個使用者想伺服器傳送兩次請求,沒有對應關係的,
HTTP 協議客戶端向伺服器端傳送請求的工作流程
A客戶端和伺服器要建立連線 然後客戶端點選某個連線之後 http 就開始工作了
B 建立連線之後 客戶端會傳送請求給伺服器端 這個請求要求要統一格式 格式URL
C 伺服器端在接受請求的時候回給出響應資訊
D 客戶端接受伺服器端響應的資訊,處理響應資訊 ,處理之後客戶端與伺服器端就斷開了連線
資料處理一般有兩種情況
1.通過瀏覽器 把資訊展示給使用者看
2.通過客戶端 吧資訊釋出在指定控制元件上
以上無論是哪個部分出錯,都會把錯誤資訊返回給客戶端,客戶端通過各種手段展示給使用者看。
HTTP協議傳輸資料是短連線 ,伺服器端應用資料後會自動斷開連線
TCP和UDP 是長連線 如果不自動關閉的話 會一直保持連線狀態。

相關文章