【JavaEE网络】从数据链路层到应用层的DNS

目录


数据链路层

越往下与程序员越远

代表协议:以太网。平常用的网线也叫"以太网线",平常用的交换机也叫"以太网交换机"

以太网

认识以太网

"以太网" 不是一种具体的网络,而是一种技术标准;既包含了数据链路层的内容,也包含了一些物理层的内容。例如:规定了网络拓扑结构,访问控制方式,传输速率等;

例如以太网中的网线必须使用双绞线;传输速率有10M,100M,1000M等;

以太网是当前应用最广泛的局域网技术;和以太网并列的还有令牌环网,无线LAN等;

以太网帧格式

源地址和目的地址是指网卡的硬件地址(也叫MAC地址),长度是48位,是在网卡出厂时固化的;作用也是用来区分不同的主机

帧协议类型字段有三种值,分别对应IP、ARP、RARP;

帧末尾是CRC校验码。

已经有了 IP 地址,为啥还要有 mac 地址呢?

IP 地址和 mac 地址,是被各自独立的设计出来了。IP地址负责的是网络层转发,mac地址负责数据链路层转发

网络层负责的是整体的转发过程,数据链路层负责的是局部(相邻设备)转发过程

从西安到东北

规划路线(网络层):

  1. 西安->北京->长春->白城
  2. 西安->长春->白城
  3. 西安->北京->白城
  4. ......

具体的转发过程(数据链路层)

  1. 西安->北京(坐飞机)
  2. 北京->长春(坐高铁)
  3. 长春->白城(坐大巴)

DNS

DNS,即 Domain Name System,域名系统。DNS 是一整套从域名映射到 IP 的系统。

TCP/IP 中使用 IP 地址来确定网络上的一台主机,但是 IP 地址不方便记忆,且不能表达地址组织信息,于是人们发明了域名 ,并通过域名系统来映射域名和IP地址。

上网要访问服务器,要知道服务器的IP地址,IP地址是一串数字,虽然已经使用点分十进制已经清洗不少了,但仍不方便记忆。使用单词来代替IP地址,比如baidu、sogou、taobao这样的,这样的单词就是"域名"。

域名是一个字符串,如 www.baidu.comhr.nowcoder.com

域名系统为一个树形结构的系统,包含多个根节点。其中:

  1. 根节点即为根域名服务器,最早IPv4的根域名服务器全球只有13台,IPv6在此基础上扩充了数量。

  2. 子节点主要由各级DNS服务器,或DNS缓存构成。

  • DNS域名服务器,即提供域名转换为IP地址的服务器。
  • 浏览器、主机系统、路由器中都保存有DNS缓存。
  • Windows系统的DNS缓存在 C:\Windows\System32\drivers\etc\hosts 文件中,Mac/Linux系统的DNS缓存在 /etc/hosts 文件中。

实践中为了保证域名的唯一性,域名往往是分级的。

www.sogou.com从前往后分别是三级、二级、一级

.com公司 .cn中国 .edu教育组织

最早的域名解析系统,是一个文件。(hosts 文件)

每个域名都会对应到一个 IP 地址

一旦新的网站出现了,或者旧的网站下线,这里就需要修改

全世界有很多网站不停的新增和消亡全世界又有这么多的主机上带有 hosts 需要修改

全世界,这么多的主机都在上网,此时 DNS 服务器如何承担这么高的并发量?

两个原则:开源,节流

  1. 全世界会搭建出很多的"DNS 镜像服务器"(一般是网络运营商 或者 一些大厂)
  2. 每个电脑上,在进行域名解析的时候,都会有缓存。我访问 10 次搜狗,只有第一次真的访问 DNS,后面 9 次都不一定访问
相关推荐
要开心吖ZSH2 小时前
一文搞懂:JDK 21 虚拟线程 vs N种异步方案,到底该怎么选?
java·数据库·jdk·虚拟线程
guodingdingh6 小时前
软件开发工作问题总结0718
java·开发语言·数据库
咖啡八杯8 小时前
GoF设计模式——解释器模式
java·后端·spring·设计模式
优橙教育8 小时前
5G网优培训 vs Java开发:转行选哪个?
java·开发语言·5g
糖果店的幽灵8 小时前
【DeepAgents 从入门到精通】Context Management 上下文管理
java·人工智能·后端·spring·中间件·langgraph·deepagents
腻害兔10 小时前
【若依项目-产品经理视角】RuoYi-Vue-Pro 源码拆解:字典、短信、邮件、通知——后台系统的“基础设施四件套“!
java·前端·vue.js·产品经理·ai编程
碎光拾影10 小时前
ARM交叉工具链各工具作用及IMX6ULL平台LED+蜂鸣器裸机程序实现
java·开发语言·数据库
Miao1213111 小时前
微服务 API 测试实践:海外某民宿平台如何构建模式驱动测试基础设施
java·开发语言
腻害兔11 小时前
【若依项目-产品经理视角】RuoYi-Vue-Pro 源码拆解:支付模块 yudao-module-pay,一个让产品经理都看懂的支付中台设计
java·前端·vue.js·产品经理·ai编程
星恒讯工业路由器12 小时前
5G FWA技术演进与趋势
网络·5g·信息与通信·4g·5g fwa·3gpp规范·fwa趋势