TCP协议(一)
TCP协议的特点
- 面向连接。
- 点对点,一个TCP连接只能有两个端点。
- 提供可靠交付,提供流量控制、拥塞控制。
- 全双工通信。
- 面相字节流。
TCP报文格式
首部:前20个字节固定有,后面跟随可选部分(可变长)和填充部分。
- 源端口:16位。
- 目的端口:16位。
- 序号:填入数据部分第一个字节在整个传输文件中的位置,32位。
- 确认号:填入数据部分最后一个字节在整个传输文件中的位置加一(即下一个要发送的位置),32位。
- 数据偏移:记录报文中数据部分从哪一个字节开始,1单位4字节,最大为15,4位。
- 保留:6位。
- 状态位:6位。URG:提高发送优先级时为1。PSH:提高接收优先级时为1。ACK:确认号有效为1。SYN:建立连接请求时为1。RST:TCP连接出错。FIN:释放连接。
- 窗口:16位。通信前,相互确认对方的接收缓存。用于存放剩余的接收缓存。
- 校验和:需要加上伪首部。
- 紧急指针:URG为1时有效,紧急处理的字节长度。
- 选项:可以规定最大数据报长度。是否支持选择性确认(SACK)。时间戳。等等。
可靠传输的原理
停止等待协议
接收方每次收到报文后需要回复确认报文,否则发送方重传。
缺点:信道利用率太低,有一半的时间,都在等待。
连续ARQ协议
流水线传输:维持一个发送窗口,连续发送窗口内的数据包,等待对方回复确认后,将窗口向前滑动。
累积确认:可以用一个数据包确认连续的n个数据包。