下一代网络及软交换原理 作业2
5050369043 石君霄
2008-11-27 ~ 2008-11-28
ScoreBoard协议
ScoreBoard协议用于更新比分牌的数值的背景颜色
服务端监听UDP1127端口,客户端端口任意 (为什么是1127端口?因为这个协议是11月27日设计的)
报文格式
每个报文的前16字节是固定的识别符identifier:
e2 cb b5 80 cb 09 4e ba a3 6b f6 07 ce 95 3f 2b
第17字节表示报文类型operator:
- 00 get-value 获取比分数值
- 01 set-value 设置比分数值
- 80 resp-value 应答比分数值
- 10 get-color 获取背景色
- 11 set-color 设置背景色
- 90 resp-color 应答背景色
数据部分:
- 01、80类型的报文
- 第18~21字节为左边的比分数值(32位无符号整数,big endian)
- 第22~25字节为右边的比分数值(32位无符号整数,big endian)
- 11、90类型的报文
- 第18字节为红色分量
- 第19字节为绿色分量
- 第20字节为蓝色分量
交互流程
- 客户端使用00、01类型的报文请求服务端,服务端应当回复80类型的报文
- 客户端使用10、11类型的报文请求服务端,服务端应当回复90类型的报文
ScoreBoard程序实现
服务端ScoreBoard.exe
使用Windows Presentation Foundation显示界面、C#编程;运行环境需要.Net Framework 3.5
客户端client.ps1
使用Windows PowerShell 1.0脚本语言编程
- 先用记事本打开client.ps1,在$server后写上服务端的IP地址
- 打开Windows PowerShell 1.0,转到client.ps1所在目录,输入命令 . .\client.ps1 (注意开头的点)
- 然后可以通过以下命令控制服务端
- GetValue
- 获取比分数值
- SetValue 1 2
- 设置比分数值为1:2
- GetColor
- 获取背景色
- SetColor 255 128 3
- 设置背景色为 rgb(255,128,3)
ScoreBoard协议的Wireshark插件
Wireshark插件是使用Lua脚本语言编写的,插件编写方法及源码
安装方法
- 将ScoreBoard.lua复制到Wireshark安装目录
- 用记事本打开Wireshark安装目录的init.lua文件
- 找到disable_lua = true;,在这一行前面添加
--
- 在文件末尾另起一行,写入
dofile("ScoreBoard.lua")
安装后,Wireshark就可以识别ScoreBoard协议
你可以使用这个过滤器udp.srcport==1127 or udp.dstport==1127
插件截图