一个HTTP数据包的奇幻之旅|凡酷

  我是一个HTTP数据包,不知谁创建了我,把我丢到这个房间。
  
  突然,来了一个大汉,我吓得缩到角落。
  
  “该启程了,站起来”。
  
  “去哪里啊?”
  
  我弱弱的问。
  
  “还能去哪里,你是一个数据包,当然要出远门,完成你的使命啊,别啰嗦,我要先把你复制到内核空间,一会要发出去,让我来看下你的内容”。
  
  我不敢多言,乖乖的站好,一眨眼的功夫,我来到了另一个房间。
  
  “这是哪里,我怎么到这里来了?”我有点好奇。
  
  “这里是内核地址空间,刚才你在用户态地址空间,所有的数据包都得从这里出发,你也不例外”。
  
  看着这片陌生的环境,我也不知道他说的内核空间是什么意思,这里有好多房间,还有好多跟他一样的大汉在工作,好多数据包都在这里,进进出出,好不热闹。
  
  <————————————————————————————————>
  
  出发前的俄罗斯套娃
  
  “等着,我去拿点东西”,大汉去了一座大厦,我抬头一看,上面写着tcpip.sys。
  
  这时,旁边另外一个数据包走了过来。
  
  “唉,小子,刚出发呢。”
  
  “你是谁?”
  
  “我也是一个HTTP数据包,不过我是一个响应包,刚刚从遥远的Linux帝国过来这里,我马上就完成我的使命了,这一路给我累得”,这个数据包叹口气回答。
  
  “很远吗,这么辛苦啊”,我开始有点担心我的旅程起来。
  
  “这不好说,我不知道你去哪,接我的人来了,再见”。
  
  不一会儿,大汉提着一个箱子走了出来,箱子正面写了三个大大的字母:TCP。
  
  “这是传输层的箱子,快进去”,大汉命令的口吻。
  
  “你要我钻进这个箱子啊?”我不太相信。
  
  “对,没错,麻利的”。
  
  “这箱子上面写的数字60059和80是什么意思?”我注意到箱子背面也写了很多东西。
  
  “60059是创建你的人用的端口号码,80是后面接待你的人的端口号码”。
  
  “那这第二排的0x2C877F30和0xBD62DFB3又是什么意思呢?”
  
  “这是创建你的人使用的序列号和应答对方的确认号,你问题咋这么多”,大汉开始不耐烦了。
  
  “还有这个···”“行啦,快进去,赶时间”,大汉打断了我的提问,我乖乖的钻进了这个叫TCP的箱子。
  
  “是不是可以出发了?”我问大汉。
  
  “还早着呢,这才刚开始呢”,大汉笑着说。
  
  “再等一下,我还要进去一趟”,说完大汉又进了这个tcpip.sys大厦。
  
  没过多久,大汉又出来了,手里又拎了一个更大的箱子,上面也写着两个大大的字母:IP。
  
  这一次,大汉二话不说,直接把我连同TCP箱子一起丢进了这个IP箱子。
  
  “怎么还要套一层啊”,我紧张的问他。“你不懂,这个网络是分层的,刚才那个箱子是......唉,我跟你说这些干啥”,大汉提着我离开了tcpip.sys大厦。
  
  我们来到了一个码头,这里数据包来来往往特别繁华,大汉把我带到一个大大的仓库,里面有很多数据包,对我说:“乖乖待在这里排队,我就先走了,一会儿会有人来把你发出去的。”,大汉拍拍我的肩膀就离开了。
  
  “咦,你也是去222.196.242.24的,我也是呢,真巧!”
  
  前面一个数据包跟我打招呼。
  
  我愣了一下:“你怎知我要去哪里?”
  
  “喏,你这外面的箱子不是写了吗,你看我的,跟你的一样,这里写的就是咱们要去的地方的IP地址”,她特别激动。
  
  <————————————————————————————————>
  
  第一站:网关
  
  很快,来了一个小胖子叫到我了,我小心翼翼的走了过去。
  
  “你这是要去公网啊,来,先去网关那里吧”,说完,小胖又给我套了一个箱子,前面写着:Ethernet II,背面写了一串:FE-D8-65-C8-2B-D7;86-D5-32-01-0E-3B。
  
  “小哥,这个箱子又是干嘛的,这上面写的又是啥呢?”
  
  “这个箱子是把你送到网关那里去的,FE-D8-65-C8-2B-D7就是网关的网卡地址,后面那个是咱这里的地址”,小胖说话倒是很客气。
  
  “坐好了,要出发了哦”,小胖一顿操作,我好像坐上火箭,离开了这片土地。
  
  途中见到了好多好多的数据包,有出发的,也有过来的,像穿越时空隧道一般梦幻。还没来得及欣赏,就被一个黑脸的抓了下来,看来我是到小胖说的网关了。
  
  黑脸人一脸冷漠,问他话也不答,只顾做自己的事情。几下功夫,便将我最外面的箱子拆掉,然后拿着一个手册查了下我的目的IP地址。
  
  “好了,跟我来”,黑脸的把我带到另外一个码头,一顿操作把我给发了出去。
  
  <————————————————————————————————>
  
  穿越比特宇宙
  
  这里的数据包比刚才那里更多,更热闹。一路上,不时有人把我抓下去,然后又从一个新的码头发出去,把我弄的晕头转向的。
  
  过了好一会儿,到了一个地方,又一个胖子接待了我。
  
  “大哥,我这是到终点了吗?”
  
  “快了,你已经到目的网络网关了,下一站就到了”。
  
  “来的路上那些人把我抓下去又发出来是干啥呢?”
  
  “这叫网络路由,他们那些人接力才把你送到这里的”。说完,这胖子又给我套上了一个Ethernet II的箱子发了出去,我知道,这是要送我去最终目的地了。
  
  不知道是什么web服务器会来接待我呢,即将完成使命的我开始兴奋起来。
  
  <————————————————————————————————>
  
  出师未捷身先死
  
  很快,我又被人抓了下去。
  
  “是不是我到站了啊,终于要完成任务了”,我伸伸懒腰。
  
  那人却不说话,只是将我的Ethernet箱子拆去,放到了一个仓库。
  
  没多久,来了一个大叔,把我带了出去。
  
  “咱们是不是要去tcpip.sys大厦,把我的箱子都拆掉啊”,我小声的问。
  
  “这里是Linux帝国,没有你说的大厦。不过你倒是猜对了,就是去拆箱子”。
  
  很快,这位大叔就拆掉了我的IP箱子和TCP箱子,把我放到一个房间。
  
  “在这等着,一会儿有人会来找你”。
  
  “是不是web服务器的人来找我?”我激动的问。
  
  大叔也没有理我,转身离开。
  
  大叔刚走,就有一挎刀黑衣人过来,我吓了一跳,web服务器的人怎么这么凶,还带刀。
  
  黑衣人用了一台仪器对我一通扫描,突然仪器红色警报灯响起,我紧张到了极点。
  
  “小子,你的请求表单字段里面有SQL语句,你是来干什么的?”,黑衣人恶狠狠的质问我。
  
  “我不知道谁创建的我啊,我只是个HTTP数据包,你们这里不是web服务器吗,我是不是走错了”,我吓得脸色惨白。
  
  “你没有走错,是我们截下的你,这里不是web服务器,这里是WAF”,黑衣人得意的说到。
  
  “WAF是什么,那我肯定走错了,快放我离开”,我想逃离这里。
  
  然而,黑衣人大喝一声:“站住,你这个邪恶的数据包,伏诛吧!”。
  
  我回头一看,只见黑衣人举起大刀······
  
  未完待续·······
  
  彩蛋
  
  nginx公司的人正在紧张忙碌着,黑衣人突然闯了进来。“
  
  叫你们管事儿的过来,发现针对一起80端口的SQL注入攻击,我们需要调查取证”
  
  欲知后事如何,请关注后续精彩......
  
   <canvas id="canvas" width='500' height='500'></canvas>
 9         <script>
10             if (!CanvasRenderingContext2D.prototype.ellipse) www.shentuylzc.cn{
11                 CanvasRenderingContext2D.prototype.ellipse = function(x, y, radiusX, radiusY, rotation, startAngle, endAngle,
12                     anticlockwise) {
13                     var r = radiusX > radiusY www.shentuylgw.cn radiusX : radiusY; //用打的数为半径
14                     var scaleX = radiusX / r; //计算缩放的x轴比例
15                     var scaleY =www.baihua178.cn radiusY / r; //计算缩放的y轴比例
16                     var _x = www.huizhonggjzc.cn / scaleX,
17                         _y = www.dajuhezc.cn / scaleY; //计算圆心位置
18                     this.save(); //保存副本
19                     this.translate(_www.shicaiyl.com, _y); //移动到圆心位置
20                     this.rotate(rotation); //进行旋转
21                     this.scale(scaleX, scaleY); //进行缩放
22                     this.arc(0, 0, r, startAngle, endAngle, anticlockwise); //绘制圆形
23                     this.restore(www.baihuayl7.cn); //还原副本
24                 }
25             }
26             var ctx = document.getElementById("canvas").getContext("2d");
27             ctx.beginPath(www.yuchengyule.com);
28             ctx.ellipse(300, 300, 150, 100, 30 * Math.PI / 180, 0, Math.PI * 2);
29             ctx.lineWidth = 10; //设定线宽为10
30             ctx.stroke();
31             ctx.closePath();
  
  我是一个explorer的线程
  
  我是一个杀毒软件线程
  
  我是一个IE浏览器线程
  
  比特宇宙-TCP/IP的诞生
  
  产品vs程序员:你知道www是怎么来的吗?
  
  我是一个流氓软件线程
  
  默认浏览器争霸传奇
  
  远去的传说:安全软件群雄争霸史

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值