TCP是一个提供面向连接,可靠的字节流传输服务。
1.面向连接
交互数据的双方,第一步首先要建立连接。想象成打电话过程。
2.可靠性
2.1 分组机制
应用层的数据会被TCP分割成合适发送的数据块进行传输。
2.2 重发机制
TCP发送一个数据后,会启用一个定时器。若接收端未确认收到该数据,则会发端会重发这个数据。
A:你吃饭咩?
A:你吃饭咩?
B:吃了
A:继续。。。
2.3 确认机制
TCP双方,在收到对方的数据,都需要进行一个确认应答。
2.4 校验机制
TCP首部内含有校验和,用于确认该数据的正确性。收方需要对收到的数据和校验和进行比较。
2.5 失序重组?
IP层和TCP层发送的数据,顺序会错乱,TCP需要对接收到的数据进行排序重组,以保证数据的可靠性。
(这点,没想到怎么实现)
2.6 重复数据?
数据会出现重复的情况,那么TCP要能丢弃重复的数据。
(这点,没想到怎么实现)
2.7 流量控制
TCP发收方都有一个固定缓冲区,TCP仅允许接收它缓冲区可容纳的空间。
A:我发1024个字节给你。
B:不好意思,我只能接512字节,每次
A:好吧,我发512字节
B:开始接收。。。