HTTP协议 --- 超文本传输协议 和 TCP --- 传输控制协议
是基于
TCP
协议的
80
端口的一种
C/S
架构协议。
特点:无状态
---
数据传输完成后,会断开
TCP
连接,哪怕浏览器还正常运行。
请求报文
---
方法

响应报文 ---
状态码

是一种面向连接的可靠传输协议
。
面向连接
---
在传输数据之前,收发双方先建立的一条逻辑上的通路。
--->
进行参数协商
。
传输层
--- TCP
是在不可靠的
IP
层面之上来实现的一种可靠的数据传输协议。
--->
有序传输、无丢失、
不重复、实现一种可靠传输行为
。
特点:
面向连接
---
三次握手、四次挥手
提供可靠交付的服务。
每一条
TCP
连接都只能存在两个端点。
即点对点行为
。两端使用
套接字
(IP+
端口
)
来描述。
TCP
提供
全双工通信
;
发送缓存
准备发送的数据
已经发送,但是没有收到确认的数据
接收缓存
按序到达,但未被应用程序读取的数据
乱序到达的数据
TCP
是
面向字节流
传输的协议;
---
以字节为单位
。
TCP
把应用程序交付下来的数据仅仅看做是一连
串无结构的字节流。

TCP
报文头部

序列号
:也是在标识报文的序号;
每个报文都必须包含序列号
。
序列号
=
上一个分组序列号
+
上个分组中传输的数据量
;
能够帮助接收方进行数据排序。
确认序列号
:
通过确认序列号,来实现对数据的确认。
功能:
1.
代表接收方希望收到的下一个报文的序列号;
2.
代表该确认序列号之前的所有数据已
经收到
。
窗口大小
---
指的是发送本报文的设备的接收窗口大小,即允许对方连续发送的数据量
。
紧急指针
---
用来标记需要紧急处理的数据大小。
控制位
---
标记位
紧急位
URG
---
代表此时的数据中,存在需要立即处理的数据,这部分数据不应该在缓存中排
队,需要立即处理,与紧急指针字段结合使用。
确认位
ACK ---
只有当
ACK=1
时,确认序列号才有意义
;
在连接建立之后,所有传输的报文都
必须将
ACK
置位为
1
。
推送位
PSH
---
接收方应该尽快处理数据,不需要等待缓存填满等要求。
复位
RST
同步位
SYN ---
连接建立请求标志
终止位
FIN ---
连接释放标志,前提,本地数据传输完毕
。
在逐包确认机制中,发送方每发送一个数据,都需要等待接收方的确认报文,收到确认报文后,才
可以发送下一个报文信息,导致数据传输效率较低。而接收方只有将数据从接收缓存中提取给应用程序
处理后,才会发送确认报文
。