開放系統互連參考模型爲實現開放系統互連所建立的通信功能分層模型,簡稱OSI參考模型。其目的是爲異種計算機互連提供一個共同的基礎和標準框架,併爲保持相關標準的一致性和兼容性提供共同的參考。這裏所說的開放系統,實質上指的是遵循OSI參考模型和相關協議能夠實現互連的具有各種應用目的的計算機系統。
物理層 位 bit
2.數據鏈路層 幀 frame
3.網絡層 數據包packet/package
4.傳輸層 網段segmet
5.會話層 message
6.表示層
7.應用層
二. TCP/IP 協議棧
標準TCP/IP協議是用於計算機通信的一組協議,通常被稱爲TCP/IP協議棧,以它爲基礎組建的互聯網是目前國際上規模最大的計算機網絡。正因爲互聯網的廣泛應用,使得TCP/IP成爲了事實上的網絡標準。
TCP/IP和OSI模型對比圖
TCP特性:
工作在傳輸層面向連接協議
全雙工協議
半關閉
錯誤檢查
將數據打包成段,排序
確認機制
數據恢復,重傳
流量控制,滑動窗口
擁塞控制,慢啓動和擁塞避免算法
TCP是主機對主機層的傳輸控制協議,提供可靠的連接服務,通過三次握手建立一個連接
TCP 三次握手圖示:
TCP標誌位有六種標識:SYN:建立聯機 ACK:確認 PSH:傳送 FIN:結束 RST:重置 URG:緊急
Seq:序號 ack :確認號
第一次握手:客戶端A向服務器發送SYN=1 ,隨機產生seq=x(序號爲x) 的數據包,進入SYN-SENT狀態,服務器B由SYN=1得知A要建立連機。
第二次握手:服務端B收到請求後確認信息,向客戶端返回SYN=1,ACK=1 ,seq=y,ack=x+1(表示客戶A下一次發送的數據包號爲x+1),此時服務器B進入SYN-RCVD狀態。
第三次握手:客戶端A收到後檢查ack(確認號)是否正確,即第一次發送的序號+1和ACK是否爲1.若正確,客戶端A再次發送ACK=1,發送序號爲seq=x+1,確認號爲y+1,服務端B收到後確認seq與ack=1,此時客戶A和服務器B進入ESTABLISHED狀態,完成三次握手。
完成三次握手,客戶端和服務器開始傳送數據。
四次揮手
由於TCP連接是全雙工的,因此每個方向都必須單獨進行關閉。客戶A和服務器B都可以主動斷開連接,如果A客戶發送完數據後不主動斷開就會佔有服務器B的資源。
第一次揮手:客戶A和服務器B都處於ESTABLISHED建立狀態,客戶A向服務器B發送FIN=1來結束A到B的數據傳送。客戶A就進入FIN-WAIT-1狀態。
第二次揮手:服務器B收到這個FIN,它返回一個ACK,確認序號爲收到的序號加1,和SYN一樣,一個FIN將佔用一個序號,服務器B進入COLSE-WAIT狀態。
第三次揮手:服務器B關閉與客戶A的連接,發送一個FIN給客戶A。服務器B進入closed狀態
第四次揮手:客戶A返回ACK確認,並將確認序號設置爲收到的序號加1,客戶A進入TIME-WAIT狀態,到此四次揮手完成。