## IP首部
> 先来一张图~
![](https://img.kancloud.cn/71/d8/71d87e283d0fe8292702d2b740ae8cc4_628x414.png)
* 版本
* 指IP协议的版本。通信双方使用的IP协议版本必须一致。IPv4是0100,IPv6是0110,也就是二进制的4和6。
* 首部长度
* 用于标识首部的长度
* 区分服务
* 用于标识IP包的优先级,但现在并未使用。
* 总长度
* 总长度指首部和数据之和的长度。
* 标识
* 用于标识IP数据报,如果因为数据链路层帧数据段长度限制,IP数据报需要进行分片发送,则每个分片的IP数据报标识都是一致的。
* 标志
* 目前只有2位有意义;最低位为MF,MF=1代表后面还有分片的数据报,MF=0代表当前数据报已是最后的数据报。次低位为DF,DF=1代表不能分片,DF=0代表可以分片。
* 片偏移
* 较长的分组在分片后,某片在原分组中的相对位置。也就是说,相对用户数据字段的起点,该片从何处开始。
* 生存时间
* 以前代表IP数据报最大的生存时间,现在标识IP数据报可以经过的路由器数。
* 协议
* 代表上层传输层协议的类型,1代表ICMP,2代表IGMP,6代表TCP,17代表UDP。
* 首部检验和
* 用于验证数据完整性
* 源地址
* 包含发送数据报的程序所使用IP地址
* 目的地址
* 接收数据报的程序所使用IP地址
* 可选字段
* IP首部的可变部分就是一个可选字段。选项字段用来支持排错、测量以及安全等措施,内容很丰富。
* 填充
* 有些选项需要多个字节,这些选项一个个拼接起来,中间不需要有分隔符,最后用全0的填充字段补齐成为4字节的整数倍。
* 数据部分
#### 通信识别
![](https://img.kancloud.cn/82/df/82df2c9a839ad0c4dc8355749d5cad1c_640x383.jpeg)
[具体详细信息](https://blog.csdn.net/Wu000999/article/details/88617237)
- 版本控制之Git简介
- Git工作流程
- Git工作区、暂存区、版本库
- Git 指令汇总
- Git 忽略文件规则 .gitignore
- pull request
- HTTP简介
- HTTP - Keep-Alive
- HTTP缓存
- XMLHttpRequest
- Fetch
- 跨域
- HTTP 消息头
- TCP/IP
- TCP首部
- IP首部
- IP 协议
- TCP/IP漫画
- 前端开发规范
- 前端开发规范整理
- 前端未来规划
- HTML思维导图
- CSS思维导图
- 布局
- position,float,display的关系和优先级
- line-height、height、font-size
- 移动端适配
- JS 对象
- JS 原型模式 - 创建对象
- JS 预编译
- 探索JS引擎
- ES