国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

HTTP三次握手 建立連接和 四次握手斷開連接

2019-11-14 18:17:35
字體:
來源:轉載
供稿:網友

三次握手建立連接 
 
第一次握手:主機A發送位碼為syn=1,隨機產生seq number=1234567的數據包到服務器,主機B由SYN=1知道,A要求建立聯機;
第二次握手:主機B收到請求后要確認聯機信息,向A發送ack number=(主機A的seq+1),syn=1,ack=1,隨機產生seq=7654321的包
第三次握手:主機A收到后檢查ack number是否正確,即第一次發送的seq number+1,以及位碼ack是否為1,若正確,主機A會再發送ack number=(主機B的seq+1),ack=1,主機B收到后確認seq值與ack=1則連接建立成功。
 
 
四次握手斷開:
由于 TCP 連接是全雙工的,因此每個方向都必須單獨進行關閉。這個原則是當一方完成它的數據發送任務后就能發送一個FIN 來終止這個方向的發送通道。收到一個 FIN 只意味著這一方向上沒有數據流動,一個 TCP 連接在收到一個 FIN 后仍能發送數據。首先進行關閉的一方將執行主動關閉,而另一方執行被動關閉。  
( 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 )。
 
問題1: 為什么建立連接協議是三次握手,而關閉連接卻是四次握手呢?  
這是因為服務端的 LISTEN 狀態下的 SOCKET 當收 到 SYN 報文的建立連接請求后,它可以把 ACK 和 SYN ( ACK 起應答作用,而 SYN 起同步作用)放在一個報文里來發送。但關閉連接時, 當收到對方的 FIN 報文通知時,它僅僅表示對方沒有數據發送給你了;但未必你所有的數據都全部發送給對方了,所以你可以未必會馬上會關閉 SOCKET, 也即你可能還需要發送一些數據給對方之后,再發送 FIN 報文給對方來表示你同意現在可以關閉連接了,所以它這里的 ACK 報文 和 FIN報文多數情況下都是分開發送的。
 
 
HTTP 請求響應常見狀態碼
 100~199:表示成功接收請求,要求客戶端繼續提交下一次請求才能完成整個處理過程。
 200~299:表示成功接收請求并已完成整個處理過程。常用200
 300~399:為完成請求,客戶需進一步細化請求。例如:請求的資源已經移動一個新地址、常用302(意味著你請求我,我讓你去找別人),307和304(我不給你這個資源,自己拿緩存)
 400~499:客戶端的請求有錯誤,常用404(意味著你請求的資源在web服務器中沒有)403(服務器拒絕訪問,權限不夠)
 500~599:服務器端出現錯誤,常用500

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 涪陵区| 大宁县| 出国| 大厂| 桦南县| 万盛区| 黄梅县| 尉氏县| 贡嘎县| 永平县| 始兴县| 刚察县| 上栗县| 萨嘎县| 兴化市| 含山县| 泸州市| 永靖县| 崇左市| 横山县| 藁城市| 阿勒泰市| 沁源县| 宜丰县| 会昌县| 囊谦县| 米泉市| 中江县| 额敏县| 普陀区| 大理市| 荣成市| 柞水县| 玉树县| 炉霍县| 沙雅县| 察隅县| 常宁市| 彩票| 崇信县| 双峰县|