首页 > 编程知识 正文

TCP, TCP/IP, HTTP有什么区别?

时间:2023-05-05 12:50:44 阅读:130633 作者:3214

我最近在学习web socket,得知它使用TCP实现了异步通信、全双工。 与Http不同,Http采用无状态、响应型的响应。 因此,我想知道TCP、TCP/IP、Http、Socket之间有什么样的关联性和差异,以及全双工通信和半双工通信是如何在网络层实现的。

计算机网络有两种常见的参考模型: OSI参考模型和TCP/IP参考模型。 由此可见,TCP本身是传输层协议,而TCP/IP是一种网络参考模型。

1. OSI层参考模型:今天主要用于明确理解网络结构的分层。 虽然没有使用与该模型相关的协议,但它具有讨论网络体系结构各层功能的重要性的一般意义。 区分服务、接口和协议的概念。 每个层的接口都显示其上的进程如何访问此层。 另外,各层使用的对等协议是各层自身的内部。 不影响上层。 同时支持面向连接和无连接通信。 但是,传输层只支持面向连接的通信。

2. TCP/IP :实用性高于7层。 因为会广泛传播,所以模型本身没什么用。 没有明确区分服务、接口和协议。 下图也是人们将其改进为与OSI相似的。 网络层只支持一种面向非连接的服务,而传输层同时支持面向连接(TCP )和面向UDP (非连接)的通信模式。

3 .面向连接和无连接概念:

面向连接:

-服务:意味着用户必须首先建立连接,在该连接上发送数据,然后断开或关闭连接。 例如,发送方将数据推入管道的一端,接收方在另一端检索数据,如: 基本上维持顺序。

-协议: TCP、全双工、收发两端可同时收发。 建立连接需要3次握手,断开连接需要4次手。 连接方式是点对点的,不能组播。

面向无连接:

-服务:不保证传输的数据到达,并且可能是无序的。 每条消息都具有完整的目的地地址,从系统的中间路由发送。

-协议:UDP与网络层的IP协议几乎直接通信。 它被称为无连接服务,因为没有在两个进程通信之前握手的进程。 如果一个终端需要发送消息,则通过UDP套接字发送消息,UDP不保证秩序,也不保证一定被接收方接收到。 另外也没有拥挤的控制。

从编码的角度看,TCP UDP的差异如下图所示。 4 .套接字

套接字(socket )是通信的基础,是支持TCP/IP协议的网络通信的基本操作单元。 这是对网络通信中的端点的抽象,包含进行网络通信所需的五条信息。 用于连接的协议、本地主机的IP地址、本地进程的协议端口、远程主机的IP地址和远程进程的协议端口。

如果APP应用层通过传输层进行数据通信,则TCP将面临同时向多个APP应用程序提供同时服务的问题。 多个TCP连接或多个APP应用程序进程可能需要通过同一TCP协议端口传输数据。 为了区分不同的APP应用程序进程和连接,许多计算机操作系统为APP应用程序与TCP/IP协议进行交互提供了套接字接口。 APP应用层和传输层通过套接字接口区分来自不同APP应用进程或网络连接的通信,可以实现数据传输的并发服务。

套接字之间的连接过程分为三个步骤。 服务监听、客户端请求、连接确认。

从下图中可以看到,套接字实际上是TCP/IP协议的封装,套接字本身不是协议,而是调用接口(API ),可以通过套接字使用TCP/IP协议:

5 .总结差异

协议层次描述了面向TCP传输层连接的可信传输协议. TCP/IP协议栈,也称为网络服务模型。 网络层只提供没有连接的服务。 传输层提供TCP和UDP两种连接方式。 Sokcet提供了在传输层和APP应用层之间封装传输层的TCP/IP接口组。 使APP应用层将数据传输到TCP/IP协议栈。 http APP应用层是构建在TCP/IP协议基础上的APP应用协议。 默认端口为80 .提供服务端和客户端

3359 OS.mbed.com/handbook/socket

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。