### 計算機通信三要素
1. IP地址:用來標識網絡上一臺獨立計算機(127.0.0.1 本地回環地址,保留地址).
2. 端口號:要將數據發送到對方指定的應用程序上,為了標識這些應用程序,所以給這些網絡應用程序都用數字進行標識,這些數據我們稱為,端口號,如 apache/nginx(80)、mysql(3306) 等 .
3. 傳輸協議:兩者之間的通訊規則。如,TCP、UDP等 .
### TCP
TCP:Transmission Control Protocol傳輸控制協議
* 面向連接,傳輸數據之前需要建立連接
* 通過“三次握手”的方式完成連接,是安全可靠協議
* 傳輸速度慢,效率低
實例:apache、nginx、mysql、php-fpm這樣的服務都是基于tcp
### UDP
UDP:User Datagram Protocol用戶數據報協議
* 面向無連接,傳輸數據之前源端和目的端不需要建立連接
* 發送數據不進行檢測,所以發送不一定可靠
* 傳輸速度快,效率高
實例:快遞、視頻會議、聊天(QQ)
### TCP三次握手
* SYN_SENT 表示請求連接
* SYN_RECV 表示正在等待處理的請求數
* ESTABLISHED 表示正常數據傳輸狀態
* TIME_WAIT 表示處理完畢,等待超時結束的請求數

第一次握手:Client將標志位SYN置為1,隨機產生一個值seq=J,并將該數據包發送給Server,Client進入SYN_SENT
狀態,等待Server確認。
第二次握手:Server收到數據包后由標志位SYN=1知道Client請求建立連接,Server將標志位SYN和ACK都置為1,ack
(number )=J+1,隨機產生一個值seq=K,并將該數據包發送給Client以確認連接請求,Server進入SYN_RCVD狀態。
第三次握手:Client收到確認后,檢查ack是否為J+1,ACK是否為1,如果正確則將標志位ACK置為1,ack=K+1,并將該
數據包發送給Server,Server檢查ack是否為K+1,ACK是否為1,如果正確則連接建立成功,Client和Server進入
ESTABLISHED狀態,完成三次握手,隨后Client與Server之間可以開始傳輸數據了
- PHP加密技術
- md5加密
- Crypt加密
- 函數
- 概述
- 強類型參數
- 可變參數列表
- 值傳遞&引用傳遞
- 變量作用域
- 可變函數
- 嵌套函數
- 遞歸函數
- 匿名函數(閉包)
- 面向對象
- 概念
- 類
- 對象的傳值
- 對象的克隆
- 構造方法
- 析構方法
- 克隆方法
- $this
- 類常量
- 靜態屬性
- 靜態方法
- 繼承
- 重寫
- 重載
- 概述
- 屬性重載
- 概述
- __set()
- __get()
- __unset()
- __isset()
- 方法重載
- 概述
- __call()
- __callstatic()
- 封裝
- 最終類
- 抽象類
- 接口
- 對象的序列化與反序列化
- __sleep()
- __wakeup()
- 其他魔術方法
- 對象的遍歷
- 類和對象相關函數
- 錯誤
- 概述
- 設置錯誤級別
- trigger_error()觸發錯誤
- 處理PHP中的錯誤
- 異常
- 概述
- 自定義異常類
- 自定義文件寫入異常類
- 記錄和發送異常信息
- 使用觀察者模式處理異常信息
- 自定義異常處理器
- 設計模式
- 創建型
- 單例模式
- 工廠模式
- 原型模式
- 結構型
- 注冊樹模式
- 適配器模式
- 數據映射模式
- 裝飾器模式
- 代理模式
- 行為型
- 策略模式
- 觀察者模式
- 迭代器模式
- 網絡
- cURL
- Oauth2.0
- QQ第三方登錄
- TCP/IP協議
- 概述
- HTTP協議
- 概述
- HTTP請求協議
- HTTP響應協議
- WebSocket
- 安裝擴展
- Redis
- Socket
- 計算機通信
- socket簡介
- PHP操作socket
- TCP
- HTTP服務端
- WebSocket
- PHP7
- 生成器yield
- 異常finally
- CGI和FPM
- php有用命令
- 內存