您没有来错地!为了更好的发展,黑基网已于9月19日正式更名为【安基网】,域名更换为www.safebase.cn,请卸载旧的APP并安装新的APP,给您带来不便,敬请理解!谢谢

黑基Web安全攻防班
安基网 首页 IT技术 安全攻防 查看内容

主程序员的练成:IP、DNS和CDN

2014-11-13 10:54| 投稿: security

摘要: 有段时间我面试程序员时,喜欢问这个问题:局域网IP有哪些IP段?由这个问题再追问NAT(网络地址转换)。为什么不是每个设备一个公网IP?先说个关于QQ的小故事,最早开发QQ时,小马哥他们也没想到QQ会...
有段时间我面试程序员时,喜欢问这个问题:局域网IP有哪些IP段?由这个问题再追问NAT(网络地址转换)。为什么不是每个设备一个公网IP?先说个关于QQ的小故事,最早开发QQ时,小马哥他们也没想到QQ会发展成中国互联网基础设施,就用4字节整形表示QQ号了。早期内部的一些项目有用int表示QQ号,能表示的最大值是2^31-1,即21亿多。在QQ号发放近20亿时,腾讯内部搞了个22亿QQ号测试,要求每个项目检查整改,使用unsigned int表示QQ号,以支持21亿以上的QQ号。随着QQ号的不断增长,迟早会超出4字节的范围,那时估计得启动int64转换了。可以看出在底层和协议设计中,字段的扩大是非常麻烦的。IP地址也有类似问题。目前广泛使用的是IPv4,一个IP地址4个字节,理论上共有2^32个IP地址,接近43亿。这个数量还不到人均一个,远远不够,自然也不能每个设备一个公网IP了,所以Internet规定了IPv4地址空间的一部份供专用地址使用,这些地址永远不会被当做公用地址来分配,局域网内部IP就是使用这些专用地址。Internet规定的专用地址有:10.x.x.x,172.16-31.x.x,192.168.x.x,另外127.0.0.1表示本地回环地址,代表设备的本地虚拟接口。了解这个后,如果你发现你在公司的IP是192.168.0.100,在家里的IP也是192.168.0.100时,就不会诧异了。局域网内部IP只用于局域网内部通讯,要连接广域网,还要用到NAT(网络地址转换)技术。NAT常用于局域网内部IP和局域网分配的公网IP之间进行转换,使用最多的是端口多路复用(PAT)方式,简单的描述就是,你在局域网内访问百度时,路由器会记录你的内网IP和端口(假设是192.168.0.100:12345),用路由器的公网IP和一个未使用的端口向公网发网络包(假设是202.96.134.133:23456),路由器还会把202.96.134.133:23456~192.168.0.100:12345配对保存起来。当百度的响应发到202.96.134.133:23456后,路由器通过查找配对表就知道是发给192.168.0.100:12345。参考:百度百科 内网IP  http://baike.baidu.com/view/1233066.htm参考:百度百科 网络地址转换 http://baike.baidu.com/view/875777.htm小问题:像华为这种公司内部局域网能用192.168.x.x段么?DNS有话说搞网络管理的同学对DNS比较熟悉,程序员也需要了解,不管是前端还是后端。IP地址不好记,于是就有了域名。浏览器访问baidu.com时,会先做一次域名解析,把baidu.com这个域名解析成IP地址,然后才能发出IP包。《DNS原理及其解析过程【精彩剖析】》对DNS介绍得挺详细的,这里就不再赘述。在windows和linux下解析域名前,会先从本地hosts文件里查找网址映射关系,如果有,就先调用这个IP地址映射,完成域名解析。 我们在做web开发时,会用这种方式来切换开发环境、测试环境、预发布环境和正式环境。如果你在万网注册了一个个人用的域名,一般会直接用万网的DNS服务器来管理该域名的解析。对于门户网站,则会自己搭建DNS服务器来管理域名,例如baidu.com/qq.com。自建DNS服务器既方便管理,又能提高安全等级,防范DDOS域名攻击。如果域名的访问量比较大,可以让域名对应多个IP地址,操作系统会随机选择其中一个,这是最常见的web负载均衡方式。但因为DNS的变更生效时间最长可达到24~48小时(自建DNS服务器可以配置更短的生效时间),一旦某个IP的机器故障,而DNS又不能立即刷新,会让部分用户服务不可用。于是就有了用LVS/nginx来动态负载均衡的方式,LVS的负载均衡基于IP层,nginx则是用HTTP层的反向代理机制。参考:百度百科 LVS  http://baike.baidu.com/subview/645050/6406092.htm在中国搞互联网还要考虑到电信/联通/移动三大运营商跨网的问题(有的叫南北互通问题)。运营商因不公开的原因,他们之间的通讯带宽有限,如果你的服务器在广州的电信机房,那么北京的联通用户访问就会比较慢。所以就有了双线机房的出现。双线机房实际是一个机房有电信和联通两条线路接入。通过双线机房内部路由器设置,及BGP自动路由的分析,实现电信用户访问电信线路,联通用户访问联通线路,这样实现电信联通均可以快速访问 。腾讯在搞开放平台后,还提供了TGW服务,实现了电信/联通/移动多网统一接入、外网网络请求转发、支持自动负载均衡。参考:百度百科 BGP多线  http://baike.baidu.com/view/8584527.htm参考:腾讯TGW简介  http://wiki.open.qq.com/wiki/TGW%E7%AE%80%E4%BB%8BCDN登场为了给用户提供更快的访问速度,人们发明了CDN(Content Delivery Network,内容分发网络)。简单的说就是,一个域名对应有多个IP,这些IP分布在全国各地,用户访问域名时,DNS服务器根据用户的来源IP,返回一个就近的IP给用户,从而实现更快的访问速度。参考:百度百科 内容分发网络  http://baike.baidu.com/view/8689800.htm从上面的描述可以知道,CDN要求各节点的内容是一致的,这样才能让各地用户访问到一致的内容,所以CDN主要用于web静态资源的分发和加速。web性能优化方案一般会有一条动静分离,即把静态资源使用的域名和动态脚本的域名分开,有了CDN后,一般会把静态资源的域名托管给CDN以提高更快的访问速度和更低的成本。

小编推荐:欲学习电脑技术、系统维护、网络管理、编程开发和安全攻防等高端IT技术,请 点击这里 注册黑基账号,公开课频道价值万元IT培训教程免费学,让您少走弯路、事半功倍,好工作升职加薪!



免责声明:本文由投稿者转载自互联网,版权归原作者所有,文中所述不代表本站观点,若有侵权或转载等不当之处请联系我们处理,让我们一起为维护良好的互联网秩序而努力!联系方式见网站首页右下角。


鲜花

握手

雷人

路过

鸡蛋

相关阅读

最新评论

最新

返回顶部