本文共 1222 字,大约阅读时间需要 4 分钟。
在网络通信中,protocol 就是通信双方必须遵守的一种规范。它决定了数据在传输过程中如何确保准确无误地到达目的地。常见的协议包括 TCP、UDP 和 IP。网络上的通信必须使用相同的协议才能顺利进行,protocol 的细节决定了如何建立连接、如何相互识别等关键步骤。
protocol family(协议族)是由多个相关协议组成的一个整体。最常见的 example 是 TCP/IP 协议族,它包含了 TCP、IP、UDP 等多种互为关联的协议。特别是 TCP 和 IP 作为底层协议的重要组成部分,使得整个 TCP/IP 协议族成为网络通信的基础设施。
在计算机网络中,数据传输方式主要有两种:SOCK_STREAM 和 SOCK_DGRAM。
SOCK_STREAM:面向连接的数据传输
这种方式保证数据能准确无误地到达另一台计算机。在数据传输过程中如果出现丢失或损坏,可以通过重新发送来解决。常见的 HTTP 协议就采用了 SOCK_STREAM transmitting data,因为它需要保证数据的完整性和正确性。
why stream sockets can ensure high-quality数据传输呢?这是因为它使用了 TCP 协议。TCP 会确保数据按顺序正确地传输到接收方。这一点非常重要,尤其是在需要高可靠性和数据完整性的场景中。
TCP/IP 是数据传输的核心,其由 TCP 和 IP 协议共同提供。TCP 负担了数据传输的正确性,IP 负担了数据的路由问题。
关于“数据的发送和接收不同步”
流格式套接字(stream socket)的工作原理中有一个关键点——收发不一定同步。内置缓冲区将接收的数据暂存起来,发送方和接收方可以按照各自的节奏来传输和读取数据Interface. 这意味着传输速率和处理方式是独立的,不同的设备可能根据自身情况决定具体操作。
SOCK_DGRAM:无连接的数据传输
这种方式更注重速度,传输过程中不进行数据校验,损坏或丢失的数据无法恢复。常见的 DNA(domain name system)和 videoconference 会选择使用 SOCK_DGRAM 由于这些场景对数据完整性要求不高,且需要快速传输。
data 报(datagram)套接字仍然使用 IP 协议作为路由层协议,但不像流格式套接字那样依赖 TCP。替代方案是使用 UDP 协议,虽然简单,但 providesFast er 数据传输速度。
需要强调的是 sock datagram 并不像流格式套接字那么“糟糕”。),因为数据丢失或损坏的概率很小,频繁发生数据丢失的情况并不会出现,这也就是为什么人们总说 data k prone in datagram transmission。
转载地址:http://ncngz.baihongyu.com/