TCP在IP之上,这是什么意思?

时间:2016-08-14 14:49:13

标签: sockets networking network-programming

我总是听说互联网的层次,我模糊地理解这一点。但是,最让我困惑的是传输层(包括TCP协议)位于互联网层之上(包括IP协议)。 这是什么意思?对于那些对互联网机制有模糊理解的人(我不是CS学生,或者我只是一个业余爱好程序员)

我对互联网的看法是,网卡通过有线连接/ wifi从互联网发送/接收信号(数据包),然后使用套接字API的操作系统发送/接收这些数据包作为硬件和硬件之间的层。应用程序反过来使用某些高级协议(如HTTP)来解释传输的数据 - 这些协议通常由语言提供,例如python或java ..我想那时IP和TCP协议是在套接字API级别使用的?但我需要更多细节?我希望解释是在编码/编程/实现方面,因为在这个领域使用的抽象让我感到困惑。

谢谢你,对不起我的英语不好

2 个答案:

答案 0 :(得分:1)

这是解决网络问题的分层解决方案的一部分。每个层都有自己的功能:

  • IP(因特网协议)负责从一个机器中的一个接口传送分组(或数据报),其中IP地址分配给同一机器或其他机器(节点)中的另一个接口。两个节点可以位于同一LAN或通过不同路径(LAN和路由器)连接的不同LAN。基本上它会使数据包从源IP到目标IP。它提供尽力而为的服务,它不能保证IP数据包到达,它可能在中间丢失。
  • 在所谓的TCP / IP堆栈中的第3层或IP之上,存在传输层。它的主要功能是在不同的应用程序之间复用较低层(IP)服务(从src到dst的数据包)。这就是为什么在所有传输层协议中都存在端口或更一般的传输服务接入点(TSAP)的概念。 UDP,TCP,SCTP就是这样做的。 UDP为应用程序提供了不可靠的服务。 TCP为应用程序提供连接的,可靠的传输服务。该层将使节点Y中的应用程序A发送的消息可靠地或不可靠地到达节点Z中的应用程序A1(而IP仅负责将数据包从节点Y传送到节点Z)。

您需要阅读一些关于OSI分层模型和TCP / IP分层模型的内容。

如果您需要了解更多信息,我可以通过对网络的详细介绍,向您介绍我对IPv6的培训:http://www.slideshare.net/rodolk/networking-tcpip-stack-introduction-ipv6

答案 1 :(得分:0)

TCP是一种称为“传输控制协议”的协议 - 根据规范,它具有确保传输数据被检查的功能。另一方面,有一些东西,如UDP,也称为“用户数据报协议”,它也可以在IP之上工作 - 通过规范,这种方法不会检查任何传输的数据,所以它在文件必须完全正确的情况下不太有用(更多用于视频流,其中一些丢失的帧是可接受的,而不是二进制文件传输,其中不正确的数据意味着损坏并且整个文件将是无用的。)

在IP上,IP是一种寻址协议,允许网络寻址并与其中的任何机器通信。 IP代表互联网协议,它定义了两台机器通过“互联网”进行通信的基本方式。它没有定义如何处理通信,例如检查数据完整性等等。

因此,总而言之,TCP和UDP只是IP的扩展。但是,完全有可能有一个基于套接字的TCP或UDP连接,我希望它也可以有某种MAC地址协议(而不是IP地址协议)。我不知道任何类似于IP的协议,但我想它们确实存在。实际上,使用TCP而不是IP以外的东西是完全不可能的。如果您要努力创建自定义协议,您可能希望它完全自定义,并且不希望坚持为另一个协议层设计的设计规范。

请注意,将其称为“TCP / IP”连接可能仅用于遗留原因。许多这样的术语仍然存在,因为在技术“泡沫”增长之前,存在竞争的IP替代品。即便在今天,IPv6在技术上也是IPv4的替代品。也有可能有一天我们可能会超过IPv6,并且在那个时间点,除了IP之外可能还有其他问题需要担心。