## 三次握手
為了準確無誤地把數據送達目標處,TCP協議采用了三次握手策略。用TCP協議把數據包送出去后,TCP不會對傳送 后的情況置之不理,它一定會向對方確認是否成功送達。握手過程中使用了TCP的標志:SYN和ACK。
發送端首先發送一個帶SYN標志的數據包給對方。接收端收到后,回傳一個帶有SYN/ACK標志的數據包以示傳達確認信息。
最后,發送端再回傳一個帶ACK標志的數據包,代表“握手”結束。
若在握手過程中某個階段莫名中斷,TCP協議會再次以相同的順序發送相同的數據包。
## 四次握手
第一次揮手:主動關閉方發送一個FIN,用來關閉主動方到被動關閉方的數據傳送,也就是主動關閉方告訴被動關閉方:我已經不 會再給你發數據了(當然,在fin包之前發送出去的數據,如果沒有收到對應的ack確認報文,主動關閉方依然會重發這些數據),但是,此時主動關閉方還可 以接受數據。
第二次揮手:被動關閉方收到FIN包后,發送一個ACK給對方,確認序號為收到序號+1(與SYN相同,一個FIN占用一個序號)。
第三次揮手:被動關閉方發送一個FIN,用來關閉被動關閉方到主動關閉方的數據傳送,也就是告訴主動關閉方,我的數據也發送完了,不會再給你發數據了。
第四次揮手:主動關閉方收到FIN后,發送一個ACK給被動關閉方,確認序號為收到序號+1,至此,完成四次揮手。
- Houser的個人Wiki
- Javascript
- 語言基礎
- 變量
- 操作符整理
- new
- Ajax
- 事件
- 遍歷
- 字符串轉數字方法
- 原型鏈
- apply/call/bind
- 異步編程
- 模塊化
- 繼承的方式
- 對象的創建方式
- 內存泄漏
- js延遲加載
- 數據類型
- typeof
- 垃圾回收
- 作用域
- 閉包
- this
- es6
- 代碼片段
- 對象拷貝
- Node.js
- 模塊
- 庫&框架
- Jquery
- 優點
- 組件庫
- React
- React原理
- Key的作用
- JSX
- Redux
- Mobx
- 生命周期
- Typescript
- HTML&CSS
- viewport meta
- websocket
- webwork
- web GL
- html全局屬性
- iframe
- 頁面間通訊
- SVG
- 盒模型
- 輸入url到顯示的過程
- BFC(塊格式化上下文)
- 動畫
- CSS 秘密花園
- 前端
- webpack
- 后端
- nginx
- springboot
- 網絡
- 跨域
- 網絡攻擊
- TCP
- Https
- Http狀態碼
- 緩存策略
- Http2
- 數據結構&算法
- 常用數據結構
- 開發&編碼
- Git
- 分支策略
- 基本操作
- VSCode
- 工具
- App開發
- ReactNative
- 項目&業務
- Docker
- 協作工具
- 前端性能優化
- 登錄授權
- 軟件工程
- 漸進增強和優雅降級
- 計算機基礎
- 設計模式
- 單例模式
- 工廠模式
- 發布訂閱模式
- 適配器模式
- 代理模式
- 外觀模式
- 命令模式
- 橋接模式
- 模板模式
- 職責鏈模式
- 正則