什么是持久连接和会话

网络工程 奥西 网络发现 传输协议 苹果电脑 数据
2021-07-21 08:51:54

我仍然无法理解的一件事是持久连接和会话。我将解释我如何理解所有网络内容。

  1. 物理层。这只是通过电线的电压电平,这一层没有什么难理解的。

  2. 数据链路层例如帧,其中包含有关设备的一些信息,如 MAC 地址。帧如何到达目的地?例如使用开关。交换机知道哪个端口映射到特定地址,当帧到来时,它只向特定端口发送电压电平。在另一侧网卡接收电压并触发由操作系统处理的中断。我不明白如何使用 Wifi 连接将数据包定向到正确的设备。

  3. 网络层。只需使用数据链路层为数据定义的空间在顶部添加IP头,减少可以在一帧内通过网络传输的数据有效载荷大小

我关于持久连接的主要问题呢?
我不明白在这种情况下持久意味着什么。我理解持久一词如下:在持久连接时没有其他人可以占用电线。所以这个连接只是一对一的。但这是不对的。当其他数据包通过同一条线路时,可以建立持久连接。
我想它以以下方式工作。客户端或服务器定期发送称为心跳的数据包,以接受对方仍然在这里,并将此信息存储在操作系统中的某处,例如布尔标志(is_still_alive)在其他情况下,如果在一段时间内没有响应,连接将被关闭(移除标志,清除缓冲区)。并且如果带有 ACK 心跳的数据包稍后到来,它将以再次建立连接的意图进行响应。

如果我理解了上述内容,我想我就会理解会话机制。

请帮助了解这些东西是如何工作的。我将不胜感激任何帮助。

1个回答

首先说一下:

我理解持久一词如下:在持久连接时没有其他人可以占用电线。所以这个连接只是一对一的。但这是不对的。当其他数据包通过同一条线路时,可以建立持久连接。

这是电路交换网络分组交换网络

电路交换网络
在这种网络中,要在两台要通信的主机之间建立一条物理专线。

更好的例子是第一个电话网络,其中人工操作员手动连接两条电话线以根据请求建立通信。 在此处输入图片说明

后者被机制取代了人工操作员。这种机制的企业内部版本被称为“PBX”(Private Branch eXchange)。

在这种情况下,您实际上保持了物理连接,并且在此期间没有其他人可以使用任何电路。

包交换网络
IP 网络是包交换网络。正如您所说,来自多个应用程序的许多数据包可以同时在线上流动,并且对于单个对话,不同的数据包可以采用不同的路由。

这允许更好地利用链接和更健壮的设计(当然它有一些缺点)。

因此,在 IP 层没有建立“连接”或“会话”。

有一种新兴趋势来识别并将特定的交换和/或路由规则应用于它们,例如,流可以对应于 TCP 会话,但这不是我们在谈论连接/会话时通常所指的内容。

联系

IP 提供两种主要协议(以及其他协议)来在两个主机之间建立通信:UDP 和 TCP。

UDP 是无连接的。这意味着(引自维基百科)“可以在没有事先安排的情况下将消息从一个端点发送到另一个端点。通信一端的设备传输寻址到另一端的数据,而无需首先确保收件人可用并准备好接收数据”。

TCP 是面向连接的。在实际传输数据之前,两个主机互相交谈以检查它们是否可用并同意交换某种数据(想想典型电话的序言)。这种连接会一直保持,直到主机发出信号表示要结束它,或者经过一段时间后不交换任何数据。

VPN 连接通常以相同的方式工作。两台主机交换一些信息(包括使用哪种加密协议、一些加密密钥和用户身份验证机制等),如果机器人同意这些条款,则建立并维护连接。通常会定期发送一些保持活动的数据包,以表示“我还在这里,不要断开连接”。

会话
会话由应用程序建立。一个会话可以对应一个单独的 TCP 连接,但一个会话可以使用多个不同的 TCP 连接或使用 UDP 作为传输协议。

例如,HTTP(s) 会话可以使用 cookie 来识别用户并可以提供对不同资源的访问(想想网络银行)。

IP 电话 (VOIP) 电话呼叫将使用 SIP 协议。SIP 的意思是“会话发起协议”,它可以运行在 UDP 之上。

建立/维护/关闭会话的确切机制取决于所使用的应用程序。