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. unity踩坑集锦

    1.AB包加载,如果项目没有这个tag,那么就匹配不上,和代码一样.2.unity打包安卓topbar想显示出来怎么做?:不渲染安全区域外  3. unity编辑器报错 : Expanding inv ...

  2. Unity UI布局与适配

    目录 Canvas(画布) Basic Layout(基础布局) 实例 1.画布(Canvas) 画布是所有UI元素的父物体,任何UI元素都存在于画布之上.画布上所有UI元素的绘制顺序是根据其在场景中 ...

  3. 2020.11.14 typeScript声明空间

    在ts中存在两种声明空间: 类型声明空间和变量声明空间. 类型声明空间: 1. class People {} 2. interface People {} 3. type People = {} 变 ...

  4. NX二次开发VS环境搭建

    1.安装VS2019(直接安装高版本:与NX匹配时向下兼容,不需要纠结) 2.安装习惯使用的NX(建议直接上NX1980,新版不管是功能还是界面都比低版好用得多.很多人说新版不好用,这只是个人习惯和接 ...

  5. python pandas dataframe excel xlwings docx 常用简单函数方法汇总

    # -*- coding: UTF-8 -*-import pandas as pdimport numpy as npimport datetimeimport osimport sysimport ...

  6. Boost.Asio C++ 网络编程

    在线电子书:https://mmoaay.gitbooks.io/boost-asio-cpp-network-programming-chinese/content/Chapter1.html

  7. spring boot 上传文件大小超出限制

    查看源码如下: org.springframework.boot.autoconfigure.web.servlet.MultipartAutoConfiguration 可以看见调用了Multipa ...

  8. 项目构建node-sass源码报错 SyntaxError:Unexpectedtoken"?"

    背景 vue2项目,之前一直构建正常.今天改了代码,构建时报错,报错原因显示编译node-sass源码时出错. 报错信息: Modulebuild failed:/node_modules/node- ...

  9. 第一章C语言概述

    1.1程序实例 //first.程序 #include <stdio.h> int main() { int num; num = 1; printf("I am a simpl ...

  10. FastCorrect:语音识别快速纠错模型丨RTC Dev Meetup

    前言 「语音处理」是实时互动领域中非常重要的一个场景,在声网发起的「RTC Dev Meetup丨语音处理在实时互动领域的技术实践和应用」活动中,来自百度.寰宇科技和依图的技术专家,围绕该话题进行了相 ...