博客
关于我
协议族和数据传输方式
阅读量: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/

你可能感兴趣的文章
MySQL 查看有哪些表
查看>>
mysql 查看锁_阿里/美团/字节面试官必问的Mysql锁机制,你真的明白吗
查看>>
MySql 查询以逗号分隔的字符串的方法(正则)
查看>>
MySQL 查询优化:提速查询效率的13大秘籍(避免使用SELECT 、分页查询的优化、合理使用连接、子查询的优化)(上)
查看>>
mysql 查询,正数降序排序,负数升序排序
查看>>
MySQL 树形结构 根据指定节点 获取其下属的所有子节点(包含路径上的枝干节点和叶子节点)...
查看>>
mysql 死锁 Deadlock found when trying to get lock; try restarting transaction
查看>>
mysql 死锁(先delete 后insert)日志分析
查看>>
MySQL 死锁了,怎么办?
查看>>
MySQL 深度分页性能急剧下降,该如何优化?
查看>>
MySQL 深度分页性能急剧下降,该如何优化?
查看>>
MySQL 添加列,修改列,删除列
查看>>
mysql 添加索引
查看>>
MySQL 添加索引,删除索引及其用法
查看>>
MySQL 用 limit 为什么会影响性能?
查看>>
MySQL 用 limit 为什么会影响性能?有什么优化方案?
查看>>
MySQL 用户权限管理:授权、撤销、密码更新和用户删除(图文解析)
查看>>
mysql 用户管理和权限设置
查看>>
MySQL 的 varchar 水真的太深了!
查看>>
mysql 的GROUP_CONCAT函数的使用(group_by 如何显示分组之前的数据)
查看>>