【Re从零开始学习计算机网络】TCP与IP的区别

TCP 是 TCP/IP 协议族的重要协议之一,它和同是 TCP/IP 协议族的重要协议 IP 协议有下面这些区别。

网络层次

  • IP 协议管理的是逻辑上的网络连接,它是工作在 OSI 的第 3 层网络层的协议。由于离应用层比较远,故大多数情况下,它对应用程序是透明的。

  • TCP 协议管理的是两个终端数据流的传输,它是工作在 OSI 的第4层传输层的协议。相比于 IP 协议,TCP 协议更接近应用层,在应用程序中有更强的可操作性。

连接管理的方式

  • 在 IP 协议中,连接双方主要靠 IP 数据报中的源 IP 和目的 IP 来识别对方。

  • 在 TCP 协议中,连接双方主要靠 TCP 报文段中的源端口号和目的点口号来识别对方,管理连接,控制两个方向的数据流。

连接状态

  • IP 协议是一个无连接、不可靠的的网络连接。当计算机的 IP 数据报输出子模块将 IP 数据报发送出去后,该 IP 数据报就不再存在于 IP 发送队列中了。这就意味着,IP 模块无法保证所发送的 IP 数据报准确无误地将数据报发送给目的端。

  • TCP 协议是一个面向连接、可靠的网络服务。当计算机将 TCP 报文段发送给 IP 模块经由 IP 数据报输出子模块发送出去后,该 TCP 报文段依旧会暂存于 TCP 内核发送缓冲区,直到接收到对方发送的确认报文。如果没有收到对方发送的确认报文,TCP 会将暂存于 TCP 内核发送缓冲区的数据封装重新发送,直到确认发送成功为止。

一对一与一对多连接

  • 正如前面所说,IP 协议是一个无连接的协议,所以 IP 可以不必局限于一对一的连接,可以进行一对多的连接,如多播和任播。

  • TCP 是可靠地面向连接的协议,它必须保证两个终端之间的链接可靠,所以 TCP 协议只能是一对一的网络连接。

字节流与数据报

  • IP 协议是数据报服务。何为数据报,数据报便是,发送端写的次数必须和接收端读的次数相同。由于 IP 模块中的数据报接收子模块是一个队列,并没有存储数据报的功能,因此目的端读取 IP 数据报,必须按顺序读取所接收到的数据报。

  • TCP 协议是字节流服务。何为字节流,字节流便是,发送端写的次数与接收端读的次数没有固定的数量关系。当发送端将 TCP 报文段发出后,目的端在接收 TCP 报文段后,可以暂存在 TCP 接收缓冲区中,而应用程序,可以选择将报文段逐次接收,也可以选择一次性将缓冲区内的数据读取。

欢迎评论。
lingkb » 【Re从零开始学习计算机网络】TCP与IP的区别

发表评论