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.

26 lines
1.9 KiB

This file contains ambiguous Unicode characters!

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连接需要通过三次连接包括请求确认建立连接。
### 三次握手建立连接
- ![img_2.png](img_2.png)
### 单工、全双工、半双工
- 单工:收音机
- 半双工:不能同时说话、对讲机
- 全双工可以同时收发双绞线8根线
### 三次握手
- 目的:确保双线畅通
- syn标识标志第几次握手
- 第一次客户端序列号随机数seq=x回应序列号ack=0syn标识表示探测询问
- 第二次服务端seq=yack=x+1表示收到ack标识表示收到syn标识表示收到
- 第三次客户端seq=x+1表示收到ack=y+1ack标识表示收到
- ![img_3.png](img_3.png)
- 第一次握手:客户端尝试连接服务器,向服务器发送 syn 包同步序列编号Synchronize Sequence Numberssyn=j客户端进入 SYN_SEND 状态等待服务器确认
- 第二次握手服务器接收客户端syn包并确认ack=j+1同时向客户端发送一个 SYN包syn=k即 SYN+ACK 包,此时服务器进入 SYN_RECV 状态
- 第三次握手第三次握手客户端收到服务器的SYN+ACK包向服务器发送确认包ACK(ack=k+1此包发送完毕客户端和服务器进入ESTABLISHED状态完成三次握手
- 第三次握手的时候,是可以携带数据的。 但是,第一次、第二次握手不可以携带数据