You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.
### 三HTTP和TCP的关系
- TCP是传输层协议, 而HTTP是应用层协议
- TCP是底层通讯协议, 定义的是数据传输和连接方式的规范;
- TCP/IP实际上是一组协议, 它包括上百个各种功能的协议, 如: 远程登录、文件传输和电子邮件等, 而TCP协议和IP协议是保证数据完整传输的两个基本的重要协议。通常说TCP/IP是Internet协议族, 而不单单是TCP和IP。
- TCP就是单纯建立连接, 不涉及任何我们需要请求的实际数据, 简单的传输。
- 要和服务端连接TCP连接, 需要通过三次连接, 包括: 请求, 确认, 建立连接。
### 三次握手建立连接
- 
### 单工、全双工、半双工
- 单工:收音机
- 半双工:不能同时说话、对讲机
- 全双工: 可以同时收发( 双绞线8根线)
### 三次握手
- 目的:确保双线畅通
- syn标识: 标志第几次握手
- 第一次( 客户端) : 序列号( 随机数) : seq=x; 回应序列号ack=0; syn标识, 表示探测询问
- 第二次( 服务端) : seq=y; ack=x+1( 表示收到) ; ack标识, 表示收到; syn标识, 表示收到
- 第三次( 客户端) : seq=x+1( 表示收到) ; ack=y+1; ack标识, 表示收到
- 
- 第一次握手:客户端尝试连接服务器,向服务器发送 syn 包( 同步序列编号Synchronize Sequence Numbers) , syn=j, 客户端进入 SYN_SEND 状态等待服务器确认
- 第二次握手: 服务器接收客户端syn包并确认( ack=j+1) , 同时向客户端发送一个 SYN包( syn=k) , 即 SYN+ACK 包,此时服务器进入 SYN_RECV 状态
- 第三次握手: 第三次握手: 客户端收到服务器的SYN+ACK包, 向服务器发送确认包ACK(ack=k+1) , 此包发送完毕, 客户端和服务器进入ESTABLISHED状态, 完成三次握手
- 第三次握手的时候,是可以携带数据的。 但是,第一次、第二次握手不可以携带数据