TCP/IP簡單瞭解

早在大學中咱們就學過計算機網絡,首先要知道安全

OSI(Open System Interconnection)網絡參考模型

應用層:顯示到界面上給用戶看服務器

表示層:解析數據(圖片就解析成圖片 音頻就解析成音頻)微信

會話層:創建鏈接(如打電話)網絡

傳輸層:定義傳輸協議TCP/UDP架構

網絡層:負責ip尋址(路由)大數據

數據鏈路層:mac地址解封裝網絡傳輸協議

物理層:制定硬件設備(網線光纖啦這些)spa

這套模型是國際標準組織爲了統一網絡通訊架構而提出的。可是再它出來以前,各大開發商不能幹等着吧,因而各大開發商本身瞎搗鼓搞出來一套現在廣泛再用的TCP/IP網絡參考模型,當OSI參考模型出來的時候,TCP/IP模型,早已一統江湖,人們早已習慣了TCP/IP模型。計算機網絡

 

 

TCP/IP模型:(右邊紅框)

TCP/IP(Transmission Control Protocol/Internet Protocol)傳輸控制協議/網間協議。是一個網絡通訊模型,以及一整個網絡傳輸協議家族,TCP/IP協議是協議族,並非只有TCP + IP排序

TCP/IP提供點對點的連接機制,將數據應該如何封裝、定址、傳輸、路由以及在目的地如何接收,都加以標準化。

一、主機到網絡層  
  TCP/IP 沒有真正描述這一層的實現,只要能給 網絡互聯層一個訪問接口,以便讓其上傳遞IP分組就行。

 
二、網際層(網絡互聯層)
 把分組發往目標網絡或主機。同時,爲了儘快地發送分組,可能須要沿不一樣的路徑同時進行分組傳遞。所以,分組到達的順序和發送的順序可能不一樣,這就須要上層必須對分組進行排序。  
  網絡互聯層定義了分組格式和協議,即IP協議(Internet Protocol)。  

 
三、傳輸層  
 定義了兩種不一樣的協議。

   傳輸控制協議TCP  和 用戶數據報協議UDP

   TCP協議是一個面向鏈接的、可靠的協議。它將一臺主機發出的字節流無差錯地發往互聯網上的其餘主機。在發送端,它負責把上層傳送下來的字節流分紅報文段並傳遞給下層。在接收端,它負責把收到的報文進行重組後遞交給上層。
 UDP協議是一個不可靠的、無鏈接協議,主要適用於不須要對報文進行排序和流量控制的場合。  


四、應用層  
 應用層面向不一樣的網絡應用引入了不一樣的應用層協議。

  有基於TCP協議的,如文件傳輸協議FTP、 超文本連接協議HTTP。

   也有基於UDP協議的。

 

 

各層次都有些神馬:

 

 

 

網絡通信要素

IP地址(惟一標示網絡設備的)

本地環回地址127.0.0.1  或者localhost

 

端口號 (定位程序)

用於標示進程的邏輯地址,不一樣進程的標示(如,我電腦上有qq 也有 微信 我用qq聊天時,服務器怎麼知道是qq發的消息而不是微信呢,就是端口號在起做用)

有效端口:0~65535  其中0~1024由系統使用或者保留端口,開發中不要用

傳輸協議(用什麼樣的方式進行交互)

 

通信的規則

常見協議:TCP、UDP

 

 

 

TCP(傳輸控制協議)(像打電話)

創建鏈接。造成傳輸數據的通道

在鏈接中進行大數據傳輸(數據大小不受限制)

經過三次握手完成鏈接,是可靠協議,安全送達

必須創建鏈接,效率會稍低

 

UDP(用戶數據報協議)(像發短信)

將數據及源和目的封裝成數據包中,不要創建鏈接

每一個數據報的大小限制在64k以內

由於無需鏈接,所以是不可靠協議

不須要創建鏈接,速度快

 

 

TCP三次握手

位碼:TCP標誌位,有6種:

SYN(synchronous創建聯機)

ACK(acknowledgement 確認)

PSH(push傳送)

FIN(finish結束)

RST(reset重置)

URG(urgent緊急)

Sequence number(順序號碼)

Acknowledge number(確認號碼)

 

第一次握手:主機A發送位碼爲SYN=1,隨機產生seq number=1234567的數據包到服務器,主機B由SYN=1知道,A要求創建聯機

第二次握手:主機B收到請求後要確認聯機信息,向A發送ack number=(主機A的seq+1),SYN=1,ACK=1,隨機產生seq number =7654321的包

第三次握手:主機A收到後檢查ack number是否正確(即第一次發送的seq number+1) 和 位碼ACK是否爲1。 若正確,主機A會再發送ack number=(主機B的seq+1),ACK=1,主機B收到後確認ack number值與ACK=1則鏈接創建成功。

完成三次握手,主機A與主機B開始傳送數據。

 

TCP四次揮手

(1)客戶端A發送一個FIN,用來關閉客戶A到服務器B的數據傳送(報文段4)。

(2)服務器B收到這個FIN,它發回一個ACK,確認序號爲收到的序號加1(報文段5)。和SYN同樣,一個FIN將佔用一個序號。

(3)服務器B關閉與客戶端A的鏈接,發送一個FIN給客戶端A(報文段6)。

(4)客戶端A發回ACK報文確認,並將確認序號設置爲收到序號加1(報文段7)

相關文章
相關標籤/搜索