tcp/ip協議族四層模型:資料鏈路層、網路層、傳輸層、應用層
(osi七層模型:物理層、資料鏈路層、網路層、傳輸層、會話層、表示層、應用層)
資料鏈路層:例如乙太網驅動程式
網路層:兩台機器一般通過很多個中間節點進行通訊,選擇這些中間節點讓這兩台計算機進行通訊。路由器就是工作在網路層。ip協議
傳輸層:關注資料報的起始端和目標端,不在乎中間過程。tcp、udp協議
應用層:負責應用程式的邏輯,檔案傳輸,網路管理等。
tcp協議(傳輸控制協議):為應用層提供可靠的、面相連線的基於流的服務。可靠性:資料會準確無誤的傳送到目標端;面向連線(一對一):使用tcp協議的雙方必須先進行tcp連線;基於流:傳送端可以逐個位元組的傳送資料,接收端也可以逐個位元組的接受它們。
tcp頭部結構:
udp協議:為應用層提供不可靠的、不面相連線的、資料報服務。不可靠:無法保證資料被正確接收,只能盡力而為;無連線(可以一對多):通訊雙方不保證乙個長久的連線,每次傳送資料都要指明接收端的位址;資料報服務:每個udp資料報都有乙個長度,接收端必須以該長度的最小單位將其從記憶體中一次讀出,否則資料就斷了。
三次握手:即建立tcp連線,需要客戶端和服務端總共傳送3個包以確認資料的連線。
1)第一次握手(看看客戶端和伺服器之間能不能通訊):客戶端將標誌位syn置為1,隨機產生乙個只seq=j,並將該資料報傳送給伺服器,客戶端進入syn_send狀態,等待伺服器確認。
2)第二次握手(伺服器告訴客戶端我們確實能通訊了):伺服器收到資料報之後由標誌位syn=1知道客戶端請求建立連線,伺服器將標誌位syn和ack(攜帶ack標誌的報文段為確認報文段)都置為1,ack=j+1,隨機產生乙個值seq=k,並將該資料報傳送給客戶端以確認連線請求,伺服器進入syn_rcvd狀態。
3)第三次握手(客戶端知道我們可以通訊之後告訴伺服器我們可以傳輸資料了):客戶端收到確認之後,檢查ack是否為j+1,ack是否為1,如果正確則將標誌位ack=1,ack=k+1,並將該資料報傳送給伺服器,伺服器檢查ack是否為k+1,ack是否為1,如果正確則連線建立成功,客戶端和伺服器進入連線狀態,完成三次握手,隨後客戶端和伺服器之間可以開展資料傳輸了。
四次握手(終止tcp連線):指斷開tcp連線時,需要客戶端和伺服器之間一共發4個資料報以確認連線的斷開。在socket程式設計中這一指令是由客戶端或服務端的任意一方指令「斷開」指令來觸發。
1)第一次握手(告訴伺服器我要關閉了):客戶端傳送乙個fin(攜帶fin的為結束報文段),用來關閉客戶端到伺服器的資料傳送,客戶端進入fin_wait_1等待關閉狀態。
2)第二次握手(伺服器收到了你的關閉請求):伺服器收到fin之後傳送乙個ack給客戶端,ack=fin++。
3)第三次握手(給你個隨機驗證碼n,我們可以關閉了):伺服器傳送乙個fin,用來關閉伺服器到客戶端的資料傳送,伺服器進入last_ack最後確認關閉狀態。
4)第四次握手(給伺服器驗證碼n+1,好的可以正式斷開了):客戶端收到fin之後,客戶端進入time_wait狀態,接著傳送乙個ack=1給伺服器,ack=n+1(是n+1圖例標錯了),伺服器收到之後即確認關閉與客戶端的連線。
time_wait狀態:1)可靠的終止tcp連線 2)保證遲來的tcp報文段有足夠的時間被識別並丟棄:主機b收到主機a發來的關閉連線請求,表示a->b可以斷開連線,但是未必b->a可以斷開連線,因為b->a有可能還有一些資料沒有傳送過去,這時需要進行乙個wait等待,等 b->a的資料全發走後b再給a第三次握手,隨後再第四次握手。
1.什麼是socket?socket又稱為套接字,應用程式通常通過「套接字」想網路發出請求或者應答請求。
2.serversocket:它用於伺服器端,socket是建立網路連線時使用的。在連線成功時,應用程式兩端會產生乙個socket套接字,操作這個例項,完成所需的會話。對於乙個網路連線來說,套接字是平等的,並沒有差別,不因為在伺服器端或在客戶端而產生不同的級別。
3.建立socket連線的步驟:1)伺服器監聽 2)客戶端發出請求 3)建立連線 4)通訊
4.socket特點:1)基於tcp連線,資料傳輸有保障 2)適用於建立長時間的連線 3)經常應用於即時通訊
http請求報文和響應報文的格式
1)什麼事http事務?
http事務=(客戶端的)請求命令 + (伺服器的)響應結果
2)什麼是報文流?
報文先流入伺服器,再由伺服器流回給客戶端。
報文都是向下流動的
3)請求報文的格式
請求行:請求方法(客戶端希望伺服器幹什麼,比如get、post、head等,必須用大寫字母)+請求url(指向資源的位置)+協議版本(http的版本,我所遵循的協議版本是什麼)
首部:名:值
(空行)
實體的主體部分:(http要傳輸的部分)
4)響應報文的格式
響應行:協議版本+狀態碼(說明請求期間發生了什麼情況)+原因短語(對狀態碼進行一下解釋)
首部:名:值
(空行)
實體的主體部分:(http要傳輸的部分)
http的工作流程
1)一次完整的http事務是乙個怎樣的過程?
1.網域名稱解析:客戶端將網域名稱傳送給dns,然後通過網域名稱解析得到相應的ip位址,最後將ip位址返回給客戶端。
2.tcp三次握手
3.發起http請求
4.伺服器相應http請求
5.瀏覽器解析html**並請求html**中的資源
6.渲染
2)網域名稱解析過程
http1.0與1.1的區別
http1.0規定瀏覽器與伺服器只能保持短暫的連線,瀏覽器的每次請求都需要與伺服器建立乙個tcp連線,伺服器完成請求處理後立即斷開連線,伺服器不跟蹤每個客戶也不記錄過去的請求。顯然,客戶端和伺服器每次建立和關閉連線都要進行三次握手+四次握手過程,這個過程很費時。
為了克服這個缺陷,http1.1支援持久連線,在乙個tcp連線上可以傳送多個http請求和響應,減少了各種握手消耗的時間。
http1.1增加個報文的頭字段,身份認證,狀態管理和cache快取機制相關的請求頭和響應頭。
計算機網路9 計算機網路效能
1.網路效能的衡量指標 2.速率 3.頻寬 4.延遲 5.丟包率 6.時延頻寬積 7.吞吐率 網路效能的好壞可以由網路的速率 頻寬 延遲 丟包率 網路頻寬積 吞吐率等方面來判斷,下面讓我們一一詳細介紹。速率 資料率 data rate 也稱 資料傳輸速率或位元率 bit rate 指的是 單位時間 ...
計算機網路 計算機網路的效能
目錄 1.網路效能的衡量指標 2.速率 3.頻寬 4.延遲 5.丟包率 6.時延頻寬積 7.吞吐率 網路效能的好壞可以由網路的速率 頻寬 延遲 丟包率 網路頻寬積 吞吐率等方面來判斷,下面讓我們一一詳細介紹。速率 資料率 data rate 也稱 資料傳輸速率或位元率 bit rate 指的是 單位...
計算機網路學習 計算機網路效能
出自 1.網路效能的衡量指標 2.速率 3.頻寬 4.延遲 5.丟包率 6.時延頻寬積 7.吞吐率 網路效能的好壞可以由網路的速率 頻寬 延遲 丟包率 網路頻寬積 吞吐率等方面來判斷,下面讓我們一一詳細介紹。速率 資料率 data rate 也稱 資料傳輸速率或位元率 bit rate 指的是 單位...