嵌入式系统大型实验报告
题目:基于树莓派平台的聊天室软件设计和实现
作者姓名 杨泽铭、张乐乐、徐博文、
孙嘉懋、王东升
指导教师
杨海清
学科专业
通信 1501
培养类别
全日制本科
所在学院
信息工程学院
提交日期 2018 年 9 月 14 日
浙江工业大学本科课程实践
嵌入式系统大型实验报告
基于树莓派平台的聊天室软件设计和实现
作者姓名:杨泽铭、张乐乐、徐博文、
孙嘉懋、王东升
指导教师:杨海清
浙江工业大学信息工程学院
2018 年 9 月
II
浙江工业大学本科课程实践
基于树莓派的双机通信设计和实现
摘
要
针对当前聊天系统日益的发展完善,随着信息的高速发展,人们越来越倾向于
借助网络通过聊天工具进行交流。生活中已经离不开网络了,而与我们最密切相
关的网络工具就是即时通信软件,如人手一个账号的 QQ,微信,以及中国移动的飞
信等,大量的社交工具帮助着我们与朋友,与社会各地的人的交流。同时基于对于
聊天原理的一定的理解,我们这次决定用树莓派做一个简单的聊天系统。在完成
的过程中,我们运用了 python 进行编程完成聊天功能,并重新对 TCP/UDP 协议
有了更深的认识。
关键词:linux,嵌入式,树莓派,python,socket
III
浙江工业大学本科课程实践
目 录
第 1 章 绪论..................................................................................................................1
1.1 即时通讯的历史...........................................................................................1
1.2 即时通讯的原理...........................................................................................2
1.3 实验内容.......................................................................................................2
第 2 章 树莓派简介......................................................................................................3
2.1 树莓派主要功能...........................................................................................3
2.2 树莓派及其开发环境.....................................................................................4
2.3 树莓派发展现状...........................................................................................7
第 3 章 树莓派和基础软件介绍..................................................................................9
3.1 树莓派供电.....................................................................................................9
3.2 树莓派基础配置...........................................................................................10
3.3 基础软件介绍...............................................................................................12
第 4 章 树莓派间通信系统的设计............................................................................14
4.1 树莓派间通信系统的总体框架.................................................................14
第 5 章 通过编程实现通信过程................................................................................15
5.1 树莓派的配置.............................................................................................15
5.2 编程语言的选择和编译过程.....................................................................16
5.3 程序编写及其实现过程.............................................................................17
第 6 章 结论与展望....................................................................................................18
6.1 结论.............................................................................................................18
6.2 展望.............................................................................................................18
参 考 文 献..........................................................................................................19
附 录..........................................................................................................................20
团队成员工作照片......................................................................................................22
IV
浙江工业大学本科课程实践
第 1 章 绪论
1.1 即时通讯的历史
即时通讯(Instant Messenger,简称 IM)软件可以说是目前我国上网用户使用
率最高的软件,无论是老牌的 ICQ,还是国内用户量第一的腾讯 QQ,以及微软
的 MSN Messenger 都是大众关注的焦点,它们能让你迅速地在网上找到你的朋
友或工作伙伴,可以实时交谈和互传信息。而且,现在不少 IM 软件还集成了数
据交换、语音聊天、网络会议、电子邮件的功能。
IM 软件的历史并不久远,但是它一诞生,就立即受到网民的喜爱,并风靡全球。
在它的发展史上,以色列人是功不可没的。正是四位以色列籍的年轻人,在 1996
年 7 月成立的 Mirabilis 公司,并于同年 11 月推出了全世界第一个即时通讯软件
ICQ,取意为“我在找你”——“I Seek You”,简称 ICQ 了。直到现在,ICQ 已经
推出了它的 2002a 版本,在全球即时通讯市场上占有非常重要的地位。
目前,国内最为流行的即时通讯软件是 OICQ(简称 QQ)。它以良好的中文界
面和不断增强的功能形成了一定的 QQ 网络文化。Messenger 虽出道较晚,但
依托微软的强大背景,实力也不可小视。作为 Windows XP 的一部分,Messenger
整合了操作系统的许多功能,如多种形式的聊天选择、多人的单窗口讨论式交流
以及充分的文件与桌面共享功能等。它的令人耳目一新的中文界面和注册方式,
连同它强大的功能,着实吸引了众多的眼球的注视,此外还有许多有特点的 IM
软件。
1
浙江工业大学本科课程实践
1.2 即时通讯的原理
我们经常听到 TCP/IP 和 UDP(用户数据报协议)这两个术语,它们都是建立在更
低层的 IP 协议上的两种通讯传输协议。前者是以数据流的形式,将传输数据经
分割、打包后,通过两台机器之间建立起的虚电路,进行连续的、双向的、严格
保证数据正确性的文件传输协议。而后者是以数据报的形式,对拆分后的数据的
先后到达顺序不做要求的文件传输协议。
QQ 就是使用 UDP 协议进行发送和接收“消息”的。当你的机器安装了 OICQ 以
后,实际上,你既是服务端(Server),又是客户端(Client)。当你登录 OICQ
时,你的 OICQ 作为 Client 连接到腾讯公司的主服务器上,当你“看谁在线”时,
你的 OICQ 又一次作为 Client 从 QQ Server 上读取在线网友名单。当你和你的
OICQ 伙伴进行聊天时,如果你和对方的连接比较稳定,你和他的聊天内容都是
以 UDP 的形式,在计算机之间传送。如果你和对方的连接不是很稳定,QQ 服
务器将为你们的聊天内容进行“中转”。其他的即时通信软件原理与此大同小异。
1、用户首先从 QQ 服务器上获取好友列表,以建立点对点的联系;
2、用户(Client1)和好友?Client2?之间采用 UDP 方式发送信息;
3、如果无法直接点对点联系,则用服务器中转的方式完成。
1.3 实验内容
这次实验内容是在用树莓派完成一个简单的双工的聊天通信,了解 python,
并能简单的运用编程,同时对基于 TCP/UDP 的 socket 编程有一定的了解。
2
浙江工业大学本科课程实践
第 2 章 树莓派简介
2.1 树莓派主要功能
为提升大规模网络的整体运行性能,对网络的运行质量需要进行有效的测
量,可以使用大量的分布式探针来监测网络各个节点的数据。主流的网络测量标
准分为主动式和被动式测量。为了监测大规模网络的性能,单点测量所关注的数
据远远不够,往往需要在网络的关键节点处部署探针进行多点测量。树莓派功能
强大、设备小巧、可整合丰富的 Linux 类软件,可以方便的在节点作为探针发起
主动的 TCP\UDP 网络性能测试。使用树莓派网络探针可以测量内容包括吞吐
量、延迟、丢包率,并作网络可靠性、稳定性、 可达性等方面的分析,保障网
络服务质量。树莓派网络探针的网络性能测量指标主要关注如下内容:
(1)可用性(Availability)
通过采用 ICMP 协议发送测试包测试样本测试点是否可达,根据 ICMP 测试
的回显数据分析,从而监测网络的可用性。通过 ICMP 测试时,可以根据需要发
送包的数量和包的大小。
(2)网络时延(Network Delay)
监测端到端的网络时延是监测网络质量的一个重要指标,可以综合监测数据
包的正向时延、反向时延、往返时延来分析评估。
(3)丢包率(Packet Loss Rate)
网络丢包率是数据包丢失部分与所传数据包总数的比值。正常传输时网络丢
包率应该控制在一定范围内。丢包率与数据包长度以及包发送频率相关。通常情
况下,千兆网络丢包率应小于万分之五;百兆网络丢包率应小于万分之一。
(4)网络吞吐量(Network Throughput)
网络吞吐量是指在某个时刻,在网络中的端到端之间,实际可用的有效带宽。网
络吞吐量非常依赖于当前的网络负载情况,必须综合多个情况的综合吞吐量测
试,才能测量出相对准确的网络吞吐量。
3
浙江工业大学本科课程实践
(5)网络抖动(Jitter)
网络抖动用于描述包在网络中的传输延时的变化,抖动越小,说明网络质量
越稳定越好。抖动是评价一个网络性能好坏的较为重要的因素。
为了综合的测得网络整体的性能指标需要,需要采用易于部署的测试设备分
布在网络的各个节点进行测量,从而整体的监测全网数据,树莓派是成熟的嵌入
式 ARM 开发平台,适合承担这个任务。
2.2 树莓派及其开发环境
树莓派 Raspberry PI 是一个采用 ARM 架构的开放式嵌入式系统,外形小巧,
却具有强大的系统功能和接口资源。它是以 ARM11 处理器为核心的单板计算机,
拥有 256MB、 512MB 甚至 1G 的内存,具有 USB 接口、快速以太网接口、SD
插槽、HDMI 输出接口。树莓派小巧玲珑,能提供 1080p 全高清影像输出。在
搭载基于 ARM 的 Debian 和 Arch 等 Linux 的发行版后,便可使用大量现有的软
件库,使用大量的开源软件,也便于实行开发扩展。
树莓派支持多种语言进行应用开发,包括 C 语言和 Python 脚本等。树莓派预装
了 Python 运行环境,由于 Python 语言的简单易用,使得 Python 开发在树莓派
上非常流行。Python 是一门解释型语言,这意味着代码运行前不需要编译,即
程序直接执行而不需要编译为机器语言,Python 用在树莓派上进行编程开发就
非常方便。Python 语言发展多年,有着成熟而广泛的开发者社区,使得树莓派
上的 Python 开发者具备了强大的社区支持。
2.3, 树莓派发展现状
2008 年,4 位创始人一起创立了树莓派基金会,3 年后,该基金会成为第一
个大规模生产树莓派的生产线。一年内,基金会卖出了 100 多万台设备。基金会
成员多次表示他们对这种爆炸式的热情感到十分震惊。最初的目的仅仅是推出一
种廉价的、可编程的设备,使教育工作者和学生获益,显然现在这个目的已经达
成了。不仅如此,现在的成果比最初设想的要大得多。很明显,他们并不是唯一
希望拥有廉价可编程设备的一类人,世界各地的爱好者,连同大公司 element14、
4