一、四层模型分层 TCP/IP四层模型包括以下层次: 1. **应用层**:处理特定应用程序的细节,例如HTTP、FTP等协议都在此层工作。 2. **传输层**:为两台主机上的应用程序提供端到端的通信。主要协议有TCP(传输控制协议)和UDP(用户数据报协议)。 3. **网络层**:负责数据包的路由和转发,通过IP协议实现。 4. **网络接口层**:也称为数据链路层和物理层,处理物理层上的比特流的接收和发送。 二、HTTP和HTTPS的区别 1. **安全性**: - HTTPS比HTTP更安全,因为它在传输数据前***L/TLS握手进行加密,防止数据被窃取或篡改。HTTP则以明文形式传输数据,安全性较低。 2. **连接方式**: - HTTP是无状态、明文传输的协议,连接较简单。 - HTTPS在TCP三次握手后,还需进行SSL/TLS握手以建立安全连接,过程更复杂且耗时。 3. **端口号**: - HTTP默认使用80端口。 - HTTPS默认使用443端口。 4. **证书要求**: - HTTPS需要数字证书验证服务器身份,确保连接到正确的服务器。HTTP则不需要证书。 三、TCP头部 TCP头部通常为20字节,包含以下主要字段: 1. **源端口和目的端口**:各16位,标识发送和接收方的应用程序端口号。 2. **序列号**:32位,标识TCP报文段中数据字节流的顺序。 3. **确认号**:32位,期望收到对方下一个报文段的第一个数据字节的序号。 4. **数据偏移**:4位,指示TCP报文段数据起始处与TCP报文段起始处的距离。 5. **保留**:6位,保留供未来使用,当前应设为0。 6. **控制位**:6位,包括URG(紧急指针有效)、ACK(确认号有效)、PSH(尽快将报文段交给应用层)、RST(重置连接)、SYN(发起连接同步序号)、FIN(发送端完成发送任务)。 7. **窗口大小**:16位,用于流量控制,表示接收方愿意接收的字节数。 8. **校验和**:16位,检查TCP报文段在传输过程中是否出错。 9. **紧急指针**:16位,仅在URG标志置1时有效,指出报文段中紧急数据的最后一个字节的序号。 四、InnoDB的索引 InnoDB是MySQL数据库的一种存储引擎,支持多种索引类型: 1. **聚簇索引**:即主键索引,数据行的物理存储顺序与索引顺序一致。InnoDB会自动为主键创建聚簇索引,若无主键则选择唯一非空索引代替,若无此类索引则隐式定义主键作为聚簇索引。 2. **二级索引**:即非聚簇索引,叶子节点存储索引值及对应的主键值。通过二级索引查找数据时,先在二级索引中找到主键值,再通过主键值在聚簇索引中查找具体数据行。 3. **联合索引**:由多个列组成的索引。使用联合索引查询时,需根据最左匹配原则,即查询条件必须包含联合索引的最左列,才能利用该联合索引优化查询。
点赞 评论

相关推荐

牛客网
牛客企业服务