TCP介绍
Transmission Control Protocol (TCP)
定义在 RFC793
目的:在不可靠的网络上为host-to-host的通讯双方提供可靠安全的逻辑链路
包含下列几点:
- 基本数据传输
连接是双向通信的;字节流;字节封装成包;TCP自己决定何时停止和发送数据,如果需要确保已经提交的数据及时发送,可以使用push功能 - 可靠性
TCP必须可以恢复以下数据:受损的、丢失的、重复的、乱序的
每个字节一个编号,接受者确认,如果确认超时未收到应该重发
接收者根据编号来排序错序的报文和去除重复的报文
受损的数据可以通过报文段的校验码来控制,丢弃受损的数据
超时重发 - 流量控制
流量控制,接收者控制发送者数据发送
窗口机制,每一个ACK报文段返回一个窗口值,当前确认的字节以后最多能发送的字节数 - 多路复用
多路复用,同一个机器上可以存在多个TCP连接
端口+host=socket;两个socket确认一个连接
常用服务特定的端口号; - 链接
可靠性以及滑动窗口机制都是建立在链接的基础上的
连接:描述当前数据流的状态的一些信息的组合,sockets+序列号+窗口
建立连接(初始化通信双方的状态信息),创建TCB(Transmission Control Block)建立连接三次握手
关闭链接四次握手 - 优先级和安全性
先不关注这部分
其他:
- 在一个TCP连接中,仅有两方进行彼此通信。广播和多播不能用于TCP
- TCP使用校验和,确认和重传机制来保证可靠传输