概述
TCP(Transmission Control Protocol 传输控制协议)
是一种面向 连接 的、可靠 的、基于 字节流 的 传输层 通信协议
类似 打电话
打电话
- 先拨号,建立连接
- 然后才能 通话
- 点对点通信
一个人只能给另一个人打电话(不像对讲机,一个人对一群人讲话) - 双方可同时说话,同时听
TCP特点
- 有连接
像打电话,要先拨号建立连接 - 点对点
不像UDP可以多播、广播 - 全双工
可同时收发
面向 字节流 的传输方式
把要发送的数据看成是 一连串的无结构的字节流。
发送端有 发送缓冲区,
- 如果字节流太长时,TCP会将其 拆分 进行发送。
- 当字节流太短时,TCP会等待缓冲区中的字节流达到一定程度时,发送出去。
TCP发给对方的数据,对方在收到数据时必须确认,只有在收到对方的确认时,本方TCP才会把TCP发送缓冲区中的数据删除。
接收端有 接收缓冲区,用来存放接收的数据,然后应用程序从缓冲区里读取数据
TCP数据包格式
http://www.malaoshi.top/show_1EF2YTFiWuhs.html
优点
- 可靠
错误校验,不重复,丢失重传,超时重传,且按序到达 - 流量控制
收发两端有缓冲区,发送方的发送速度,受接收端的限制,目的是防止 接收方来得不及处理,导致接收缓冲区溢出 - 拥塞控制
防止过多的数据发送到网络中,这样可以使网络中的路由器或链路不致过载
缺点
- 慢
- 系统资源消耗大
感谢:
https://wenku.baidu.com/view/2705594b49649b6649d74719.html?from=search
https://blog.csdn.net/ce123_zhouwei/article/details/8976006
https://blog.csdn.net/ningdaxing1994/article/details/73076795/
https://blog.csdn.net/liuyanfeier/article/details/52787037

