MAC地址

在局域网中,硬件地址,又称为物理地址或MAC地址。

目前现在的局域网中实际上使用的都是6字节的MAC地址,所以每一个以太网设备都具有唯一的MAC地址。

MAC地址的格式

假设传输使用的是IP数据,V2的MAC帧较为简单,由五个字段组成,前面的两个字段分别为6字节的目的地址和源地址,第3个字段是类型,主要用来标识上一层用的是什么协议,第四个字段是数据字段,最后的一个字段是4字节的帧检验序列FCS,主要是检验整个MAC帧,但是不包括物理层插入的八字节的前同步码和帧开始符号。

从图上也能看到传输媒体时实际要比实际传送多8个字节,其中它也由两个字段构成,第一个字段时前7个字节的前同步码,作用是使接收端的适配器在接收MAC帧,实现位对齐,第二个字段是帧开始符号,即告诉适配器需要接收MAC信息帧了。

MAC只负责某一区间之间的通信传输,和IP不太一样,IP数据包是需要发送到最终目的地址,而MAC负责主机到源地址的上一级路由,以此不断在区间传输,然后最终可以送到最终目的地址。

IP协议

网络协议IP是TCP/IP体系中两个最主要的协议之一,也是互联网重要的标准协议之一

配套协议有:

  • 地址解析协议ARP

  • 网际控制报文协议ICMP

  • 网际组管理协议ICMP

IP协议与其配套协议的图如下,各层都有对应的一些协议

将网络连接起来需要一些中间设备,包括转发器、网桥、桥接器、交换机、路由器、网关。

IP地址

IP地址在整个互联网范围内是唯一的,可以记作:

IP 地址 ::= {<网络号>, <主机号>}

假设IP地址是32位,需要假设需要n位网络位,则剩余需要(32 - n)位。

IP地址可以分成五类地址:

  • A类地址

  • B类地址

  • C类地址

  • D类地址

  • E类地址

C类地址可以表示的主机数:

2

8

2

=

254

2^8 - 2 = 254

28−2=254

之所以减2的是因为主机号全为1代表该网络下的全部主机,全为0代表的是某个网络

地址解析协议ARP

ARP协议:已经知道IP地址,可以找出其对应的硬件地址MAC地址。

RARP协议:可以根据硬件地址的主机可以通过RARP协议找出其IP地址。

ARP原理:可以在主机ARP高速缓存中存放一个从IP地址到硬件地址的映射表(ARP高速缓存(ARP cache))

ARP主要是ARP请求和ARP响应:主机会通过广播发送ARP请求,同一个链路的设备收到ARP请求,会拆开ARP请求包的内容,如果ARP请求的目标IP地址和自己的IP地址一致,这个设备就可以将这个MAC地址塞入ARP响应包返回给主机。

RARP协议:这时候需要架设一台RARP服务器,将这个设备接入到网络

  • 比如一个设备想知道这个的IP地址,我的MAC地址是XXX,请告诉我,我的IP地址应该是什么?

  • RARP服务器接到这个消息后返回MAC地址为XXX的设备,IP地址为XXX给这个设备。

IP数据报的格式

IP数据报由首部和数据两部分组成,由首部的前一部分是固定长度,共20字节,是所有IP数据报必须具有的。

IPV4:

IPV6的报文格式


IPV4和IPV6格式对比:

优势:

  • 更大的地址空间

  • 扩展的地址层次结构

  • 灵活的首部格式

  • 改进的选项

  • 允许协议继续扩充

  • 支持资源的预分配

  • IPV6首部改成8字节对齐

改进:

  • 取消了首部检验和字段。这样可以加快路由器处理数据报的速度,在数据链路层和网络层都需要校验

  • 取消了标识、标志和片偏移字段,这些功能已经包含在分片扩展首部中

  • 取消选项字段,用扩展首部来选项功能

改进:

  • 取消了首部检验和字段。这样可以加快路由器处理数据报的速度,在数据链路层和网络层都需要校验

  • 取消了标识、标志和片偏移字段,这些功能已经包含在分片扩展首部中

  • 取消选项字段,用扩展首部来选项功能

计算机网络之MAC和IP地址的更多相关文章

  1. 重学计算机网络(二) - 曾记否,查IP地址

    先献上几个梗 1.1.1.1 不是测试用的,原来一直没分配,现在被用来做一个DNS了,宣传是比谷歌等公司的dns服务 更保护用户隐私. IP地址255.255.255.255,代表有限广播,它的目标是 ...

  2. 计算机网络-4-1-2-分类的IP地址

    有关IP最重要的文档就是互联网的正式标准RFC 791 IP地址及其表示方法 整个互联网就是一个单一,抽象的网络,IP地址就是给互联网上的每一台主机(或者路由器)的每一个接口分配一个在全世界范围内都是 ...

  3. 计算机网络【3】—— IP地址分类与子网划分

    一.IP地址分类

  4. mac下ip地址重定向

    在终端临时使用最高权限用vim编辑/etc下的hosts文件,若提示Password: 输入开机登录密码并回车: yanguobindeMacBook-Pro:~ yanguobin$ sudo vi ...

  5. linux 下查看硬件信息(mac,IP地址,硬盘型号,序列号等)

    一.查看网卡mac地址 #安装lshw [root@server ~]# yum install lshw #使用方法 [root@rsync-server ~]# lshw -c network * ...

  6. mac ping ip地址

    Mac下有个类似于Windows下CMD的模式叫做终端,但是这个模式和Windows下的CMD有着很大的差别. 工具/原料 Mac电脑一台 方法/步骤   首先通过菜单栏的搜索功能找到“终端”,也可以 ...

  7. 计算机网络之IP地址与MAC地址

    IP地址 IP地址(Internet Protocol Address): 缩写为IP Adress,是一种在Internet上的给主机统一编址的地址格式,也称为网络协议(IP协议)地址. 它为互联网 ...

  8. IP地址和硬件地址 ARP协议

    ip地址使用在网络层以上,是一个逻辑地址,物理地址是数据链路层和物理层使用的 在发送数据的时候,数据是从上层往下层发送的,通过tcp报文->ip数据报->mac数据帧 IP地址放在数据报的 ...

  9. IP 地址分类

    1.1 网络IP地址分类 网络通讯过程中数据封装与解封过程(网际互联通讯过程) TCP/IP模型 1)应用层 总结记录一些常见网络协议以及对应的端口号(FTP HTTP telnet) 2)主机到主机 ...

  10. 网络编程概述和IP地址的获取方法

    java网络通信概述 一.网络通信步骤: 主机1 主机2 QQ-------QQ FEIQ-----FEIQ 1.找到对方IP. 2.找到对方端口号.数据要发送到对方的应用程序上.为了标识这些应用程序 ...

随机推荐

  1. C++ || 用类 写交换函数 ||函数指针传递

    点击查看代码 #include <iostream> using namespace std; void swap(int* a,int* b) //函数参数为指针形式 { int p = ...

  2. K8S多节点部署

    一.k8s多节点部署(接上篇博客) 1.环境准备 服务器 ip 组件 k8s集群master01 192.168.142.3 kube-apiserver.kube-controller-manage ...

  3. Hash中的bucket什么意思?

    这个好理解.无序容器的内部是由一个个的bucket(桶)构成的,每个bucket里面由相同hash的元素构成. 因此无序容器的搜索是先根据hash值,定位到bucket,然后再在bucket里面搜索符 ...

  4. Go_day04

    Go基础语法 指针 指针式存储另一个变量内存地址的变量 &a 取出a的内存地址 *b 若指针b存放的式a的地址 那么 *b就直接指向a的内存 可以直接操作其中的值 指针的使用 func mai ...

  5. 老系统的奇葩问题-tomcat7启动失败

    好多年的tomcat7系统了  当时部署安装为了服务 直接启动 就这么简单 好多年没动过了 这次修改了些东西 需要重启 却报错了... 解决: 把服务删除  使用bat启动  成功. 原因:可能是多个 ...

  6. MySQL存储过程札记

    DELIMITER // CREATE PROCEDURE GetAllProducts() BEGIN SELECT * FROM products; END //DELIMITER ; 第一个命令 ...

  7. #HDU2255#奔小康赚大钱(KM模板题)

    Problem Description传说在遥远的地方有一个非常富裕的村落,有一天,村长决定进行制度改革:重新分配房子.这可是一件大事,关系到人民的住房问题啊.村里共有n间房间,刚好有n家老百姓,考虑 ...

  8. 声网自研传输层协议 AUT 的落地实践丨Dev for Dev 专栏

    本文为「Dev for Dev 专栏」系列内容,作者为声网大后端传输协议负责人 夏天. 针对实时互动应用对网络传输带来的新需求和新挑战,声网通过将实时互动中的应用层业务需求与传输策略的分层和解耦,于 ...

  9. vite项目生产环境去掉console信息【转载】

    环境变量引入 通常去掉console为生产环境,即需要引入环境变量.具体请看这篇文章: vite项目初始化之~环境变量 注意 与webpacak相比,vite已经将这个功能内置到了,所以我们只需要配置 ...

  10. consumer goods cloud 之后续慢慢看系列

    继之前的内容和帮助文档之外,整理一些其他有用的CG资源,有时间可以深入学习一下. 零售执行: https://rise.articulate.com/share/R9_PIF3mcNMuAi4iUtA ...