计算机网络体系结构
计算机网络概述
计算机网络的概念
计算机网络是一个分散的、具有独立功能的计算机系统,通过通信设备与线路连接起来,必要功能完善的软件实现资源共享和信息传递的系统。简而言之,计算机网络就是一些互联的、自治的计算机系统的集合。
自治:无主从关系,不能彼此控制对方。
计算机网络的组成
计算机网络系统的基本组成是通信子网和资源子网。
资源子网主要有计算机系统、终端、物联网设备组、各种软件资源和信息资源组成。资源子网负责全网的数据处理业务负责向网络用户体重各种网络资源与网络服务。
通信子网由通信控制处理机、通信线路和其他通信设备组成,其任务是完成网络数据传输、转发等。
资源子网包含计算机软件、计算机硬件、数据等。
通信子网包含网桥、交换机、路由器等。
边缘部分:用户直接使用
核心部分:为边缘用户提供服务
计算机网络的功能
数据通信、资源共享、分布式处理、提高可靠性、负载均衡
计算机网络的分类
按分布范围分类
广域网、城域网、局域网、个人局域网
局域网和广域网的差异不见在于它们所覆盖的范围不同,还主要在于它们所使用的结构不同
按传输技术分类
广播式网络、点对点网络
两个的重要区别是是否采用分组存储转发与路由选择机制。
按拓扑结构分类
星型网络、总线型网络、环形网络、网状型网络
现在的互联网就是用的网状型网络。
按使用者分类
公用网(例如中国电信提供的网络)、专用网(铁路、电力、军队)
按交换技术分类
电路交换网络、报文交换网络、分组交换网络
按传输介质分类
略
性能指标
速率相关
速率:实际可以传输的速率
带宽:理想条件下可以达到的最高发送速率
吞吐量:所有信道加在一起每秒可以接收的比特数
以上三个速率单位都是b/s、kb/s
时间相关
时延(传输时延、传播时延、处理时延、排队时延)
传输时延:在主机内部,主机上的数据放到信道上的过程。
传播时延:信号以电磁波位载体在信道上传输的过程。
处理时间
排队时间
时延带宽积:传播时延*带宽,以比特为单位的链路长度
往返时间RTT
利用率
利用率与时延正相关。
并不需要背,主要靠理解
计算机网络标准化及相关组织
国际标准化组织(ISO,International Organization for Standardization)
国际电信联盟(ITU)
国际电气电子工程师协会(IEEE)
分层
分层概述
分层的基本原则:
- 每层都实现一种相对独立的功能,降低大系统的复杂度。
- 各层之间界面自然清晰,易于理解,互相交流尽可能少。
- 各层功能的精准定义独立于具体的实现方法,可以采用最合适的技术来实现。
- 保持下层对上层的独立性,上层单向使用 下层提供的服务。
- 整个分层结构应能促进标准化工作。
在面向连接的服务中,通信双方必须先建立连接,分配相应的资源(如缓冲区),以保证通信能正常进行,传输结束后释放连接和所占用的资源。因此这种服务可以分为建立连接、数据传输和数据释放三个阶段。例如TCP就是一种面向连接服务的协议。
在无连接服务中,通信双方不需要建立连接,需要发送数据时可以直接发送,把每个带有目的地址的包(报文分组)传送到线路上,由系统选定路线进行传输。这是一种不可靠的服务。例如IP、UDP就是无链接服务的协议。
协议是控制不同系统中两个对等实体进行通信的规则的集合。
IP协议是因特网中的核心协议,是无连接不可靠的。
TCP是传输控制协议,是有连接可靠的,传送单位是报文段。
UDP是用户数据报协议,是无连接不可靠的,传送单位是用户数据报。
ISO/OSI参考模型(七层)
OSI模型由国际标准化组织(ISO)提出,称为开放式互联互通参考模型。
OSI的理论是成功的,但在市场上是失败的,目前广泛使用的是TCP/IP协议。
OSI模型从下到上分为物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。(物链网输会示用,用示会输网链物)
上面四层是端到端通信,下面四层是点到点通信。
端到端:进程之间的通信
点到点:主机到主机之间的通信。
层次 | 简述 | 功能 | 传送单位 | 协议 |
---|---|---|---|---|
物理层 | 在物理上实现比特流的透明传输 | 1. 定义接口特征 2. 定义传输模式 3. 定义传输速率 4. 比特同步 5. 比特编码 |
比特 | Rj45 802.3 |
数据链路层 | 将网络层传来的分组封装成帧 增加了控制信息和原物理地址、目的物理地址 这一层会加上头部和尾部 |
1. 物理寻址 2. 成帧(定义帧的开始和结束) 3. 差错控制 4. 流量控制 5. 访问(接入)控制 |
帧 | SDLC HDLC PPP STP |
网络层 | 把网络层的协议数据单元(分组)从源端传送到目的端 | 1. 路由选择 2. 流量控制 3. 差错控制 4. 拥塞控制 5. 异构网络互联 |
数据报 | IP IPX ICMP IGMP ARP BARP OSPF |
传输层 | 为端到端提供可靠的传输服务,传送单位是报文段或者用户数据报 | 1. 可靠传输(和不可靠传输?) 2. 差错控制 3. 流量控制 4. 复用技术 |
报文段 | TCP UDP |
会话层 | 为表示层实体或用户进程建立连接并在连接上有序地传输数据 | 1. 管理会话 2. 恢复通信 |
ADSP ASP | |
表示层 | 处理两个通信系统中交换信息的表示方式 | 1. 翻译 2. 数据压缩 3. 加密解密 |
JEPG | |
应用层 | 为特定类型的网络应用提供访问OSI环境的手段,使用户与网络的界面 | 报文? | FTP SMTP HTTP |
流量控制是限制发送端的发送速率,拥塞控制是针对真题的速度限制
TCP/IP模型(四层)
TCP/IP模型由ARPA提出,从下到上分为网络接口层、网际层、传输层、应用层。
网络接口层对应OSI模型的物理层和数据链路层。
网际层对应OSI模型的网络层。
应用层对应OSI模型的会话层、展示层、应用层。
TCP/IP模型与OSI模型的区别:
OSI模型 | TCP/IP模型 | |
---|---|---|
网络层(网际层) | 面向连接+无连接 | 无连接 |
传输层 | 面向连接 | 面向连接+无连接 |
TCP/IP协议栈:
五层模型
五层协议综合了OSI和TCP/IP的优点,便于学习。
从下到上分为:物理层、数据链路层、网络层、传输层、应用层。
传送单位分别为:比特、帧、数据报、报文段、报文。
物理层
通信基础
基本概念
码元:一个固定市场的信号波形(数字脉冲),一个2进制码元对应1个比特,4进制码元对应2个比特,8进制码元对应3个比特…
码元传输速率:单位是Baud,也就是 码元/s
信息传输速率:单位是 b/s
调制解调器:猫,将从网卡发出的数字信号转化为模拟信号,在电话线上传输。
带宽:计算机网络中单位为b/s,通信中的信道带宽是信道能通过的最高频率与最低频率之差,单位为Hz。在奈氏准则和香农公式中,单位是Hz。
通信方式:
- 单工方式:只有一个方向的通信额没有反方向的交互,仅需要一条信道。
- 半双工方式:双方都可以发送或接收信息,但任何一方都不能同时发送和接受信息,需要两条信道(对讲机)。
- 全双工方式:通信双方可以同时发送和接收信息,需要两条信道。
数据传输方式:
- 串行传输:速度慢,费用低,适合远距离。
- 并行传输:速度快,费用高,适合近距离。
信道上传送的信号:
- 基带信号:传送计算机网络中的数字信号,适用于近距离。
- 宽带信号:将基带信号调制后形成频分复用模拟信号,再传送到模拟信道上去传输,适用于远距离。(调制到频率较高的频段,远距离传输效果较好)
奈氏定理与香农定理
信号失真
导致信号失真的因素:
- 码元传输速率(太快导致界限不清楚)
- 信号传输距离
- 噪声干扰
- 传输媒体质量
奈氏定理
奈奎斯特(Nyquist)定理又称奈氏准则,它指出在理想低通(没有噪声、带宽有限)的信道中,极限码元传输率为2W波特,其中W是理想低通信道的带宽,单位为\text{Hz}
若用V表示每个码元离散电平的数量(几种码元),则极限速率为:
理想低通信道下极限数据传输率=2W\log_2V\ {\text{(b/s)}}
由于码元传输速率受到奈氏准则的制约,所以要提高数据的传输速率,就必须设法使每个码元携带更多的比特信息量。
香农定理
香农(Shannon)定理给出了带宽首先且有高斯白噪声干扰的信道的极限数据传输率,当用此速率进行传输时,可以做到不产生误差。
信道的极限传输率=W\log_2(1+S/N)\ {\text{(b/s)}}
S/N是信噪比,S/N可以没有单位,也可以用\text{dB}作为单位,两者之间的换算为:
S/N=10\log_{10}(S/N)\ {\text{(dB)}}
香农公式中要求S/N是没有单位的。
题目中给出的信噪比通常用dB作为单位的,因为这样可以多算一步,出题老头坏得很。
比较
奈氏准则是“内忧”,香农定理是“外患”,两者同时限制信道的极限传输速率。
如果有噪声,题目给出了信噪比,就用香农公式;
如果无噪声,题目给出了V(码元种数),就用奈氏准则;
如果同时给出了信噪比和V,就要都求出来,取较小的值。
只有在奈氏准则和香农公式中,带宽的单位是Hz,其他地方的带宽单位都是b/s
编码与调制
把数据变换为模拟信号的称为调制;
把数据变换成数字信号的过程称为编码。
信号的转换分为以下四种情况。
数字数据编码为数字信号
- 归零编码(NRZ):高1低0
- 非归零编码(RZ):1的后半段归0
- 反向不归零编码(NRZI):0的左边跳变
- 曼彻斯特编码:中间跳变,左高右低是1,左低右高是0(具体取决于题目规定)
- 差分曼彻斯特编码:(与前一个码元的后半个码元)同1异0,中间跳变
- 4B/5B编码:5个比特编码传送4个比特的数据编码效率为80%
曼彻斯特码和差分曼彻斯特吗携带了时钟信号。
数字数据调制为模拟信号
- 辐移键控(调幅,ASK):1有振幅,0无振幅,抗干扰能力差
- 频移键控(调频,FSK):1高频,0低频,抗干扰能力强,应用广泛
- 相移键控(调相,PSK):相位不同(具体取决于题目规定)
- 正交振幅调制(调幅 + 调相,QAM):在某种的基础上结合另一种(图不重要,主要看考计算)
模拟数据编码为数字信号
采样频率必须大于等于最大频率的两倍。
这里可以与奈氏法则结合,超过2W的采样是无效的,2W是码元传输率的上限
模拟数据调制为模拟信号
为实现传输的有效性,可能需要较高的频率。这种调制方式还可以使用频分复用(FDM)技术,体现在数据链路层。
数据交换
三种数据交换方式
电路交换 | 报文交换 | 分组交换 | |
---|---|---|---|
基本原理 | 在数据传输期间,源节点与目的结点之间有一条由中间结点构成的专用物理连接线路,在数据传输结束之前,这条此线路一直保持。适用于会话式通信。 | 分组交换地原理与报文交换基本相同,因为都采用了存储转发方式。分组交换中要限制所传输的数据单位的长度,一般为128B。 | 也采用存储转发方式,解决了报文交换中大报文传输的问题,限制了每次传送的数据块的大小,把大的数据块划分成合理的小数据块,再加上一些必要的控制信息,构成分组。 |
特点 | 独占资源(中间过程中的链路不能被其他其他主机占用),用户始终占用端到端的固定传输带宽。适用于远程批处理信息传输或系统间实时性要求高的大量数据传输的情况。 | 无需再两个站点之间建立一条专用通路,器数据传输的单位是报文,传输过程采用存储转发方式。 | 分组交换比报文交换时延更小。因为可以各个分组可以并行传输,如果两个主机之间有路由器相连,报文交换下,路由器要等接收到完整的报文才能转发,而分组交换只需要接收到一个分组就能转发。 |
优点 | 1. 传输时延小 2. 数据传输传输,无失序问题 3. 实时通信 4. 全双工 5. 适用于模拟信号和数字信号 6. 控制简单 |
1. 交换设备可以暂存报文无需建立连接 2. 可以动态分配线路 3. 提高线路可靠性 4. 提高线路利用率 5. 一个报文可以同时发往多个目的地址 6. 便于类型、规格、速度不同的计算机之间进行通信 |
1. 无建立时延 2. 线路利用率高 3. 简化了存储管理,因为分组长度固定 4. 加速传输,各个分组的转发可以并行操作 5. 提高了可靠性,因为分组短小 6. 适用于计算机之间的突发式数据通信 |
缺点 | 1. 建立连接时间长 2. 信号利用率低 3. 灵活性差,不适用于突发中心 4. 无数据存储能力,难以应付数据量的激增 5. 不同类型、规格、速率的设备难以进行通信 6. 无法进行差错控制 |
1. 实时性差 2. 只适用于数字信号 3. 报文过长时传送时延过长 |
1. 节点交换机必须具有更强的处理能力 2. 每个分组都要加上控制信息,降低了通信效率 3. 分组到达目的地后需要排序,增加了麻烦 |
分组交换在互联网中最常用。
分组交换要求把数据分成大小相等的小数据片,每片上都要加上控制信息(如目的地址),因而传送数据的总开销较大。
电路交换不具备差错控制能力,出现故障就要重连。
电路交换也不能纠错。
报文(Message):网络中交换传输的数据单元,即站点一次性要发送的数据块。报文包含了将要发送的完整的数据信息,长度不限且可变。一个文件、一个字、一条语音都可以是一个报文。
分组:大多数计算机网络都不能连续的传送任意长的数据,所以实际上网络系统把数据分割成小块,然后逐块地发送,这种小块就称作分组(packet)。小数据块+控制信息=分组。
数据交换方式的选择
- 传送数据量大,且传送时间远大于呼叫时,选择电路交换。电路交换时延最小。
- 当端到端的通路由很多段的链路组成时,采用分组交换较为合适。
- 从信道利用率上看,报文交换和分组交换优于电路交换,其中分组交换比报文交换的延时小,尤其适合于计算机之间的突发式的数据通信。
数据报与虚电路
分组交换分为数据报方式和虚电路方式。
数据报服务 | 虚电路服务 | |
---|---|---|
连接的建立 | 不要 | 必须有(建立的是逻辑链接,不是物理连接,与电路交换不同) |
目的地址 | 每个分组都有完整的目的地址 | 尽在建立连接阶段使用,之后每个分组使用长度较短的虚电路号 |
路由选择 | 每个分组独立地进行路由选择和转发 | 属于同一条虚电路的分组按照同一路由转发,每个分组不需要选择 |
分组顺序 | 不保证分组的有序到达 | 保证分组的有序到达 |
可靠性 | 不保证可靠通信,可靠性由用户主机来保证 | 可靠性由网络保证 |
对网络故障的适应性 | 出故障的结点丢失分组其他分组路径选择发生变化,可正常传输 | 所有经过故障节点的虚电路均不能正常工作,出现故障要重新建立连接 |
差错处理和流量控制 | 由用户主机进行流量控制,不保证数据报的可靠性 | 可由分组交换网负责,也可由用户主机负责 |
分组携带的额外信息 | 目的地址、分组号、检验号、控制信息 | 虚电路号(唯一标识电路)、分组号、检验号、控制信息。 |
虚电路的连接不一定是临时性的。
一条物理电路上可以建立多条逻辑连接。
虚电路是数据报方式和电路交换方式的结合,发挥两者的优点。
传输介质
传输介质不是物理层,在物理层之下,有时称为第0层。
传输介质只能传输信号,而物理层能根据电压区分信号是对应的数据。
双绞线
网线是双绞线。
10 BaseT是10Mbps以太网,采用曼彻斯特编码。Base是基带信号,T是双绞线。
同轴电缆
有线是同轴电缆。如果用同轴电缆构成以太网,则主机之间的通信方式为半双工。
光纤
光纤中传递的是光脉冲,带宽非常大。利用了全反射的原理。
非导向型传输介质
无线电波:信号向所有方向传播,有较强的穿透能力,广泛运用于通信领域。
微波:沿固定方向传播,频带范围宽,有很高的数据率。用于地面微波接力通信和微信通信。
红外线、激光:沿固定方向传播,要把传输的信号分别转换为各自的信号格式。
接口特性
- 机械特性:定义物理连接的特性,规定物理连接时所采用的规格、接口形状、引线数目、引脚数量和排列情况。
- 电气特性:规定传输二进制时,线路上信号的电压范围、阻抗匹配、传输速率和距离限制等。
- 功能特性:指明某条线路上出现的某一电平表示何种意义,接口部件的信号线的用途。
- 规格特性(过程特性):定义各条物理线路的工作规程和时序关系。
物理层设备
中继器
对数字信号进行再生和还原,保持于原数据相同,以增加信号传输的距离,延长网络的长度。
不是对信号进行放大,放大模拟信号是放大器的作用
中继器两端的网段要是同一个物理层协议,其他层不要求使用相同协议。
两个网段传输速率要相同。
5-4-3原则:5段通信介质,4个中继器,5短通信介质中3段可以挂接计算机。
屏蔽技术的作用是抗干扰,而不是减少衰减。
集线器(多口中继器)
对信号进行放大再发送到其他所有端口。(广播式网络)
星形拓扑结构。
不能分割冲突域,多个设备要平分带宽。
当集线器的一个端口收到数据后,将其从除输入端口之外的所有端口广播出去。
数据链路层
数据链路层的功能
数据链路层在物理层提供服务的基础上向网络层提供服务,其主要作用是加强物理层传输原始比特流的功能,将物理层提供的可能出错的物理连接改为逻辑上无差错的数据链路,使之对网络层表现为一条无差错的链路。
为网络层提供服务
- 无确认的无连接服务,适用于实时通信或误码率较低的信道,如以太网
- 有确认的无连接服务,适用于误码率较高的通信信道,如无线通信
- 有确认的面向连接的服务,适用于对通信要求较高的场合
没有无确认的面向连接的服务,因为有连接就一定要确认。
有连接的实时性强,有确认的可靠性强。
链路管理
数据链路层连接的建立、维持和释放称为链路管理,主要用于面向连接的服务。
帧定界、帧同步于透明传输
将一段数据的前后分别添加首部和尾部,就构成了帧。首部和尾部中含有很多控制信息,它们的一个重要作用就是确定帧的界限。
帧同步就是接收方能从接收到的二进制比特流中区分出帧的起始与终止。
透明传输就是不管所传输的数据是什么样的比特组合,都应在链路上传输。
流量控制
流量控制就是解决发送方的发送能力大于接收方的接收能力的现象,要由接收方控制发送方发送数据的速率。
差错控制
通常采用循环冗余校验(CRC)方式发现错位。
通过自动重传请求(Automatic Repeat reQuest,ARQ)方式来重传出错的帧。
组帧
字符计数法
在帧头部使用一个计数字段来标明帧内字符数。
最大的问题在于如果计数字段出错,就失去了帧边界划分的依据。
字符填充首尾定界符法
使用一些特定的字符来定界一帧的开始与结束。
在特殊字符前面,要添加一个转义字符。
比特填充首尾标志法
用0111 1110来标志一帧的开始和结束,如果遇到五个连续的1(不要求6个),就自动在后面添加一个0
违规编码法
曼彻斯特编码中,每个码元中间都会发生跳变,如果不跳变就是违规编码,可以用违规编码序列来定界帧的起始和结束。
差错控制
检错编码
奇偶校验码、循环冗余码
详见计算机组成原理
纠错编码
海明码(汉明码)
n+k+1\leq2^k,n为有效信息的位数,k为校验位的位数
海明码纠错d位,需要码距为2d+1位的编码方案;检错d为,则只需码距为d+1
详见计算机组成原理
流量控制与可靠传输机制
流量控制
流量控制的基本方法是由接收方控制发送方发送数据的速率。
数据链路层的流量控制手段:接收方收不到就不回复确认。
传输层的流量控制手段:接收端给发送端一个窗口公告。
停止-等待流量控制
发送方每发送一帧,都要等待接收方的应答信号,传输效率很低。
滑动窗口流量控制
一个窗口的大小为一个或多个帧。
发送端每受到一个确认帧,发送窗口就向前滑动一个帧的位置,窗口内没有可发送的帧(窗口内的帧全部都已发送但未收到确认的帧)时,发送方就会停止发送,直到接收方发送的确认帧 使窗口移动。
接收端每受到一个帧,窗口前移一个位置,并发送确认帧。
这里的窗口大小是固定的,与传输层的滑动窗口协议不同。
对于窗口总大小为n的滑动窗口,最多可以有n-1帧已发送但没有确认。
可靠传输机制
接收方可以发送确认帧,也可以将确认帧捎带在一个回复帧中,这种方式称为捎带确认。
如果发送方长时间没有收到确认帧,就重新发送该数据帧。
超时重传请求(Auto Repeat reQuest,ARQ)有三种:
- 停止-等待(Stop-and-Wait)ARQ
- 后退N帧(Go-Back-N)ARQ
- 选择性重传(Selective Repeat)ARQ
后两种协议是滑动窗口技术与请求重发技术的结合。
信道利用率和信道吞吐率
信道利用率:发送方在一个发送周期内,有效地发送数据所需要的发送时间占整个发送周期的比率。
信道利用率=(L/C)/T
其中L是一个周期内发送的比特数,C是发送方数据传输率,T是发送周期(从开始发送数据,到收到第一个确认帧为止)
信道吞吐率=信道利用率*发送方的发送速率。
确认帧的传输不能算到信道利用率中。
单帧滑动窗口与停止-等待协议
优点:简单
缺点:信道利用率太低
发送端窗口大小=1
接收端窗口大小=1
多帧滑动窗口与后退N帧协议(GBN)
重点:
- 累积确认(偶尔捎带确认)
- 接收方只按顺序接收帧,如果不符合要求直接丢弃
优点:因连续发送而提高了信道的利用率
缺点:在重传时必须把原来已经正确传送的数据帧重传,使传送效率降低
发送窗口的尺寸W_T要满足1\leq W_T\leq2^n-1
如果发送窗口的尺寸大于2^n-1,则会造成接收方无法分辨新帧与旧帧。
多帧滑动窗口与选择重传协议(SR)
重点:
- 对数据帧逐一确认,收一个确认一个
- 只重传出错帧
- 接收方有缓存(对接收窗口内的帧,来者不拒)
接收窗口W_R和发送窗口W_T应满足W_R+W_T\leq2^n
一般情况下接受窗口的大小与发送窗口的大小是相同的,所以W_R=W_T\leq2^{n-1}
介质访问控制
按信道划分(静态)
频分多路复用(FDM)
FDM:Frequency-Division Multiplexing
Frequency-Division Multiplexing
所有的用户在同样的时间占用不同的带宽(频率带宽)资源。
时分多路复用(TDM)
TDM:Time-Division Multiplexing
每个用户占用固定序号的时隙,所有用户轮流占用信道。
频分多路复用类似并行;
时分多路复用类似并发。
TDM可用于数字传输而FDM不能。
统计时分多路复用(STDM)又称异步时分多路复用,是对TDM的一种改进,按需求分配时隙,线路利用率高。
波分多路复用(WDM)
WDM:Wavelength-Division Multiplexing
光的频分多路复用,不重要。
码分多路复用(CDM)
CDM:Code-Division Multiplexing
发送0时把0写成-1。
要求站点同时发送数据的时候,各个站点芯片序列相互正交(向量内积为0)。
合并:各路数据在信道中被线性相加。
分离:合并的数据和源站规格化内积。(做内积除以长度)(参考P97 25题)
随机访问介质访问控制(动态)
只有 随机访问介质访问控制 可能发生碰撞(除CSMA/CA外)。
ALOHA协议
Aloha是夏威夷语 你好 的意思。
协议思想:不监听信道,不按时间槽发送,随机重发。(想发就发)
如果发送方在一定时间内收不到确认,就等一随机时间再重传。
时隙ALOHA协议是对ALOHA协议协议的改进,只在时间片开始时刻发送,对于冲突,也只在时间片开始时刻重传。
CSMA协议
CSMA:Carrier Sense Multiple Access,载波监听多点接入
协议思想:发送帧之前,监听信道。
如果信道空闲,发送完整帧;如果信道忙,推迟发送。
CSMA协议分为三种:
1-坚持CSMA | 非坚持CSMA | p-坚持CSMA | |
---|---|---|---|
信道空闲 | 马上发 | 马上发 | p概率马上发 1-p概率等到下一时隙再发送 |
信道忙 | 继续坚持监听 | 放弃监听,等一个随机时间再监听 | 继续监听,空闲时重复上面的过程 |
p-坚持是1-坚持和非坚持的折中方案,先监听再发,边监听边发,碰撞停止,推迟一段时间再发。
p-坚持CSMA虽然避免冲突的效果比较好,但是在发生冲突是仍然要发送完整帧,存在浪费。
CSMA/CD协议
CSMA/CD:Carrier Sense Multiple Access with Collision Detection,载波监听多点接入/碰撞检测
可以检测碰撞,用于以太网(有线传输介质)。
发送帧之前,监听信道,但可能由于传播时延,另一方已发送却检测不到。
为保证一定不发生碰撞,l=2\tau\cdot v,即最小帧长=2\times总线传播时延\times数据传输速率。
为确定碰撞后的重传时机,从离散集合[0, 1, 2, \cdots, 2^k-1]中选取一个数r,重传等待的时间就是2\tau\cdot r。如果重传超过10次,则k取10,如果重传超过16次,则抛弃此帧并向上层报告出错。
CSMA/CA协议
CSMA/CA:Carrier Sense Multiple Access with Collision Avoidance,载波监听多点接入/碰撞避免
CSMA/CA用于无线局域网,会先预约信道,避免碰撞。
隐蔽站:如果A要给B发送数据,而C不知道A要给B发送数据,C就是隐蔽站。
解决方式是:发送方发送RTS(Request to Send),接收方同意则发送CTS(Clear to Send)
局域网
局域网(Local Area Network),简称LAN,是指在某一区域内由多台计算机互联组成的计算机组,使用广播信道(而不是点对点)。
特点
- 范围小
- 速率高
- 延迟小,误码率低,可靠性高
- 各站点为平等关系,共享传输信道
- 能使用广播和组播(见后续章节)
拓扑结构
- 星型拓扑:有单点故障问题
- 总线型拓扑:无单点故障问题,常用
- 环形拓扑:有单点故障问题
- 树形拓扑:有单点故障问题
介质访问控制
- CSMA/CD:常用于总线型网络,也用于树形网络
- 令牌总线(逻辑环):常用于总线型网络,也用于树形网络
- 令牌环:用于环形局域网,如令牌环网
分类
以太网
符合IEEE802.3标准
使用CSMA/CD
令牌环网
物理上采用星型拓扑结构,逻辑上是环形拓扑结构
已弃用
FDDI网
使用光纤,成本高
物理上采用双环拓扑结构,逻辑上是环形拓扑结构
采用IEEE 802.8标准
ATM网
较新型的单元交换技术,使用53字节孤星长度的单元进行交换
无线局域网
Wireless Local Area Network,WLAN
采用IEEE 802.11标准
传输介质是空气
WIFI,是WLAN的一种应用,无线局域网比WIFI有更广的覆盖范围
IEEE 802
IEEE 802成立于1980年2月。
IEEE 802位局域网指定的标准相当于OSI的山晒买双层和物理层。
重要标准:
- IEEE 802.3:以太网介质访问控制协议(CSMA/CD)及物理层技术规范
- IEEE 802.5:令牌环网的介质访问控制协议及物理层技术规范
- IEEE 802.8:光线技术咨询组,与FDDI相关
- IEEE 802.11:无线局域网的介质访问控制协议及物理层技术规范
MAC子层和LLC子层
LLC为网络层服务
MAC与物理层相关
以太网
以太网(Ethernet)是由Xerox、Intel、DEX公司联合开发的基带总线局域网规范,使用CSMA/CS技术。
在以太网中,如果一个结点要发送数据,且不使用交换机,那么它将以广播的方式把数据通过作为公共传输介质的总线发送出去,连在总线上的所有结点(包括发送结点)都能“收听”到发送结点发送的数据信号。
以太网使用无连接不可靠服务,因为局域网信道质量好。
以太网的特点:
- 造价低
- 是使用最广泛的局域网技术
- 比令牌环网、ATM网便宜且简单
- 满足网络速率要求:10Mb/s~10Gb/s
拓扑
现在的以太网拓扑在逻辑上是总线型,在物理上是星型。
编码
以太网采用曼彻斯特编码。
适配器
通信适配器就是网卡,现在通常嵌入在主板上,不单独使用网卡。
适配器的ROM上有硬件的MAC(Media Access Control)地址,MAC地址是全球唯一的48位二进制地址,前24位代表厂家,由IEEE规定,后24位由厂家指定。
如果同一局域网中两个设备有相同的MAC地址,两个设备都不能正确通信。
MAC地址常用6个十六进制数表示。
MAC地址也称为局域网地址、以太网地址、物理地址。
网卡实现的功能在物理层和数据链路层。
MAC帧
在数据链路层要对数据加头加尾
最常用的MAC帧是以太网V2的格式
在MAC层,格式为:
目的地址6-源地址2-类型-数据46~1500-FCS4
类型是协议
数据是IP层传来的IP数据报,长度可变,1500是规定,46是因为以太网的最小帧长是64字节
FCS是CRC循环冗余校验码
不需要帧结束定界符,是因为曼彻斯特编码不发送时电压是不变的。
高速以太网
100BASE-T以太网:使用双绞线,支持全双工和半双工
吉比特以太网:使用双绞线或光纤,支持全双工和半双工
10吉比特:使用光纤,只支持全双工
广域网
互联网就是一种广域网。
广域网所采用的传输方式是存储转发式。
PPP协议
需要满足的要求:
- 简单
- 封装成帧
- 透明传输
- 多种网络层协议
- 多种类型链路
- 差错检测
- 检测连接状态
- 最大传送单元
- 网络层地址协商
- 数据压缩协商
不需要实现:
- 纠错(不需要实现可靠传输,错误直接丢弃)
- 流量控制
- 序号
- 不支持多点线路
VLAN
虚拟局域网(VLAN)用于将局域网内的设备划分成为物理无关的逻辑组
VLAN的结点组成不受物理位置的限制,用软件的方式来实现逻辑工作组的划分
实现方式:
- 基于接口实现
- 基于MAC地址实现,VLAN表记录VLAN变好和MAC的对应关系;以太网帧中会增加VLAN的标记,12位
数据链路层设备
网桥
把几个以太网连接起来,构成一个更大的以太网。
网桥与集线器不同, 收到一个帧时不会向所有端口转发,而是先检查此帧的MAC地址,再确定转发到哪一个接口。
网桥不能对需要传递的数据进行过滤,只适用于用户数不多和通信量不大的局域网,否则可能产生广播风暴。
网桥优点:
- 过滤通信量,增大吞吐量
- 扩大了物理范围
- 提高了可靠性(一个设备故障时,只会影响到所在的网段)
- 可互连不同物理层、不同MAC子层和不同速率的以太网
以太网交换机(Switch)
又叫做多端口网桥。
以太网交换机可以直接连接主机,也可以连接集线器再连接主机。
每个端口独占媒体带宽,并行传输,整个交换机的总带宽会随着端口节点的增加而增加。
交换机可以进行自学习。
交换机收到一个帧,如果目的地址在地址表中找不到,会使用洪泛技术,向除源端口外的所有端口转发帧。
两种交换方式
直通式交换机:查完目的地址(6B)就直接转发。延迟小,可靠性低,无法支持有不同速率的端口的交换
存储转发式交换机:将帧放入高速缓存,并检查是否正确,正确则转发,不正确则丢弃。延迟大,可靠性高,支持具有不同速率的端口的交换,较常用。
冲突域和广播域
以太网交换机一个端口就是一个冲突域。
路由器一个端口就是一个广播域?
如果没有路由器,就只有一个广播域。
冲突域(网段)是指一个计算机网络中使用同一物理层设备,能够直接通信的那一部分。在一个冲突域中,只能由一台设备发送信息。
广播域:网络中能接收任一设备发出的广播帧的设备的集合。
能否隔离冲突域 | 能否隔离广播域 | |
---|---|---|
物理层设备 中继器、集线器 |
× | × |
数据链路层设备 网桥、交换机 |
√ | × |
网络层设备 路由器 |
√ | √ |
VLAN可以隔离冲突域和广播域。
通过交换机组成的一组工作站 组成一个广播域,多个冲突域。
集线器不能隔离冲突域和广播域,所以多端口集线器的冲突域和广播域都是1。
网络层
网络层功能
异构网络互联
通过网际协议(Internet protocol,IP)实现。
通过使用IP就可以使这些性能各异的网络在网络层上看起来就好像是一个统一的网络。
在由路由器互联的多个局域网的结构中,物理层、数据链路层、网络层协议可以不同,而网络层以上的高层协议必须相同。
路由选择与转发
路由选择:按照复杂的分布式算法,根据从各相邻路由器所得到的关于整个网络拓扑的变化情况,动态的改变所选择的路由。
分组转发:路由器根据转发表将用户的IP数据包从合适的端口发转发出去。
路由表是根据路由选择算法得出的。
在IP分组的传输过程中,源主机和中间路由器都不知道IP分组到达目的主机需要经过的完整路径。
拥塞控制
拥塞:因出现过量分组而引起的网络性能下降的现象称为拥塞。
当分组到达路由器的速率很大时,所有结点都来不及接收分组,而要丢弃大量分组。
流量控制与拥塞控制不同,流量控制要做的是抑制发送端发送山上的速率,而拥塞控制要确保通信子网能够传送待传送的数据,是一个全局性的问题,涉及网络中的所有主机、路由器及导致网络传输能力下降的因素。
拥塞控制有两种方法:
- 开环控制:这种方式是静态的,在设计网络时事先将有关发生拥塞的因素考虑到。
- 闭环控制:这种方式是动态的,事先不考虑有关发生拥塞的各种因素,采用检测网络去见识,及时检测哪里出现了拥塞,然后将拥塞信息传到合适的地方,以便调整网络系统的运行,并解决出现的问题。
IPv4
IPv4数据报格式
版本:4位,IP的版本
首部长度:4位,单位是4B,最小值位5,因为首部长度不能小于20B
区分服务:8位,无意义
总长度:16位,单位是1B
标识:8位,用于分片,同一数据报的各个分组具有相同的标识
标志:3位,第1位无意义,第2位是DF(Don’t Fragment),第3位是MF(More Fragment)
片偏移:13位,单位是8B,这也说明每个分片数据部分的长度一定是8B的整数倍(最后一个分片长度如果不是8B的整数倍就要填充0)
生存时间(TTL):8位,路由器在转发分组前,把TTL减1,如果等于0,则分组被丢弃
协议:8位,携带数据的分组使用的协议,6表示TCP,17表示UDP5
首部检验和:16位,仅检验IP地址首部,不检验整个IP分组。
源地址:发送方IP地址
目的地址:接收方IP地址
选项字段长度如果不是8B的整数倍,要用0填充。
标识、标志、片偏移与分组有关,分组可以在路由器中分片,在目的主机中重组。
需要记住的单位:总长度1B,片偏移8B;首部长度4B
“一种八片首饰”
IPv4地址
如果一台主机有两个或两个以上的IP地址,那么这台主机属于两个或多个不同的网络。
分类的IP地址
常见十进制数与二进制数之间的转换:
255 | 254 | 252 | 248 | 240 | 224 | 192 | 128 |
---|---|---|---|---|---|---|---|
11111111 | 11111110 | 11111100 | 11111000 | 11110000 | 11100000 | 11000000 | 10000000 |
常用三种类别网络IP地址的使用范围
网络类别 | 二进制前缀 | 最大可用网络数 | 第一个可用的网络号 | 最后一个可用的网络号 | 每个网络中的最大主机数 |
---|---|---|---|---|---|
A | 0 | 2^7-2 | 1 | 126 | 2^{24}-2 |
B | 10 | 2^{14}-1 | 128.1 | 191.255 | 2^{16}-2 |
C | 110 | 2^{21}-1 | 192.0.1 | 223.255.255 | 2^8-2 |
D | 1110 | ||||
E | 1111 |
D类网络:224.0.0.1~239.255.255.254(用于组播)
E类网络:240.0.0.1~255.255.255.254(预留)
主机号全0表示本主机所连接的网络地址。
主机号全1表示本网络的广播地址。
127.0.0.1为环路自检地址,表示主机本身,不会出现在网络上。
0.0.0.0表示网络上的本主机,0.0.0.0可以作为源地址,不能作为目的地址。
255.255.255.255表示整个TCP/IP网络的广播地址。
私有IP地址也不能出现在因特网上。
网络地址转换(NAT)
网络地址转换是指通过专用网络地址转换为公有地址,从而隐藏内部管理的IP地址。
多个内部网络主机,通过地址转换,映射到一个外部网络地址上。
如果在NAT的表项中找不到,就不转发,丢弃分组。
私有IP地址:
A类:10.0.0.0~10.255.255.255
B类:172.16.0.0~172.31.255.255
C类:192.168.0.0~192.168.255.255
子网
子网划分
子网划分的好处是减小广播域的大小。
让主机号的高位充当子网号。
IP地址结构为:{<网络号>, <子网号>, <主机号>}
如果使用CIDR,子网地址可以为全0或全1,如果不使用则不能
不论是否使用CIDR,主机地址都不能为全0或全1
全0和全1的意义与不进行子网划分相同,全0表示所连接的网络地址,全1表示广播地址
子网掩码
将目的地址与子网掩码进行与运算,可以得到网络地址(子网地址)
无分类域间路由选择(CIDR)
CIDR技术的作用是把小的网络汇聚成大的超网,聚合成超网能缩小路由表的规模。
CIDR使网络地址是变长的。
主机地址都不能为全0或全1,但网络地址可以。
如果路由表种有多个满足条件的目的网络,应该选择前缀更长的网络,这样地址块更小,路由更具体。
地址解析协议(ARP)
ARP:Address Resolution Protocol
在实际网络的链路上传送数据时,最终必须使用MAC地址。
如果主机在自己的高速缓存中找不到目的主机的MAC地址,就要用ARP协议发送请求找到MAC地址。
ARP协议可以完成主机或路由器从IP地址到MAC地址的映射。(解决下一跳走哪的问题)
ARP协议的使用过程:
检查ARP高速缓存,有对应表项则写入MAC帧,没有则用目的MAC地址为FF-FF-FF-FF-FF-FF的帧封装并广播ARP请求的分组,同一局域网中所有主机都能收到该请求。目的主机收到请求后就会向源主机单播一个ARP响应分组,源主机收到后将此映射写入ARP缓存。
发送到本网络,用ARP找目的主机的MAC地址。
发送到其他网络,用ARP找本网络上一个路由器(网关)的MAC地址,剩下的事情就交给路由器了。
每当路由器将IP数据报转发到一个具体的网络中时,都需要重新封装源硬件地址和目的硬件地址。
硬件地址只具有本地意义,在其他网络中没有意义,所以要重新封装。
动态主机配置协议(DHCP)
DHCP:Dynamic Host Configuration Configuration Protocol
动态主机配置协议DHCP是应用层协议,使用客户/服务器方式,客户端和服务端通过广播方式进行交互,基于UDP。
主机可以从DHCP获取IP地址、子网掩码、默认网关、DNS服务器名称和IP地址。
主机发送封装的DHCP Discover报文的IP分组的源地址为0.0.0.0,目的地址为255.255.255.255
网际控制报文协议(ICMP)
ICMP差错报文
ICMP差错报文有5种:
- 终点不可达:无法交付
- 源点抑制:拥塞丢数据(不再使用)
- 时间超过:TTL=0
- 参数问题:首部字段有问题
- 改变路由:可通过更好的路由
不再使用不代表不考
不应发送ICMP差错报告报文的情况:
- 对于ICMP差错报告报文不在发送ICMP差错报告报文
- 对第一个分片的数据报片的所有后续数据报片都不发送ICMP差错报告报文
- 对具有组播地址的数据报都不发送ICMP差错报告报文
- 对具有特殊地址(如127.0.0.0或0.0.0.0)的数据报不发送ICMP差错报告报文
广播:一个结点的所有结点
组播:一个结点到多个结点
ICMP询问报文
ICMP询问报文有4种:
- 回送请求和回答报文:测试目的站是否可达以及了解其相关状态
- 时间戳请求和回答报文:用来进行时钟同步和和测量时间
- 掩码地址请求和回答报文(不再使用)
- 路由器询问和通告报文(不再使用)
同上,不再使用不代表不考
应用:
- Ping:测试两个主机之间的连通性,使用了回送请求和回答报文
- traceroute:跟踪一个分组从源点到终点的路径,使用了ICMP时间超过差错报告报文
IPv6
解决IP地址耗尽问题的措施
- 采用无分类编址CIDR,使IP地址的分配更加合理
- 采用网络地址转换(NAT)方法节省全球IP地址
- 采用具有更大地址空间的新版本的IPv6
其中前两种方法只是延长了IPv4地址分配结束的时间,滴油第三种方法从根本上解决了IP地址耗尽的问题
IPv6的特点
- 地址从IPv4的32位增加到128位
- 取消了检验和字段,因为在传输层和数据链路层都有差错处理机制
- 首部字段数目减少
- 首部长度固定不变
- 首部更好地支持选项
- 支持即插即用,不需要DHCP协议
- 首部长度是8B的整数倍,IPv4是4B的整数倍
- 只能在主机处分片,IPv4可以在路由器和主机分片
IPv6地址表示法
每4位用一个十六进制数表示,每16位用一个冒号隔开。
每16位的域开头的零可以省略,但如果全是0要写一个0。
有相继的0值域时,可以缩写成双冒号,但是在整个IP地址中只能使用一次,因为0至于的个数没有编码。
路由协议和路由算法
基本概念
静态路由:手工配置,不适用于大型网络。手工配置也可以随时配置。
动态路由:适用于大型网络,需要实时获得网络的状态。
分层路由:每个路由器直垂到自己所在区域内的目标地址,对其他区域内的结构毫不知情。
每个路由器直垂到自己所在区域内的目标地址,对其他区域内的结构毫不知情。
自治系统(Autonomous System,AS):对外部透明。
路由信息协议(RIP)
RIP:Routing Information Protocol
RIP协议是一种分布式的基于距离向量的路由选择协议。
协议思想
适用于小网络,是应用层协议,使用UDP数据报传送报文
每个路由器都要维护从它自身到每个目的网络的最小距离
RIP允许一条路径最多只能包含15个路由器,因此距离等于16时,表示网络不可达。
RIP仅和相邻路由器交换信息。
路由器交换的信息时当前的路由器所知道的全部信息,即自己的路由表。
RIP按固定的时间间隔交换路由信息,如每隔30秒。
路由收敛是指网络设备的路由表与网络拓扑结构保持一致。
当网络出现故障时,会出现慢收敛现象,即“好消息传得快,坏消息传得慢”
距离向量算法
- 没有目的网络时添加
- 有目的网络且下一条地址相同时,更新
- 有目的地址且下一条地址不同,距离更短时添加
开放最短路径优先(OSPF)
OSPF:Open Shortest Path First
OSPF向本自治系统中的所有路由器发送信息,使用的方法是洪泛法,而RIP仅向相邻路由器发送信息。
OSPF是网络层协议,用IP数据报发送。
只有当链路发生变化时,路由器采用洪泛法向所有路由器发送此信息,不会定时交换路由表。
不会出现“坏消息传得慢”的问题。
OSPF要使用Dijkstra算法计算除完整的最优路径。
为使OSPF能够用于规模很大的网络,OSPF将一个自治系统再划分为若干更小的范围,称为区域。
划分区域的好处是,将利用洪泛法交换链路信息的范围局限于每个区域而非整个自治系统,减少了整个网络上的通信量。
在一个区域内的路由器只知道本区域的完整网络拓扑,而不知道其他区域的网络拓扑结构。
边界网关协议(BGP)
BGP:Border Gateway Protocol
BGP是在自治系统之间传播路由的协议。
BGP只能力求寻找一条能够到达目的网络的较好的路由(不能兜圈子),没并非徇众一条最佳路由。
BGP是应用层协议,基于TCP。
每个自治系统至少有一个“发言人”(边界路由器)。
再BGP刚运行时,BGP的邻站交换整个BGP路由表,但以后只需要再发生变化时更新有变化的部分。
三种路由协议的比较
RIP和OSPF用于自治系统内部,其中RIP适用于小网络,OSPF适用于大网络。
BGP用于自治系统之间。
协议 | RIP | OSPF | BGP |
---|---|---|---|
类型 | 内部 | 内部 | 外部 |
路由算法 | 距离-向量 | 链路状态 | 路径-向量 |
传递协议 | UDP | IP | TCP |
路径选择 | 跳数最少 | 代价最低 | 较好,非最佳 |
交换节点 | 和本节点相邻的路由器 | 网络中的所有路由器 | 和本结点相邻的路由器 |
交换内容 | 当前本路由器知道的全部信息,即自己的路由表 | 与本网络相邻的所有路由器的链路状态 (有变化的部分?) |
首次:整合路由器表 非首次:有变化的部分 |
所属层次 | 应用层 | 网络层 | 应用层 |
组播
概念
当网络中的某些用户需要特定的数据时,组播数据发送者进发送一次数据,借助组播路由协议为组播数据包建立组播分发树,被传递的数据到达距离用于端尽可能近的结点后才开始复制和分发,是一种点对多点的传输方式。
组播地址使用D类地址,范围是224.0.0.0~239.255.255.255
组播地址只能作为目的地址,源地址总是单播地址。
组播转发树,可以避免路由环路。
组播的特点
- 数据报尽最大努力交付,不提供可靠交付,应用于UDP
- 对组播数据报不产生ICMP差错报文
- 并非所有D类地址都可以作为组播地址,有些组地址已经被指派永久组地址
映射
MAC地址格式是48位,每8位用一个十六进制数表示,每16位用横杠分隔。
IP地址映射到组播MAC地址的算法:
前24位直接写十六进制数01-00-5E
后24位把IP地址的后23位写成十六进制
IGMP协议
IGMP:Internet Group Management Protocol,因特网组管理协议
路由器收到组播组数据报,用IGMP协议判断是都分发组局域网。
组播路由器只知道所连接的局域网中是否有组播组成员,并不知道有多少个。
移动IP
本地代理又称归属代理,是主机原本所在的网络。
外部代理又称外埠代理,是主机移动到的网络。
移动IP为移动主机设置了两个IP地址,著地址固定,辅地址动态变化。
类似VPN。
SDN
网络层分为两大平面
数据平面的功能:转发
控制平面的功能:路由选择
控制平面有传统方法和SDN方法
SDN是Software Defined Networking
SDN在控制平面使用软件方法,与传统方法相比:
SDN使用SDN远程控制器,传统方法使用路由选择处理器;SDN中的路由选择处理器负责与远程控制器通信,接收转发表
远程控制器通过计算路由表,分发给路由器,路由器在根据转发表进行转发
远程控制器可编程,很灵活
网络层设备(路由器,Router)
路由器是一种具有具有多个输入端口和多个输出端口的专用计算机,其任务是转发分组(路由选择&分组转发)
路由器可以隔离广播域,只能在路由器所连接的一个局域网内进行广播。
路由器在转发IP数据报时,每次都会修改源MAC地址和目的MAC地址;如果没有用到NAT,使用不会修改源IP地址和目的IP地址。
路由器对收到的IP分组首部进行校验,有差错则直接丢弃,不保证IP分组不丢失。
路由器传输延迟比物理层和数据链路层设备大(中继器、集线器、网桥、交换机)
路由表中有一行的目的IP地址是0.0.0.0,子网掩码也是0.0.0.0,当找不到目的IP对应的下一跳时,就发给默认路由,默认路由通常对应局域网中的某一个路由器,默认路由会查自己的转发表或转发给其他路由器处理。
不在同一个网络上,就不能直接通信,要经过网关才能通信。如果默认网关不是路由器地址,就不能访问在不同网络/子网中的主机,但可以访问同一网络/子网中的主机。
传输层
概述
传输层功能:
- 提供进程和进程之间的逻辑通信(端对端)
- 复用和分用
- 传输层对收到的报文进行差错检测
- 传输层的两种协议:UDP和TCP
UDP是无连接的用户数据报协议,不可靠,无连接,时延小,适用于小文件。
TCP是面向连接的传输控制协议,可靠,面向连接,时延大,适用于大文件。
传输层的⽤的定义是:接收 ⽅的数据剥去报⽂⾸部后,能把这些数据正确交付到⽬的进程。
实现分⽤时所依据的头部字段是目的端口号。
UDP
特点
- UDP是无连接的,减少开销和发送数据之前的时延。
- UDP尽最大努力交付,不保证可靠交付。
- UDP是面向报文的,适合一次性传输少量数据的网络应用。
- UDP无拥塞控制,适合很多实时应用。
- UDP首部开销小,8B而TCP是20B。
如果使用UDP,可靠性要由应用层来保证。
远程登录需要可靠的连接,不适合使⽤UDP。
首部格式
16位源端口号
16位目的端口号
16位UDP长度:整个UDP数据报的长度,单位是B,最小值是8
16位UDP检验和(检验首部+数据)
数据(也可以没有)
如果UDP数据报有错误,则丢弃。
伪⾸部既不向下传递也不向上递交。
TCP
特点
- TCP是面向连接(虚连接,非物理连接)的传输层协议。
- 每一条TCP连接只能有两个端点,每一条TCP连接只能是点对点的。
- TCP提供可靠交付的服务,无差错、不丢失、不重复、按序到达。
- TCP提供全双工通信。
- TCP面向字节流。
发送缓存中有:准备发送的数据&已发送但尚未收到确认的数据。
接收缓存中有:按序到达但未被接收应用程序读取的数据&不按续到达的数据。
TCP首部最短为20B。
首部格式
序号seq:本报文段的数据的第一个字节的序号,两台主机的序号是没有关系的,即使相同也互不干扰。
确认号ack:期望收到对方的下一个报文段的数据的第一个字节的序号,也表明在此字节号之前的字节都已经正确收到。
数据偏移:与IP数据报的分片不同,这里是TCP报文段的数据起始处距TCP报文段的起始处有多远。
紧急位URG:值为1时,紧急指针字段有效,紧急数据应尽快传送。
确认位ACK:值为1时,确认号字段有效,且必须有确认号,在建立连接后所有传送的报文段都必须把ACK置1。
推送位PSH
复位位RST
同步位SYN:值为1时,表示这是连接请求或连接接收报文。
终止位FIN:用来释放连接。
窗口
检验和
紧急指针
选项
连接管理
SYN是同步位
ACK是确认位
ack是确认号,也就是下一个想要的序号
seq是序号
ACK与ack搭配使用,一定是成对出现的。
三次握手
- SYN=1 seq=x
- SYN=1 ACK=1 seq=y ack=x+1
- ACK=1 seq=x+1 ack=y+1
四次挥手
- FIN=1 seq=u
- ACK=1 seq=v ack=u+1
- ACK=1 FIN=1 seq=w ack=u+1
- ACK=1 seq=1 ack=w+1
当一方释放连接后,另一方还可以发送数据。
可靠传输
可靠:保证接收方进程从缓冲区读出的字节流与发送方发出的字节流是完全一样的。
实现可靠传输的机制是:校验、序号、确认、重传。
流量控制
传输层通过调整接收方的拥塞窗口大小来进行流量控制。
接收窗口是rwnd。
发送方根据其对当前网络拥塞程序的估计而确定的窗口值,是拥塞窗口cwnd。
可发送字节数 = min{拥塞窗口大小, 接收窗口大小} – 未确认字节数
发送窗口大小 = min{拥塞窗口大小, 接收窗口大小}
接收窗口大小 = 缓存总容量 – 未被取走的字节数
传输层和数据链路层流量控制的区别是:传输层定义端到端用户之间的流量控制,数据链路层定义两个中间的相邻结点的流量控制。另外,数据链路层的滑动窗口大小不能动态变化,传输层的则可以动态变化。
拥塞控制
拥塞控制是发送端利用发送窗口调节向网络注入分组的速度。
流量控制是点到点的,而拥塞控制是全局的。
慢开始和拥塞避免
- 先令拥塞窗口cwnd=1
- 每经过一个传输轮次,拥塞窗口cwnd加倍。
- 加倍到ssthresh时,改为每次+1。
- 收到3个重复的确认帧时,说明出现网络拥塞,设置cwnd=1,ssthresh=出现网络拥塞时拥塞窗口大小的一半,回到2
快重传和快恢复
- 先令拥塞窗口cwnd=1
- 每经过一个传输轮次,拥塞窗口cwnd加倍。
- 加倍到ssthresh时,改为每次+1。
- 出现网络拥塞时,设置cwnd=出现网络拥塞时拥塞窗口大小的一半,回到3
应用层
网络应用模型
客户/服务器模型(C/S)
C/S:Client/Server
客户机面向用户,服务器面向任务
对等网络模型(P2P)
P2P:Peer to Peer
每个节点既作为客户访问其他结点的资源,也作为服务器提供给其他结点访问。
P2P建立的是由对等结点组成的逻辑网络。
占用较大内存,经常使用会损耗硬盘。
ISP对P2P持反对态度。
域名系统(DNS)
DNS:Domain Name System
采用客户/服务器模型,其协议运行在UDP之上。
Web服务器提供WWW服务。
通用顶级域名:.com .net .org .gov等
国家顶级域名:.cn .us .uk .hk等
基础结构域名:.arpa(仅此一个,用于反向域名解析)
国家顶级域名下注册的二级域名均由该国家自行确定。
授权域名服务器总能将其管辖的主机名转换为该主机的IP地址。
把域名映射为IP地址称为正向解析,把IP地址映射成域名称为反向解析。
域名解析的方式有递归查询和递归与迭代相结合的查询,递归查询给根域名服务器造成的负载过大,几乎不使用。
主机向本地服务器的查询采用递归查询,本地域名服务器向根域名服务器的查询采用迭代查询。
DNS父结点顿出子结点的解析地址,子结点不存储父结点的解析地址
文件传输协议(FTP)
FTP:File Transfer Protocol
允许用户指明文件的类型与格式,并允许文件具有存取权限。
主机的软件、硬件、操作系统可以不同。
FTP在工作时使用两个并行的TCP连接,一个是控制连接(端口号21),一个是数据连接(主动模式端口号20,被动模式是服务器与客户端协商的大于1023的随机端口)。控制连接始终开启,数据连接根据传输状态决定是否开启。
这里的端口是指服务器使用的端口,客户端使用的端口号自动分配。
匿名FTP访问通常使用anonymous作为用户名。
TFTP是简单文件传输协议,使用UDP提供的服务。
电子邮件
SMTP:Simple Mail Transfer Protocol,简单邮件传输协议
POP3:Post Office Protocol,邮局协议
SMTP和POP3都是基于传输层的TCP协议。
用户代理:Outlook、Gmail等
SMTP协议用于发送,用户代理向邮件服务器发送邮件,及在邮件服务器之间发送邮件时使用。
POP3协议用于读取邮件,用户代理像邮件服务器发出请求,从邮件服务器拉取邮件。用户读取邮件可以“下载并保留”或“下载并删除”。
MIME:Multipurpose Internet Mail Extensions,多用途网际邮件扩充
SMTP协议只能发送一定长度的ASCII码,不能发送其它语言的文字和二进制对象(图像、语音、视频)。
MIME协议可以发送非ASCII邮件。
还有一种邮件接收协议是网际报文存取协议(IMAP)比POP复杂得多,但只是建议标准。
用浏览器发送Gmail或Hotmail服务器之间的邮件时,使用HTTP协议,仅在不同邮件服务器之间传送邮件时,才使用SMTP。
邮件内容明文传输,不会因为传送的是密码而加密。
万维网(WWW)
WWW:World Wide Web
万维网是一个资源空间,其中的资源用统一资源定位符URL标识。
URL:Uniform Resource Location
HTTP采用TCP作为传输层协议。
HTTP/1.0只支持非持续(久)连接。
HTTP/1.1支持持续连接和非持续连接,默认使用持续连接。
对于非持续连接,每个网页对象传输都需要建立一个TCP连接。
HTTP服务器默认端口是80,客户端端口是不固定的。
常见应用层协议小结
应用程序 | FTP数据连接 | FTP控制连接 | TELNET | SMTP | DNS | TFTP | HTTP | POP3 | SNMP |
---|---|---|---|---|---|---|---|---|---|
使用协议 | TCP | TCP | TCP | TCP | UDP | UDP | TCP | TCP | TCP |
熟知端口号 | 20 | 21 | 23 | 25 | 53 | 69 | 80 | 110 | 161 |
发表评论