TCP协议

概述

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


原文出处:/show_1EF302Z9gRz4.html