博客
关于我
协议族和数据传输方式
阅读量:723 次
发布时间:2019-03-21

本文共 1222 字,大约阅读时间需要 4 分钟。

Protocols and Protocol Families

在网络通信中,protocol 就是通信双方必须遵守的一种规范。它决定了数据在传输过程中如何确保准确无误地到达目的地。常见的协议包括 TCP、UDP 和 IP。网络上的通信必须使用相同的协议才能顺利进行,protocol 的细节决定了如何建立连接、如何相互识别等关键步骤。

protocol family(协议族)是由多个相关协议组成的一个整体。最常见的 example 是 TCP/IP 协议族,它包含了 TCP、IP、UDP 等多种互为关联的协议。特别是 TCP 和 IP 作为底层协议的重要组成部分,使得整个 TCP/IP 协议族成为网络通信的基础设施。

Data Transmission Methods

在计算机网络中,数据传输方式主要有两种: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/

你可能感兴趣的文章
Nuget~管理自己的包包
查看>>
NuGet学习笔记001---了解使用NuGet给net快速获取引用
查看>>
nullnullHuge Pages
查看>>
NullPointerException Cannot invoke setSkipOutputConversion(boolean) because functionToInvoke is null
查看>>
null可以转换成任意非基本类型(int/short/long/float/boolean/byte/double/char以外)
查看>>
Number Sequence(kmp算法)
查看>>
Numix Core 开源项目教程
查看>>
numpy
查看>>
Numpy 入门
查看>>
NumPy 库详细介绍-ChatGPT4o作答
查看>>
NumPy 或 Pandas:将数组类型保持为整数,同时具有 NaN 值
查看>>
numpy 或 scipy 有哪些可能的计算可以返回 NaN?
查看>>
numpy 数组 dtype 在 Windows 10 64 位机器中默认为 int32
查看>>
numpy 数组与矩阵的乘法理解
查看>>
NumPy 数组拼接方法-ChatGPT4o作答
查看>>
numpy 用法
查看>>
Numpy 科学计算库详解
查看>>
Numpy.fft.fft和numpy.fft.fftfreq有什么不同
查看>>
numpy.linalg.norm(求范数)
查看>>
Numpy.ndarray对象不可调用
查看>>