TCP协议
1. TCP(Transmission Control Protocol):面向连接的,可靠的,基于字节流的传输层通信协议
特点:
基于连接的:数据传输之前需要建立连接
全双工的:双向传输
字节流:不限制数据大小,打包成报文段,保证有序接收,重复报文自动丢弃
流量缓冲:解决双方处理能力的不匹配
可靠的传输服务:保证可达,丢包时通过重发机制实现可靠性
拥塞控制:防止网络出现恶性拥塞
2.TCP连接管理
1. TCP连接:四元组[ 源地址, 源端口, 目的地址, 目的端口 ]
2. 确立连接:TCP三次握手
a. 同步通信双方初始序列号( ISN, initial sequence number )
b. 协商TCP通信参数(MSS, 窗口信息,指定校验和算法)
3.TCP:四次挥手
A: 发送FIN数据包,代表A不在发送数据
B: 收到请求,开始应答 ,避免了A重新发送FIN重试(应答机制)
B: 处理完数据之后关闭,关闭连接,及发送FIN请求
A: 收到请求后发送ACK应答,B服务可以释放连接
等待 2MSL后释放连接
1. 防止报文丢失,导致B重复发送FIN
2. 防止滞留在网络中的报文,对新建立的连接造成数据扰乱
4.字节流的协议
TCP把应用交付的数据仅仅看成时一连串的无结构的字节流,TCP并不知道字节流的含义,TCP并不关心应用程序一次将多大的报文发送到TCP的缓存中,而是根据对方给出的窗口值和当前网络拥堵的程度来决定一个报文段应该包含多少个字节。
MSS: Max Segment Size, 默认 536byte 实际数据
5.数据可靠性传输
停止等待协议:
重传机制
1. ack 报文丢失
2. 请求报文丢失
滑动窗口协议与累计确认(延时ack)
滑动窗口大小同通过 tcp三次握手和对端协商,且受网络状况影响
TCP协议
http://47.123.5.226:8090//archives/tcpxie-yi