OSI模型应用层-DNS协议

应用层依赖于底层的传输层TCP/UDP来提供传输服务,而应用层本身则面向实际应用。如浏览网页的HTTP,域名解析的DNS。

还有很多私有的应用层协议,例如一个网络游戏的通信协议,QQ的通信协议,也属于应用层,他们和DNS,HTTP之类的协议其实也类似。就算你自己做一个小的网络程序,然后规定他们怎么通信,你也发明了一个简单的应用层协议。

应用层协议,说白了就是双方约定一个通信方式,然后都互相遵守,双方就能通信了,至于到底怎么约定,就看到底做什么用了。所以学习一个应用层协议也类似,只要知道他能做什么,他由哪些信息部分组成,就足够了。

应用层协议和下面几层的主要区别是他不负责传输的细节,他只负责了解消息本身的意义。

下面是几种应用广泛的应用层协议。分开几个文章来讲。

DNS协议

使用某个协议必须要先有支持该协议的硬件/软件,就比如你要使用QQ的内部协议进行通信(就是聊天),你就必须装QQ的客户端。

DNS协议就是一个IP/域名映射协议,两台网络设备进行通信必须要知道IP地址和端口号。当我们请求一个域名时,网络设备会搜索最近的DNS服务器,DNS服务器里有一个数据库,里面存储了这种映射,我们就可以从域名得到IP地址,然后就可以用IP协议进行端对端通信了。

当然,世界上只有一台DNS是不够的,DNS服务器自身也组成一个互联网络,高级的DNS向低级的DNS同步信息,他们之间也会互相通信,共享各种数据。

那这些初始信息哪里来呢,相信搭过站的人应该知道,域名是要提交某个服务商解析的,所以这个IP/域名映射其实是大家一起提交上去的。

现在应该可以理解DNS劫持是什么意思了,就是有人黑了一台DNS服务器,篡改了这种映射,导致输入域名被定位到一个别的IP地址。

所以也可以推出,DNS服务器被劫持的时候,可以直接用IP访问。

有的人可能听过改hosts文件可以翻墙,其实host就是一个本地的DNS缓存,为了防止多次请求附近的DNS服务器导致访问速度下降,所以每次DNS解析后,会将映射保存在本地。

其实GFW就是做了一种DNS劫持,将某些不允许上的站进行了错误导向,然后一层一层下放,最后你电脑里的hosts就保存了错误的映射。

不过GFW的手段不止这一种,很可能hosts改了还是上不了,这里就不多说了:)


欢迎关注我的github https://github.com/luckyCatMiao

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值