Loading...
国庆长假来了,但是对于很多人来说,想回家享受美好时光,得先过抢车票这关, 12306,启动! 在这个关口上,12306官方发布了几个数据:自今年中秋国庆的火车票开售以来, 已累计将711.7万笔交易放入慢速队列,对102.3万笔交易拒绝出票,被“拦截”的车票总数量高达133.1万张 ,有力遏制了 恶意抢票行为 。 图源:CCTV 这就很有意思了,订单那么多,他们是如何从中分辨出恶意抢票的呢? 01 你的加速包,如何让你变慢 12306“拒绝出票”的最核心的目的,是在 打击黄牛和抢票软件 ,保障普通旅客的 公平购票权 。他们拒绝和放缓出票的标准也非常明确,主要是针对 三类异常行为 : 第一,频繁大量为非本人购票的账号 。简单来说,我们普通人关系圈子就那么大,亲近到可以互相买火车票的人,屈指可数,如果一个12306账号短时间内给大量不同的人买票,还是之前并没有关联的陌生人,买的车票还天南地北、毫无规律,一会儿是武广线一会儿是京沪线……这显然不是正常旅客的行为,大概率为“黄牛”或第三方抢票平台的操作,他们注册或借用大量账号帮客户下单,再通过加价获利。 第二种是,频繁、大量为非本人车票埋单的支付账户。 一个支付账户在短时间内为大量不同订单付款,同样是机器抢票的“标配动作”,黄牛可以搞到大量的购票账号来抢票,但是为了方便统计做账,支付票款往往还是要特定几个号来付,很容易关联上。 此外,今年12306还开始打击一种新的异常形态—— 通过伪造终端设备模仿用户购票操作 。在技术层面,这种行为通常指第三方抢票平台或抢票软件,通过技术手段伪造合法的手机设备的特征,如IMEI识别码、手机序列号等、操作系统环境以及高频模拟人工点击的请求,试图绕过12306的安全检测,然后进行自动化批量抢票。 铁路12306技术中心采用 大数据分析 和 风控技术 ,可以大批量识别以上三种异常,将涉及的账号拉入 隔离区 ,购票时会显示 “等待中” 、支付账户支付时会显示 “购票失败” 。 为什么要搞个慢速队列而不是统一拒绝呢?抢票软件为了提高成功率,通常会设置 自动重试机制 ,如果12306直接不出票并切断连接,抢票软件在被拒绝之后会疯狂发起更猛烈的攻击,切换下一套IP、伪造新的设备指纹或账号继续来抢,持续消耗12306的服务器资源。 将其放入慢速队列,购票时会一直提示“等待”或“加载中”, 抢票软件不知道是否该重新发起购买,会被死死卡住数分钟甚至数十分钟 ,这样一来,服务器资源就会还给正常排队者。在分秒必争的春运抢票期间,时间就是生命,这种“软拦截”极大地拉长了抢票软件的请求周期,极大地增加了黄牛的服务器和带宽成本,让他们空耗资源却一无所获。 打完这三拳之后,12306直接发出了 胜利宣言 :“我们从未与任何第三方平台机构开展合作,没有任何购票加速包、购票会员费等额外收费, 通过第三方购票不仅不会增加成功率,反而会更慢或购票失败。 ” 02 地表最难抢购系统 过去,12306在网上的风评只能算堪堪保住爹妈, 只要大家回不了家,便会把怒火发泄到它身上 ,同样是数着秒按下购买键,为啥别人能抢到,我就没有,车票都去哪了?要是碰到12306 卡顿 、 报错 导致错过抢票时机,更是恨得牙痒痒,觉得这么一个国家级的软件,咋能如此不靠谱? 特别是跟别的“抢购”软件对比,十多年前,几大电商平台也是,一到 双11购物节 ,大家集中下单付款,就会直接卡到崩溃爆炸,跟12306没什么区别。但是经过十多年的进化,双11、618这些大促节点,购物软件已经非常流畅了,但12306还是年年都出现卡顿、等待这些毛病,给用户显示转圈圈,所以一直在挨骂。 其实两者完全没有可比性。 购物秒杀的逻辑,非常之简单。举个例子,一件商品,库存1000件,谁先付钱谁拿走,卖一件就减一件,库存数据就按照1000、999、998一路往下减,减到0就显示售罄,无法再购买。但卖车票不是这样计算库存的,它一直在 动态变化 ,比方说一趟高铁从北京出发,经停十多个站,最后到上海虹桥。你买了北京南 → 济南西的一张二等座,这一张票的售出,同时改动了后面所有区段的余票状态:北京南 → 上海虹桥的余票少一张,北京南 → 南京南的少一张,北京南 → 曲阜东的少一张…… 所有的"北京南→某站"的车票库存都要跟着减一。 与此同时,因为你在济南西就下车了,座位空出来了, 系统又必须裂变出一大堆新的票,也就是“济南西→后面某站”的车票 。 一趟经停24个车站的高铁,每个座位有276种销售方式;一趟初始1000多张票的列车,理论上能裂变出上万张票。 卖票的计算如此复杂,每到节假日还要面临 海啸一般的流量冲击 。 众所周知,中国人口基数很大,又存在大量的人口迁移,跨省及省内跨市的人/户口分离者,高达4.93亿人,其中流动人口3.76亿人。每逢长假就