TCP/IP体系结构
服务员:上菜了
客户:这菜好像不新鲜,怎么回事
服务员:稍等,我去叫我经理来
分层是一种常见的现象,在上述的例子中,一家餐厅的经营由上到下大致会有老板、经理和服务员这几类人,并且由前者管理后者。当然经理也会对厨师、清洁人员等职位进行管理,只是为了方便阐述忽略了。服务员负责将菜从厨房递到餐桌上,而经理负责命令服务员干活,以及在服务员遇到棘手的情况时前来解决问题;老板则会负责观察经理的工作以及分析他们的反馈,并对整家餐厅的经营情况进行管理。
在分层结构中,上层对下层进行命令,或者说是下层为上层提供服务。上层会命令下层去完成任务,但是不需要知道他们会以什么样的方式去完成,正如大部分经理都不需要知道服务员送餐时是笑着的还是一脸幽怨的。
在餐厅的例子中,是因为每个角色都是一个人,能够处理事务的能力有限,所以需要分层;在接下来提到的礼物哦分层结构中则是因为每一层都涉及了很多方面的考量,只有从每一层的角度去观看该层中的任务,或者从全面但不详细的角度去看待所有分层才不会令我们对网络体系感到杂乱无章。
TCP/IP体系结构是著名的网络体系结构之一,其中的网络由上到下被分为了四层:应用层、传输层、网络层、网络接口层。而在课本中为了方便教学,网络接口层又被分为了物理层和数据链路层。接下来,将会以层作为章节内容进行复习。
物理层
物理层是网络的最底层,也就是两台电脑之间互连缘分的起点和根本,是谁把他们连在了一起呢?~~是爱~~可能是网线,也有可能是WiFi,而这就是物理层的内容。
在物理层中,需要关注的东西围绕传输展开:传输媒介、编码方式、调制方式等。因为物理层不是复习的重点,所以接下来会一笔带过。
传输媒介,是通信双方连接的物理通路,可能是有线的或是无线的,可能是电缆或是光纤。编码方式描述了如何在传输媒介中表示0和1,调制方式描述了数字信号转换为模拟信号的方式。
传输媒介能被分为三类:单工、全双工、半双工。单工表示信息只能单向传递;全双工表示信息能够同时双向传递;半双工表示信息虽然能够双向传递,但是不能够同时双向传递
数据链路层
接下来就是数据链路层了。计算机网络中的每一层都有许许多多的协议,这些协议可能是
PPP协议
CSMA/CD协议
参考资料:
散落的笔记》
TCP/IP体系结构
每个层次通过以下方式提供它的服务
- 在这层中执行某些动作
- 使用直接下层的服务
- 各层的所有协议被称为协议栈protocol stack
五层协议栈
- 应用层:应用与应用之间
- 运输层:端与端之间?什么是端
- 网络层:主机与主机之间
- 链路层:节点与节点之间
- 物理层:网线相关
物理层
- 提供传输数据比特流的服务
- 涉及了离散信号到连续信号的转换,也包括了传输媒介,传输方式和编码调制等。物理层向上屏蔽了传输媒体和通信手段的差异
数据链路层
帧:数据链路层的协议数据单元PDU
三个基本问题
封装成帧
- 在一段数据的前后添加首部和尾部,构成了一个帧
- 帧长 = 帧的数据部分+帧首部尾部
帧首部尾部的作用:帧定界,确定帧的界限,帮助确认是否发送了完整的帧
- 使用首部开始字符SOH和传输结束符EOT
- MTU最大传送单元:每一种链路层协议都规定了能传送的帧的数据部分长度上限
透明传输
- 透明:像玻璃一样透明,但是是存在的
- 透明传输:无论什么数据都能够通过比特组合的数据都能够通过数据链路层,数据链路层就像玻璃一样透明
- 对于文本文件(ASCII码的文本文件),不管什么键盘可输入的字符都可以放在帧中传输(在帧的数据部分中不应该出现”SOH”和”EOT”)
- 对于非ASCII码的文本文件,如图像,可能会恰好出现与”SOH”或”EOT”的二进制相等的数据,被数据链路层误以为是帧定界
- 解决方法:在出现控制字符前面加入转义字符“ESC”;在将数据返回给网络层时再把转义字符删除
差错检测
比特差错
- 误码率BER(Bit Error Rate):误码率为x时,每传输x个比特就会出现一个比特的差错
- 使用循环冗余检验CRC进行检测,有差错就丢弃帧
- 可以认为数据链路层接受的帧均无差错
[ ] 了解CRC
- 传输差错:帧丢失、帧重复、帧失序 - 在有线传输链路中,数据链路层无法处理这些差错,不提供可靠传输服务。因为有线传输通信质量良好,将差错由上层处理能够提高效率 - 在无线传输链路中,数据链路层使用确认和重传机制,提供可靠传输服务
点对点协议PPP
组成
- 一个将IP数据报封装到串行链路的方法
- 一个用来建立、配置、测试数据链路连接的LCP?(链路控制协议)
- 一套NCP?(网络控制协议),其中的每一个协议支持不同的网络层协议
工作过程
- 当用户拨号接入ISP后,建立了一条从用户PC到ISP的物理连接。这时,用户向ISP发送了一系列的LCP分组以便建立LCP连接。这些分组及其响应选择了将要使用的一些PPP参数。接着,还要进行网络层的配置,NCP给新接入的用户PC分配一个临时的IP地址。这样,用户就成为因特网上的一个有IP地址的主机了
- 当用户通信完毕后,NCP释放网络层连接,收回原来分配出去的IP地址。接着,LCP释放数据链路层连接,最后释放的是物理层连接
工作状态:相对PC和ISP的路由器之间
- (Link Dead)链路静止:不存在物理层的连接
- (Link Establish)链路建立:存在物理连接
- 链路建立后,LCP开始协商一些配置选项,即发送LCP的配置请求帧。协商结束后,进入鉴别状态
- (Authenticate)鉴别:建立了LCP链路
- 鉴别状态下,使用PAP或CHAP进行鉴别,若鉴别失败,进入链路终止状态;否则进入网络层协议状态
- (Network-Layer Protocol)网络层协议:PPP链路两端的NCP根据网络层的不同协议互相交换网络层特定的网络控制分组(网络层即使不同,也能够使用PPP协议进行通信)
- (Link Open)链路打开:链路的两个PPP端电可以彼此向双方发送分组,还可以检查链路状态
- (Link Terminate)链路终止
- 当调制解调器的载波停止后,最终回到链路静止状态
帧格式
- 首部的第一个字段和尾部的最后一个字段都是标志字段F,规定为0x7E,表示一个帧的开始或结束(与SOH或EOT不同)
- 首部第二个字段:A,规定为0xFF;第三个字段C,规定为0x03;这两个字段无意义
- 首部第四个字段:协议字段,占据两个字节
- 尾部第一个字段:FCS帧检验序列,2个字节
- 字节填充:防止0x7E出现在信息字段中
- 零比特填充:发现5个连续的1时,立即填入1个0。接收后将这个0删除
适配器
- 计算机与外界局域网连接通过通信适配器完成,俗称网卡
- 适配器包含了物理层和数据链路层的功能,且不需要依赖计算机的CPU
- 计算机的硬件地址在适配器的ROM中
功能:数据串行参数和并行传输的转换
- 适配器和局域网之间通过串行传输方式进行
- 适配器和计算机之间的通信是通过主板上的I/O总线以并行传输的方式进行
- 适配器中有对数据进行缓存的存储芯片
以太网的MAC层
- 6字节的MAC地址:在生产适配器时,MAC地址就被固化在适配器的ROM中
以太网MAC帧
- 首部字段1:目的地址,6个字节
- 首部字段2:源地址,6个字节
- 首部字段3:类型,标志上一层使用的协议,2个字节
- 首部可选字段1(当上层协议为IP协议时):总长度,表示MAC帧数据字段的长度
- 尾部字段1:FCS,4个字节
MAC帧传递给物理层时,需要在首部添加8个字节用于让适配器时钟与比特流达成同步
- 首部字段1:前同步码,由1和0交替,7个字节
- 首部字段2:帧开始定界符,1个字节
特点
- 因为以太网采用曼切斯特编码,所以不需要指定什么时候结束
- MAC帧需要大于64字节,因此数据字段需要不小于46字节
- 去除填充字段需要交由上层处理
局域网
特点
- 广播信道
- 网络为一个单位所拥有
- 具有广播功能,从一个站点可以很方便地控制全网。局域网上的主机可共享连接在局域网上的各种硬件和软件资源
- 工作层次跨越了数据链路层和物理层
- 以太网几乎成为了局域网的同义词
站:局域网上的计算机称为站点、站等
局域网中的一对一通信
- 在发送数据帧时,在首部写入接收站的地址
- 仅当遇到符合要求的数据帧,适配器才接收这个数据帧,否则丢弃
符合要求的数据帧
- 单帧:帧的MAC地址与本站的MAC地址相同
- 广播:帧的MAC地址全为1
- 多播
总线
- 将所有的计算机都连接都一根总线上
- 总线上只要有一台计算机在发送数据,总线的传输资源就被占用。在同一时间只能运行一台计算机发送数据
以太网通信
- 采用无连接的工作方式:不必先建立连接就可以直接发送数据
- 采用随机接入的方式:使用CSMA/CD来避免冲突
- 采用曼切斯特编码:便于获取同步信号
CSMA/CD(载波监听多点接入/碰撞检测)协议
三大特点
- 多点接入:说明这是总线型网络
- 载波监听:发送前用电子技术检测总线上有没有其他计算机也在发送(检测信道)
- 碰撞检测:边发送边监听
工作过程
- 获取数据后加上以太网的首部和尾部,组成以太网帧,放入适配器的缓存中。在发送之前,先检测信道
- 若检测到信道忙,则一直等待直到信道空闲。信道由忙转空闲后,再等待96比特时间,若此时间内一直空闲,等待后发送帧
- 网卡边发送边监听,若未检测到碰撞,继续发送下一帧
- 一旦发送过程中检测到了碰撞,适配器要立刻停止发送并发送干扰信号。执行退避算法,等待一段时间后再重新发送
- 若重传达到16次且仍不成功,则向上报错
- 以太网每开始发送一帧,都需要把帧保留直到发送完成
一个站不可能同时进行发送和接收,只能进行半双工通信
采用退避算法减小争用期过后再次发生冲突的概率
- 碰撞窗口(争用期):将总线上单程端到端的传播时延记为τ,因此将端到端的往返时间2τ称为碰撞窗口
- 随机取一个数作为争用期的倍数,等待后进行重传。随机数选取范围与重传次数有关
- 当重传次数达16次仍不能成功时,丢弃该帧并向高层报告
帧太短
- 有可能出现因为帧太短,发送完毕后才检测到发生了碰撞,但已经没有办法中止帧的发送了
- 规定:最短帧长64字节。如果要发送的数据太少,则必须加入填充字节
- 因此,长度小于64字节的帧都是由于冲突而异常中止的无效帧
强化碰撞
- 一旦发现发生了碰撞后,除了立即停止发送数据外,还要再继续发送人为干扰信号以便让所有用户都知道已经发生了碰撞
使用集线器扩展以太网
集线器特点
- 工作在物理层,使用电子器件来模拟实际电缆线的工作。因此使用集线器的以太网逻辑仍是一个总线网,同样使用CSMA/CD协议
- 每个接口仅简简单单转发比特,不进行碰撞检测。虽然扩大了以太网覆盖的地理范围,但也使得碰撞域扩大了
- 要求连接方需要使用相同的以太网技术,比如说相同数据率
使用网桥扩展以太网
网桥特点
- 工作在数据链路层,内部使用转发表来记录不同MAC地址应该去往哪一个接口
- 具有转发和过滤功能,使各网段成为隔离开的碰撞域
- 可互连不同物理层、不同MAC层和不同速率
- 交换机是一种多接口的网桥
转发表
- 可以手动配置,也可以通过自学习算法自动处理
自学习算法
- 从某一接口收到帧后,将发送源记录表示该接口可以抵达发送源地址
- 收到帧后,若转发表存在目的地址,则将帧转发至该接口,否则转发到所有除了收到帧的接口
- 转发表中的信息在一定时间后就会删除(如:几分钟),以应对随时发生变化的以太网拓扑
虚拟局域网VLAN
- 利用交换机实现。虚拟局域网与实际的局域网无关
支持VLAN的MAC帧
- 在首部字段2和字段3之间插入了VLAN标记,4个字节