基础知识
计算机网络的定义:
计算机网络就是现代计算机技术和通信技术相结合的产物。它是用通信线路和通信设备将分布在不同地点的具有独立功能的多个计算机系统互相连接起来,在功能完善的网络软件的支持下实现彼此之间的数据通信和资源共享的系统
计算机网络的发展阶段:
- 远程终端联机阶段----单向
- 计算机网络阶段------双向
- 计算机网络互联阶段---OSI参考模型
- 信息高速公路阶段
计算机网络的组成
从逻辑上:分为通信子网、资源子网
计算机网络的功能:
- 数据通信---用于实现计算机之间的数据传输,计算机网络的基本功能
- 资源共享
- 数据共享
- 软件共享
- 硬件共享
- 负荷均衡和分布处理
计算机网络的类型:
覆盖范围划分:
局域网(LAN)----短距离通信 资源共享
城域网(MAN)-----比局域网大的中型网络
广域网(WAN)-----常用租用电话线或专线
拓扑结构划分:
- 总线结构----所有连接全在一条线上
- 优点:信道利用率高,结构简单,便宜
- 缺点:同一时刻只能有两个网络节点相互通信,容纳节点有限
- 环型结构----点到点的环形结构,连成闭合的环
- 优点:最大传输延迟是固定的实时性强
- 缺点:可靠性差,一个节点故障,影响全网
- 星型结构----以一个节点为中心的处理系统
- 优点:结构简单,建网容易,控制相对简单
- 缺点:集中控制,主节点负载过重,可靠性低,通信线路利用率低
- 树型结构----星型结构的变形 分级连接
- 优点:与星型相比降低了成本
- 缺点:复杂性增加,任一节点故障,影响所在支路的网络
- 网状结构------全连接网状-------不完全连接网状
- 优点:节点间路径多,碰撞和阻塞大大减少,局部故障不会影响全网,可靠性高,网络扩充和主机入网比较灵活、简单
- 缺点:网络关系复杂,建网不易,网络控制机制复杂
计算机网络的特点:
- 数据通信
- 自治性
- 建网周期短
- 成本低
- 对技术要求不高
通信方式:
- 单工----发送设备和接收设备之间只有一个传输通道,单向,方向不能变,计算机和输出设备间大多采用。
- 半双工---两个设备间有两个传输通道,可以轮流双方向传输,但不能同时进行
- 全双工---两个设备间有两个传输通道,可以同时双向传送数据,相当于两个相反方向的单工组合
IP地址的结构
包括 网络号 和 主机号 32位
私有地址
A类:10.0.0.0
B 类:172.16.0.0~172.31.0.0
C类:192.168.0.0~192.168.255.0
子网划分
subnet mask (子网掩码):255.255.252.0 或者这种形式 /22
OSI参考模型 / TCP/IP参考模型
数据传输过程:
在传送数据时,先将数据传送道自己的应用层,再加上该层的控制信息,每向下一层,皆是如此,这个过程为封装。封装好后,通过连接的物理通道进行传输到目标,每向上一层,除去该层的控制信息,这个过程为解封。
如图:
物理层接口特性:
- 机械特性---规定物理连接时对插头和插座的几何尺寸等
- 电气特性---规定在物理连接上导线的电气连接及有关的电路的特性,一般包括:接收器和发送器电路特性的说明等
- 功能特性---规定接口信号的来源、作用及其他信号间的关系
- 规程特性---规定使用交换电路进行数据交换的控制步骤,这些步骤的应用使得比特流传输得以完成
数据链路层的功能
- 帧同步
- 差错控制
- 流量控制
- 链路管理
对应的设备及数据单位
集线器(Hub)是一种多端口转发器。不分割冲突域
物理上的星型结构,但在传输比特的过程中,符合逻辑上的总线结构(遵循CSMA/CD)。
连接在同一个总线上的网段称为一个冲突域
一个冲突域的典型特征就是同一时刻只允许一台主机发送数据,否则冲突就会产生。
网桥是对数据帧进行操作,因此是第二层设备。实际上,它们根据数据帧的目的MAC地址转发和过滤数据帧。
集线器是在物理层上互联网络,将多个冲突域互联在一起,形成更大的冲突域。
网桥在数据链路层连接网络,同时为每个网络保留独立的冲突域。
网桥可以互联不同的LAN技术。
当网桥用于互联LAN时,对LAN的大小没有限制。理论上,使用网桥建立一个扩展到全球的LAN都是有可能的。
广播域是指局域网中所有设备的集合,这些设备收听该网络中所有的广播。
路由器可以分割广播域,二层交换机、网桥、集线器不行
综合布线系统的组成
完整的综合布线系统一般应由工作区子系统、水平干线子系统、管理间子系统、垂直干线子系统、建筑群子系统和设备间子系统等六个部分组成
TCP
TCP(传输控制协议)是TCP/IP体系中面向连接的传输层协议,它提供全双工的服务。
在传输层上通常使用的方法是为那些能够监听连接请求的进程定义TSAP;在Internet中,这些访问点就被称为端口。同样,在网络层上的访问点被称为NSAP。
TCP建立连接的方法
TCP协议中使用三次握手方法建立连接。
TCP释放连接的种类
非对称释放和对称释放
端口
端口定义:从某种意义上,端口是用来标志应用层的进程
端口分类:
(1)熟知端口,其数值为0~1023。这一类端口由ICANN负责分配给一些常用的应用层程序固定使用。
(2)登记端口,其数值为1024~49151。这类端口是ICANN控制的,使用这个范围的端口必须在ICANN登记,以防止重复。
(3)动态端口,其数值为49152~65535。这类端口是留给客户进程选择作为临时端口。
端口号 | 协议 | 用途 |
21 | FTP | 文件传输 |
23 | Telnet | 远程登录 |
53 | DNS | 域名系统 |
80 | HTTP | WWW |
域名
顶级域名 | 域名类型 |
Com | 商业组织 |
Edu | 教育机构 |
Gov | 政府部门 |
Org | 各种非营利性组织 |
一个域名下可以有多个主机名,域名下还可以有子域名
路由相关
存储转发式分组交换
一个主机发送到最近的路由器,无论是在自己的 LAN 上,还是通过点对点链路连接到运营商。数据包将存储在那里,直到它完全到达,以便可以验证校验和。然后,它沿路径转发到下一个路由器,直到到达目标主机,并在其中传送。此机制是存储转发数据包交换。
路由表的组成
路由表由源网络号,目的网络号,以及通信时所要经过哪一个路由器的路由器名称(下一跳)
路由算法的特征:
正确性、健壮性、稳定性、公平性、最优性、简单性
汇集树(sink tree)
从所有源到给定目标的一组最佳路由形成一个根植于目标的树
数据报子网(datagram subnet)--提供网络层无连接服务
- 每一个包包含完整的源和目的地址
- 每一个包被独立路由
- 不需要先建立线路
- 路由器不需要拥有 连接的状态信息
虚电路子网(virtual-circuit subnet)--提供网络层面向对象连接服务
- 需要先建立线路
- 每一个包包含一个短的虚电路号
- 每一个虚电路每一次连接需要一个路由表空间
- 当虚电路建设时路由选择,所有包跟着它
最短路径路由算法(the shortest route algorithm)
每一个节点有一个标签,用来表示从源到目的所能知道的最短路径,最初,所有的标签都为暂时节点,标签的值都为无穷大。当发现从源到该节点距离最短时,则将该节点变为永久节点。
在最初时,从源节点附近的节点进行探测,如果发现从源节点到该节点的距离比之前短,则把邻近的节点标签改为从源节点到该节点的距离,并在所有临时节点中选择标签距离最小的,转变为永久节点,并再次以该节点作为探测的起点,探测该节点的临近节点,
重复上述步骤
链路状态路由(link state route)OSPF-----动态路由
步骤:
1.发现其邻居并了解其网络地址。 发送特别的HELLO包
2.衡量每个邻居的延迟或成本。 发送特别的ECHO包
3.构建一个数据包,告诉它刚刚学到的一切。
4.将此数据包发送到所有其他路由器。 使用到了flooding,用序列号标识,方便检测,防止重复。并序列号后加上age,每跳一次递减一,到零时,抛弃。
5.计算到其他路由器的最短路径。 Dijkstra's algorithm
(b)为分组包的内容
洪泛路由
每一个来的包被发送到除了到达的那一条之外的线路
产生大量的重复数据包
选择性洪泛
一些算法
信道的最大数据速率
奈奎斯特公式:
理想低通信道的最高码元传输速率=2WBaud
W:理想低通信道的带宽,单位赫兹(Hz),Baud是波特,1波特为每秒传送1码元
理想带通信道的最高码元传输速率=WBaud
香农公式:
C=Wlog2(1+S/N) bit/s
W:信道的带宽(Hz),S:信道内所传信号的平均功率,N:信道内部的高斯噪声功率
信噪比S/N,常用分贝(dB)表示
(dB)=10lg(S/N) (dB)
例:S/N=10时,信噪比为10dB
电平级数对波特和比特率关系的影响
1Baud=log2M (bit/s) M是信号的编码级数
例题:要在带宽为4KHz的信道上用4秒发送20Kb的数据块,按照香农公式,信道的信噪比最小应为多少分贝?
C=20Kb/4s W=4KHz
带入香农公式:S/N=2.828-1
带入分贝公式:(dB)=10lg(1.828)(dB)
循环冗余校验码
发送方和接收方依据一事先约定的r次生成多项式G(x)(最高项xr和最低项的系数为1),用G(x)去除xrK(x)得到的余式就是R(x),即得冗余位。
- 设信息位为1010001,即K(x)=x6+x4+1,
取G(x)=x4+x2+x+1(对应的代码为10111),
则x4 K(x)=x10+x8+x4(对应的代码为10100010000),则 - 所以冗余位为1101,
R(x)=x3+x2+1
T(X)=x4K(x)+R(x)=
x10+x8+x4+x3+x2+1
对应的发送代码为:10100011101
例题:已知CRC的生成多项式G(X)=X5+X4+X+1,若接收方收到的码字为1010110001101,问传输中是否有差错?
G(X)=X5+X4+X+1=110011 ----由此可知r=5
收到的码字 / G(X) ------除的过程异或运算,余式为0,则无误
海明码
纠正一位差错
当信息位为k位,增加r个冗余位,构成n=k+r位码字。若希望用r个监督关系式产生的r个校正因子来区分无错和在码字中n个不同的位置的一位错,则要求:
2r≥k+r+1。
二进制指数退避算法
算法思想:当一个站点经历重复碰撞时,它应退避一个更长的时间以补偿网络的额外负载。
算法过程:
在一次冲突发生后,时间被分割成离散的时槽。
时槽长度= 2τ
对于10M以太网,时槽的长度被设置为512位时间,即为51.2μs。
第一次冲突产生后,每个站点随机等待0或1个时槽后重新发送。若有多个站点在冲突后又选择了同一个等待时槽数,则它们将再次冲突。在第二次冲突后,它们会从0、1、2、3中随机挑选一个数作为等待的时槽数。若又产生第三次冲突(发生的概率为0.25),则它们将从0~7(23-1)中随机挑选一个等待的时槽数。
一般而言,n次冲突后,等待的时槽数从0~2n-1中随机选出。但在达到10次冲突后,等待的最大时槽数固定为1023,以后不再增加了。在16次冲突后,站点放弃传输,并报告一个错误。
这种退避算法带来一个不良后果:没有遇到过或遇到冲突次数少的站点比等待时间更长的站点更有机会得到媒体的访问权。
滑动窗口的基本概念:
滑动窗口协议属于异步双工传输模式。基本思路:
发送的信息帧都有一个序号(0~2n -1),一般用n个二进制位存储;发送端始终保持一个已发送但尚未确认的帧的序号表,称为发送窗口。发送窗口的上界表示要发送的下一个帧的序号,下界表示未得到确认的帧的最小编号。发送窗口大小=上界-下界,大小可变。
发送端每发送一个帧,序号取上界值,上界加1;每接收到一个正确响应帧,下界加1。
接收端有一个接收窗口,大小固定,但不一定与发送窗口相同。接收窗口容纳允许接收的信息帧,落在窗口外的帧均被丢弃。
接收窗口的上界表示允许接收的序号最大的帧,下界表示希望接收的序号最小的帧。序号等于下界的帧被正确接收,并产生一个响应帧,上界、下界都加1。
协议 | 发送窗口 | 接收窗口 |
停等协议 | 1 | 1 |
回退n协议 | >1 | 1 |
选择重传协议 | >1 | >1 |
一些协议
IEEE802标准:
- IEEE802.3,定义了CSMA/CD总线介质访问控制子层和物理层规范,4种不同介质的10Mbps的以太网规范:
10Base-5(粗同轴电缆)、10Base-2(细同轴电缆)
表示工作在10 Mbps,BASE 代表采用基带信号2表示每个网段最长为185米
10Base-F(多模光纤)、10Base-T(无屏蔽双绞线UTP)
- IEEE802.4,定义了令牌总线介质访问控制子层与物理层规范
- IEEE802.5,定义了令牌环介质访问控制子层与物理层规范
- IEEE802.6,定义了城域网介质访问控制子层与物理层规范
- IEEE802.11,定义了无线局域网介质访问控制子层和物理层规范
- IEEE802.11a,工作在5GHz频段,传输速率为54Mbps
- IEEE802.11b,工作在2.4GHz频段,传输速率为11Mbps
- IEEE802.11g,工作在2.4GHz频段,传输速率为54Mbps
ALOHA
ALOHA协议相当简单,只要一个站点想要传输信息帧,它就把信息帧传输出去。然后它听一段时间,如果在一段特定的时间内收到了确认,它就认为数据传输成功;否则,传输站点等待一段随机的时间后重发信息帧。由于两个站点等待的时间是随机的,所以它们再次冲突的可能性较小。若又发生了第二次冲突,站点还是采用相同的规则重传信息。如果在发生了好几次重传后仍得不到确认,就只好放弃此次信息的传输。(想发就发)
CSMA/CD
以太网采用的媒体访问控制协议是载波侦听多路访问/冲突检测(CSMA/CD)
“载波侦听”的含义是指在使用传输介质发送信息之前,先要侦听(检测)介质上有无信号传送,即侦听传输介质是否空闲。
“多路访问”的含义是指多个有独立标识符的结点共享一条传输介质。
CSMA方法又称为“先听后说”方法(LBT,Listen Before Talk)。
1. 非坚持CSMA----空闲发,忙就随机等
1) 若媒体空闲就传输;否则,转到第2)步。
2) 若媒体忙,等待一段随机的重传延迟时间,重复第1)步。
优点:减少冲突发生的可能性。
缺点:媒体利用率低。
2. 1坚持CSMA----空闲发,忙就监听,直到发现空闲,立即传输,冲突就随机等
1) 若媒体空闲就传输;否则,转到第2)步。
2) 若媒体忙则继续监听,直到检测到信道空闲,然后立即传输。
3) 如果有冲突,则等待一段随机的时间后重复第1)步。
优点:媒体利用率提高
缺点:冲突增加
3. P坚持CSMA----相当于1坚持的改版
1) 若媒体空闲,以概率P传输,以概率(1-P)延迟一时间单位。
2) 若媒体忙,继续监听直到信道空闲,并重复第1)步。
3) 若传输延迟了一个时间单位,则重复第1)步。
优点:是非坚持和1坚持算法的折中
缺点:传输性能基于P的取值。P太小,让试图传输的站点等待时间太长; P太大,冲突的可能性增大
CSMA/CD又被称为边说边听(LWT)
传输时间是指一个数据帧从一个站点开始发送,到该数据帧发送完毕所需的时间;当然,它也表示一个接收站点开始接收数据帧,到该数据帧接收完毕所需的时间。
传输时间(s)= 数据帧长度(bit)/ 数据传输速率(bps)
传播时间是指从一个站点开始发送数据到另一个站点开始接收数据所需要的时间,也即载波信号从一端传播到另一端所需的时间,称为信号传播时间。
信号传播时间(μs)= 两站点间的距离(m)/ 信号传播速度(一般为200m/μs)
在CSMA/CD协议中,欲传输的站点监听媒体并遵循以下规则:
1) 若媒体空闲就传输;否则,转到第2)步。
2) 若媒体忙则继续监听,直到检测到信道空闲,然后立即传输。
3) 如果在传输的过程中监听到冲突,它就发送一个短小的人为干扰信号,这个信号使得冲突的时间足够长,让其他的结点都能发现。
4)所有结点收到干扰信号后,都停止传输,并等待一个随机产生的时间间隙后重发(重复第1)步)。
CSMA/CA的工作原理
欲发送数据帧的源站点首先监听信道,当确定信道空闲时,源站点在等待DIFS时间之后,信道仍然空闲则发送一帧。发送结束后,源站点等待接收ACK确认帧。
目的站点在收到正确的数据帧,间隔SIFS时间之后,向源站点发送ACK帧。若源站点在规定的时间内没有收到ACK帧(由重传计时器控制这段时间),就必须重传此帧,直到收到正确ACK帧为止,或者经过若干次的重传失败后放弃发送。
欲发送数据帧的其它站点若检测到信道由忙状态变为空闲时,则它不仅要等待一个DIFS的时间,还必须执行退避算法,以进一步减少冲突的几率。
802.11也是使用二进制退避算法,但它与以太网中的退避算法稍有不同。即第i次退避就在22+i个时隙中随机地选择一个等待时隙数。例如第1次退避是在0~7中随机地选择一个等待时隙数。
以太网中的退避算法是在冲突发生之后才引起执行,而CSMA/CA中的退避算法是在信道从忙状态转变为空闲时,各站点就要执行退避算法。
CSMA/CA的两种载波侦听
物理侦听机制和以太网中的CSMA/CD的侦听机制完全相同,即站点在帧传送之前要侦听信道,如果信道忙则推迟帧传送,直到信道空闲为止。
虚拟侦听机制是一种与无线信道状态无关的侦听机制。它要求每个站点都维护一个变量NAV(Network Allocation Vector,其值是一个时间长度),在一个站点的NAV指定的时间段内,该站点会认为信道忙。
一个站点设定它的NAV的方法是:每个站点在发送数据帧之前,都会通过发送控制帧来宣布自己将占用信道的时间;其它站点会根据这个时间来设置自己的NAV,从而做出谦让。
设定NAV是一种积极的避免冲突的做法。“虚拟帧听”是表示其它站点并没有监听信道,而是由于它收到了源站点的“占用信道时间”的通知才不发送数据。这种效果好像是其它站点都监听了信道。