我总是听说互联网的层次,我模糊地理解这一点。但是,最让我困惑的是传输层(包括TCP协议)位于互联网层之上(包括IP协议)。 这是什么意思?对于那些对互联网机制有模糊理解的人(我不是CS学生,或者我只是一个业余爱好程序员)
我对互联网的看法是,网卡通过有线连接/ wifi从互联网发送/接收信号(数据包),然后使用套接字API的操作系统发送/接收这些数据包作为硬件和硬件之间的层。应用程序反过来使用某些高级协议(如HTTP)来解释传输的数据 - 这些协议通常由语言提供,例如python或java ..我想那时IP和TCP协议是在套接字API级别使用的?但我需要更多细节?我希望解释是在编码/编程/实现方面,因为在这个领域使用的抽象让我感到困惑。
谢谢你,对不起我的英语不好
答案 0 :(得分:1)
这是解决网络问题的分层解决方案的一部分。每个层都有自己的功能:
您需要阅读一些关于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之外可能还有其他问题需要担心。