浅谈抢票软件的危害及模拟分析

来源 :电脑知识与技术 | 被引量 : 0次 | 上传用户:linchenxu
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:抢票软件的出现,在一定程度上缓解了铁路12306官方购票系统的售票压力,并被人们加上“买票快”,“买票方便”的标签,但其实抢票软件类似于生活中的一种插队现象,不仅没有抢票率的保证,而且从用户隐私安全和系统操作性能而言,抢票软件存在泄漏用户隐私、隐形收费、对服务器资源造成破坏等问题。
  关键词:多线程并发;模拟分析危害
  中图分类号:TP393      文献标识码:A
  文章编号:1009-3044(2021)30-0055-02
  开放科学(资源服务)标识码(OSID):
  1引言
  春节,对于中国人来说,象征着团圆和对来年的美好期盼,而一张火车票承载的是万千游子对故乡深深的思恋。在二十年前,我们为了一张春节返家的车票在车站彻夜排队购买车票,但随着科技的发展,这一现象已逐渐成为历史,12306网络购票系统正式上线,随之而来的也有各样的抢票软件[1]。抢票软件的出现不仅破坏市场的公平性和稳定性,也对铁路12306购票系统造成人力、物力的浪费。本文将从抢票软件的实现过程、对系统资源的危害做出阐述并模拟分析多线程并发的危害。
  2抢票软件的实现流程
  市场上大多数的抢票软件运转原理是由软件提前自动存储旅客的个人信息,放票系统一开放就用机器操作代替用户自己手动登录网站抢票,除此之外通过提高对12306网站的票源信息访问频率,一旦有人退票,能在较快的时间为用户锁定座位席[2]。但这种方式并不能改变一趟列车固定的座位数,而是打破了买票平衡,类似于生活中的插队行为。
  2.1身份证——“伪实名”
  铁路12306购票的“实名”其实是“伪实名”,因为购票系统后台并不会从人口信息库里一一匹配购票人的信息是否真实存在,所以只要旅客提供的身份证符合常规的输入格式,那么一样可以成功购票。而黄牛们就是利用这种算法自动生成身份证号抢票,再在某个指定时间将票取消放出,最后用客户的真实信息购票,因为速度原因,放出去的票还是会被黄牛重新购入。所以票会在黄牛提供的虚假身份账号的未支付的订单中不停的循环。
  2.2多线程并发—— 刷新网站
  第三方抢票软件具体的实现过程与计算机操作系统以及网络爬虫有一定的关联。实现原理是:多个线程并发执行,利用多个终端的多个线程同时抢票。在一定的时间间隔内向铁路12306网站发出访问请求,目的是获取当前网站的票务信息。当某个线程发现所需的座位席有余票时,为了避免临界资源——票被其他的线程访问,导致一张票被卖给多人,则会对临界资源进行上锁,实现资源的互斥。购票成功后才会释放锁,重复上述操作。
  3抢票软件的危害性
  抢票软件通过高频率向网站发送访问请求从而提高对网站车次信息的刷新频率,使得软件能在第一时间掌握座位席情况,但这并不能保证一定能为旅客买到票。因为座位席数是一定的,而能否购买到车票与12306放票系统有关[2]。并且从用户安全和系统安全方面考虑,第三方抢票软件存在泄漏用户隐私、隐形收费等问题,而这种高频率的信息刷新和访问网站可能会造成12306系统崩溃,影响其他旅客正常购票。
  3.1多线程并发执行的危害
  多线程可以提高程序并发执行的速度,但系统对于线程数量也有一定的要求,并非数量越多运行速度越快。原因之一是因为,每个线程的建立都会消耗系统内存空间,所以线程数量过多就意味着占用了电脑中更多的内存资源,造成资源浪费。另一个原因是cpu不允许同时执行两个线程,在执行多线程任务中需要轮流切换,若线程太多,cpu必须不断加快切换速度,而线程间的切换无意间消耗了许多时间,所以cpu有效利用率反而是下降的。其三是拖慢主线程。如果子线程的优先级都和主线程一样高,主线程就得不到更多资源优先执行,主线程的性能降低。
  3.2对铁路12306服务器的破坏
  抢票软件利用多IP多线程并发执行,快速且连续的向铁路12306网络购票系统发出访问请求。这种刷屏式的抢票方式,无异于加大12306的服务压力,挤占服务器的服务宽带,过大的访问需求量可能会引起服务器瘫痪,这也就扰乱了公平、正常的购票秩序,影响了其他没有使用抢票软件的旅客的购票。虽然铁路12306网络购票系统通过增加验证码的识别难度,打击机器自动购票的行为,但由于验证码难度的上升,提交错误验证码的次数也随着上升,对服务器又是一种额外的负担。
  3.3 泄露用户信息
  所谓的“抢票软件”更多时候是利用贩卖人的买票焦虑情绪,打着技术的幌子,二次消费客户的隐私信息用于商用。一趟车次的座位席是固定的,抢票软件抢的其实是这趟车次的余票、退票,如果没有余票也没有人退票,那么抢票软件也是根本抢不到票的。而大量的客户信息被提前存储在抢票软件上,所以对于大部分旅客而言,不仅买不到票,浪费了时间,也将自己的私人信息泄露出去,让不法分子们嗅到了商机。
  4针对多线程并发危害的模拟和对比分析
  4.1基于Linux系统的多线程并发程序实现
  操作系统中为了使多個程序并发执行, 改善内存使用情况和提高内存利用率引入了进程。但当进程并发执行时, 所占用的系统内存也较高, 在此基础上, 操作系统中再次引入线程[3]。例如data++运算符一共会执行3条指令,首先是把内存中的data值放到寄存器中,然后再对data值进行+1操作,最后再把寄存器中的data值写回到内存中。在这三条指令执行的过程中,我们不知道何时会对线程进行切换,所以可能会在执行第一条指令执行的时候,另一个线程开始执行,最终导致data的值不是预期的值。我们在购买火车票,飞机票时就可能会遇到此问题。不同用户会购买同一趟列车的票,此时的票数就相当于全局变量,不同用户相当于不同线程,如果不做线程同步的相关处理,那么就会造成最后的出票数和用户购票数的不一致。下面用Linux pthread API来模拟多线程并发执行可能会造成的后果。   int data = 0;
  int i = 0;
  void * thread_task(void * arg) {
   while(1) {
   int val = data;
   i++;
   printf("线程:%d 正在执行---data的值变为:%d\n",pthread_self(),data);
   data = val + 1;
   if(i == 10000)break;
   }
   return NULL;
  }
  int main(){
  int ret,i;
  pthread_t tid[2];
   for(i = 0; i < 2;i++) {
   ret = pthread_create(&tid[i],NULL,thread_task,NULL);
   assert(ret == 0);
  }
  }
  以上代码使用pthread_create函数来创建一个新线程,总共创建了两个子线程,两个子线程都对全局变量data和i进行赋值更新操作。当i到1000时,结束线程任务,并最后打印全局变量data的值。结果如下图所示:
  如图所示,按照预想的来看,最后data的值应该为10000,但是实际最后data的值却为123。主要原因就是在运算指令还未完成时,两个进程进行切换,最后导致结果不符合预期。
  4.2对系统资源占有的对比分析
  我们又创建了一个单线程程序,对比单线程和多线程在资源占比上的区别。用top命令动态实时观察单线程和多线程资源利用方面的区别。结果如下:
  从比较表来看,首先第一个不同点就是使用的虚拟内存总量,单线程进程为4560,而多线程进程则为22896。多线程进程的虚拟内存分配量要远远超于单线程进程的虚拟内存分配量,这是由于Linux要对于多线程的虚拟内存分配策略所导致。第二个不同点就是cpu的占有率,多线程程序的cpu占有率要高于单线程的cpu占有率,表明多线程程序能够更充分的利用cpu,提高cpu利用率。最后一個就是实际内存的占用,多线程程序会比单线程程序占用更多的实际内存。
  5总结
  抢票软件抢的是未买完的座位席和退票,如果没有退票也没有空位,那么抢票软件根本抢不到票,所以抢票软件和抢票率没有必然联系,使用抢票软件对铁路12306官网和电脑系统也有一定的危害。而近几年铁路官网开通了候补购票通道缓解旅客们买票难得压力,并在一定程度上打击了抢票软件。所以在这里呼吁各位,采取科学有效的措施购票买票。
  参考文献:
  [1]  刘丽娜.抢票软件需规制[N].检察日报,2020-01-08(7).
  [2] 万婉娉,颜瑞,梁红玉,马千惠,金明.第三方抢票软件的相关研究[J].现代商贸工业,2020,41(15):35-36.
  [3] 张步忠.Java语言中的线程同步互斥研究[J].安庆师范学院学报(自然科学版),2011,17(4):106-110.
  【通联编辑:光文玲】
其他文献
摘要:当数据中心云平台架构面临老化升级时,需要考虑资源利旧、兼容性、成本、效率等诸多因素,对整体架构重新进行设计。这里以甲骨文信息处理教育部重点实验室的数据中心为例,对已有的微软的SystemCenter架构问题和需求进行梳理,并与现有主流的VMware vSphere架构、微软Azure Stack架构以及超融合架构之间的兼容性、可拓展性、可行性等进行分析,对云平台架构的升级和多云架构管理提供一
摘要:目前在网上购物已成为大多数人的首选,避免购物途中的劳累并且也节约时间。文章基于LDA主题模型对电商平台商品的评论数据进行分析,得出用户正面评价和负面评价分别主要集中在哪些方面,并提出针对性的改进建议,从而提高商品的质量和用户体验。  关键词:Gemsim;LDA;文本分析;主题模型;评价  中图分类号:G642 文献标识码:A  文章编号:1009-3044(2021)30-0017-
摘要:代理移动IPv6引入指针推进机制,解决了移动节点切换过程频繁向本地移动锚点注册的问题。但相邻移动接入网关之间距离较远时,切换性能没有明显改善。提出一种基于指针策略的PMIPv6优化方案,建立指针链的同时,优先向距离较近的本地移动锚点注册,优化绑定更新的过程。性能分析结果表明,无论何时,优化方案的绑定更新开销总是小于现有方案,证明了该优化方案在减少网络开销方面的优越性。  关键词:代理移动IP
摘要:为提高微微鼠探索迷宫的稳定性,并减少微微鼠在复杂迷宫中的探索时间,论文提出了基于STM32F429和A3P250的双核控制器,智能S转法的探索法则通过六条不同轨迹来实现转入和转出,短距离调整实现微微鼠不同探索路径的衔接,陀螺仪的加入可以实现微微鼠直线位置和转弯的精确补偿,前墙传感器和陀螺仪组合保证了连续转弯姿态的准确性;微微鼠高速探索实验表明,S转法能显著提高微微鼠转法的稳定性和快速性,有利
该文分析了聚类分析算法的基本思想、原理、数学模型及实现过程,详细地分析了几种经典的聚类分析算法的优缺点,最后介绍了常用的聚类分析算法的有效性分析方法。
摘要:在科技迅速发展的背景下计算机大数据技术得到了长足的发展,当前计算机大数据技术的应用范围越来越广阔。为了促进电力的节能,很多城市都引入了计算机大数据技术。计算机大数据的应用在很大程度上推动了城市电力节能的发展。该文通过分析计算机大数据技术在城市中的应用方法,为推动城市电力节能的发展提出了一些建议。  关键词:计算机;大数据;城市能源;节能;应用  中图分类号:TP311 文献标识码:A  
摘要:目前高校的智慧教室主要用于慕课和翻转课堂的教学实践,在国家新政策的指导下,智慧教室在教学中发挥着日益重要的作用。该文以具体项目为例,从建设目标、市场调研入手,确定项目的技术特点,根据用途对智慧教室进行分类,从软硬件配置、环境改造等方面来探索智慧教室的架构、建设及应用。  关键词:智慧教室;智能化;架构设计;建设及应用;学习环境  中图分类号:G642 文献标识码:A  文章编号:100
摘要:数据库的使用频度和使用规模已成为国家现代化的重要标志之一。大学生应该具有使用数据库知识解决本专业问题的能力。此网站可以辅助学生巩固理论知识、提高实践能力。该网站分为管理员、教师、学生三个角色,主要实现对课堂、课件视频等学习资料、学生、练习与测试、个人信息等管理功能。网站设计基于 SpringBoot和Vue 框架,采用SQL Server数据库进行数据存储、管理。该系统具有界面简洁、使用方便
摘要:随着物联网、车联网、泛在电力物联网的迅猛发展,海量的传感数据需要被记录下来并用于大数据分析,所以对这类和时间序列强相关数据的存储和检索也提出了更高的要求,尤其在智能驾驶、运输、消防、电力等特殊业务更为突出。在这种背景下,时序数据库逐步发展并得到了广泛的应用。相对于传统关系型数据库它的存储空间减半,查询速度极大提高,是解决海量数据处理的一项重要技术。该文分析了时序数据的存储与数据查询原理,并对
摘要:近十年来,我国信息技术不断发展,无线网络已经广泛应用到各个行业和人们日常生活中,对于无线网络安全提出更高的要求,由于无线网络具有开放性特点,而如何提高无线网络的安全性已经亟须解决问题。本文从无线网络中的安全问题、不同地点的无线网络存在的安全隐患以及提高无线网络安全的具体措施等几个方面进行分析,如何提升无线网络安全防,为我国无线网络技术发展提供参考。  关键词:无线网络;安全防护技术;安全问题