tcp
- 传输控制协议(transimision control protocal)
- 可靠的,面向连接的协议
- 传输效率低
传输特点
- 将数据进行分段打包传输
- 对每个数据报编号进行控制
- 运输中丢失,重发和丢弃处理
- 流量控制避免阻塞
tcp数据报文格式
信息描述
(1)首部长度
(2)控制位 - TCP的连接、传输和断开都受这六个控制位的指挥
PSH(push急迫) 缓存区将满,立刻传输速度
RST(reset重置位) 连接断开了,重新连接
URG(urgent紧急位) 紧急信号
SYN(syncchronous建立联机) 同步序号位, TCP建立连接时要将这个值设为1
ACK(acknowledement 确认) 为 1 时表示确认号
FIN(finish 关闭连接)
(3) 紧急指针 只在 URG控制位为1时有效。表示紧急数据的末尾在TCP数据部分中的位置。 通常在暂时中断通信时使用
(4) 窗口值(tcp传输中进行流量控制)
窗口值 - 说明本地可接受数据段的数目,这个值的大小是可变的。当网络通畅时将这个窗口值变大,加快传输速度,当网络不稳定时减少这个值可以抱枕网络数据的可靠传输。
窗口大小: 表示从应答开始能够接受多少个8位字节。 如果窗口大小为0, 可以发送窗口探测。通过ACK告诉客户端窗口大小
握手和断开
(1) tcp是面向连接的协议, 它在源点和终点之间建立虚拟连接,而不是物理lianjie
(2) 在数据通信之前,发送端与接受端要先建立连接,等数据发送结束后,双方再断开连接
(3) TCP连接的每一方都是由一个IP地址和一个端口组成
三次握手与四次挥手
C: client, S: server
三次握手
C发送SYN(建立联机), seq = x 客户端的序列号
S接受C的请求,返回 SYN, ACK(确认信息) seq = y (服务端的序列号)
C收到S的确认信息,连接完成
(序列号,用于确认包的顺序,因为是包是并发发送的)
数据传输
四次挥手
为什么是四次挥手?
因为对方不一定同意分手, 所有要等对方的确认信息
tcp 阻塞控制
- tcp在初始化或者超时后使用一种慢启动机制来增加拥塞窗口的大小,指数式增长。
- 在流量控制中, 接收方通过TCP的窗口值来告知发送方,由发送方通过对拥塞窗口和接受窗口的大小做比较, 来确认任何时刻内需要传输的数据量
- 慢启动后,采用和式增加,积式减少(additive/multiplicative, AIMD,这里简称”线增积减”)是一种反馈控制算法,
- 未确认的数据包刚好等于带宽等于延迟
- 当发现丢包的时候立刻减半
udp
- 用户数据报协议(user datagram protocal)
- 不可靠的、无连接的服务
- 传输效率高
应用
- 视频
- TFTP简单文件传输协议(短信)