一站式学习Java网络编程 全面理解BIO_NIO_AIO,学习手记(一)

大家好,我是方圆
加油儿!!!

目录

    • 1. URL地址的构造和解析
      • 1.1 域名的层级
      • 1.2 域名DNS查询的两种方式
        • 1.2.1 递归查询
        • 1.2.2 迭代查询
    • 2. 网络协议的基础知识
      • 2.1 分层及协议
      • 2.2 各层的数据包格式


1. URL地址的构造和解析

在这里插入图片描述
我们看如上地址,一般情况下.root根域名的部分会被省略。而URL的解析过程就是从右向左进行解析,将地址转换为IP地址,进行访问。

1.1 域名的层级

一站式学习Java网络编程 全面理解BIO_NIO_AIO,学习手记(一)_第1张图片

1.2 域名DNS查询的两种方式

1.2.1 递归查询

一站式学习Java网络编程 全面理解BIO_NIO_AIO,学习手记(一)_第2张图片

  • 如图上所示,浏览器将请求发送给DNS客户端,客户端请求根域名服务器对域名进行解析,解析完成后,随后再访问顶级域名服务器,请求它对域名进行解析,以此类推,直至全部解析完毕,重新从三级域名服务器一层一层传递给DNS客户端,再发送给浏览器。

1.2.2 迭代查询

一站式学习Java网络编程 全面理解BIO_NIO_AIO,学习手记(一)_第3张图片

  • 迭代查询是访问DNS客户端后,先访问根域名服务器,将根域名服务器中存储的该域名的内容全部发送给DNS客户端,如果无法实现域名解析的话,DNS客户端会再次请求顶级域名服务器,过程也同上,最终完成解析后,再将请求结果传递给浏览器。

Tip: 在对域名进行解析过一次后,就会产生它的缓存,存在DNS客户端中,当再次访问该域名时,就不会再去请求各个域名服务器了。对于根域名服务器,在全球是限量的,它已经被内置在DNS客户端中了,不必担心不知道根域名服务器地址的问题。


2. 网络协议的基础知识

2.1 分层及协议

一站式学习Java网络编程 全面理解BIO_NIO_AIO,学习手记(一)_第4张图片

  • 应用层:规定应用程序的数据格式
  • 传输层:端口之间的连接
  • 网络层:主机之间的连接,能够实现具体的定位
  • 链路层:网卡之间的连接,每个网卡都有自己的MAC地址,在网卡生产出来的时候就已经确定了;假如通过MAC地址传递数据,那么它会给所有子网络主机都发送一份数据,并在接收时将MAC地址进行核对,一致时才进行接受,不能实现准确的定位
  • 实体层:解决的是计算机之间的连接,一般通过光缆进行连接

2.2 各层的数据包格式

一站式学习Java网络编程 全面理解BIO_NIO_AIO,学习手记(一)_第5张图片
从应用层向下,每经过一层都会被添加上该层的标头,对于Ethernet标头,它的大小为18个字节,其余数据部分为1500字节,它的大小最大为1518字节,即每个帧的字节,当发送较大的文件时,就会发送多个帧的数据包,通过标头信息,在接收时能够将其组合,实现数据的正确发送。


干!

你可能感兴趣的:(项目二,网络聊天室)