一个HTTP数据包的奇幻之旅
我是一个HTTP数据包,不知谁创建了我,把我丢到这个房间。突然,来了一个大汉,我吓得缩到角落。“该启程了,站起来”。“去哪里啊?”我弱弱的问。“还能去哪里,你是一个数据包,当然要出远门,完成你的使命啊,别啰嗦,我要先把你复制到内核空间,一会要发出去,让我来看下你的内容”。我不敢多言,乖乖的站好,一眨眼的功夫,我来到了另一个房间。“这是哪里,我怎么到这里来了?”我有点好奇。“这里是内核地址空间,刚才你在用户态地址空间,所有的数据包都得从这里出发,你也不例外”。看着这片陌生的环境,我也不知道他说的内核空间是什么意思,这里有好多房间,还有好多跟他一样的大汉在工作,好多数据包都在这里,进进出出,好不热闹。
这时,旁边另外一个数据包走了过来。“唉,小子,刚出发呢。”“你是谁?”“我也是一个HTTP数据包,不过我是一个响应包,刚刚从遥远的Linux帝国过来这里,我马上就完成我的使命了,这一路给我累得”,这个数据包叹口气回答。“很远吗,这么辛苦啊”,我开始有点担心我的旅程起来。“这不好说,我不知道你去哪,接我的人来了,再见”。
不一会儿,大汉提着一个箱子走了出来,箱子正面写了三个大大的字母:TCP。“这是传输层的箱子,快进去”,大汉命令的口吻。“你要我钻进这个箱子啊?”我不太相信。“对,没错,麻利的”。“这箱子上面写的数字60059和80是什么意思?”我注意到箱子背面也写了很多东西。“60059是创建你的人用的端口号码,80是后面接待你的人的端口号码”。“那这第二排的0x2C877F30和0xBD62DFB3又是什么意思呢?”“这是创建你的人使用的序列号和应答对方的确认号,你问题咋这么多”,大汉开始不耐烦了。“还有这个···”“行啦,快进去,赶时间”,大汉打断了我的提问,我乖乖的钻进了这个叫TCP的箱子。“是不是可以出发了?”我问大汉。“还早着呢,这才刚开始呢”,大汉笑着说。
我们来到了一个码头,这里数据包来来往往特别繁华,大汉把我带到一个大大的仓库,里面有很多数据包,对我说:“乖乖待在这里排队,我就先走了,一会儿会有人来把你发出去的。”,大汉拍拍我的肩膀就离开了。
过了好一会儿,到了一个地方,又一个胖子接待了我。“大哥,我这是到终点了吗?”“快了,你已经到目的网络网关了,下一站就到了”。“来的路上那些人把我抓下去又发出来是干啥呢?”“这叫网络路由,他们那些人接力才把你送到这里的”。说完,这胖子又给我套上了一个Ethernet II的箱子发了出去,我知道,这是要送我去最终目的地了。
不知道是什么web服务器会来接待我呢,即将完成使命的我开始兴奋起来。
“叫你们管事儿的过来,发现针对一起80端口的SQL注入攻击,我们需要调查取证”
出发前的俄罗斯套娃
这时,旁边另外一个数据包走了过来。“唉,小子,刚出发呢。”“你是谁?”“我也是一个HTTP数据包,不过我是一个响应包,刚刚从遥远的Linux帝国过来这里,我马上就完成我的使命了,这一路给我累得”,这个数据包叹口气回答。“很远吗,这么辛苦啊”,我开始有点担心我的旅程起来。“这不好说,我不知道你去哪,接我的人来了,再见”。
不一会儿,大汉提着一个箱子走了出来,箱子正面写了三个大大的字母:TCP。“这是传输层的箱子,快进去”,大汉命令的口吻。“你要我钻进这个箱子啊?”我不太相信。“对,没错,麻利的”。“这箱子上面写的数字60059和80是什么意思?”我注意到箱子背面也写了很多东西。“60059是创建你的人用的端口号码,80是后面接待你的人的端口号码”。“那这第二排的0x2C877F30和0xBD62DFB3又是什么意思呢?”“这是创建你的人使用的序列号和应答对方的确认号,你问题咋这么多”,大汉开始不耐烦了。“还有这个···”“行啦,快进去,赶时间”,大汉打断了我的提问,我乖乖的钻进了这个叫TCP的箱子。“是不是可以出发了?”我问大汉。“还早着呢,这才刚开始呢”,大汉笑着说。
我们来到了一个码头,这里数据包来来往往特别繁华,大汉把我带到一个大大的仓库,里面有很多数据包,对我说:“乖乖待在这里排队,我就先走了,一会儿会有人来把你发出去的。”,大汉拍拍我的肩膀就离开了。
第一站:网关
穿越比特宇宙
过了好一会儿,到了一个地方,又一个胖子接待了我。“大哥,我这是到终点了吗?”“快了,你已经到目的网络网关了,下一站就到了”。“来的路上那些人把我抓下去又发出来是干啥呢?”“这叫网络路由,他们那些人接力才把你送到这里的”。说完,这胖子又给我套上了一个Ethernet II的箱子发了出去,我知道,这是要送我去最终目的地了。
不知道是什么web服务器会来接待我呢,即将完成使命的我开始兴奋起来。
出师未捷身先死
“叫你们管事儿的过来,发现针对一起80端口的SQL注入攻击,我们需要调查取证”
- END -
往期阅读:
5万字 Spring Boot 详细学习笔记(带完整目录)+源码免费下载
2019 年精华文章分类汇总,错过了血亏!
2018 年所有精华文章汇总,错过了血亏!
长按二维码关注我
最后,分享一份面试宝典《Java面试突击52讲》,覆盖了JVM、锁、高并发、反射、微服务、Zookeeper、数据库、消息队列、分布式系统等等。扫描上方二维码,关注 Java开发宝典,并回复 Java 即可领取!点赞是最大的支持
评论