计算机网络学习随笔记(MAC头与IP头)

MAC头与IP头的细节

MAC与IP头的细节

在MAC头里面,首先存放的是目标MAC地址,然后是源MAC地址,然后还有一个协议类型,是用来说明里面是IP协议的。

IP头里面的版本号,目前主流的还是IPv4,首部长度默认为20字节,最大为60字节。

TOS包括共8位,包括3 bit的优先权字段(取值可以从000-111所有值),4 bit的TOS子字段(最小时延、最大吞吐量、最高可靠性和最小费用)和1 bit未用位但必须置0。

总长度标识IP头部加上上层数据的数据包大小,IP包总长度最大为65535个字节。

标识用来实现IP分片的重组,标识分片属于哪个进程,不同进程通过不同ID区分。标志用来确认是否还有IP分片或是否能执行分片。

片偏移用于标识IP分片的位置,实现IP分片的重组。

TTL标识IP数据包还能生存多久,根据操作系统不同,TTL默认值不同,每经过一个三层设备如路由器的处理,则TTL减去1,当TTL=0时,则此数据包被丢弃。

8位协议号标识IP协议上层应用。当上层协议为ICMP时,协议号为1,TCP协议号为6,UDP的协议号为17。

首部校验用于检验IP数据包是否完整或被修改,若校验失败则丢弃数据包。

网关往往是一个路由器,是一个三层转发的设备(就是把 MAC 头和 IP 头都取下来,然后根据里面的内容,看看接下来把包往哪里转发的设备)一个路由器往往有很多个网口,如果是一个服务器做这个事情,则会有多个网卡,其中一个网卡与源IP网段相同。

很多情况下,人们把网关就叫作路由器。其实不完全准确,而另一种比喻更加恰当:路由器是一台设备,它有五个网口或者网卡,相当于有五只手,分别连着五个局域网。每只手的 IP 地址都和局域网的 IP地址相同的网段,每只手都是它握住的那个局域网的网关。任何一个想发往其他局域网的包,都会到达其中一只手,被拿进来,拿下 MAC 头和 IP 头,看看,根据自己的路由算法,选择另一只手,加上 IP 头和 MAC 头,然后扔出去。

静态路由:

其实就是在路由器上,配置一条一条规则。这些规则包括:想访问 BBS 站(它肯定有个网段),从 2 号口出去,下一跳是 IP2,想访问教学视频站(它也有个自己的网段),从 3 号口出去,下一跳是 IP3,然后保存在路由器里。每当要选择从哪只手抛出去的时候,就一条一条的匹配规则,找到符合的规则,就按规则中设置的那样,从某个口抛出去,找下一跳 IPX。

IP头与MAC头中有那些是变化的、那些是不变的。

MAC 地址是一个局域网内才有效的地址。因而,MAC 地址只要过网关,就必定会改变,因为已经换了局域网。两者主要的区别在于 IP 地址是否改变。不改变 IP 地址的网关,我们称为转发网关;改变 IP 地址的网关,我们称为NAT 网关。

下面分两个类型描述

类型一:

欧洲10游

因为服务器A与服务器B不是一个网段的所以要先发送给网关。发送给192.168.1.101 的数据包内容如下:

  • 源 MAC:服务器 A 的 MAC

  • 目标 MAC:192.168.1.1 这个网口的 MAC

  • 源 IP:192.168.1.101

  • 目标 IP:192.168.4.101

包到达 192.168.1.1 这个网口,发现 MAC 一致,将包收进来,要从 192.168.56.1 这个口出去,发送给 192.168.56.2的数据包内容如下:

  • 源 MAC:192.168.56.1 的 MAC 地址

  • 目标 MAC:192.168.56.2 的 MAC 地址

  • 源 IP:192.168.1.101

  • 目标 IP:192.168.4.101

包到达 192.168.56.2 这个网口,发现 MAC 一致,将包收进来,要从 192.168.4.1 这个口出去,没有下一跳 了。发送给192.168.4.101的数据包内容如下:

  • 源 MAC:192.168.4.1 的 MAC 地址

  • 目标 MAC:192.168.4.101 的 MAC 地址

  • 源 IP:192.168.1.101

  • 目标 IP:192.168.4.101

通过这个过程可以看出,每到一个新的局域网,MAC 都是要变的,但是 IP 地址都不变。在 IP 头里面, 不会保存任何网关的 IP 地址。所谓的下一跳是,某个 IP 要将这个 IP 地址转换为 MAC 放入 MAC 头。

类型二:

玄奘西游

第一个问题是,局域网之间没有商量过,各定各的网段,因而 IP 段冲突了。最左面的地址是 192.168.1.101,最右面的地址也是 192.168.1.101,如果单从 IP 地址上看,简直是自己访问 自己,其实是 192.168.1.101 要访问192.168.1.101。既然局域网之间没有商量过,你们各管各的,那到国际上,也即中间的局域网里面,就需要使用另外的地址。就像出国,不能用咱们自己的身份证,而要改用护照一样。

首先,目标服务器 B 在国际上要有一个国际的身份,我们给它一个 192.168.56.2。在网关 B 上,我们记 下来,国际身份 192.168.56.2 对应国内身份 192.168.1.101。凡是要访问 192.168.56.2,都转成192.168.1.101。

于是,源服务器 A 要访问目标服务器 B,要指定的目标地址为 192.168.56.2。这是它的国际身份。服务 器 A 想,192.168.56.2

和我不是一个网段的,因而需要发给网关。发送的数据包内容如下:

  • 源 MAC:服务器 A 的 MAC

  • 目标 MAC:192.168.1.1 这个网口的 MAC

  • 源 IP:192.168.1.101

  • 目标 IP:192.168.56.2

包到达 192.168.1.1 这个网口,发现 MAC 一致,将包收进来,要从 192.168.56.1 这个口出去,发送给192.168.56.2。

当网络包发送到中间的局域网的时候,服务器 A 也需要有个国际身份,因而在国际上,源 IP 地址也不能用 192.168.1.101,需要

改成 192.168.56.1。发送的数据包内容如下:

  • 源 MAC:192.168.56.1 的 MAC 地址

  • 目标 MAC:192.168.56.2 的 MAC 地址

  • 源 IP:192.168.56.1

  • 目标 IP:192.168.56.2

包到达 192.168.56.2 这个网口,发现 MAC 一致,将包收进来,要从 192.168.1.1 这个口出去,发送给192.168.1.101。发送的数据包内容如下:

  • 源 MAC:192.168.1.1 的 MAC 地址

  • 目标 MAC:192.168.1.101 的 MAC 地址

  • 源 IP:192.168.56.1

  • 目标 IP:192.168.1.101

包到达服务器 B,MAC 地址匹配,将包收进来。从服务器 B 接收的包可以看出,源 IP 为服务器 A 的国际身份,因而发送返回包的时候,也发给这个国际身份,由路由器 A 做 NAT,转换为国内身份。从这个过程可以看出,IP 地址也会变。这个过程用英文说就是Network Address Translation,简称NAT

其实这第二种方式我们经常见,现在大家每家都有家用路由器,家里的网段都是 192.168.1.x,所以你肯定访问不了你邻居家的这个私网的 IP 地址的。所以,当我们家里的包发出去的时候,都被家用路由器NAT 成为了运营商的地址了。


 

 

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值