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可选