计算机网络 - 湖科大教书匠
计算机网络 - 湖科大教书匠
第一章 概述
ISP拥有成块的IP地址,同时拥有通信线路以及路由器等联网设备
因特网上的主机必须有IP地址才能进行通信
因特网采用的核心技术是 TCP/IP
电路交换:电话交换机接通电话线的方式
(传输时延最小)
报文交换:传输时延长
计网采用分组交换。
优点:无需建立连接,线路利用率高,简化了存储管理,加速传输,减少出错概率和重发数据量
缺点:引起了转发时延,需要传输额外的信息量。对于数据报服务,存在失序、丢失或重复分组的问题;对于虚电路服务,存在呼叫建立、数据传输和虚电路释放三个过程
报文:表示该消息的整块数据
发送之前会把较长的报文划分为一个个更小的等长数据段
在每个数据段前加上一些由必要的控制信息组成的首部(包头)后,就构成一个分组(包)
添加首部的作用:首部包含分组的目的地址,以及实现可靠传输
分组交换过程中各方要完成的任务:
发送方:构造分组、发送分组
路由器:缓存分组、转发分组
接收方:接收分组、还原报文
计算机网络系统的基本组成是:通信子网和资源子网
计算机网络性能指标
-
速率
连接在计算机网络上的主机在数字信道上传送比特的速率,也称为 比特率 或 数据率
例题:有一个待发送的数据块,大小为100MB,网卡的发送速率为100Mbps,则网卡发送完该数据块需要多长时间?
解题:100Mbps = 100Mb/s , 100Mb/s / 8 = 12.5MB/s
-
带宽
用来表示网络的 通信线路 所能传送数据的能力,因此网络带宽表示在单位时间内从网络中的某一点到另一点所能通过的 “最高数据率”
200M -> 200Mb/s
-
吞吐量
单位时间内通过某个网络(或信道、 接口)的数据量
经常被用于对网络的测量,以便知道实际上到底有多少数据量能够通过网络
吞吐量受 网络的带宽或额定速率的限制 -
网络时延
包含发送时延、传播时延、处理时延(不方便计算)
若更改题设数据块长度为1B,则传送时延占主导
-
时延带宽积 = 传播时延 * 带宽
链路的时延带宽积又称为以比特为单位的链路长度 -
往返时间 RTT 也是一个重要的性能指标
很多情况下网上的信息是双向交互的
-
利用率
信道利用率:用来表示某信道有百分之几的时间有数据通过
网络利用率:全网络的信道利用率的加权平均
根据排队论,当某信道的利用率增大时,该信道引起的时延也会迅速增加
因此,信道利用率并非越高越好;
如果令D0表示网络空闲时的时延,D表示网络当前的时延,那么在适当的假定条件下,可以用简单公式来表示D、D0和利用率U中之间的关系:D = D0 / (1-U)
当网络的利用率达到50%,时间就要加倍;超过50%,时延急剧增大;接近100%时,时延趋于无穷大
-
丢包率(分组丢失率) -- 反映了网络的拥塞情况
在一定的时间范围内,传输过程中丢失的分组数量与总分组数量的比率
具体可分为接口丢包率、结点丢包率、链路丢包率、路径丢包率、网络丢包率
分组丢失主要有2种情况:分组在传输过程中出现 误码 ,被结点丢弃
分组到达一台队列已满的分组交换机时被丢弃;在通信量较大时就可能造成 网络拥塞
计算机网络体系结构
TCP/IP中体系结构中,网际层的相邻下层为:网络接口层
TCP/IP体系结构中的网络接口层对应OSI/RM体系结构的:物理层、网络层
传输媒体不属于物理层,它并不包含在体系结构之中
计算机网络中传播的信号并不是忙完举例的方波信号
网卡上的MAC地址就是主机在网络中的地址,主机在发送数据时,应该给数据附加上目的地址
如何从信号所表示的一连串比特流中区分出地址和数据
现在常用的是使用以太网交换机将多台主机互连形成的交换式以太网
面临网络和主机共同编址的问题
路由器如何转发分组,如何进行路由选择
出现传输错误时,如何处理
举例说明计算机网络体系结构分层处理方法
1.应用层将HTTP请求报文交付给运输层处理,运输层给HTTP请求报文添加一个TCP首部,使之成为TCP报文段(TCP报文段的首部作用主要是为了区分应用进程)
2.运输层将TCP报文段交付给网络层处理,网络层给TCP报文段添加一个IP首部,使之成为IP数据报
(IP数据报的首部作用主要是为了使IP数据报可以再互联网上传输,也就是被路由器转发)
3.网络层将IP数据报传输给数据链路层处理,数据链路层给IP数据报添加一个首部和一个尾部使之成为帧,假设网络N1是以太网,该首部的作用主要是为了让帧能够在一段链路上或一个网络上传输,能够被相应的目的主机接收,该尾部的作用是为了让目的主机检查所接收到的帧是否有误码
4.数据链路层将帧交付给物理层,物理层将帧看作是比特流,由于网络N1是以太网,因此物理层还会给该比特流前面添加前导码,前导码的作用是为了让目的主机做好接收帧的准备,物理层将添加有前导码的比特流变换成相应的信号发送到传输媒体,信号通过传输媒体到达路由器
5.物理层将信号变换为比特流,然后去掉前导码后,将其交付给数据链路层,这实际上交付的是帧,数据链路层将帧的首部和尾部去掉后,将其交付给网络层,这实际上交付的是IP数据报,网络层解析IP数据报的首部,从中提取出目的网络地址,然后查找自身的路由表,确定转发端口,以便进行转发
6.网络层将IP数据报交付给数据链路层,数据链路层给IP数据报添加一个首部和一个尾部使之成为帧。数据链路层将帧交付给物理层,物理层将帧看做是比特流,由于网络N2是以太网,因此物理层还会给该比特流前面添加前导码,物理层将添加有前导码的比特流变换成相应的信号发送到传输媒体,信号通过传输媒体到达Web服务器
7.Web服务器的处理过程:物理层将信号变换为比特流,然后去掉前导码后,将其交付给数据链路层,这实际上交付的是帧,数据链路层将帧的首部和尾部去掉后,将其交付给网络层,这实际上交付的是IP数据报,网络层将IP数据报的首部去掉后,将其交付给运输层,这实际上交付的是TCP报文段。运输层将TCP报文段的首部去掉后,将其交付给应用层,这实际上交付的是HTTP请求报文,应用层对HTTP请求报文进行解析,然后给主机发回HTTP响应报文
与之前的过程类似,HTTP相应报文需要在Web服务器层层封装,然后通过物理层变成相应的信号,再通过传输媒体传输到路由器,路由器转发该响应报文给主机,主机通过物理层将收到的信号转换为比特流,之后通过逐层封装,最终去除HTTP相应报文
实体:任何可发送或接收信息的硬件或软件进程
对等实体:收发双方相同层次中的实体
协议:控制两个对等实体进行逻辑通信的规则的集合
协议的三要素:语法 语义 同步
语法:定义所交换信息的格式
语义:定义收发双方所要完成的操作
同步:定义收发双方的时序关系
在协议的控制下,两个对等实体间的逻辑通信使得本层能够向上一层提供服务
要实现本层协议,还需要使用下面一层所提供的服务
下面的协议对上面的实体是“透明”的
服务访问点:在同一系统中相邻两层的实体交换信息的逻辑接口,用于区分不同的服务类型
- 数据链路层的服务访问点为帧的“类型”字段
- 网络层的服务访问点为IP数据报首部中的“协议字段”
- 运输层的服务访问点为“端口号”
服务原语:上层使用下层所提供的服务必须通过与下层交换一些命令,这些命令称为服务原语
协议数据单元(PDU):对等层次之间传送的数据包
服务数据单元(SDU):同一系统内,层与层之间交换的数据包
多个SDU可以合成为一个PDU;一个SDU也可以划分为几个PDU
第一章总结 (P11)
1.1 计算机网络在信息时代的作用
1.2 因特网概述
1.3 三种交换方式
1.4 计算机网络的定义和分类
1.5 计算机网络的性能指标
1.6 计算机网络的体系结构
计网体系结构习题(重难点)
1.在OSI参考模型中,自下而上第一个提供端到端服务的层次是:传输层
MAC地址属于数据链路层的范畴
IP地址属于网际层的范畴
2.不属于网络体系结构所描述的内容是:协议的内部实现细节
3.TCP/IP参考模型的网络层提供的是:无连接不可靠的数据报服务
4.在TCP/IP体系结构中,直接为ICMP提供服务的协议是:IP
5.在OSI参考模型中,下列功能需由应用层的相邻层实现的是:数据格式转换
-
对话管理属于会话层的功能
-
数据格式转换
-
路由选择属于网络层的功能
-
可靠数据传输属于运输层的功能(对于无线链路,还属于数据链路层的功能)
6.在OSI参考模型中,直接为会话层提供服务的是:传输层
7.通过POP3协议接收邮件时,使用的传输层服务类型是:有连接可靠的数据传输服务
8.
9.假设OSI参考模型的应用层要发送400B的数据(无拆分),除物理层和应用层之外,其他各层在封装PDU时均引入20B的额外开销,则应用层数据传输效率约为:80%
10.下列TCP/IP应用层协议中,可以使用传输层无连接服务的是:DNS
时延相关习题
Obviously分组交换的总时延小于报文交换的总时延
下面详细计算报文交换的总时延和分组交换的总时延
物理层
物理层考虑的是怎样才能在连接各种计算机的传输媒体上传输数据比特流
物理层为数据链路层屏蔽了各种传输媒体的差异,使数据链路层只需要考虑如何完成本层的协议和服务,而不必考虑网络具体的传输媒体是什么
物理层的主要任务:解决比特0和1在线路上传输的问题
WIFI信号属于微波
双绞线是用两根绝缘导线绞合而成的,绞合的主要目的是:减少干扰
如果光纤的直径减小到只有光的一个波长大小,那么光沿直线传播
单工通信(单向通信):只需要一条信道,通信双方只有一个数据传输方向 -- 无线电广播
半双工通信(双向交替通信):需要两条信道,通信双方可以相互传输数据,但不能同时进行 -- 对讲机
全双工通信(双向同时通信):需要两条信道,通信双方可以同时发送和接收信息 -- 电话
2.4 编码与调制
信号需要在信道中传输,信道分为数字信道和模拟信道
把数字基带信号的频率范围搬移到较高的频段,并转换为模拟信号,称为调制,调制后产生的信号是模拟信号
在不改变信号性质的前提下,仅对数字基带信号的波形进行变换,称为编码,编码后产生的信号仍为数字信号
码元:构成信号一段波形
2.5 信道的极限容量
奈氏准则:在假定的理想条件下,为了避免码间串扰,码元传输速率是有上限的
香农公式:带宽受限且有高斯白噪声干扰的信道的极限信息传输速率
在信道带宽一定的情况下,根据上述两公式,要想提高信息的传输速率就必须采用多元制(更好的调制方法)和努力提高信道中的信噪比
自从香农公式发表后,各种新的信号处理和调制方法就不断出现,其目的都是为了尽可能地接近香农公式给出的传输速率极限
第三章 数据链路层
链路:从一个结点到相邻结点的一段物理线路,中间没有任何其他的交换结点
数据链路:把实现通信协议的硬件和软件加到链路上
数据链路层以帧为单位传输和处理数据
数据链路层的三个重要问题:封装成帧,差错检测,可靠传输(使用的是点对点信道的数据链路层来举例的)
3.2 封装成帧
定义:指数据链路层给上层交付的协议数据单元添加帧头和帧尾使之成为帧
- 帧头和帧尾中包含有重要的控制信息
帧头和帧尾的作用之一就是帧定界
透明传输是指数据链路层对上层交付的传输数据没有任何限制,就好像数据链路层不存在一样
-
面向字节的物理链路使用字节填充(或称字符填充)的方法实现透明传输
面向比特的物理链路使用比特填充的方法实现透明传输
为了提高帧的传输速率,应当使帧的数据部分的长度尽可能大些
考虑到差错控制等因素,每一种数据链路层协议都规定了帧的数据部分的长度上限,即最大传送单元MTU
3.3 差错检测
实际的通信链路中,比特在传输过程中可能会产生差错,1变成0,0变成1,这个叫比特差错
一段时间内,传输错误的比特占所传输比特总数的比率称为误码率
使用差错检测码来检测数据在传输过程中是否产生了比特差错,是数据链路层所要解决的重要问题
奇偶校验
在待发送的数据后面添加1位奇偶校验位,使整个数据(包括所添加的校验位在内)中“1”的个数为奇数(奇校验)或偶数(偶校验)
循环冗余校验CRC
- 收发双方约定好一个生成多项式G(x);
- 发送方基于待发送的数据和生成多项式计算出差错检测码(冗余码),将其添加到待传输数据的后面一起传输
- 接收方通过生成多项式来计算收到的数据是否产生了误码
检错码只能检测出帧在传输过程中出现了差错,但并不能定位错误,因此无法纠正错误
要想纠正传输中的差错,可以使用冗余信息更多的纠错码进行前向纠错,但纠错码的开销比较大,在计算机网络中较少使用
循环冗余校验CRC有很好的检错能力(漏检率非常低),虽然计算比较复杂,但非常易于用硬件实现,因此被广泛应用于数据链路层
在计算机网络中通常采用我们后续课程中将要讨论的检错重传方式来纠正传输中的差错,或者仅仅是丢弃检测到差错的帧,这取决于数据链路层向其上层提供的是可靠传输服务还是不可靠传输服务
可靠传输的基本概念
使用差错检测技术(比如CRC),接收方的数据链路层可检测出帧在传输过程中是否产生了误码(比特错误)
数据链路层向上层提供的服务类型
-
不可靠传输服务:仅仅丢弃有误码的帧,其他什么也不做
可靠传输服务:想办法实现发送端发送什么,接收端就收到什么
一般情况下,有线链路的误码率比较低,为减小开销,并不要求数据链路层向上提供可靠传输服务,即使出现了误码,可靠传输的问题由其上层处理
无线链路易受干扰,误码率比较高,因此要求数据链路层必须向上级提供可靠传输服务
比特差错只是传输差错中的一种,整个计算机网络体系结构中,传输差错还包括分组丢失、分组失序以及分组重复
分组丢失、分组失序以及分组重复这些传输差错,一般不会出现在数据链路层,而会出现在其上层
可靠传输服务并不仅局限于数据链路层,其他各层均可选择实现可靠传输
超时计时器设置的重传时间应仔细选择。一般可以将重传时间选为略大于“从发送方到接收方的平均往返时间”
-
在数据链路层点对点的往返时间比较确定, 重传时间比较好设定
然而在运输层,由于端到端往返时间非常不确定,设置合适的重传时间有时并不容易
停止-等待协议信道利用率很低,所以产生了另外两种协议,后退N帧协议GBN和选择重传协议SR
回退N帧协议GBN
选择重传协议
3.3 点对点协议PPP
PPP是目前使用最广泛的点对点数据链路层协议,也广泛应用于广域网路由器之间的专用线路
用户与ISP取得通信时,所使用的数据链路层协议通常就是PPP协议
PPPoE(PPP over Ethernet):他使得ISP可以通过DSL、电路调制解调器、以太网等宽带接入技术,以以太网接口的形式为用户提供接入服务
PPP协议为在点对点链路传输各种协议数据报提供了一个标准方法, 主要由以下三部分构成:
-
对各种协议数据报的封装方法(封装成帧)
链路控制协议LCP 用于建立、配置以及测试数据的连接
一套网络控制协议NCPs 其中的每一个协议支持不同的网络层协议
为实现透明传输,PPP使用的填充方法是:字符填充
3.6.1 媒体接入控制的基本概念
共享信道要着重考虑的一个问题就是如何协调多个发送和接收站点对一个共享传输媒体的占用
即媒体接入控制MAC(medium access control)
3.6.2 信道复用技术
复用就是通过一条物理线路同时传输多路用户的信号
复用是将单一媒体的频带资源划分成很多子信道,这些子信道之间相互独立,互不干扰,从媒体的整体频带资源商看,每个子信道只占用改媒体频带资源的一部分
当网络中传输媒体的传输容量大于多条单一信道传输的总通信量时,可利用复用技术在一条物理线路上建立多条通信信道来充分利用传输媒体的带宽
多址(确切来说是多点接入)处理的是动态分配信道给用户。这在用户仅仅暂时性地占用信道的应用中是必须的,而所有的移动通信系统基本上都属于这种情况。相反,在信道永久性地分配给用户的应用中,多址是不需要的(对于无线广播或电视广播站就是这样)
随机接入
多址接入MA:多个站连接在一条总线上,竞争使用总线
载波监听CS:每一个站在发送帧之前先要检测一下总线上是否有其他站点在发送帧
若检测到总线空闲96比特时间,则发送这个帧
若检测到总线忙,则继续检测并等待总线转为空闲96比特时间,然后发送这个帧
碰撞检测CD:每一个正在发送帧的站边发送边检测碰撞
一旦发现总线上出现碰撞,则立即停止发送,退避一段随机时间之后再次发送
在无线局域网中,仍然可以使用载波监听多址接入CSMA,即在发送帧之前先对传输媒体进行载波监听。若发现有其他站在发送帧,就推迟发送以免发生碰撞
在无线局域网中,不能使用碰撞检测CD
MAC地址
当多个主机连接在同一个广播信道上,要想实现两个主机之间的通信,则每个主机都必须有一个唯一的标识,即一个数据链路层地址
在每个主机发送的帧中必须卸载表示发送主机和接收主机的地址。由于这类地址是用于媒体接入控制MAC,因此这类地址被称为MAC地址
MAC地址一般被固话在网卡(网络适配器)的电可擦可编程只读存储器EEPROM中,因此MAC地址也被称为硬件地址
MAC地址有时也被称为物理地址。但MAC地址不属于网络体系结构中的物理层
不属于物理层接口规范定义范畴的是:物理地址
MAC地址是对网络上各接口的唯一标识,而不是对网络上各设备的唯一标识
IP地址
IP地址是因特网上的主机和路由器所使用的的地址,用于标识两部分信息:
- 网络编号:标识因特网上数以百万计的网络
- 主机编号:标识同一网络上不同主机(或路由器各接口)
之前介绍的MAC地址不具备区分不同网路的功能
-
如果这是一个单独的网络,不接入因特网,可以只使用MAC地址(非一般用户应用方式)
-
如果主机所在的网络要接入因特网,则IP地址和MAC地址都需要使用
路由器只有3层:物理层,链路层,网络层
在数据包的转发过程中,源IP地址和目得IP地址始终保持不变;而源MAC地址和目的MAC地址逐段链路(或逐个网络)改变
ARP协议
ARP只能在一段链路或一个网络上使用,不能跨网络使用
3.8 集线器与交换机的区别
使用集线器的以太网在逻辑上仍是一个总线网,各站共享总线资源,使用的还是CSMA/CD协议
集线器只工作在物理层,它的每个接口仅简单地转发比特,不进行碰撞检测(由各站的网卡检测)
集线器一般都有少量的容错能力和网络管理功能。例如,若网络中某个网卡出了故障,不停地发送帧。此时,集线器可以检测到这个问题,在内部断开与出故障网卡的连线,使整个以太网仍然能正常工作
- 使用集线器HUB在物理层扩展以太网
交换机相比集线器,扩大了广播域,同时可以隔离碰撞域
3.9 以太网交换机自学习和转发帧的流程
以太网交换机工作在数据链路层(也包括物理层)
以太网交换机收到帧后,在帧交换表中查找帧的目的MAC地址所对应的接口号,然后通过该接口转发帧
以太网交换机时一种即插即用设备,刚上电启动时其内部的帧交换表是空的。随着网络中各主机间的通信,以太网交换机通过自学习算法自动逐渐建立起帧交换表
MAC地址与交换机接口的对应关系并不是永久性的
帧交换表中的每条记录都有自己的有效时间,到期删除
PDU(协议数据单元),它是计算机网络体系结构中对等实体间逻辑通信的对象
以太网交换机进行转发决策时使用的PDU地址是:目的物理地址
以太网交换机工作在数据链路层(也包括物理层),它接收并转发的PDU通常称为帧,以太网交换机收到帧后,在帧交换表中查找帧的目的MAC地址所对应的接口号,然后通过该接口转发帧
MAC地址又称为硬件地址或物理地址,物理地址属于数据链路层范畴
3.10 以太网交换机的生成树协议STP
如何提高以太网的可靠性?
- 添加冗余链路可以提高以太网的可靠性
- 冗余链路会带来负面效应,形成网络环路
网络风暴会带来问题:
-
广播风暴:大量消耗网络资源,使得网络无法正常转发其他数据帧,且浪费各主机的CPU资源
-
主机收到重复的广播帧:大量消耗主机资源
-
交换机的帧交换表震荡(漂移)
以太网交换机使用生成树协议STP(Spanning Tree Protocol)可以在增加冗余链路来提高网络可靠性的同时又避免网络环路带来的各种问题
-
不论交换机之间采用怎样的物理连接,交换机都能够自动计算并构建一个逻辑上没有环路的网络,其逻辑拓扑结构必须是树形的
-
最终生成的树型逻辑拓扑要确保连通整个网络
-
当首次连接交换机或物理拓扑发生变化时(有可能是认为改变或故障),交换机都将进行生成树的重新计算
3.11.1 虚拟局域网VLAN概述
使用一个或多个以太网交换机互连起来的交换式以太网,其所有站点都属于同一个广播域
随着交换式以太网规模的扩大,广播域相应扩大
巨大的广播域会带来弊端:广播风暴、难以管理和维护、潜在的安全问题
使用路由器可以隔离广播域,但是路由器的成本高
VLAN:是一种将局域网内的设备划分成与物理位置无关的逻辑组的技术,这些逻辑组具有某些共同的需求
第四章 网络层
4.1 网络层概述
网络层的主要任务是实现网络互联,进而实现数据包在各网络之间的传输
要实现网络层任务,需要解决以下主要问题
-
网络层向运输层提供怎样的服务
-
网络层寻址问题
-
路由选择问题
属于网络层范畴的是:IP
IPv4(采用点分十进制表示方法)
IPv4地址就是给因特网上的每一台主机(或路由器)的每一个接口分配一个在全世界范围内是唯一的32比特的标识符
4.3.2 分类编址的IPv4地址
1.根据地址左起第一个十进制数的值,可以判断出数据类别(小于127的为A类,128191的为B类,192223的为C类);
2.根据网络类别就可找出地址中的网络号部分和主机号部分(A类地址网络号为左起第一个字节,B类地址网络号为左起前两个字节,C类地址网络号为左起前三个字节);
3.以下三种情况的地址不能指派给主机或路由器接口:
(1)A类网络号0和127
(2)主机号为“全0”,这是网络地址
(3)主机号为“全1”,这是广播地址
解析:
0.0.0.0是一个特殊的IPv4地址,只能作为源地址使用,表示“在本网络上的本主机”。封装有DHCP Discovery报文的IP分组的源地址使用0.0.0.0
以127开头且后面三个字节非“全0” 或 “全1” 的IP地址是一类特殊的IPv4地址,既可以作为源地址使用,也可以作为目的地址使用,用于本地软件环回测试,例如常用的环回测试地址127.0.0.1
地址255.255.255.255是一个特殊的IPv4地址,只能作为目的地址使用,表示“只能在本网络上进行广播(个路由器均不转发)”
子网掩码:划分子网的工具
32比特的子网掩码可以表明分类IP地址的主机号部分被借用了几个比特作为子网号
- 子网掩码使用连续的比特1来对应网络号和子网号
- 子网掩码使用连续的比特0来对应主机号
- 将划分子网的IPv4地址与其相应的子网掩码进行逻辑与运算就可得到IPv4地址所在子网的网络地址
默认子网掩码:在未划分子网的情况下使用的子网掩码
A:255.0.0.0
B:255.255.0.0
C:255.255.255.0
4.3.4 无分类编址的IPv4地址
解决IP地址紧张的问题
无分类域间路由选择CIDR
- CIDR消除了传统的A、B、C类地址,以及划分子网的概念
- CIDR可以更加有效地分配IPv4的地址空间,并且可以再新的IPv6使用之前允许因特网的规模继续增长
CIDR使用“斜线记法”,或称CIDR记法。即在IPv4地址后面加上斜线 “ / ”,在斜线后面写上网络前缀所占的比特数量
举例:128.14.35.7/20
网络前缀占用的比特数量:20
主机编号占用的比特数量:32 - 20 = 12
- CIDR实际上是将网络前缀都相同的连续的IP地址组成一个“CIDR地址块”
- 我们只要知道CIDR地址块中的任何一个地址,就可以知道该地址块的全部细节
- 地址块的最小地址
- 地址块的最大地址
- 地址块中的地址数量
- 地址块聚合某类网络(A、B、C类)的数量
- 位置掩码(也可以称为子网掩码)
路由聚合(构造超网)
4.3.5 IPv4地址的应用规划
4.4 IP数据报的发送和转发过程
IP数据报的发送和转发过程包含一下两部分:
- 主机发送IP数据报
- 路由器转发IP数据报
为了将重点放在TCP/IP协议栈的网际层发送和转发IP数据报的过程上,在之后的举例中,我们忽略使用ARP协议来获取目的主机或路由器接口的MAC地址的过程以及以太网交换机自学习和转发帧的过程
中继器和集线器工作在物理层,既不隔离冲突域也不隔离广播域
网桥和交换机(多端口网桥)工作在数据链路层,可以隔离冲突域,不能隔离广播域
路由器工作在网络层,既隔离冲突域,也隔离广播域
静态路由配置及其可能产生的路由环路问题
静态路由配置是指用户或网络管理员使用路由器的相关命令给路由器人工配置路由表
-
配置方式简单,开销小,不能及时适应网络状态(流量、拓扑等)的变化
-
一般只在小规模网络中采用
-
使用静态路由配置可能出现以下导致产生路由环路的错误
- 配置错误
- 聚合了不存在的网络
- 网络故障
路由条目的类型
- 直连网络
- 静态路由(人工配置)
- 动态路由(路由选择协议)
特殊的静态路由条目
- 默认路由(目的网络为0.0.0.0,地址掩码为0.0.0.0)
- 特定主机路由(目的网络为特定主机的IP地址,地址掩码为255.255.255.255)
- 黑洞路由(下一跳为null0)
4.6.1 路由选择协议概述
特点:
- 自适应:动态路由选择,能较好地适应网络状态的变化
- 分布式:路由器之间交换路由信息
- 分层次:将整个因特网划分为许多较小的自治系统AS(Autonomous System)
路由器是一个具有多个输入和输出端口的专用计算机,其任务是转发分组
路由选择处理机:根据所使用的路由选择协议,周期性地与其他路由器进行路由信息的交互来更新路由表
路由表一般仅包含从目的网络到下一跳的映射
路由表需要对网络拓扑变化的计算最优化
转发表是从路由表得出的
转发表的结构应当使查找过程最优化
4.6.2 路由信息协议RIP的基本工作原理
RIP认为好的路由就是 距离短的路由,也就是所通过路由器数量最少的路由
当到达同一目的网络有多条“距离相等”的路由时,可以进行等价负载均衡
RIP包含以下三个要点
-
和谁交换信息 仅和相邻路由器交换信息
-
交换什么信息 自己的路由表
-
何时交换信息 周期性交换(例如每30s)
在RIP协议中,距离16表明目的网络不可达
RIP存在“坏消息传播得慢”的问题:又叫路由环路或距离无穷计数问题,这是距离向量算法的一个固有问题,可以采取多种措施减少出现该问题的概率或减小该问题带来的危害
可采取的措施:
- 限制最大路径距离为15
- 当路由表发生变化时就立即发送更新报文(触发更新),而不仅是周期性发送
- 让路由器记录收到某特定路由信息的接口,而不让同一路由信息在通过此接口向反方向传送(水平分割)
4.6.3 开放最短路径优先OSPF的基本工作原理
为克服RIP的缺点在1989年开发出来的
- 开放表明不受厂商控制,而是公开发表
- 最短路径优先是使用了最短路径算法SPF
OSPF是基于链路状态的,RIP是基于距离向量的
OSPF采用SPF算法计算路由,从算法上保证了不会产生路由环路
OSPF不限制网络规模,更新效率高,收敛速度快
链路状态是指本路由器都和哪些路由器相邻,以及相应链路的“代价”
4.7 IPv4数据报的首部格式
4.8 网际控制报文协议ICMP
为了更有效地转发IP数据报和提高交付成功的机会,在网际层使用了网际控制报文协议ICMP
主机或路由器使用ICMP来发送差错报告报文和询问报文
4.9 虚拟专用网VPN(Virtual Private Network)
利用公用的因特网作为本机构各专用网之间的通信载体,这样的专用网又称为虚拟专用网。由于IPv4地址的紧缺,一个机构能够申请到的IPv4地址数量往往远小于本机构所拥有的的主机数量。因此,虚拟专用网中的各主机所分配的地址应该是本机构可自由分配的专用地址,而不是需要申请的、在因特网上使用的共有地址
私有地址只能用作本地地址,不能用作全球地址
第五章 运输层
运输层的任务:为运行在不同主机上的应用进程提供直接的通信服务
运输层协议又称为端到端协议
运输层向高层用户屏蔽了下面网络核心的细节,它使应用进程看见的就好像是在两个运输层实体之间有一条端到端的逻辑通信信道
根据应用需求的不同,因特网的运输层为应用层提供了两种不同的运输协议,即面向连接的TCP和无连接的UDP,这两种协议就是本章要讨论的主要内容
5.2 运输层端口号、复用、分用的概念
运输层使用端口号来区分不同的应用进程
运行在计算机上的进程使用进程标识符PID来标志,不同的操作系统使用不同格式的进程标识符
为了使运行不同操作系统的计算机的应用进程之间能够进行网络通信,必须使用统一的方法对TCP/IP体系的应用进程进行标识
TCP/IP体系的运输层使用端口号来区分应用层的不同应用进程
- 端口号使用16比特表示,取值范围0~65535
- FTP使用21/20,HTTP使用80,DNS使用53
- 微软远程桌面使用的端口是3389
- 留给客户进程选择暂时使用。当服务器进程收到客户进程的报文时,就知道了客户进程所使用的的动态端口号。通信结束后,这个端口号可供其他客户进程以后使用
端口号只具有本地意义,即端口号只是为了标识本计算机应用层中的各进程,在因特网中,不同计算机中的相同端口号是没有联系的
复用、分用
发送方的复用和接收方的分用
5.3 UDP和TCP的对比
二者是TCP/IP体系结构运输层中的两个重要协议
UDP:用户数据报协议
使用UDP协议的通信双方可以随时发送数据
使用TCP协议的通信双方在进行数据传输之前,必须使用“三报文握手”来建立TCP连接,连接建立成功后才能进行数据传输,数据传输结束后,必须使用”四报文挥手“来释放TCP连接
UDP支持单播、多播以及广播
TCP仅支持单播
UDP向上层提供无连接不可靠传输服务(适用于IP电话、视频会议等实时应用)
TCP向上层提供面向连接的可靠传输服务(适用于要求可靠传输的应用,例如文件传输)
5.4 TCP的流量控制
让发送方的发送速率不要太快,要让接收方来得及接收
利用滑动窗口机制可以很方便地在TCP连接上实现对发送方的流量控制
5.5 TCP拥塞控制
若在某段时间内,对网络中某一资源的需求超过了该资源所能提供的可用部分,网络性能就要变坏,这种情况就叫做拥塞
- 在计算机网络中的链路容量(即带宽)、交换结点中的缓存和处理机等,都是网络的资源
若出现拥塞而不进行控制,整个网络的吞吐量将随输入负荷的增大而下降
TCP四种拥塞控制算法的基本原理
慢开始、拥塞避免、快重传、快恢复
慢开始指一开始向网络注入的报文段少
拥塞避免指在拥塞避免阶段将拥塞窗口控制为按线性规律增长,使网络比较不容易出现拥塞
采用快重传算法可以让发送方尽早知道发生了个别报文段的丢失
快重传就是使发送方尽快进行重传,而不是等超时重传计时器超时再重传
-
要求接收方不要等待自己发送数据时才进行捎带确认,而是要立即发送确认
-
即使收到了失序的报文段也要立即发出对已收到的报文段的重复确认
-
发送方一旦收到3个连续的重复确认,就讲相应的报文段立即重传,而不是等该报文段的超时重传计时器超时再重传
-
对于个别丢失的报文段,发送方不会出现超时重传,也就不会误以为出现了拥塞,使用快重传可以使整个网络的吞吐量提高约20%
-
发送方一旦收到3个重复确认,就知道现在只是丢失了个别的报文段,于是不启动慢开始算法,而执行快恢复算法;
5.6 TCP超时重传时间的选择
超时重传时间的选择是TCP最复杂的问题之一
不能直接使用某次测量得到的RTT样本来计算超时重传时间RTO
利用每次测量得到的RTT样本,计算加权平均往返时间RTTs(又称为平滑的往返时间)
出现超时重传时,新RTO = 2 * 旧RTO
5.7 TCP可靠传输的实现
- TCP基于以字节为单位的滑动窗口来实现可靠传输
第六章 应用层
6.1 应用层概述
C/S方式
- 客户和服务器指通信中所涉及的两个应用进程
- 客户/服务器方式所描述的是进程之间服务和被服务的关系
- 客户是服务请求方,服务器是服务提供方
- 服务器总是处于运行状态,并等待客户的服务请求。服务器具有固定端口号(例如HTTP服务器的默认端口号为80),而运行服务器的主机也具有固定IP地址
- 基于C/S方式的应用服务通常是服务集中型的,即应用服务集中在服务器计算机上
- 由于一台服务器计算机要为多个客户机提供服务,在C/S应用中,常会出现服务器计算机跟不上众多客户机请求的情况
- 为此,在C/S应用中,常用计算机群集(或服务器场)构建一个强大的虚拟服务器
对等(P2P)方式
-
在P2P方式中,没有固定的服务请求者和服务提供者,分布在网络边缘各端系统中的应用进程是对等的,被称为对等方。对等方相互之间直接通信,每个对等方既是服务的请求者,又是服务的提供者
-
基于P2P的应用是服务分散型的,P2P方式的最突出特性之一就是它的可扩展性
6.3 动态主机配置协议DHCP
DHCP发现报文:封装有事物ID和DHCP客户端的MAC地址即可
6.4 域名系统DNS(Domain Name System)
域名和IP地址的映射关系必须保存在域名服务器中 供所有其他应用查询。显然不能将所有信息都储存在一台域名服务器中,DNS使用分布在各地的域名服务器来实现域名到IP地址的转换
域名解析的过程
- 递归查询
- 迭代查询
由于递归查询对于被查询的域名服务器负担太大,通常采用以下模式:从请求主机到本地域名服务器的查询是递归查询,而其余的查询是迭代查询
DNS报文使用运输层的UDP协议进行封装
6.5 文件传送协议FTP
是因特网上使用得最广泛的文件传送协议
- FTP提供交互式的访问,允许客户指明文件的类型与格式,并允许文件具有存取权限(如访问文件的用户必须经过授权,并输入有效的口令)
FTP的基本工作原理
FTP客户和服务器之间要建立以下两个并行的TCP连接:
- 一个是控制连接,在整个会话期间一直保持打开,用于传送FTP相关控制命令
- 另一个是数据连接,用于文件传输,在每次文件传输时才建立,传输结束就关闭
默认情况下,FTP使用TCP 21端口进行控制连接,TCP 20端口进行数据连接
但是,是否使用TCP 20端口建立数据连接与传输模式有关,主动方式使用TCP 20端口,被动方式由服务器和客户端自行协商决定
Cookie:一种对无状态的HTTP进行状态化的技术
万维网缓存与代理服务器
-
在万维网中还可以使用缓存机制以提高万维网的效率
-
万维网缓存又称为Web缓存,可位于客户机,也可位于中间系统上,位于中间系统上的Web缓存又称为代理服务器
-
Web缓存把最近的一些请求和相应暂存在本地磁盘中。当新请求到达时,若发现这个请求与暂时存放的请求相同,就返回暂存的响应,而不需要按URL的地址再次去因特网访问该资源