当前位置: 首页 > article >正文

【JavaEE初阶】网络原理(5)

欢迎关注个人主页:逸狼


创造不易,可以点点赞吗~

如有错误,欢迎指出~



目录

路由选择

数据链路层=>以太网

MTU

mac地址和IP地址的区别

空间范围不同

应用范围不同

ARP协议/ARP数据包

DNS(域名解析系统)


路由选择

每个路由器,无法知道整个网络结构的全貌,只能知道其中一小部分(每个路由器只知道他附近的设备是这样的情况)

路由器内部维护的重要数据->路由表,路由表类似hash一样,key相当于IP地址(网络号),value就是对应的网络接口,IP数据包到达路由器,就要进行查询路由表操作,IP数据包中的目的IP,查一查这个目的IP在路由表中是否存在,如果查到了,自然按照路由表指向的方向继续转发即可,否则,路由表,会有一个"默认表项->下一跳(指向了更高层级的路由器,认识的设备更广)",这个路由器也可能查不到,但也有下一跳...

 

数据链路层=>以太网

日常开发中,主要是应用层,传输层和应用层密切交互,传输层用到的也不少,网络层以及再往下,日常开发就很少涉及(除非开发交换机,运营商的工作人员)

"目的地址,源地址和类型" 共同构成了mac地址/物理地址,

  • 其中"类型"描述了载荷是什么样的数据; 类型为0806和8035时 不传输任何业务数据,而是给转发功能提供辅助措施
  • CRC是帧尾=>校验和
  • 数据链路层数据帧 的最大载荷长度是1500字节,相当于1.5kb

MTU

最⼤值1500称为以太⽹的最⼤传输单元(MTU),不同的⽹络类型有不同的MTU,MTU和硬件直接相关,不同的硬件设备对应到了不同的数据链路层协议,对应了不同的MTU. 

此处的MTU的限制,就会对上层协议(IP协议)产生直接影响, IP协议能拆包组包,实际上IP协议更多的应对MTU的限制,当一个IP数据包达到1500以上的时候,就会自动拆包了

mac地址和IP地址的区别

空间范围不同

mac地址使用6个字节表示,IP地址4个字节,空间范围比IP地址大了6w多倍,mac地址当前仍然可以给每个设备,都分配一个唯一的mac地址值

一般的网卡,在出厂时,mac地址就被分配好了(写死了,不能修改),所以mac地址可以作为设备的身份标识

应用范围不同

  • mac地址使用在数据链路层,用来实现两个相邻设备之间的数据转发(微观)
  • IP地址使用在网络层,立足于整个转发的流程,进行路径规划(宏观)

理论上,一套地址就能完成宏观和微观层次上的所有工作,实际上两个都留下了(历史遗留问题,IP和mac是两伙人同一段时间各自独立提出的,综合考虑,两者负责不同功能)

以太网的数据帧 里的mac地址,随着转发的过程,时刻发生改变(每经过一个交换机/路由器都会产生变化)

举个例子,从 西安=>吉林省白城市安广镇

ARP协议/ARP数据包

ARP协议可以视为是让当前设备,获取到周围设备IP地址和mac地址之间的映射关系

IP协议路由转发的过程都是拿着IP地址进行 查路由表=>得到的"网络接口"(抽象概念,更具体的传输给哪个mac地址的设备),这个环节就涉及到IP->mac

当前设备接入网络时,就会往广播地址发送ARP报文,收到ARP请求的设备就会返回ARP响应,响应中就会告知自己的IP和mac

DNS(域名解析系统)

DNS 即可以认为是 应用层协议,也可以认为是一套系统

域名代表了IP地址,存在对应关系,一般一个域名对应一个或者多个IP,也可能多个域名对应一个IP

虽然把IP地址写作点分十进制,但是仍然对人类不友好,所以进一步使用单词字符串来表示IP地址

域名转换成IP地址这样一套系统,就称为DNS

早期的DNS非常简单,通过一个文件(hosts)来实现

由于现在网站太多了,域名有很多,IP地址也有很多,靠文件来维护,不现实,不方便,为了解决上述问题,搭建了DNS服务器,把hosts文件放到DNS服务器里,当某个电脑需要进行域名解析,访问DNS服务器即可,

全世界每时每刻有大量设备都在访问DNS服务器 ,为了顶住这么大的访问量,多建设一些DNS服务器即可,多出来的DNS服务器称为"镜像服务器",全世界 有数不清的镜像服务器,往往是一些运营商/互联网公司维护,每个人上网时都会就近访问DNS服务器

针对数据变更,提前约定以某个服务器(根服务器)的数据为基准,一旦有变更,就修改这个基准服务器,其他服务器从基准服务器同步数据


http://www.kler.cn/a/376364.html

相关文章:

  • 利用LangChain与LLM打造个性化私有文档搜索系统
  • 链表练习记录
  • 基于YOLO11/v10/v8/v5深度学习的维修工具检测识别系统设计与实现【python源码+Pyqt5界面+数据集+训练代码】
  • HarmonyOS-权限管理
  • 在服务器运维过程中,发现服务器时间倒退以及DNS无法解析域名造成yum不可用的问题解决
  • CSGO: Content-Style Composition in Text-to-Image Generation(代码的复现)
  • 受限玻尔兹曼机(RBM):构成 DBN 的基本单元
  • GeoSever发布图层(保姆姬)
  • 修复Android9原生bug-->无锁屏唤醒与第三方锁屏右滑解锁大概率性ui不更新
  • 如何把小程序挂载到抖音直播间
  • 解决QT打包发布App Store时(90238)错误
  • 《高频电子线路》—— 相位平衡条件判断准则
  • Spring Cloud Ribbon:负载均衡的服务调用
  • pdfkit | 利用python实现html文件转pdf
  • C向C++入门-- C语言填坑
  • netty之实现一个redis的客户端
  • Java设计模式-单例模式和工厂模式的思路解析
  • CFA全球投资分析大赛专访:与投资人胡建平共话投资智慧
  • Windows 下基于 CLion 配置 Linux 项目开发环境
  • 【再谈设计模式】原型模式~复制的魔法师
  • 基于CNN-LSTM的时间序列数据预测,15个输入1个输出,可以更改数据集,MATLAB代码
  • 建立maven项目常见问题解决办法
  • 循环神经网络(RNN):处理序列数据的 AI 利器
  • 【论文速读】| APILOT:通过避开过时API陷阱,引导大语言模型生成安全代码
  • pycharm小游戏飞机射击
  • 显示器接口