## 互联网协议
- 概括:从上到下,越上越接近用户,越下越接近硬件
- 应用层:
+ 规定应用程序的数据格式
+ [HEAD(以太网标头) [HEAD(IP标头) [HEAD(TCP标头) DATA(应用层数据包)]]]
- 传输层(端口到端口的通信): 定义端口号
+ 端口:
* 0到65535(2^16)的整数
* 进程使用网卡的编号
* 通过IP+mac确定主机,只要确定主机+端口(套接字socket),就能进行程序间的通信
+ UDP协议:
* 数据包中加入端口依赖的新协议
* 数据包[HEAD(发送、接收mac) [HEAD(发送、接收ip) [HEAD(发送、接收端口) DATA]]]
* 简单,可靠性差,不知道对方是否接受包
+ TCP协议:
* 带有确认机制的UDP协议
* 过程复杂,实现困难,消耗资源
```
tcp/ip connect: tcp/ip的三次握手
标有syn的数据包
------------->
标有syn/ack的数据包
client <------------- server
标有ack的数据包
-------------->
```
- 网络层(主机到主机的通信):定义IP
```
tcp/ip finish: tcp/ip的四次握手
fin
<-------------
ack
client -------------> server
fin
------------->
ack
<-------------
```
- 网络层(主机到主机的通信):
+ IP协议
* ipv4:
- 32个二进制位表示,由网络部分和主机部分构成,
- 子网掩码: 网络部分都为1,主机部分都为0,目的判断ip的网络部分,如255.255.255.0(11111111.11111111.11111111.00000000)
- IP数据包:标头Head+数据Data,放进以太网数据包的Data部分[HEAD [HEAD DATA]]
- IP数据包的传递:
+ 非同一网络:无法获得mac地址,发送数据到网关,网关处理
- ARP(Address Resolation Protocol): 解析地址协议,通过ip解析mac地址
+ 同一网络:mac地址填写FF:FF:FF:FF:FF:FF:FF,广播数据,对比ip,不符合丢包
- 链接层:定义mac
+ 定义数据包(帧Frame)
* 标头(Head):数据包的一些说明项, 如发送者、接收者、数据类型
* 数据(Data):数据包的具体内容
* 数据包:[HEAD DATA]
+ 定义网卡和网卡唯一的mac地址
* 以太网规定接入网络的所有终端都应该具有网卡接口,数据包必须是从一个网卡的mac地址到另一网卡接口的mac地址
* mac全球唯一,16位16位进制组成,前6厂商编号,后6网卡流水号
+ 广播发送数据
* 向本网络内的所有设备发送数据包,对比接收者mac地址,不是丢包,是接受
- 实体层:物理层
+ 终端(pc,phone,pad...)的物理连接(光缆,电缆,路由...),负责传递0和1信号
- PHP7新特性
- 优雅的写代码
- 常见的代码优化
- 常用的工具类
- PHP原生生成EXCEL
- PHP地理位置计算
- PHP获取服务器状态
- 驼峰转下划线
- 百度地图两点坐标距离计算
- 判断是否是url
- PHP常见header头
- 邮件发送类
- 阿拉伯数字转化为大写
- 获取汉字首个拼音
- 根据身份证号获取星座
- 生成验证码类
- 生成唯一ID
- 身份证验证类
- PHP中文转拼音
- Nginx配置文件
- curl获取网页内容
- 快递查询api
- 上传图片类
- 股票类
- 找回密码类
- 字符串助手函数
- 校验数据规则
- PHP获取收集相关信息
- 字符串截取助手函数
- 网页中提取关键字
- 检测浏览器语言
- 微信相关类
- 微信获取access_token
- 获取用户基本信息
- 代码规范
- 编程规范(psr-1,2)
- 编程规范(原作者的建议)
- 经验
- 常用函数地址
- 函数集合
- 一些常识
- MYSQL相关知识
- 常用sql
- mysql事务隔离级别
- Read uncommitted
- Read committed
- Repeatable read
- Serializable
- 高性能MYSQL读书笔记
- 第一章MYSQL的架构
- mysql逻辑架构
- redis相关知识
- 1.安装redis
- 3.php操作redis
- 队列
- 悲观锁
- 乐观锁
- 发布
- 订阅
- redis实战-文章投票
- 设计模式
- 创建模型实例
- 单例模式
- 工厂模式
- AnimalInterface.php
- Chicken.php
- Factory.php
- Farm.php
- Pig
- SampleFactory.php
- Zoo
- 抽象工厂模式
- AnimalFactory
- Factory
- FarmInterface
- Income
- PandaZoo
- PeonyZoo
- PigFarm
- PlantFactory
- RiceFarm
- ZooInterface
- 原型模式
- 建造者模式
- 结构型模式实例
- 桥接模式
- 享元模式
- 外观模式
- 适配器模式
- 装饰器模式
- 组合模式
- 代理模式哦
- 过滤器模式
- 行为型模式实例
- 模板模式
- 策略模式
- 状态模式
- 观察者模式
- 责任链模式
- 访问者模式
- 解释器模式
- 空对象模式
- 中介者模式
- 迭代器模式
- 命令模式
- 备忘录模式
- 网络知识
- 互联网协议概述
- nginx简易交互过程
- HTTP知识
- LINUX相关知识
- swoole学习
- 1.初识swoole
- 2.WebSocket PHP 即时通讯开发
- 3.异步多进程的 CURL
- 4.异步非阻塞多进程的 Http 服务器
- 5.TCP 服务器
- 5.1同步 TCP 客户端
- 5.2异步 TCP 客户端
- 6.UDP 服务器
- 7.异步多任务处理
- 8.毫秒定时器
- 9.高并发投票
- ThinkPHP5学习
- 命令行操作
- 所有命令行中用到的基类
- 1.base
- 2.WorkerBase
- 3.TimeWorkerBase
- 4.CycleWorkerBase
- 5.WorkerCommandBase
- 6.WorkerHookBase
- 1.基础命令实现
- 2.建立Linux上的守护源码
- 3.发送模板消息
- 4.基于命令行实现自己的队列模式
- 5.发送定时短信
- thinkphp5使用sentry
- sentry通知,记录日志
- 高级查询
- Kafka相关
- 1.安装
- 2.为php打扩展
- 3.kafka实现
- 一些工具搭建
- sentry日志收集系统搭建
- walle搭建
- php实现定时任务
- 检测文件变化