TCP协议
一、TCP协议
1. TCP协议概述
TCP协议与电话语音通信相似,是面向连接的、可靠传输、有流量控制、拥塞控制、面向字节流传输、提高网络利用率
等诸多优点的协议。其最终功能与UDP一样,提供进程间端对端的通信
,但和UDP区别还是很大的
2. TCP协议要点
- 1)当应用层向TCP层发送用于
网间传输的、用8位字节表示的数据流,TCP则把数据流分割成适当长度的报文段
,最大传输段大小(MSS) 通常受该计算机连接的网络的数九链路层的 最大传送单元(MTU) 的限制; - 2)TCP为了保证
报文传输的可靠,就给每个包一个序号
,同时序号也保证了传送到接收端实体的包的按序接受
。然后接收端实体对已成功接收到的字节回复一个相应的确认(ACK);
重传:如果发送端实体在合理的 往返时延(RTT) 内未收到确认,那么对应的数据将会被重传;
3. TCP报文结构
- 源端口和目的端口号:知道谁发给谁的;
- 序号:编号是为了解决乱序问题;
- 确认应答:发出去的包应该收到的确认,没有收到就重传,直到送达;
- 控制位:SYN是发起一个连接、ACK是回复、RST是重新连接、FIN是结束连接;
- 窗口大小:TCP要做流量控制,通信双方个申明一个窗口,标识自己当前能够处理的能力,通俗来说就是,别发送太快,撑死我,也别发送太慢,饿死我;
4. 面向连接——三路握手
TCP提供面向有连接的通信传输,面向有连接是指在数据通信开始之前先做好两端的准备工作;所谓的三路握手是指建立一个TCP连接时需要客户端和服务器端总共发送三个包以确认连接到建立。在socket编程当中,这一过程由客户端执行connect来触发。
模式:请求 -> 应答 -> 回应应答
- 第一次握手:客户端将标志位SYN置为1&#x