最近我在做前端面试题总结系列,感兴趣的朋友可以添加关注,欢迎指正、交流。
争取每个知识点能够多总结一些,至少要做到在面试时,针对每个知识点都可以侃起来,不至于哑火。
我们常常会听到“ TCP 三次握手、四次挥手” 这样的话。并且通过前面对 HTTP 的总结,我们知道 HTTP 通常是运行在 TCP 之上的,那么 TCP 到底是什么呢?今天我们先来认识一下它。
TCP 的全名是 Transmission Control Protocol
,翻译过来就是 “传输控制协议”,是用来控制传输的,它是为了在不可靠的互联网络上提供可靠的端到端字节流而专门设计的一个传输协议。
我们把 HTTP 叫做 “超文本传输协议”, 从这两个的名字上我们就可以看出,TCP 的作用范围比 HTTP 大,权限层次也更高,难怪要说 HTTP 试运行在 TCP 之上了,底层文明决定上层建筑是有道理的。
TCP 是一种面向连接的、可靠的、基于字节流的传输层通信协议。
互联网络与单个网络有很大的不同,因为互联网络的不同部分可能有截然不同的拓扑结构、带宽、延迟、数据包大小和其他参数。TCP 的设计目标是能够动态地适应互联网络的这些特性,而且具备面对各种故障时的健壮性。
IP层并不保证数据报一定被正确地递交到接收方,也不指示数据报的发送速度有多快。正是 TCP 负责既要足够快地发送数据报,以便使用网络容量,但又不能引起网络拥塞:而且,TCP 超时后,要重传没有递交的数据报。即使被正确递交的数据报,也可能存在错序的问题,这也是 TCP 的责任,它必须把接收到的数据报重新装配成正确的顺序。简而言之,TCP 必须提供可靠性的良好性能,这正是大多数用户所期望的而IP又没有提供的功能。
TCP 是一种面向广域网的通信协议,目的是在跨越多个网络通信时,为两个通信端点之间提供一条具有下列特点的通信方式:
(1)基于流的方式;
(2)面向连接;
(3)可靠通信方式;
(4)在网络状况不佳的时候尽量降低系统由于重传带来的带宽开销;
(5)通信连接维护是面向通信的两个端点的,而不考虑中间网段和节点。
以上就是关于 TCP 的一些概念性的内容。
~
~本文完,感谢阅读!