OSI参考模型
- 7层
- 应用层:能够产生网络流量能够和用户交互的应用程序
- 表示层:加密 压缩 开发人员
- 会话层:服务和客户端建立的会话 查木马 netstat -nb
- 传输层:可靠传输建立会话,不可靠传输,流量控制
- 网络层:IP地址编址,选择最佳路径
- 数据链路层:输入如何封装,添加物理层地址,MAC
- 物理层:电压,接口标准
物理层基本概念
- 物理层解决如何在连接各种计算机的传输媒体上传输数据比特流,而不是指具体的传输媒体
- 物理层的主要任务描述为:确定与传输媒体的接口的一些特性,即:
- 机械特性:例接口形状,大小,引线数目
- 电气特性:例规定电压范围(-5V到+5V)
- 功能特性:例规定-5V表示0,+5V表示1
- 过程特性:也称规程特性,规定建立连接时各个相关部件的工作步骤
基带信号和带通信号
- 基带信号(即基本频带信号)–来自信源的信号。像计算机输出的代表各种文字或图像文件的数据信号都属于基带信号。基带信号就是发出的直接表达了要传输的信息的信号,比如我们说话的声波就是基带信号
- 带通信号–把基带信号经过载波调制后,把信号的频率范围移到较高的频段以便在信道中传输(即仅在一段频率范围内能够通过信道)。
- 因此在传输距离较近时,计算机网络都采用基带传输方式,由于在近距离范围内基带信号的衰减不大,从而信号内容不会发生变化。因此在传输距离较近时,计算机网络都采用基带传输方式,比如从计算机到监视器、打印机等外设的信号就是基带传输的
- 几种最基本的调制方法:
- 调幅(AM):载波的振幅随基带数字信号而变化。
- 调频(FM):载波的频率随基带数字信号而变化。
- 调相(PM):载波的初始相位随基带数字信号而变化。
信道复用技术
-
复用(multiplexing)是通信技术中的基本概念。
-
频分复用 FDM(Frequency Division Multiplexing)
用户在分配到一定的频带后,在通信过程中自始自终都占用这个频带。
频分复用的所有用户在同样的时间占用不同的带宽资源(请注意,这里的"带宽"是频率带宽而不是数据的发送速率)。
- 时分复用TDM(Time Division Multiplexing)
时分复用则是将时间划分为一段段等长的时分复用帧(TDM帧)。
每一个时分复用的用户在每一个TDM帧中占用固定序号的时隙
每一个用户所占用的时隙是周期性的出现(其周期就是TDM帧的长度对应的时间)。
TDM信号也称为等时(isochronous)信号。
时分复用的所有用户是在不同的时间占用同样的频带宽度。
- 波分复用WDM(Wavelength Division Multiplexing)
波分复用就是光的频分复用。
- 码分复用CDM(Code Division Multiplexing)
常用的名词是码分多址 CDMA(Code Division Multiplexing Access)。
各用户使用经过特殊挑选的不同码型,因此彼此不会造成干扰。
这种系统发送的信号有很强的抗干扰能力,其频谱类似于白噪声,不易被敌人发现。
每一个比特时间划分为m个短的间隔,称为码片(chip)
链路与数据链路
数据链路层的信道类型
- 数据链路层使用的信道主要有以下两种类型:
- 点对点信道。这种信道使用一对一的点对点通信方式。
- 广播信道。这种信道使用一对多的广播通信方式,因此过程比较复杂。广播信道上连接的主机很多,因此必须使用专用的共享信道协议来协调这些主机的数据发送。
- 链路(link)是一条无源的点到点的物理线路段,中间没有任何其他的交换。
- 一条链路只是一条通路的一个组成部分。
- 数据链路(data link)除了物理线路外,还必须有通信协议来控制这些数据的传输。若把实现这些协议的硬件和软件加到链路上,就构成了数据链路。
- 现最常用的方法是使用适配器(即网卡)来实现这些协议的硬件和软件。
- 一般的适配器都包括了数据链路层和物理层这两层的功能。
- 数据链路层像个数字管道
- 常常在两个对等的数据链路层之间画出一个数字管道,而在这条数字管道上传输的数据单位是帧
数据链路层的三个基本问题
- 封装成帧
- 封装成帧(framing)就是在一段数据的前后分别添加首部和尾部,然后就构成了一个帧。确定帧的界限。
- 首部和尾部的一个重要作用就是进行帧定界
用控制字符进行帧定界的方法举例
当数据是由可打印的ASCII码组成的文本文件时,帧定界可以使用特殊的帧定界符。
控制字符SOH(Start Of Header)放在一帧的最前面,表示帧的首部开始。另一个控制字符EOT(End Of Transmission)表示帧的结束。 - 透明传输
- 如果数据中的某个字节的二进制代码恰好和SOH或EOT一样,数据链路层就会错误地"找到帧的边界"。
解决透明传输问题
解决方法:字节填充(byte stuffing)或字符填充(character stuffing)。
发送端的数据链路层在数据中出现控制字符"SOH"或"EOT"的前面插入一个转义字符"ESC"(其十六进制编码是1B)。
接收端的数据链路层在将数据送往网络层之前删除插入的转义字符。
如果转义字符也出现在数据当中,那么应在转义字符前面插入一个转义字符ESC。当接收端收到连续两个转义字符时,就删除其中前面的一个 - 差错控制
- 传输过程中可能会产生比特差错:1可能会变成0,而0也可能变成1.
- 在一段时间内,传输错误的比特占所传输比特总数的比率称为误码率BER(Bit Error Rate)。
- 误码率与信噪比有很大的关系。
- 为了保证数据传输的可靠性,在计算机网络传输数据时,必须采用各种差错检测措施。
循环冗余检验 CRC
在数据链路层传送的帧中,广泛使用了循环冗余检验CRC的检错技术。
在发送端,先把数据划分为组。假定每组k个比特。
假设待传送的一组数据M=101001(现在k=6)。我们在M的后面再添加供差错检测用的n位冗余码一起发送。- 冗余码的计算
用二进制的模2运算进行2^n * M的运算,这相当于在M后面添加n个0.
得到的(k + n)位的数除以事先选定好的长度为(n + 1)位的除数P,得出商是Q而余数是R,余数R比P少一位,即R是n位。
PPP协议应满足的需求
- 简单—这是首要的要求
- 封装成帧—必须规定特殊的字符作为帧定界符。
- 透明性—必须保证数据传输的透明性。
- 多种网络层协议—能够在同一条物理链路上同时支持多种网络层协议。
- 多种类型链路—能够在多种类型的链路上运行。
- 差错检测—能够对接收端收到的帧进行检测,并立即丢弃有差错的帧。
- 检测连接状态—能够及时自动检测出链路是否处于正常工作状态。
- 最大传送单元—必须对每一种类型的点对点链路设置最大传送单元MTU的默认值,促进各种实现之间的互操作性。
- 网络层地址协商—必须提供一种机制使通信的两个网络层实体能够通过协商知道或能够配置彼此的网络层地址。
- 数据压缩协商—必须提供一种方法来协商使用数据压缩算法。
PPP协议有三个组成部分
- 一个将IP数据报封装到串行链路的方法。
- 链路控制协议LCP(Link Control Protcol)。
- 网络控制协议NCP(Network Control Protocol)。
PPP协议的工作状态
- 当用户拨号接入ISP时,路由器的调制解调器对拨号做出确认,并建立一条物理连接。
- PC机向路由器发送一系列的LCP分组(封装成多个PPP帧)。
- 这些分组及其响应选择一些PPP参数,并进行网络层配置,NCP给新接入的PC机分配一个临时的IP 地址,使PC机成为因特网上的一个主机。
- 通信完毕时,NCP释放网络层连接,收回原来分配出去的IP地址。接着,LCP释放数据链路层连接。最后释放的是物理层的连接。
- 可见,PPP协议已不是纯粹的数据链路层的协议,它还包含了物理层和网络层的内容。
局域网的数据链路层
- 局域网最主要的特点是:
- 网络为一个单位所拥有。
- 地理范围和站点数目均有限。
- 局域网具有如下主要优点:
- 具有广播功能,从一个站点可以很方便地访问全网。局域网上的主机可共享连接在局域网上的各种硬件和软件资源。
- 便于系统的扩展和逐渐的演变,各设备的位置可灵活调整和改变。
- 提高了系统的可靠性、可用性和生存性。
关注我的公众号 Java小小日记,有更多干货