Java EE——数据链路层和以太网协议

数据链路层

我们的数据链路层就相当于发送快递时的卡车

以太网协议

基本格式

  1. 目的地址(6位)
  2. 源地址(6位)
  3. 类型(2位)
  4. 数据
  5. CRC(校验和,通过硬件来算的)

这里的源地址和目的地址并不是之前的IP地址,而是mac地址。其作用也是标记主机的位置,实现相邻节点之间的数据的传输的。而之所以有两个标识主机的概念,就是因为设计以太网的是一波人,设计IP协议的是另一波人,而这两拨人想一块去了

这里的地址是6个字节,就相当于42亿*65535,因此对于现在的设备的数量来说还是够用的,mac地址通常用16进制的方式表示,一个网卡出厂时就会分配好自己的唯一的mac地址

传输过程

例如主机A给主机D发送一条“在吗”的消息,这时主机A的IP地址是ipA,mac地址是macA,而主机D的IP地址是ipD,mac地址是macD这两个主机并不是直接相连的,而是通过B,C两个路由器节点进行转发,节点B的IP地址是ipB,mac地址是mac B,节点C的地址是ipC,mac地址是macC

这时A就会发送一条数据报,源IP是ipA,目的IP是ipD,但是由于要经过节点B,因此源mac是macA,目的mac是macB

到了B后,B会把这个数据报拆了,看看目的IP在哪,然后规划号路径,要途径C点,因此重新构造数据报,源IP是ipA,目的IP是ipD,源mac是macA,目的mac是macC

到了C后的数据报,源IP是ipA,目的IP是ipD,源mac是macA,目的Mac是macD

分包

由于以太网的数据大小是1500字节,因此需要分包进行传输,而保证分包是由IP协议决定的

具体数据传输过程

从浏览器中输入一个URL,到最终展示页面,具体有以下几个步骤

DNS域名解析

我们访问网址时一般使用域名访问而不是IP地址,例如http://baidu.com。因为IP地址记起来没有百度更直观,因此DNS功能就是把域名重新解析为IP地址

封装

浏览器根据用户的请求构造出HTTP的数据报,然后交给传输层,根据TCP协议进行三次握手,然后将数据报交给网络层,IP协议将其封装成IP数据报,然后发送给数据链路层,封装成数据帧,然后通过网卡发送出去数据

传输

从发送者到接受者之间有很多的交换机和路由器,当一个交换机拿到传输的数据后,会拆分,把数据交给数据链路层,然后再向上解析,根据之前讲的路由选择,路由器根据IP地址,在路由表中选择好新的mac地址,然后把数据进行封装,继续转发给下一个交换机

服务器解析

当数据到达接受方的数据链路层,会层层分用,一直到HTTP这一层,然后服务器根据请求计算出响应,再把响应重新封装成数据报,发送回发送者,这个过程和刚才的是类似的

客户端解析

最后,发送者收到服务器的响应的数据报,再次经过层层的分用,得到一系列数据,客户端会进行数据的解析,然后把结果渲染在浏览器上

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值