TCP为什么要被称为数据流?
建立连接,数据就在该连接上流动,可以是双向的,没有边界,所以叫数据流
TCP是面向连接的、可靠的流协议。流就是指不间断的数据结构,你可以把它想象成排水道中的水流。当应用程序采用TCP发送消息时,虽然可以保证发送的顺序,但还是犹如没有任何间隔的数据流发送给接收端。TCP充分地实现了数据传输时各种控制功能,可以进行丢包时的重发控制,还可以对次序乱掉的分包进行顺序控制。而这些在UDP中都没有。此外,TCP作为一种面向有连接的协议,只有在确认通信对端存在时才会发送数据,从而可以控制通信流量的浪费。根据TCP的这些机制,在IP这种无连接的网络上也能够实现高可靠性的通信。
流量控制与拥塞控制的区别
拥塞控制:
防止过多的数据注入到网络中,这样可以使网络中的路由器或链路不致过载。拥塞控制所要做的都有一个前提:网络能够承受现有的网络负荷。拥塞控制是一个全局性的过程,涉及到所有的主机、路由器,以及与降低网络传输性能有关的所有因素。
流量控制:
指点对点通信量的控制,是端到端的问题。流量控制所要做的就是抑制发送端发送数据的速率,以便使接收端来得及接收
TCP和UDP有什么不同?
- 在链接状态上,TCP 是面向链接的,UDP 则是面向无链接的;
- 在数据传输的质量上,TCP 以数据流的方式传输,保证数据的有序性,准确性,完整性,数据传输质量高;UDP 则是以数据报的形式,独立发送数据报,不能保证数据是否到达,是否完整,是否有序,数据传输质量低于TCP;
- 在数据包的大小上,TCP 包头至少20个字节,但是 UDP 只有 8个字节;
- 对系统资源的要求(TCP 较多,UDP 少)