网络连接中的舔狗协议

news2024/9/30 17:40:21

舔狗网络协议 (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 main

import (
	"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.coloradmin.cn/o/585595.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

用户需求分析工具:Y模型

用户需求分析工具:Y模型 《人人都是产品经理》作者苏杰提出 阿里巴巴产品经理多年 趣讲大白话:有个框框好同频 【趣讲信息科技180期】 **************************** 很多交流就是鸡同鸭讲 沟通的背景、动机、目的、方式、高度等严重不同 如果有一个模型…

服务器端安装jupyter notebook并在本地使用与环境配置一条龙服务【服务器上跑ipynb】

linux服务器端安装jupyter notebook并在本地使用 1.生成配置文件:2.配置Jupyter notebook密码3,修改配置文件~/.jupyter/jupyter_notebook_config.py4. 本地访问远端的服务器的jupyter1.首先在Linux服务器上启动Jupyter notebook2.然后在本地转发端口 为jupyter notebook配置co…

【云原生|探索 Kubernetes 系列 6】从 0 到 1,轻松搭建完整的 Kubernetes 集群

前言 大家好,我是秋意零。 前面一篇中,我们介绍了 kubeadm 的工作流程。那么今天我们就实际操作一下,探索如何快速、高效地从 0 开始搭建一个完整的 Kubernetes 集群,让你轻松驾驭容器化技术的力量!! &am…

json和pickle模块

目录 ❤ json和pickle模块 序列化 json pickle python从小白到总裁完整教程目录:https://blog.csdn.net/weixin_67859959/article/details/129328397?spm1001.2014.3001.5502 ❤ json和pickle模块 序列化 把对象(变量)从内存中变成可存储或传输的过程称之为序列化&am…

3D EXPERIENCE“热知识” | 如何使用3D EXPERIENCE平台上的问题管理?

3D EXPERIENCE 平台上的问题管理对任何组织都是有用的工具,无论其规模大小。无论是使用它来标记和分发PDF还是在车间和工程部门之间分享想法,问题管理都可以简化日常活动。简而言之,它会根据权限列出现有问题,并让用户创建新问题&…

软件测试----软件测试四大测试过程

1、测试分析 (1)要点 1)软件需求分析 2)测试需求项的提取 3)用户使用场景分析 4)测试工具的调研和选取 5)测试缺陷分析 (2)分工 1)测试人员:提…

09:mysql---事务

目录 1:事务简介 2:事务操作 3:事务四大特性 4:并发事务问题 5:事务隔离级别 1:事务简介 事务 是一组操作的集合,它是一个不可分割的工作单位,事务会把所有的操作作为一个整体一起向系统提交或撤销操作请求,即这些操作要么同时成功&…

周赛347(模拟、思维题、动态规划+优化)

文章目录 周赛347[2710. 移除字符串中的尾随零](https://leetcode.cn/problems/remove-trailing-zeros-from-a-string/)模拟 [2711. 对角线上不同值的数量差](https://leetcode.cn/problems/difference-of-number-of-distinct-values-on-diagonals/)模拟 [2712. 使所有字符相等…

索引下推(Index Condition Pushdown)

使用一张用户表t_user,表里创建联合索引(name, age)。 如果现在有一个需求:检索出表中名字第一个字是张,而且年龄是10岁的所有用户。那么,SQL语句是这么写的: 复制代码 select * from tuser w…

【教学类-35-01】带笔画步骤图的描字(姓氏)(A4整张)

作品展示: 1、图片一行(0-6):文字简单,写3*412个字 2、图片2行(6-12):笔画适中,写3*39个字 3、图片3行(12-18):笔画适中,…

LeetCode刷题(ACM模式)-03哈希表

参考引用:代码随想录 注:每道 LeetCode 题目都使用 ACM 代码模式,可直接在本地运行,蓝色字体为题目超链接 0. 哈希表理论基础 0.1 哈希表 哈希表(Hash table,也称散列表)是根据关键码的值而直…

Redis(六)主从模式与哨兵机制

文章目录 一、主从模式配置一主二从集群 二、哨兵机制哨兵模式演示:哨兵如何监控节点「主观下线」与[客观下线]哨兵如何选新主节点由哪个哨兵进行转移如何通知客户端新主节点的信息? 一、主从模式 配置一主二从集群 开启三个linux,并安装redis info …

【k8s】【Prometheus】【待写】

环境 k8s v1.18.0 192.168.79.31 master 192.168.79.32 node-1 192.168.79.33 node-2一、Prometheus 对 kubernetes 的监控 1.1 node-exporter 组件安装和配置 node-exporter 可以采集机器(物理机、虚拟机、云主机等)的监控指标数据,能够采…

C++11:可变参数模板、lambda表达式和包装器

目录 一. 可变参数模板 1.1 什么是可变模板参数 1.2 参数包具体值的获取 1.3 emplace/emplace_back接口函数 二. lambda表达式 2.1 lambda表达式的概念和定义方法 2.2 捕捉列表说明 2.3 lambda表达式的底层实现原理 三. 包装器 3.1 function包装 3.2 bind绑定 3.2.…

重估老板电器:加速增长飞轮,迸发品类红利

#王一博同款洗碗机,5月28日,这个话题登上微博热搜,并获得不小关注。数据显示,截至5月29日9:00,该话题一天内引发了166.1万人讨论,阅读量破2.7亿。同时,抖音上,官宣王一博为代言人的话…

Java on Azure 开发工具路线图新发布!

大家好,欢迎来到Java on Azure工具产品的4月更新。让我们首先来谈谈我们对未来几个月的Java on Azure开发工具的投资。在这次更新中,我们还将介绍Azure Service Bus支持和Azure Spring Apps入门模板增强功能。要使用这些新功能,请下载并安装用…

ASEMI单向可控硅BT151参数,BT151封装,BT151体积

编辑-Z 单向可控硅BT151参数: 型号:BT151 存储接点温度范围Tstg:-40~150℃ 工作接点温度范围Tj:-40~125℃ 断态重复峰值电压VDRM:650V 重复峰值反向电压VRRM:650V RMS导通电流IT(RMS):12…

【P42】JMeter 运行时间控制器(Runtime Controller)

文章目录 一、运行时间控制器(Runtime Controller)参数说明二、测试计划设计 一、运行时间控制器(Runtime Controller)参数说明 可以通过时间来确定其后代元素运行多长时间,在时间范围内,后代元素会一直运…

uniapp中根据不同状态跳转不同页面

大纲: 今天我们讲 在uniapp中,如何根据不同的状态跳转到不同的页面。 以下代码,是Tabs标签的展示 🌿 :list"list" 是参数配置,该参数要求为数组,元素为对象,且对象要有name属性&…

mciSendString函数简介(播放音乐以及录音相关操作)

函数功能:播放多媒体音乐,视频等 mciSendString是用来播放多媒体文件的API指令,可以播放MPEG,AVI,WAV,MP3,等等。这个函数有自己的mci指令,可以通过不同的指令实现不同的功能。这里我会详细讲解mciSendString这个函数的常见用法&…