0. 概况
OSI 七层模型
- 路由器不涉及运输层。
- 采用分组交换,放弃电路交换。
- 套接字用(IP地址:端口号)表示。
五层协议:
其中表示层和会话层用途如下:
-
表示层 :数据压缩、加密以及数据描述,这使得应用程序不必关心在各台主机中数据内部格式不同的问题。
-
会话层 :建立及管理会话。
1. 物理层
根据信息在传输线上的传送方向,分为以下三种通信方式:
- 单工通信:单向传输
- 半双工通信:双向交替传输
- 全双工通信:双向同时传输
2. 数据链路层
- 所谓链路就是从一个结点到相邻结点的一段物理线路,而中间没有任何其他的交换结点。
- 把网络层交下来的IP数据报封装成帧 (添加目的MAC地址、源MAC地址、首部和尾部,标记帧的开始和结束),通过MAC地址传送,
- 数据链路层不提供可靠的传输服务。(OSI要求数据链路层提供可靠传输,现在通信质量比较好,可靠传输效率低)
- 数据链路层的帧长度不能超过最大长度(MTU值),一般1500字节。
- 透明传输 (转义字符)
- 差错检测 (CRC),循环冗余检验(CRC)实际上是按位异或运算,当进行CRC检验时,发送方与接收方需要事先约定一个除数,用数据去除以这个除数,即得到冗余码,放在末尾。
- 广播信道 (CSMA/CD,载波监听多点接入/碰撞检测,多在局域网中应用), 点对点信道 (PPP,用户到ISP之间)
- 分为:单播帧(一对一),广播帧(一对全体)(即目的MAC地址全是1),多播帧(一对多)。
- 帧开始有7个字节的前同步码和1个字节的帧开始定界符。因为1或0都会有电压变化,则没有电压变化时就是帧结束,往前推最后4个字节就是帧检验序列(FCS, 用于CRC检验)。
- MAC地址(硬件地址/适配器地址)是链路层地址,长度为 6 字节(48 位),用于唯一标识网络适配器(网卡),路由器的接口也有IP,有MAC地址。
- 工作在混杂模式的适配器能接收到所有的帧,而正常工作的适配器只保留和自己MAC地址匹配的帧和广播帧。
- 集线器(物理层,转发比特),以太网交换机(数据链路层,对帧进行转发和过滤,内部有MAC地址与接口对应的交换表(自学习得来))。
3. 网络层
- 网络层不提供可靠的传输服务。
- 使用 IP 协议,可以把异构的物理网络连接起来,使得在网络层看起来好像是一个统一的网络。
- IP 数据报只检验首部不检查数据部分。
- 地址解析协议 ARP,ARP 实现由 IP 地址得到 MAC 地址。
- 网际控制报文协议 ICMP。
- 网际组管理协议 IGMP。
- 内部网关协议 RIP,OSPF(洪泛法),外部网关协议 BGP。(路由表中的路由如何得出)
- 反向地址解析协议(不常用) RARP 发出要反向解析的物理地址并希望返回其对应的IP地址,应答包括由能够提供所需信息的RARP服务器发出的IP地址。
每个主机都有一个 ARP 高速缓存,里面有本局域网上的各主机和路由器的 IP 地址到 MAC 地址的映射表(动态更新)。如果主机 A 知道主机 B 的 IP 地址,但是 ARP 高速缓存中没有该 IP 地址到 MAC 地址的映射,此时主机 A 通过广播(MAC地址全1)的方式发送 ARP 请求分组,主机 B 收到该请求后会发送 ARP 响应分组给主机 A (单播)告知其 MAC 地址,随后主机 A 向其高速缓存中写入主机 B 的 IP 地址到 MAC 地址的映射。
<