java网络编程系列之网络层的解析与协议
- URL解析与构造
- 域名DNS的解析过程
- 域名的解析过程
- 域名的层级
- 域名DNS查询的两种方式:递归与迭代
- 网络协议快速扫盲
- 网络协议分门别类
- 连接一切(物理、网卡、主机、端口的连接)
- 网络各个层的数据包格式
URL解析与构造
域名DNS的解析过程
域名是如何映射到对应的IP地址呢?
域名的解析过程
域名的解析过程是从右向左的
所有域名默认都有一个根域名.root,但根域名通常省略不写
域名的层级
我们购买域名时,可以自己个性化定制的是次级域名往下的范畴
域名DNS查询的两种方式:递归与迭代
递归 :
任何家庭需要上网,都要设置一个DNS服务器,它是专门用来解析域名的
当我们在浏览器上访问某个网站的时候,会向DNS客户端发送一个域名解析请求
那么DNS客户端就会进入DNS分布式数据库,查找对应的IP地址了
首先,先把查询请求发送给根域名服务器,如果根域名服务器知道对应域名的IP,会直接返回给客户端,
如果不知道,根域名服务器会把查询请求发送给下面对应的顶级域名服务器进行查询,
顶级域名服务器收到查询请求,如果知道对应域名的IP,会直接返回,如果不知道,会把查询请求发送给下面的二级域名服务器,二级域名服务器不知道,继续往下面转发…
如果三级域名服务器位置查询到了结果,便会一层层向上面返回,直到根域名服务器,然后返回给DNS客户端,最后返回给浏览器,这就是递归查询
迭代:
与迭代查询不同的是,如果根域名服务器没有查询到对应的IP地址,便会将下面对应的顶级域名地址返回给DNS客户端,DNS客户端再将请求发送给顶级域名服务器,如果顶级域名服务器没查到,再返回二级域名服务器给DNS客户端,然后…
直到查询到IP地址,浏览器,DNS客户端,经过的根域名到最底层查询到IP地址的一层服务器都会缓存当前查询到的IP地址,方便下次查询时,快速返回
网络协议快速扫盲
网络协议分门别类
连接一切(物理、网卡、主机、端口的连接)
每一块网卡都有一个唯一的身份表示,即mac地址
链路层关心的是网卡和网卡之间的通信
通过ip地址确定一台主机,从而可以完成主机与主机之间的通信
解决端口和端口之间从传输
网络各个层的数据包格式
Ethernet标头存储的一般是mac地址,对应链路层,IP标头存储ip地址,对应网络层,tcp/udp标头存储端口信息,对应传输层
如果传输的数据很大,一帧大小发不完,会在链路层被分为多个帧进行传输