趣谈网络协议【4】—— 从物理层到MAC层
--- --- 课程笔记:《趣谈网络协议》 刘超
第一层(物理层)
Hub (集线器)通过网线可以将多台计算机连接起来。它只是一个转接口,完全在物理层工作。会将自己收到的每一个字节,都复制到其他端口上去。
第二层(数据链路层)
MAC的全称是Medium Access Control,即媒体访问控制
。
多台机器通信引出的三个问题:
1. 大家都在发,会不会产生混乱?有没有谁先发、谁后发的规则
即多路访问问题,有下面的三种方式:
1. 信道划分: 分多个通道,各走各的
2. 轮流协议
3. 随机接入协议
: 以太网选择的方式
2. 这个包是发给谁的?谁应该接收?
MAC层的网络包格式中,有原MAC地址和目的MAC地址。具体的数据包格式:
目标机通过判断数据包的目的MAC与自身MAC是否一致(再依次判断IP层ip,TCP层端口号等),即可判断该数据包是否是发送到本机的。
3. 如果判断数据传输过程中是否出错?
在MAC头,最后有4位是CRC,即循环冗余检测。通过 XOR 异或的算法,来计算整个包是否在发送的过程中出现了错误。
引申问题: 如何通过目标IP获取目标MAC地址
ARP协议:通过已知 IP 地址,求 MAC 地址的协议
具体的报文:
使用hub组件局域网的问题:
Hub 是广播的,不管某个接口是否需要,所有的 Bit 都会被发送出去,然后让主机来判断是不是需要。
解决:
交换机 (二层设备): 有 MAC 地址学习能力,在广播过程中将MAC地址和对应网口记录在转发表中,之后就不需要广播,可以直接转发了 。
总有一股莫名其妙的执拗劲儿......