游戏服务器开发
1 2-課程概述
https://www.bilibili.com/video/BV1Ks41177oi?from=search&seid=5543458349378694564
nodejs lua
STL
IO
語言方面 精簡
不像Python
無統一
游戲服務器
工作量 不是 網絡連接
是 邏輯的 實現
定義 一個 struct
有兩個成員
指針 和 值
2 3-IP詳解第一部分
二戰 大量科學家 流入美國
計算機 標準 規范 IP
上個世紀 60 年代
無線電 衛星
Dos 還沒有
星際爭霸 有個協議
開放系統 通訊 交互 模型
七層 打包 剝離
學術層 精細
生產應用層
一個層 好多個 協議
以太網 也 可以有 其他 連接方式
Transport —》 UDP TCP
包頭 包尾 檢查 錯誤
數據 放到 footer 接收方 校驗 是否是 frame data 那么多
Link 也有除了 以太網 這 種封裝方式 以外的
操作系統 做好了
封裝 對 framedata 長度 有要求
46字節 最少 可以 用 00填充
1500字節
標準 802.3 1492 字節 MTU 最大傳輸單元
消息 大于 就在 IP分片
1M 在 Link 鏈路層 要 拆成 多少個 包
貓~ 200多個 字節
打包 限定是由 最小 那個 決定 (小水管 )
打印 值 與 地址
發布版本 編譯
debug 方式
發布 版本 地址 值 差
4 8
64 位
為什么 值差 不一樣
3 5-IP詳解第二部分
IP協議 不能保證 IP 數據報 能夠 成功 到達 目的地
提供 最好的 傳輸服務
中間 Router 內存 用完
ip層 簡單 處理 丟掉 整個 數據包
發送 ICMP 協議 消息 傳達回來
所以 用 TCP 協議 來保證 消息 送達
IP不維護 后續 傳遞 信息 的 狀態
每個數據報 相互 獨立
可以 不按照 順序 進行發送
也可以 各個 數據包 不同路由選擇鏈路 途徑 發送 A-> B 1 2 B收到 2 1
同一個 計算機 就可以保證 順序
操作系統 是 另一個 從 尾開始 little endian 先傳 最后面的 依次
但是 在 網絡中 傳輸 是 BIg endian
跟 cpu 相關
內存地址 存儲方式
Header 最小 20 字節
ipv4 6 版本 前 4個bit
在對[數據流] 進行流分類時,
在三層通過標記IP包頭的TOS字段服務類型(TOS)
(8 bit)字段包括
一個3 bit的優先權子字段(現在已被忽略),
4 bit的TOS子字段和
1 bit未用位但必須置0。
4 bit的TOS分別代表:最小時延、最大吞吐量、最高可靠性和最小費用。
8bit 1 字節
16位表示
小端 little endian 最高位 放在后
大端 BIg endian 最低位 放在后
驗證 系統 是 大端 還是 小端 系統
link - Internet 層 -1 TTL
32 64 傳遞 -1 減到0 時 就 丟掉 再返回 個 錯誤信息
8bit 定義 傳輸 協議 TCP/UDP
16 bit 校驗包頭 看是否出錯
32位 整形 最多 表示 多少個 數 42 億
上世紀 60 年代
ipv6 128bit
跟硬件
租用服務器 關系 帶寬
強連接 特定 場合
聯合 特殊的類 通過關鍵字union進行定義,一個union可以有多個數據成員
union 成員 共用 內存地址
4個 字節 的 int8 位 數組
和int32 的 整數
大小 一樣 4個 字節 內存
容器 C++ 算法
c++ vector 類似于 數組
比數組安全
容量可拓展
STL 熟悉 好寫 標準庫
子網 子網尋址
以太網 網卡
ip 地址 內網 子網掩碼
Router location host
4 TCP
無連接 不可靠
數據塊 報文段 TCP---->IP層
TCP 發完消息建立一個 Timer
收到數據包 確認 (延時確認)
延時超時 發包幾次 消息 無法送達
以太網幀 1500字節 最大
往上 轉 一層一層 防止 很多 包 一個一個 回
很短時間 內 傳輸速度 可以的 話 只 確認 一次就行
首部 數據 校驗和
看數據 有沒有錯 有一個響應 保證 TCP層 沒有錯
流量控制 客戶端 服務端 TCP 發送 接收方
都 分配 固定足夠 內存
接收 只允許 接收 發過來的 定量數據 防止 網速慢 然后 一堆發過來(能要多少 給多少)
防止 較快 機器 把 較慢 機器 緩沖區 用完 (無法提供服務 )
TCP 把 應用程序 的 數據 封裝 (字節流 )
不知道 粘包 。。。 先收 或者 后收 或者 一起 全收了
IP 可能重復 亂序
TCP 糾正
以太網 最小 數據 傳輸 46字節
IP 20 TCP 20 字節
6 個字節 補零
帶不帶數據 對 鏈路層 沒關系
應用層 有關系
IP + Port ==== Socket (插口配對 )
包 標記 sequence number
確認 消息包 Ack (ACK 標記 設置后 有作用) Acknowledgement number
跟 延時確認有關
發一個 確認 消息 后 確認 了 上次 發回來 的 哪個 包 是 OK的
? 12字節 前
checknum 檢驗和 windows可選
總結
- 上一篇: Windows安装Scala步骤详解
- 下一篇: WinRAR无广告