MAC帧
2016-05-13 16:00
169 查看
点对点信道的数据链路层的协议数据单元——帧。
数据链路层把网络层交下来的数据构成帧发送到链路上,以及把接收到的帧中的数据取出并上交给网络层。
点对点信道的数据链路层在进行通信时的主要步骤:假设结点A要向结点B发送数据
结点A的数据链路层把网络层交下来的IP数据报添加首部和尾部封装成帧。
结点A把封装好的帧发送给结点B的数据链路层。
若结点B的数据链路层收到的帧无差错,则从收到的帧中提取出IP数据报上交给上面的网络层,否则丢弃这个帧。
三个基本问题:
1.封装成帧:帧长等于数据部分的长度加上帧首部和尾部的长度,而首部和尾部的一个重要作用是进行帧定界(确定帧的界限),此外,首部和尾部还包括许多必要控制信息。
2.透明传输:由于帧的开始和结束的标记是使用专门指明的控制字符。不管从键盘上传输什么字符都可以放在这样的帧中传输过去。如果所传字符为ASCII,就是不透明传输,须加转义字符ESC(1B),
用字节填充法解决透明传输的问题。
3.差错检测:为了进行差错而添加的冗余码称为帧检测序列FCS.
在局域网中,硬件地址又称为物理地址或MAC地址。
主机发送一个ARP请求获得目的主机的硬件地址
ARP报文:
硬件类型1表示以太网,除此之外还有令牌环网
协议类型:要转换的地址类型,为0x0800为IP地址,硬件类型长度6个字节,用一个字节描述。
协议地址长度4个字节:IPv4:4个字节;
IPv6:16个字节。
op:1表示请求,2表示应答。
注:Linux下MAC得知是虚拟的。
eg:
使用如下脚本语言获取局域网MAC地址与IP地址映射关系
数据链路层把网络层交下来的数据构成帧发送到链路上,以及把接收到的帧中的数据取出并上交给网络层。
点对点信道的数据链路层在进行通信时的主要步骤:假设结点A要向结点B发送数据
结点A的数据链路层把网络层交下来的IP数据报添加首部和尾部封装成帧。
结点A把封装好的帧发送给结点B的数据链路层。
若结点B的数据链路层收到的帧无差错,则从收到的帧中提取出IP数据报上交给上面的网络层,否则丢弃这个帧。
三个基本问题:
1.封装成帧:帧长等于数据部分的长度加上帧首部和尾部的长度,而首部和尾部的一个重要作用是进行帧定界(确定帧的界限),此外,首部和尾部还包括许多必要控制信息。
2.透明传输:由于帧的开始和结束的标记是使用专门指明的控制字符。不管从键盘上传输什么字符都可以放在这样的帧中传输过去。如果所传字符为ASCII,就是不透明传输,须加转义字符ESC(1B),
用字节填充法解决透明传输的问题。
3.差错检测:为了进行差错而添加的冗余码称为帧检测序列FCS.
在局域网中,硬件地址又称为物理地址或MAC地址。
主机发送一个ARP请求获得目的主机的硬件地址
ARP报文:
硬件类型1表示以太网,除此之外还有令牌环网
协议类型:要转换的地址类型,为0x0800为IP地址,硬件类型长度6个字节,用一个字节描述。
协议地址长度4个字节:IPv4:4个字节;
IPv6:16个字节。
op:1表示请求,2表示应答。
注:Linux下MAC得知是虚拟的。
eg:
使用如下脚本语言获取局域网MAC地址与IP地址映射关系
#!/bin/bash i=1 while [ $i -lt 255 ] do ping -c 1 192.168.136.$i let i++ done
相关文章推荐
- 检查数据链是否存在的办法
- 使用数据链时报错ORA-12545/TNS-12545的重现和解决
- 数据链路层的协议分析
- 关于数据传输协议
- 计算机网络基础(四)——数据链路层和网络层协议及设备
- 【网络原理】第四章 数据链路层(二)
- 【网络原理】第四章 数据链路层(一)
- Web UI组件化最佳实践的思考
- iOS 中 使用 sqlite3 创建数据库
- 深入JVM虚拟机(一) 初识JVM
- php json_decode() 如果想要强制生成PHP关联数组,json_decode()需要加一个参数true
- 关于Java的Properties类
- JavaScript原生对象常用方法总结(推荐)
- php实现在线通讯录功能(附源码)
- MySQL_Windows下搭建MySQL Master Slave
- Shader实例:边缘发光和描边
- 第7周 C语言程序设计(新2版) 练习1-23 删除C语言程序中所有的注释语句(代码有问题?)
- OAuth 安全指南
- Spring、Spring MVC、Struts2
- [置顶] 记住一个公式就能成为“标题党”?(怎么做吸引人的标题)