| 
 | 
 
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册  
 
x
 
 本帖最后由 不二如是 于 2020-2-8 11:37 编辑  
 
上一讲说完了 UDP,这次来说 TCP 。 
 
UDP 虽然传输速度快,但不能保证数据可靠性~ 
 
对于浏览器请求,或者邮件这类要求数据传输可靠性(reliability)的应用,如果使用 UDP 来传输会存在两个问题: 
 
 
基于这两个问题,我们引入 TCP 了。 
 
TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。 
 
相对于 UDP,TCP 有下面两个特点: 
 
- 对于数据包丢失的情况,TCP 提供重传机制
 - TCP 引入了数据包排序机制,用来保证把乱序的数据包组合成一个完整的文件
 
 
  
和 UDP 头一样,TCP 头除了包含了目标端口和本机端口号外。 
 
还提供了用于排序的序列号,以便接收端通过序号来重排数据包。 
 
传输模型和上一讲中 UDP 的一样,只不过将 UDP 换为 TCP 。 
 
下面我们再看下完整的 TCP 连接过程。 
 
通过这个过程你可以明白 TCP 是如何保证重传机制和数据包的排序功能的。 
 
给大家一张完整生命周期图。 
 
一个完整的 TCP 连接的生命周期包括了“建立连接”,“传输数据”和“断开连接”三个阶段。 
 
 
 
首先,建立连接阶段 
 
这个阶段是通过“三次握手”来建立客户端和服务器之间的连接。 
 
TCP 提供面向连接的通信传输。 
 
面向连接是指在数据通信开始之前先做好两端之间的准备工作。 
 
所谓三次握手是指: 
 
在建立一个 TCP 连接时,客户端和服务器总共要发送三个数据包以确认连接的建立。  
 
其次,传输数据阶段 
 
在该阶段,接收端需要对每个数据包进行确认操作,也就是接收端在接收到数据包之后,需要发送确认数据包给发送端。 
 
所以当发送端发送了一个数据包之后,在规定时间内没有接收到接收端反馈的确认消息。 
 
则判断为数据包丢失,并触发发送端的重发机制。 
 
同样,一个大的文件在传输过程中会被拆分成很多小的数据包。 
 
这些数据包到达接收端后,接收端会按照 TCP 头中的序号为其排序,从而保证组成完整的数据。 
 
最后,断开连接阶段 
 
数据传输完毕之后,就要终止连接了,涉及到最后一个阶段“四次挥手”来保证双方都能断开连接。 
 
到这里鱼油应该就明白了: 
 
TCP 为了保证数据传输的可靠性,牺牲了数据包的传输速度。  
因为“三次握手”和“数据包校验机制”等把传输过程中的数据包的数量提高了一倍。 
 
本讲了解 TCP 协议,是为了下一讲开始介绍的 HTTP~ 
 
  
 
如果有收获,别忘了评分  : 
 
 
 
如果想看更多,请订阅 淘专辑( 传送门)( 不喜欢更要订阅  )   
 
 
 |   
 
 
 
 |