当前位置: 首页 > news >正文

网络连接中的舔狗协议

舔狗网络协议 (discard protocol)

最近互联网上,“舔狗” 这个词语很火,也衍生出来很多梗(快速说出互联网 4 大舔狗!!!)。然后今天偶然间看到了一个 RFC 文档, 发现了一个有趣的网络协议, 这个协议让我立马想到了舔狗这个词,哈哈。也不卖关子了,让我们来直接看一看它吧 – Discard Protocol。这大概是最简单的RFC文档了,其他的文档基本都是长篇大论,我基本没有看完过。

这个协议的功能就是:丢弃所有接受到的消息,永远不会响应!

在这里插入图片描述

在这里插入图片描述

discard service (丢弃服务)是一个很有用的调试和测量工具。discard service 只是简单的丢弃它接收到的所有数据。
它有两种实现方式:

  1. 基于 TCP 的丢弃服务
    一种 discard service 是建立在TCP之上的基于连接的应用。服务器在 TCP 端口 9 上 监听 TCP 连接. 一旦一个连接建立,任何接收到的数据都会被丢弃(thrown away)。不发送任何响应。这个连接会一直持续, 直到调用用户主动终止连接。
  2. 基于 UDP 的丢弃服务
    另一种 discard service 是建立在 UPD 之上的基于数据报的应用。服务器在 UDP 端口 9 上监听 UDP 数据报。当接收到一个数据报,丢弃它。不发送任何响应。

在这里插入图片描述

简单的实现一个 Go 版本

package mainimport ("fmt""log""net"
)func main() {if listener, err := net.Listen("tcp", "0.0.0.0:8888"); err != nil {log.Fatal(err)} else {fmt.Println("服务已上线!")connection, err := listener.Accept()if err != nil {log.Fatal(err)}buf := make([]byte, 1024)count, err := connection.Read(buf)if err != nil {log.Fatal(err)}fmt.Printf("接收到消息:%v, 已丢弃!\n", string(buf[0:count]))}
}

测试

这里我为了图省事, 直接用浏览器来测试了。除非主动关闭浏览器,不然这里浏览器会一直转圈圈 (模拟永远在等待),直到超时结束。

在这里插入图片描述

最后客户端会得到什么呢?当然是一无所有啦!

http://www.lryc.cn/news/90308.html

相关文章:

  • 一分钟了解乐观锁、悲观锁、共享锁、排它锁、行锁、表锁以及使用场景
  • 【C++】C++ 中的 IO 流
  • QFuture的使用
  • 通过dockerfile将nginx、前端和后端封装成一个镜像
  • 如何利用CiteSpace快速锁定领域内最新研究热点并制作精美的可视化专题图?
  • 嵌入式开发从入门到精通之第二十二节:蓝牙芯片CC254x ADC 电压测量
  • 北邮22信通:二叉树显示路径的两种方法 递归函数保存现场返回现场的实例
  • vue 3 第二十八章:组件十二(组件的v-model、多v-model)
  • LCD 显示
  • 互联网医院开发|在线问诊系统架构设计功能有哪些?
  • 数据安全运营有效管理-数据安全复合治理框架和模型解读(1)
  • 【刷题之路】LeetCode 面试题 03.02. 栈的最小值
  • 如何处理图片排重(精准排重,相似排重)
  • 盐城北大青鸟“北大青鸟杯”IT精英挑战赛设中心评审隆重开赛
  • Pluma 插件管理框架
  • Leetcode11 盛最多水的容器
  • Java
  • 第十四章行为性模式—策略模式
  • Leaflet基本用法
  • Unity | HDRP高清渲染管线学习笔记:示例场景解析
  • 【Netty】Netty 编码器(十三)
  • Netty和Tomcat的区别、性能对比
  • chatgpt赋能python:Python函数调用局部变量-深入了解
  • Android 12.0 NavigationBarView 导航栏 左边显示的修改
  • Mybatis源码细节探究:二级缓存Cache对象是在什么时候创建的?
  • 【数据库】无效数据:软件测试对无效数据的处理
  • 高精度电压源如何设计出来的
  • 混合属性mix-blend-mode不生效
  • 测试计划编写说明
  • Android 12.0Recent列表不显示某个app