计算机网络系列五篇文章传送门
物理层
在物理层,比特位
是基本单位。讨论物理层,更多的是讨论硬件设备,因此在讨论物理层的时候,更多的关注机械特性、电气特性、功能特性以及过程特性。
物理层的作用
连接不同的设
备,比如中国主干ISP与美国ISP连接需要通过海底电缆,路由器到本地计算机之间通过网线进行连接。(双绞线、同轴电缆、光纤、红外线和激光等)传输比特流
,比特流是如0101的高低电频,或者是数字信号。高电频表示1,低电频表示0。对于高低电频的变化就可以形成比特流。
信道
信道
指的是往一个方向传送信息的媒体。通常把信道与电路进行比较,信道强调往一个方向,而电路并不会强调,因此一个通信电路往往包含一个发送信道和一个接收信道。 接收和发送指的是信息传送的两个方向。一条通信电路不仅发送信息,还要接收信息,如果引起冲突怎么办?根据信道的不同,通信电路可以分为:
单工通信信道
,只能往一个方向进行通信,并没有反方向反馈的信道,比如有线电视、收音机等半双工通信信道
,双方都可以发送和接收信息,但是不同同时的发送,也不能同时接收。一方发送另一方只能接收。这种信道比较落后全双工通信信道
,全双工是对半双工进行了改进,双方都可以同时的发送和接收信息。网线、网络等传输介质。
分用-复用技术
如果两台计算机进行通信的话,在他们之间有一条通信电路,电路里可能有发送信道和接收信道。
如果有很多的计算机,它们之间都需要连接。这时就会有很多接收信道和发送信道,并且大多数时候它们之间不是活跃的状态,而是关机的状态。这样就会导致信道的利用率不高,因此有了分用-复用技术来提升信道利用率。
多个计算机连接复用器,另一侧多个计算机连接分用器,通过分用器和复用器共享一条发送信道和接收信道。 如果计算机对信道使用率较低的话,可以大大提升它的使用效率,如果很多计算机都需要使用信道,也可能会造成信道拥塞。分用-复用应用到的技术,它们都应用在物理层里,主要原理有四点:
- 频分复用
- 时分复用
- 波分复用
- 码分复用
数据链路层
数据链路层解决的问题
数据链路层主要解决的三个问题:封装成帧
、透明传输
和差错监测
。
封装成帧
“帧“
是数据链路层数据的基本单位,数据链路层接收到数据后会在这段数据的前后添加特定标记形成数据帧,接收端根据前后特定的标记来识别数据帧。封装成帧的过程
封装成帧的过程
:在网络层会把一些IP数据报传输给数据链路层,数据链路层在接收到数据之后把它看作是数据帧的数据,接着在数据的前后添加标记,标识数据帧的头部和尾部。(从帧首部到帧尾部就是数据帧的长度)帧首部和帧尾部都是特定的控制字符,实际也是一些特定的比特流。 帧首部SOH:00000001,帧尾部EOT:00000100,对于数据帧在物理层的表现形式为001…0101的比特流。
透明传输
“透明”在计算机领域是非常重要的一个术语。比如平时设计API时如果设计的足够良好的话,底层的API操作对于API的调用方是透明的;比如对于数据链路层来说,物理层所做的工作是透明的,物理层只需要提供一些API给数据链路层使用。 “一种实际存在的事物却又看起来不存在一样”
Q:当IP数据报中也正好有SOH或EOT怎么办? **
A:加ESC(实际也是一些特定的比特流)
Q:但是当IP数据报中也正好有ESC怎么办?
A:再加ESC(相当于转义字符)
差错监测
物理层只管传输比特流,无法控制判断是否出错。 如果物理层在传输比特流的时候受到干扰,如宇宙射线,闪电等。物理层无法察觉比特流的错误。因此数据链路层拥有差错检测的功能,它可以判断比特流是否有出错。 差错监测主要两种方式:奇偶校验码
和循环冗余校验码CRC
两种方式。详情戳这里
最大传输单元MTU
数据链路层的数据帧不是无限大的(因此MTU描述的就是最大可传输的数据帧),数据帧过大或者过小都会影响传输的效率(常用的以太网的MTU一般为1500字节)。
总时延 = 发送时延 + 传播时延 + 排队时延 + 处理时延
如果数据帧过大,总时延就会增大,这样就导致发送端和接收端处理信息的时间过长;如果过小的话也不行,假设每次发1个字节,那么1500个字节就需要发送1500次,虽然每个数据发送的总时延减少了,但是重复1500次,这个也会影响通信的效率,所以数据帧过大或过小都会影响数据传输效率。
路径MTU:
路径MTU由链路中MTU的最小值决定。 如图中的路径MTU为1492。
以太网协议
以太网协议解决了什么问题?
- 是一种使用广泛的
局域网技术
- 是一种应用于
数据链路层的协议
- 使用以太网协议完成
相邻设备
的数据帧传输
**Q:以太网协议具体是什么? ***
A:通俗来说就是封装了一种特定格式的数据,用来传输。
以太网数据格式: 主要由五个部分组成:
目的地址、源地址:
前边两个部分就是前边提到的MAC地址,下边的6,表示占用6个字节(48位)类型:
类型表明的是帧数据是哪个协议的数据,如果是网络层的数据的话,类型就是0800;如果帧数据是ARP协议的请求或应答数据,它的类型就是0806;如果是RARP的协议数据,那类型就是8035帧数据:
就是具体发的数据CRC:
这个是前边介绍到的循环冗余校验码。
目的地址和源地址是怎么通过6个字节来表示的呢?这就有了一个重要的概念——MAC地址
。
MAC地址
对于MAC地址:
- 是物理地址(硬件地址)
- 每一个设备都拥有唯一的MAC地址
- MAC地址是48位,16进制,如:30-B4-9E-85-CA-ED(每个数字4个比特位,4 * 12=48)
如果电脑A向电脑C发送数据,是怎么从A到达C的?
- A通过网卡发出数据帧
- 数据帧到达路由器,路由器取出前六字节,即目的地址
- 路由器匹配MAC地址表,找到对应的网络接口
- 路由器向该网络接口发送数据帧
MAC地址表又是什么?
MAC地址表是一个映射,会把MAC地址具体的映射到硬件接口。当A要给C发送消息的时候,在路由器E中有一个MAC地址表,表中记录了每一个MAC地址映射到了哪一个接口。
Q:如果跨设备传输怎么办?
A:网络层解决,下一章论述