TCP基本认识
TCP头格式
序列号:主要解决包乱序的问题
确认应答号:主要解决丢包的问题
控制位:
- ACK 设置为1,表示确认应答字段为有效
- RST 设置为1表示强制断开连接
- SYN 设置为1表示希望建立连接,并且对序列号进行初始化设置
- FIN 设置为1表示今后不会再有数据发送,希望断开连接
TCP的目的
首先需要明确:TCP工作在传输层
工作:提供可靠的数据传输服务,保证收到的数据包是按序,完整,无损坏的
TCP定义
面向连接的、可靠的、基于字节流的传输层通信协议
- 面向连接的:必须是一对一连接
- 可靠的:保证一定可以到达接收端
- 基于字节流:产生粘包问题
TCP连接是指什么
用于保证可靠性和流量控制维护的某些状态信息的组合,包括socket、序列号、窗口大小
为了唯一地确定一个TCP连接,通常采用源地址,源端口,目标地址,目标端口 四元组确定
注意
源地址、目标地址是32位的,作用是通过IP协议发送报文给对方主机
源端口和目标端口是16位的,作用是告诉TCP协议应该把报文发送给哪个进程