即时通讯开发之TCP/IP中的TCP 协议概述

终于看到了 TCP 协议,这是 TCP/IP 详解里面最重要也是最精彩的部分,要花大力气来读。前面的 TFTP 和 BOOTP 都是一些简单的协议,就不写笔记了,写起来也没啥东西。

即时通讯开发之TCP/IP中的TCP 协议概述_第1张图片

TCP 和 UDP 处在同一层---运输层,但是 TCP 和 UDP 最不同的地方是,TCP 提供了一种可靠的数据传输服务,TCP 是面向连接的,也就是说, 利用 TCP 通信的两台主机首先要经历一个“拨打电话”的过程,等到通信准备结束才开始传输数据,最后结束通话。所以 TCP 要比 UDP 可靠的多,UDP 是把 数据直接发出去,而不管对方是不是在收信,就算是 UDP 无法送达,也不会产生 ICMP 差错 报文,这一经时重申了很多遍了。

把 TCP 保证可靠性的简单工作原理摘抄如下

 应用数据被分割成 TCP 认为最适合发送的数据块。这和 UDP 完全不同,应用程序产生的 数据报长度将保持不变。

 当 TCP 发出一个段后,它启动一个定时器,等待目的端确认收到这个报文段。如果不能 及时收到一个确认,将重发这个报文段。

 当 TCP 收到发自 TCP 连接另一端的数据,它将发送一个确认。

 TCP 将保持它首部和数据的检验和。这是一个端到端的检验和,目的是检测数据在传输 过程中的任何变化。如果收到段的检验和有差错, TCP 将丢弃这个报文段和不确认收到此报文段(希望发端超时并重发)。

 既然 TCP 报文段作为 IP 数据报来传输,而 IP 数据报的到达可能会失序,因此 TCP 报文段 的到达也可能会失序。如果必要, TCP 将对收到的数据进行重新排序,将收到的数据以正确的顺序交给应用层。即时通讯聊天软件app开发可以加小蓝豆咨询

你可能感兴趣的:(tcp/ip,网络,udp)