5.从物理层到MAC层
2024-09-06 18:42:41
第一层(物理层)
如何用两台电脑构成最小的局域网(LAN)?
网线的水晶头1、2和3、6脚分别起着收、发信号的作用,随意只要将水晶头做交叉线1-3、2-6交叉法,然后连接两台电脑。除了网线交叉,还要配置两台电脑的IP地址、子网掩码和默认网关。如可以是一个192.168.0.2/24和192.168.0.5/24。
有一个叫Hub,也就是集线器,它有多个口,可以连接多台电脑,它和交换机不同,没有大脑,完全在物理层工作,将收到的每一个字节发到其他端口上。
第二层(数据链路层)
使用Hub,因为它采取的是广播的模式。会有几个问题:
1.谁发的包?谁接收?
2.大家都在发包是否会混乱?有没有先后规则?
3.如果发送错误了,如何处理?
这便是第二层也即MAC层需要解决的问题。
对于第2个问题,比如有如下三种解决方式:
1.分多个车道,各走各的。即信道划分。
2.轮着来,即轮流协议。
3.先发送,要是很堵,再回去,错过高峰再出。即是随机接入协议。
解决第1个问题:
使用MAC地址
这是第二层网络包的格式
有了目标的MAC地址,数据包在链路上广播,MAC的网卡才鞥呢发现,是它的包,收取后,打开IP包,发现IP地址是自己的,再打开TCP包,发现端口是自己。
CRC是循环冗余检测
当不知道目标的MAC地址时怎么办呢?使用ARP协议
ARP协议发送的具体的报文就如下
此外本地机器也会进行ARP缓存,但机器不断上下线,IP也可能会变,所有ARP缓存的MAC地址过一段时间就会过期。
局域网
hub集线器广播的形式会造成大量的资源浪费,这就用到了交换机,交换机会根据MAC地址依据策略进行转发。交换机会将学习到的MAC和IP地址记下,也就是我们称之为转发表的。
最新文章
- sublime自动生成头部注释
- matlab建立双坐标
- HDU 1430 魔板(康托展开+BFS+预处理)
- ubuntu crontab 定时备份postgres数据库并上传ftp服务器
- 2-Medium下的MultipleCommandAssembly
- CodeForces 710B Optimal Point on a Line (数学,求中位数)
- javascript 文本框中,判断回车键触发事件 兼容IE&;FireFox
- Unity CommandInvokationFailure: Failed to re-package resources. 解决方案
- Go Language 开发环境搭建
- Python自动化--语言基础3--字典、函数、全局/局部变量
- Robomongo连接MongoDB 报 Authorization failed 解决办法
- PlaNet,使用图像输入来学习世界模型
- .do的消除
- UVA 129困难的串【DFS】
- linux中测试py脚本使用debug模式
- jquery初级接触-----链式操作
- 【原创】MySQL Can't create a new thread报错分析
- JAVA 是否会发生内存泄露(转)
- Android 源码阅读笔记
- 使用TreeDMS进行MySQL数据库的Web页面远程管理
热门文章
- 整合phoenix4.6.0-HBase-1.0到cdh5..4.7 编译phoenix4.6源码 RegionServer 宕机
- 【第十周读书笔记】读node入门,一本全面的node.js教程
- leetcode-159周赛-5230-缀点成线
- Dart编程循环
- DataWorks2.0的“业务流程”与1.0的“工作流”的对比
- 58 matlab 编程
- Java-Class-C:org.springframework.http.HttpHeaders
- 基于Netty的RPC架构学习笔记(九):自定义序列化协议
- jdk自带的数据库derby的基本使用以及注意事项(mac为例),附java demo
- LeetCode刷题笔记-回溯法-组合总和问题