JavaWeb~简单认识以太网、MAC地址、MTU机制、ARP协议、DNS协议

  • MAC地址用来识别数据链路层中相连的节点;长度为48位, 及6个字节. 一般用16进制数字加上冒号的形式来表示(例如: 08:00:27:03:fb:19)在网卡出厂时就确定了, 不能修改. mac地址通常是唯一的(虚拟机中的mac地址不是真实的mac地址, 可能会冲突; 也有些网卡支持用户配置mac地址)

对比理解IP地址与MAC地址


  • IP地址描述的是路途总体的 起点 和 终点;

  • MAC地址描述的是路途上的每一个区间的起点和终点

  • 举个简单例子

快递的运输

要是类比ip地址

就是只看起点和终点 源地址上海市 目的地址 西安市

类比MAC地址

源地址上海市 目的地址 湖北市

源地址湖北市 目的地址 合肥市

源地址合肥市 目的地址 西安市

认识MTU

====================================================================

  • 链路层的这个特性MTU,即最大传输单元。不同类型网络的数帧长度大多数都有一个上限。如果IP层有一个数据报要传,而且数据帧的长度比链路层的MTU还大,那么IP层就需要进行分片( fragmentation),即把数据报分成干片,这样每一片就都小于MTU。

  • MTU相当于发快递时对包裹尺寸的限制.

  • 不同的数据链路层标准的MTU是不同的

  • 主要用就是IP的分组与重组

MTU对IP数据报进行分组重组


  • 由于数据链路层MTU的限制, 对于较大的IP数据包要进行分包

将较大的IP包分成多个小包, 并给每个小包打上标签;

每个小包IP协议头的 16位标识(id) 都是相同的;

每个小包的IP协议头的3位标志字段中, 第2位置为0, 表示允许分片, 第3位来表示结束标记(当前是否是最后一个小包, 是的话置为1, 否则置为0, 用于方便重组);

到达对端时再将这些小包, 会按顺序重组, 拼装到一起返回给传输层

一旦这些小包中任意一个小包丢失, 接收端的重组就会失败. 但是IP层不会负责重新传输数据

在这里插入图片描述

认识ARP协议

======================================================================

  • ARP协议是一个介于数据链路层和网络层之间的协议

  • 主要作用就是建立了主机 IP地址 和 MAC地址 的映射关系 (MAC学习)

假如有一个ip数据报需要转发 就需要构造一个以太网的数据帧 就需要填写对应的目的mac 而ARP协议就是用来学习这个目的mac地址的

ARP协议的工作流程


源主机发出ARP请求,询问“IP地址是192.168.0.1的主机的硬件地址是多少”, 并将这个请求广播到本地网段(以太网帧首部的硬件地址填FF:FF:FF:FF:FF:FF表示广播);

目的主机接收到广播的ARP请求,发现其中的IP地址与本机相符,则发送一个ARP应答数据包给源主机,将自己的硬件地址填写在应答包中;

认识应用层协议DNS

=========================================================================

  • DNS是一整套从域名映射到IP的系统

DNS是应用层协议

DNS底层使用UDP进行解析

浏览器会缓存DNS结果

  • TCP/IP中使用IP地址和端口号来确定网络上的一台主机的一个程序. 但是IP地址不方便记忆. 于是人们发明了一种叫主机名的东西, 是一个字符串, 并且使用hosts文件来描述主机名和IP地址的关系 (现在很少使用这个hosts文件了)

  • 现在是专门搭建一组服务器 用这个服务器来维护很多这样的映射关系

  • 电脑上网的时候 电脑不认识这个域名 就先去浏览器找结果 如果没有再去找这组服务器(DNS服务器 也叫域名服务器) 获取对应的地址

  • DNS会按照域名的等级来分别组织 当我们要访问某个域名时,会按照域名服务器的等级一层一层向下查询 (如下面例子 你的ISP的DNS服务器从跟域名服务器开始进行递归搜索 从.com顶级域名服务器到baidu的一级域名服务器)
    在这里插入图片描述

常考的一个问题 电脑可以登QQ 但是不能访问网页 一般就是这个DNS服务器挂了

最后

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Java开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
*如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!**](https://bbs.csdn.net/topics/618164986)

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值