计算机网络
模型各层协议
网络层:
IP协议
路由选择协议:
- RIP,内部网关
- OSPF,内部网关
- BGP,外部网关
ICMP协议
IGMP协议
ARP协议
传输层:
- TCP协议,可靠传输
- UDP协议,不可靠传输
应用层:
- http协议,https协议
- ftp协议
- DNS协议
- SMTP协议,发邮件
- POP3协议,收邮件
- RDP协议,远程桌面
计算机网络概述
计算机网络的重要功能:
- 连通性 –彼此连通,交换信息
- 共享 –信息共享、软硬件共享
Internet概述
网络:由多个计算机连接同一个交换机所形成的局域网称为网络
互联网(internet):由许多网络连接同一个路由器所形成的网称为互联网
因特网(Internet):全球最大的一个互联网,使用TCP/IP协议
ISP:互联网运营商
因特网的组成
因特网边缘部分:
主机之间的通信方式
:
- 客户端服务器方式(Client/Server方式 –C/S)
- 对等(Peer-to-Peer方式 –P2P)方式
因特网的核心:
数据交换方式
:
电路交换(Circuit Switching)
报文交换(Message Switching)
将内容全部发送
缺点:时延最长,报文内容长
分组交换(Packet Switching)
将发送内容分组发送,然后能够并发发送,就是A设备发送第二个包时,B设备就能向C设备发送第一个包。
优点:高效、灵活、迅速、可靠
缺点:时延较长、开销大
计算机网络的类别
计算机网络最简单的定义:一些互相连接的、自治的计算机的集合
根据作用范围分类:
- 广域网(WAN)
- 城域网(MAN)
- 局域网(LAN)
- 个人区域网(PAN)
注:不单单从网络覆盖范围区分局域网和广域网,如果使用局域网技术就称为局域网,使用了广域网技术就称为广域网。
根据使用者分类:
- 公用网(Public Network)
- 专用网(Private Network)
根据拓扑排序分类:
- 总线型
- 环型
- 星型
- 树型
- 网型
根据交换类型分类:
- 电路交换网
- 报文交换网
- 分组交换网
根据工作方式分类:
- 资源子网
- 通信子网
- 接入网
计算机网络的性能
计算机网络性能指标:
注:数据的发送速率不是比特在链路上的传播速率
速率
:连接在计算机网络上的主机在数字信道上传送数据位数的速率,单位是b/s,kb/s,Mb/s,Gb/s。数据量/信息量的单位带宽
:①频域称谓,赫兹Hz,信号具有的频带宽度;②时域称谓,比特每秒(b/s),通信线路的最高数据率;两者本质一样,宽度越大,传输速率自然越高;吞吐量
:单位时间内通过某个网络(或信道、接口)的数据量。受网络的带宽或网络的额定速率的限制。单位b/s,Mb/s等时延
:- 发送时延,发送时延=数据块长度(比特)/信道带宽(比特/s)
- 传播时延,传播时延=信道长度(米)/信号在信道上的传播速率(米/秒)
- 处理时延,网络节点存储转发处理时间(交换结点为存储转发而进行一些必要的处理所花费的时间)
- 排队时延,结点缓存队列中分组排队所经历的时延。(取决于当时的通信量);
时延带宽积
:时延带宽积(体积)=传播时延(长)*带宽(截面积),以比特为单位的链路长度;往返时间
:简单来说,就是两倍传播时延(实际上还包括处理时延,排队时延,转发时的发送时延);利用率
:- 信道利用率:有数据通过时间/(有+无)数据通过时间
- 网络利用率:信道利用率的加权平均值,D=D0/(1-U),D0表示网络空闲时的时延,D表示网络当前的时延,U表示信道利用率。因此利用率不是越高越好。减少方法:增大线路的带宽。
计算机网络非性能指标:
- 费用
- 质量
- 标准化
- 可靠性
- 可扩展性
- 可升级性
- 管理与维护
计算机网络的体系结构
基本概念:
- ISO:国际化标准化组织
- OSI/RM:互联网法律上的国际标准,开放系统互连参考模型,分7层
- TCP/IP:因特网事实上的国际标准
- 协议(Network Protocols):数据交换遵守的规则、标准或约定。三要素:语法(结构和格式)、语义(动作)、同步(顺序)
- 网络体系结构:计算机网络各层及其协议的集合
分层好处:
- 有利于标准化
- 各层之间是独立的,互不影响
- 灵活性好
- 结构上可分割开
- 易实现和维护
OSI七层模型:
应用层
(Application):应用层通过各种协议(FTP——文件传输协议;HTTP/S——网上冲浪协议;SMTP——邮件传输协议;Telnet——与虚拟端之间的通信协议),为用户正在运行的程序提供服务。表示层
(Presentation):表示层会将从应用层接收的数据进行加密,压缩操作。会话层
(Session):会话层用于建立和管理连接、启用、发送和连接数据,来建立服务端和客户端会话。在Windows中可以在命令行输入netstat -nb可以查看电脑的会话信息传输层
(Transport):通过网络连接传输数据,涉及流量控制(Flow Control)、差错控制(Error Control)、面向连接(TCP,分段数据传输建立会话,可靠传输)和无连接(UDP,不建立会话传输,不可靠传输)的传输网络层
(Network):用于将接收到的数据段从一台计算机传输到不同网络中的另一台计算机,功能是进行逻辑寻址(也就是寻找ip,分配ip操作)、路由(Rout)和路径确定(最佳路径选择),负责分组交换网上的不同主机提供通信服务(IP)。数据链路层
(Data Link):将网络层交下来的IP数据通过报组装成帧,在两个相邻节点(主机和路由器之间或路由器之间)间的链路上“透明”地传送帧中的数据。两种寻址方式:逻辑寻址和物理寻址。逻辑寻址在网络层已经完成,即在数据段(Segment)中添加了发送方和接收方的IP地址,以形成IP数据包。而物理寻址就是在数据链路层中完成的,其方法就是在IP数据包中添加发送方计算机和接收方计算机的物理地址:MAC,从而形成一个数据帧。物理层
(Physical):透明地传送比特流(双绞线、同轴电缆等不在物理层)。
OSI/TCP五层网络模型:
应用层
:为用户正在运行的程序提供服务;(HTTP,SMTP,FTP);传输层
:负责进程之间的通信提供服务(TCP报文段,UDP用户数据包)(复用和分用);网络层
:负责分组交换网上的不同主句提供通信服务(IP);数据链路层
:将网络层交下来的IP数据报组装成帧,在两个相邻节点(主机和路由器之间或路由器之间)间的链路上“透明”地传送帧中的数据;物理层
:透明地传送比特流(双绞线、同轴电缆等不在物理层)。
网络排错:
从底层到高层逐一排查,先排查物理层,网线是否有插,接口是否接对,继而到网络层,查看ip地址是否正确,到应用层,浏览器是否被安装恶意插件,还不行就重装系统。
实体、协议与服务之间的关系
实体
(entity):交换信息的硬件或软件进程协议
(protocol):控制两个对等实体通信的规则服务
(service):下层向上层提供服务,上层需要使用下层提供的服务来实现本层的功能服务访问点
(SAP):相邻两层实体间交换信息的地方。
物理层
物理层基本概念
物理层解决如何在连接各种计算机的传输媒体上传输数据比特流而不是指具体的传输媒体
主要任务:确定与传输媒体的接口的一些特性
特性:
机械特性
:例接口形状,大小,引线数目电气特性
:例规定电压范围(-5V到+5V)功能特性
:例规定-5V表示0,+5V表示1过程特性
:也称规程特性,规定建立连接时各个相关部件的工作步骤
数据通信的基础知识
数据通信系统分为:
源系统
(或发送端、发送方)源系统分为:
- 源点:源点设备产生要传输的数据。
- 发送器:通常源点产生的数字比特流要通过发送器编码后才能在传输系统中进行传输。
传输系统
(或传输网络)目的系统
(或接收端、接收方)目的系统分为:
- 接收器:接收传输系统传送过来的信号,并把它转换为能够被目的设备处理的信息。
- 终点:终点设备从接收器获取传送来的数字比特流,然后把信息输出。
相关术语:
- 通信的目的是传送信息。
- 数据(data) —运送消息的实体。
- 信号(signal) —数据的电气的或电磁的表现。
- “模拟信号” —代表信息的参数的取值是连续的。
- “数字信号” —代表信息的参数的取值是离散的。
- 码元(code) —在使用时间域的波形表示数字信号时,则代表不同离散数值的基本波形就成为码元
- 在数字通信中常常用时间间隔相同的符号来表示一个二进制数字,这样的时间间隔内的信号称为二进制码元。而这个间隔被称为码元长度。1码元可以携带n(bit)的信息量
信道:
概念:一般表示向一个方向传送消息的媒体。所以咱们说平常的通信线路往往包含一条发送信息的信道和一条接收信息的信道。
单向通信
(单工通信):只能有一个方向的通信而没有反方向的交互。双向交替通信
(半双工通信):通信的双方都可以发送信息,但不能双方同时发送(也不能同时接收)双向同时通信
(全双工通信):通信的双方可以同时发送和接收信息。基带信号
(基本频带信号):来自信源的信号,对于传输距离较劲时,计算机网络采用基带传输方式。为使信道能够传输低频分量和直流分量,需要进行调制带通信号
:基带信号经过载波调制而成,把信号的频率范围搬移到较高的频段以便在信道中传输(即仅在一段频率范围内能够通过信道)
基本调制方法
调幅(AM)
:载波的振幅随基带数字信号而变化调频(FM)
:载波的频率随基带数字信号而变化调相(PM)
:载波的初始相位随基带数字信号而变化
信道的极限容量:
因素:
最高码元传输速率
:如果信道中的码元传输速率超过码元速率的上限值,则会出现码元串扰的问题,使接收端对码元的判决(识别)成为不可能。—可以通过加宽频带来解决。
- 奈式准则:理想低通信道的最高码元传输速率=2WBaud(W是理想低通信道的带宽,单位为Hz,Baud是波特,是码元传输速率的单位)
- 如果一个码元含有3个Bit信息量,则1波特=3Bit/s
信噪比
:信号的平均功率和噪声的平均功率之比,信道的带宽或信道中信噪比越大,则信息的极限传输速率就越高。香农公式:
极限信息传输速率C = W log2(1+S/N) b/s ;
W为信道的带宽(以Hz为单位),S为信道内所传信号的平均功率,N为信道内部的高斯噪声功率
低于C即可实现无差错传输,让每个码元携带更多比特的信息量;
传输媒体
导向传输媒体:
导向传输媒体中,电磁波沿着固体媒体传播
双绞线
:衰减随着频率的升高而增大- 屏蔽双绞线STP,加强抗电磁干扰能力
- 无屏蔽双绞线UTP
同轴电缆
:用于传输较高速率的数据- 50Ω同轴电缆,用于数字传输,由于多用于基带传输,也叫基带同轴电缆
- 75Ω同轴电缆,用于模拟传输,即宽带同轴电缆。
光缆
:多模光纤(可以传多个光的波长),单模光纤(光纤直径下只有一个光的波长)
非导向传输媒体:
非导向传输媒体就是指自由空间,其中电磁波传输被称为无线传输
短波通信
:靠电离层的反射,通信质量较差微波通信
:主要为直线传播- 地面微波接力通信(中继站)
- 卫星通信,有较大的传播时延
集线器:
在网络中起到信号放大和重发作用,其目的扩大网络的传输范围,而不具备信号的定向传送能力,最大传输距离100米,集线器连的网络不安全,集线器的信道是半双工通信。
信道复用技术
频分复用FDM:
- 用户在分配到一定的频带后,在通信过程中自始自终都占用这个频带。
- 所有用户在同样的时间占用不同的带宽资源
- 注意:这里的带宽是频带带宽而不是数据的发送速率
时分复用TDM:
- 将时间划分为一段段等长的时分复用帧(TDM帧)。每一个时分复用的用户在每一个TDM帧中占用固定序号的时隙。
- 每一个用户所占用的时隙是周期性地出现(其周期就是TDM帧的长度对应的时间)。TDM信号也称为等时信号。
- 所有用户是在不同时间占用同样的频带宽度。–更有利于数字信号的传输
- 时分复用可能会造成线路资源网的浪费
统计时分复用STDM:
- 在时分复用的基础上,将各信道传输的数据不再按照将TDM帧中平分各段给各信道。
- 动态分配时隙。不再有序,而是哪个信道数据先到就先加入到传输的数据块中,并给该数据块加上标记,来告诉接收端这是哪个发送端的数据。
- 通过分析标记将个数据放到对应发送端编号的接收端。
码分复用CDM:
也叫码分多址(CDMA)
- 各用户使用不同的码型
- 每个比特时间划分为m个短的间隔,称为码片
- 每个站分配的码片序列不仅必须各不相同,并且还**必须互相正交(orthogonal)**(相乘为0,0为-1)。在实用的系统中是使用伪随机码序列。
- 任何一个码片向量和该码片向量自己的规格化内积都是1 ;
- 任何一个码片向量和该码片反码的向量自己的规格化内积都是-1 ;
- 任何一个码片向量和其他码片向量的规格化内积都是0;
宽带接入技术
ADSL(非对称数字用户线)技术
- ADSL 技术把 0 ~ 4 kHz 低端频谱留给传统电话使用,而把原来没有被利用的高端频谱留给用户上网使用。
- 上行和下行带宽不对称。(下载各种文档,而向互联网发送的信息量一般都不太大,因此 ADSL 的下行(从 ISP 到用户)带宽都远远大于上行(从用户到 ISP)带宽。)
- ADSL 的传输距离取决于数据率和用户线的线径(用户线越细,信号传输时的衰减就越大)
- ADSL在用户线两端各安装一个ADSL调制解调器,使用的是离散多音调DMT调制技术(该技术采用频分复用的方法)
光纤同轴混合网HFC
- 基于有线电视网CATV网(树型拓扑结构,模拟技术的频分复用)改造的一种居民宽带接入网
- 使用光纤模拟技术,采用光的振幅调制AM;
- 节点体系结构——模拟光纤连接,构成星形网;提高网络的可靠性,简化了上行信道的设计;
- 比CATV网更宽的频谱,且具有双向传输功能;
数据链路层
基本概念
数据链路层使用信道主要有两种:
点对点信道
,一对一通信广播信道
,一对多通信
链路:是一条点到点的物理线路段,中间没有任何其他节点。
一条链路只是一条通路的一个组成部分
数据链路:除了物理链路外,还必须有通信协议来控制这些数据的传输。把实现这些协议的硬件和软件加到链路上,就构成了数据链路
- 现最常用的方法是使用适配器(网卡)来实现这些协议的硬件和软件
- 一般的适配器都包括了数据链路层和物理层这两层功能
帧:协议数据单元,数据链路层之间传输的数据单位。
三个基本问题
封装成帧
:加上首部和尾部进行帧定界透明传输
:字节填充,加上转义字符ESC(1B)差错控制
:循环冗余检验CRC。CRC操作:
- 将数据段的二进制后填充若干个0(冗余码)
- 随机选择位数大于填充0数的二进制作为除数P
- 对填充后的数据当作被除数,对每位二进制做逻辑与运算
- 将第一段计算完后,继续将算出的结果加上数据剩余部分作为被除数,如果不够除,除数可以为若干个0作为除数。
- 将最后得出的余数作为冗余码(FCS帧检验序列),替代之前填充的0,然后再除以除数P,结果得到的余数为0即为无差错
CRC只是一种无比特差错(如果数据比特差错,则会丢包),而不是无传输差错(不丢包)的检测机制
可靠传输:即发送什么就收到什么,就必须再加上帧编号、确认和重传机制。
点对点协议(PPP)
目前使用得最广泛的数据链路层协议
特点
简单
—首要要求封装成帧
,必须规定特殊的字符作为帧定界符透明性
,必须保证数据传输的透明性多种网络层协议
(IP、IPX)多种类型链路
(串并,同异,高低,电光,动静)差错检测
(立即丢弃有差错的帧)检测连接状态
(短时间自动检测)最大传送单元
(数据部分的最大长度)网络层地址协商
,必须提供一种机制使通信的两个网络层实体能够通过协商知道或能够配置彼此的网络层地址数据压缩协商
,必须提供一种方法来协商使用数据压缩算法,不要求标准化。
不需要功能:
- 纠错(不可靠传输)
- 流量控制(由TCP负责)
- 序号(不是可靠传输,在无线时可用)
- 多点线路(不支持一主对多从)
- 半双工或单工链路(只支持全双工)
组成
- 一个将IP数据报封装到串行链路的方法
- 一个用来建立、配置和测试数据链路连接的链路控制协议LCP(Link Control Protocol)
- 一套网络控制协议NCP(Network Control Protocol)
PPP协议帧格式
- PPP帧的首部和尾部分别为4个字段和两个字段
- 标志字段F=0x7E(符号’0x’表示后面的字符是用16进制表示,16进制的7E的二进制表示为01111110)
- 地址字段A只置为0xFF。不起作用
- 控制字段C通常置为0x03
- PPP是面向字节的,所有的PPP帧的长度都是整数字节
协议字段解释信息部分的内容
实现透明传输操作:
传输字节信息
:字节填充:
- 0x7E字节为首字节和尾字节
- 如果信息字段出现0x7E,就将每个信息字段中每个0x7E字节(也就是首字节和尾字节)转变成2字节序列(0x7D,0x5E)
- 若信息字段中出现一个0x7D字节,则将其转变成为2字节序列(0x7D,0x5D)
- 若信息字段中出现ASCII码的控制字符(即数值小于0x20的字符),则在该字符前面要加入一个0x7D字节,同时将该字符的编码加以改变
传输比特流数据
(PPP协议用在SONET/SDH链路时,使用同步传输连串的比特连续传送):零比特填充:
- 在发送端,只要发现有5个连续的1,则立即在第五个1的后面插入一个0。
- 在接收端,对帧中的比特流进行扫描,每当发现5个连续的1时,就将第五个1的后面的一个0删除
PPP协议的工作状态
链路建立过程:
物理链路→LCP链路→鉴别的LCP链路(PAP)→NCP链路(IP协议对应IPCP)
局域网
特点:局域网为一个单位所拥有,且地理范围和站点数目均有限
局域网的拓扑:星形网、环形网(令牌环形)、总线网(CSMA/CD和令牌传递)、树形网(频分复用的宽带局域网)
优点
具有广播功能
,从一个站点可很方便地访问全网。局域网上的主机可共享连接到局域网上的各种硬件和软件资源便于系统的扩展
和逐渐地演变,各设备的位置可灵活调整和改变提高了系统的可靠性、可用性和生存性
共享通信媒体:
静态划分信道
- 频分复用
- 时分复用
- 波分复用
- 码分复用
动态媒体接入控制(多点接入)
- 随机接入(主要被以太网采用)
- 受控接入,如多点线路探询,或轮询。(目前已不被采用)
载波监听多点接入/碰撞检测(CSMA/CD)协议
以太网所使用的通信协议,是半双工通信
多点接入
:表示许多计算机以多点接入的方式连接在一根总线上(总线型网络)
载波监听
:指每一个站在发送数据之前先要检测一下总线上是否有其他计算机在发送数据,如果有,则暂时不要发送数据,以免发生碰撞
碰撞检测
:
碰撞就是多个计算机发送数据,信道上的各信号电压相遇,导致信号电压叠加,造成干扰。
碰撞检测就是计算机边发送数据边检测信道上的信号电压大小。
- 当几个站同时在总线上发送数据时,总线上的信号电压摆动值将会增大(互相叠加)
- 当一个站检测到的信号电压摆动值超过一定的门限值时,就认为总线上至少有两个站同时在发送数据,表明发生了碰撞。
检测到碰撞后
- 在发生碰撞时,总线上传输的信号产生了严重的失真,无法从中恢复除有用的信息来
- 每一个正在发送数据的站,一旦发现总线上出现了碰撞,就要立即停止发送,免得继续浪费网络资源,然后等待一段随机时间后再次发送
**争用期(碰撞窗口)**:
- 最先发送数据帧的站,在发送数据帧后至多经过2τ(tao)(两倍的端到端往返时延)
- 以太网的争用期,通常取51.2μs为争用期的长度
- 对于10Mb/s以太网,在争用期内可发送512bit,也就是64字节。
- 以太网在发送数据时,若前64字节未发生冲突,则后续的数据就不会发生冲突
使用截断二进制指数退避(动态退避)
最短有效帧长:
- 以太网规定了最短有效帧长为64字节,凡长度小于64字节的帧都是由于冲突而异常终止的无效帧
- 如果发生冲突,就一定是在发送的前64字节之内
二进制指数类型退避算法:
概念
:发生碰撞的站在停止发送数据后,需要推迟(退避)一个随机时间才能再发送数据
步骤
:
- 确定基本退避时间,一般是取为争用期2τ
- 定义参数k,k=Min[重传次数,10]
- 从整数集合[0,1,…,(2k-1)]中随机地抽取一个数,记为r,重传所需的时延就是r倍的基本退避时间
- 当重传达16次仍不能成功时即丢弃该帧,并向高层报告
以太网的信道利用率
信道占用期:帧长为L(bit),数据发送速率为C(b/s),帧的发送时间为T0(s)=L/C
发送一帧所需时间为:一个帧从开始发送,经可能发生的碰撞后,将再重传数次,到发送成功且信道转为空闲(即再经过时间τ使得信道上无信号在传播)时为止。
参数a
:a=τ/T0- 要提高以太网的信道利用率,就必须减小τ与T0之比。在以太网中定义了参数a,它是以太网单程端到端时延τ与帧的发送时间T0之比
- a->0表示一发生碰撞就立即可以检测出来,并立即停止发送,因而信道利用率很高
- a越大,表明争用期所占的比例增大,每发生一次碰撞就浪费许多信道资源,使得信道利用率明显降低
参数要求
:1、当数据率一定时,以太网的连线的长度受到限制,否则τ的数值会太大。2、以太网的帧长不能太短,否则T0的值会太小,使a值太大极限信道利用率
:也就是信道利用率的最大值,**Smax=1/(1+a)**,极限信道率产生在理想化的情况下,要求以太网各站发送数据都不会发生碰撞
MAC层
概念:
- 在局域网中,硬件地址又称为物理地址,或MAC地址,MAC地址是全球唯一的,由48位二进制组成,前24位为生产厂商编号,后24位为厂商自己编排。
- 名字指出我们所要寻找的那个资源,地址指出那个资源在何处,路由告诉我们如何到达该处;
适配器检测MAC地址
适配器从网络上每收到一个MAC帧就首先用硬件检查MAC帧中的MAC地址
- 如果发往本站的帧就收下,然后再进行其他的处理
- 否则就将此帧丢弃,不再进行其他处理
发往本站的帧包括以下三种帧:
单播帧
(一对一)广播帧
(一对全体)多播帧
(一对多)
MAC帧:
- 最常用的MAC帧是以太网V2的格式
- 利用曼切斯特编码来确定以太网帧的结束位置
- 数据字段的长度不再46
1500字节之间,且MAC帧长度不在641518字节之间,帧的长度不是整数个字节,用收到的帧检验序列FCS查出有差错的都是无效MAC帧 - 帧间最小间隔为9.6μs,相当于96bit的发送时间
扩展以太网
物理层扩展:
集线器扩展局域网
优点:
- 使原来属于不同碰撞域的局域网上的计算机能够进行跨碰撞域的通信
- 扩大了局域网覆盖的地理范围
缺点:
- 碰撞域增大了,但总的吞吐量并未提高
- 如果不同的碰撞域使用不同的数据率,那么就不能用集线器将它互连起来
数据链路层扩展:
网桥扩展
:具有过滤帧的功能,它会根据MAC帧的目的地址对收到的帧进行转发(存储转发)当网桥收到一个帧时,并不是向所有的接口转发此帧,而是先检查次帧的目的MAC地址,然后再确定将该帧转发到哪个接口
网桥(使用自学习算法)开始也不能识别收到的MAC地址是哪个网段的,但是随着其他端口不断地向其他端口发送数据,网段就会记录哪些MAC地址在哪个接口那边,这样就实现了不是向所有的接口转发帧
优点:
过滤通信量
(隔离开碰撞域)扩大了物理范围
(增大工作站的数目)提高了可靠性
(出现故障只影响个别网段)可互联不同物理层、不同MAC子层和不同速率的局域网
(如10Mb/s和100Mb/s以太网)
缺点:
存储转发增加了时延
在MAC子层并没有流量控制功能
具有不同MAC子层的网段桥接在一起时时延更大
- 网桥只适合于用户数不太多(不超过几百个)和通信量不太大的局域网,否则有时还会
因传播过多的广播信息而产生网络拥塞
。这就是所谓的广播风暴
透明网桥:
- 目前使用最多的网桥
- “透明”是指局域网上的站点并不知道所发送的帧将经过哪几个网桥,因为网桥对各站来说是看不见的。
- 透明网是一种即插即用设备
- 使用生成树算法—任何两个站之间只有一个路径
自学习算法:网桥通过该算法处理收到的帧和建立转发表
- 若从A发出的帧从接口x进入了某网桥,那么从这个接口出发沿相反方向一定可把一个帧传送A。
- 网桥每收到一个帧,就记下其源地址和进入网桥的接口,作为转发表中的一个项目
- 在建立转发表时是把帧首部中的源地址写在”地址”这一栏的下面。
- 在转发帧时,则是根据收到的帧首部中的目的地址来转发的。这时就把在”地址”栏下面已经记下的源地址当作目的地址,而把记下的进入接口当作转发接口。
以太网交换机(多接口网桥)
概念:以太网交换机是一个多端口的网桥,它工作在数据链路层,交换机能经济地将网络分成小的冲突域,为每个工作站提供更高的带宽
特点:
全双工通信
独占通信媒体,无碰撞地传输数据
- 通信方式:有
存储转发
,也有直通
(不检查差错,但提高速率减少时延)
虚拟局域网(VLAN)
概念:虚拟局域网VLAN是由一些局域网网段构成的与物理位置无关的逻辑组
- 同一VLAN的成员可以收到其他成员的广播信息
好处:
- 分段
- 灵活性
- 安全性
高速以太网:速率达到或超过100Mb/s的以太网
快速以太网:在双绞线上传送100Mb/s基带信号的星型拓扑以太网,仍使用IEEE 802.3CSMA/CD协议。100BASE-T以太网。
100BASE-T以太网的物理层:
- 100BASE-TX:使用两对UTP 5类线或屏蔽双绞线STP
- 100BASE-FX:使用两对光纤
- 100BASE-T4:使用4对UTP 3类线或5类线
吉比特以太网:
- 允许在1Gb/s下全双工和半双工两种方式工作,使用802.3协议规定的帧格式
- 在半双工方式下使用CSMA/CD协议(全双工方式不需要使用)
- 与10BASE-T和100BASE-T技术向后兼容
- 当吉比特以太网工作在全双工方式时(即通信双方可同时进行发送和接收数据),不使用载波延伸和分组突发
吉比特以太网的物理层:
1000BASE-X 基于光纤通道的物理层:
1000BASE-SX SX表示短波长
1000BASE-LX LX表示长波长
1000BASE-CX CX表示铜线
1000BASE-T:
- 使用4对5类线UTP
网络层
网络层现在拥有的协议:
网际协议 IP
地址解析协议 ARP
(包括了逆地址解析协议 RARP)网际控制报文协议 ICMP
网际组管理协议 IGMP
网络层提供的两种服务
在数据链路层并没有实现可靠传输,因此网络层需要解决这个问题。
争论点:在计算机通信中,可靠交付应当由谁来负责?是网络还是端系统?应该是由端系统负责
虚电路服务
:- 面向连接的通信方式
- 通信之前,需要先建立连接(需要在分组交换中是建立一条虚电路VC(逻辑上的连接))
- 所有的通信就沿着已经建立的虚电路发送分组
- 分组首部不需要填写完整的目的主机地址,而只需要填写虚电路的编号。减少了分组的开销
数据报服务
:- 无连接的通信方式
- 网络层不提供服务质量的保障
虚电路服务与数据报服务的对比
对比的方面 | 虚电路服务 | 数据报服务 |
---|---|---|
思路 | 可靠通信应当由网络来保证 | 可靠通信应当由用户主机来保证(端系统) |
连接的建立 | 必须有(面向连接) | 不需要(无连接) |
终点地址 | 仅在连接阶段使用,每个分组使用短的虚电路号 | 每个分组都有终点的完整地址 |
分组的转发 | 属于同一条虚电路的分组均按照同一路由进行转发 | 每个分组独立查找转发表(选择路由)进行转发 |
当节点出故障时 | 所有通过出故障的节点的虚电路均不能工作 | 出故障的节点可能会丢失分组,一些路由可能会发生变化 |
分组的顺序 | 总是按发送顺序到达终点 | 到达终点时不一定按发送顺序 |
端到端的差错处理和流量控制 | 可以由网络负责,也可以由用户主机负责 | 由用户主机负责 |
网际协议 IP
虚拟互联网(IP网)
概念:逻辑互联网络,使用路由器解决各种异构的物理网络连接在一起的问题。使用IP协议的虚拟互连网络简称为IP网
网络互联的设备:
中间设备又称为中间系统或中继系统
- 物理层中继系统:转发器(repeater)
- 数据链路层中继系统:网桥或交换机(bridge)
- 网络层中继系统:路由器(router)
- 网络层以上的中继系统:网关(gateway) –现在说的网关是路由器的接口
网络互联的问题:
- 不同的寻址方案
- 不同的最大分组长度
- 不同的网络接入机制
- 不同的超时控制
- 不同的差错恢复方法
- 不同的状态报告方法
- 不同的路由选择技术
- 不同的用户接入控制
- 不同的服务(面向连接服务和无连接服务)
- 不同的管理与控制方式
IP地址
IP层次结构:
以IPv4为例,层次化的IP地址将32位二进制的IP地址分为网络ID和主机ID,每个网络区段都有它对 应的ID,将这个ID与主机ID拼接成32位二进制地址则就是IP地址
分类的IP地址:
IP地址由ICANN进行分配(中国向APINC)
A类地址
:
- 最大网络数:126(27-2)
- 可用网络号范围:1 - 126
- 每个网络中最大主机数:16777214
- 网络号全0表示本机,全1表示环回测试(127.0.0.1在同一台计算机进行网络传输)
- 主机号全0表示本主机的网络地址,全1表示所有主机
- 例子:10.81.21.1,10表示网络号,剩下为主机位,子网掩码为255.0.0.0
B类地址
:
- 最大网络数:16383(214-1)
- 可用网络号范围:128.1 - 191.255
- 每个网络中最大的主机数:65534
- 例子:128.73.21.1,128.73表示网络号,剩下为主机号,子网掩码为255.255.0.0
C类地址
:
- 最大网络数:2097151(221-1)
- 可用网络号范围:192.0.1 - 223.255.255
- 每个网络中最大的主机数:254
- 例子:196.168.17.1,196.168.17表示网络号,剩下为主机号,子网掩码为255.255.255.0
特殊的几个地址:
127.0.0.1 本地环回地址
127.0.0.0:环回自检地址,表示任意主机本身
0.0.0.0:表示本网络上的本主机
**保留的私网地址(企业、学校)**:
- A类地址:10.0.0.0 - 10.255.255.255,1个网段
- B类地址:172.16.0.0 - 172.31.255.255,16个网段
- C类地址:192.168.0.0 - 192.168.255.255,256个网段
无分类编制(CIDR)
IP地址={网络前缀,主机号};
IP地址的”/“后表示网络前缀的位数
最小地址(全0),最大地址(全1);
路由聚合 —构造超网
IP地址与MAC硬件地址
- 使用IP地址是为了隐蔽各种底层网络的复杂性而便于分析和研究问题;
- 数据链路层看不到数据包的IP地址;
路由器只根据目的IP地址的网络号进行路由选择
;
交换机
基于数据帧的MAC地址转发数据帧,路由器
基于数据包的IP地址转发数据包- 数据包在传输过程不变,过网络设备数据帧要用新的物理层地址重新封装
MAC地址
决定了数据帧下一跳哪个设备接收,而IP地址
决定了数据包的起点和终点
ARP和RARP协议
ARP协议(地址解析协议):
ARP
:IP地址通过ARP协议解析为MAC地址
ARP cache
:有所在局域网的各主机和路由表的IP地址到MAC地址的映射表
- ARP协议的请求是广播形式,响应是单播形式,一次请求响应,两边同时把双方的信息写进ARP cache
- 不同局域网的主机,要通过路由器进行ARP查询
RARP协议:
RARP
:MAC地址通过RARP协议转为IP地址
IP数据报(包)
一个IP数据包由首部和数据两部分组成
- 首部的前一部分是固定长度,共20字节,是所有IP数据包必须具备的
- 在首部的固定部分的后面是一些可选字段,其长度可变。
IP数据包具体组成:
版本
:占4位,指IP协议的版本,目前的IP协议版本号位4(即IPv4)首部长度
:占4位,可表示的最大数值是15个单位(一个单位为4字节),因此IP的首部的长度最大值是60字节区分服务
:占8位,用来获得更好的服务,区分这个包着不着急传输总长度
:占16位,指首部和数据之和的长度,单位为字节,因此数据包的最大长度为65535字节,总长度必须不超过最大传递单元MTU标识
:占16位,它是一个计数器,用来产生数据报的标识,不是序号,每产生一个数据包,就增加1标志(flag)
:占3位,标志字段的最低位为MF。MF=1表示后面”还有分片”。MF=0表示最后一个分片。标志字段中间的一位是DF,只有当DF=0时才允许分片。片偏移
:占13位,指出较长的分组在分片后,某片在原分组中的相对位置,片偏移以8个字节为偏移单位生存时间(TTL)
:占8位,数据包在网络中可通过的路由器数的最大值,过一个路由器,TTL减1。协议
:占8位,指出数据包携带的数据使用何种协议以便目的主机的IP层将数据部分上交给哪个处理过程首部检验和
:占16位,只检验数据包的首部,不检验数据部分,这里不采用CRC检验码而采用简单的计算方法源地址和目标地址
:各占4位,就是IP地址
IP数据包首部的可变部分:
- 是一个选项字段
- 用来支持排错、测量以及安全等措施
- 长度可变,1~40个字节不等,取决于所选择的项目
- 增加首部的可变部分是为了增加IP数据包的功能,也增加了每个路由器的处理开销。
- 实际上很少被使用
IP转发分组流程
数据路由:路由器在不同网段转发数据包
网络畅通的条件:
- 能去能回
- 沿途的路由器必须知道到目标网络下一跳给哪个接口
- 沿途的路由器必须知道到源网络下一跳给哪个接口
分组转发算法:
直接交付→特定主机路由→下一跳路由器→默认路由
- 从数据包的首部提取目的主机的IP地址D,得出目的网络地址为N
- 若网络N与此路由直接相连,则把数据包直接交付目的主机D;否则是间接交付,执行3
- 若路由表中有目的地址为D的特定主机路由,则把数据包传送给路由表中所指明的下一跳路由器;=否则,执行4
- 若路由表中有到达网络N的路由,则把数据包传送给路由表指明的下一跳路由器;否则,执行5
- 若路由表中有一个默认路由,则把数据包传送给路由表中所指明的默认路由器;否则,执行6
- 报告转发分组出错
特定主机路由:对特定的目的主机指明一个路由,方便控制网络和测试网络
**默认路由(0.0.0.0)**:下一跳路由器的地址不在IP数据包里,而在MAC帧里(转为MAC地址)
划分子网和构造超网
子网划分
子网掩码:
- 它是一种用来指明一个IP地址的那些位标识的是主机所在的子网以及哪些位标识的是主机的位掩码
- 用来区分计算机ip地址哪些是网络号,哪些是主机号
- 将计算机IP地址和子网掩码转换成二进制,进行与计算,再转换成10进制则就**得到了这个计算机所处的网段(网络号)**。例如:一台计算机IP为172.16.122.2,子网掩码为255.255.0.0,做完与计算,得到的网段为172.16.0.0
概念
:计算机的IP地址并不是固定每个段只有8位二进制,为了提高IP地址的利用率,我们可以向主机位取出部分位作为子网位,将标准的IP网络划分为几个子网,从而将“网络ID+主机ID”二层结构变成“网络ID+子网ID+主机ID”的三层结构。
要分多少个子网,就向主机位借(子网数/2)个位,也就是每个子网是原来的多少个1/2,每乘个1/2,子网掩码往后移动一位。,
如果主机位二进制全为0和1的IP不能使用
。划分后网络号不变
以上图为例,网段192.168.0.0已经分成了两个网段,192.168.0.1 - 192.168.0.126为一个网段,192.168.0.128 - 192.168.0.254为另外一个网段,可以理解为主机号1-126在192.168.0网段,主机号128-254在192.168.1网段。如果出现192.168.201.167/29,反斜杠后的数字代表子网掩码的二进制位数
点到点网络的子网划分(以C类地址为例):点到点就只有两个IP地址,因此在划分子网时,为了避免浪费,得划分到4,也就是乘了6个1/2,也就是划分了64个子网,则这个时候的最后一位子网掩码就为11111100(也就是10几进制的252),因此子网掩码为255.255.255.252
构造超网
概念
:当一个网段的主机数超过了当前网段能连接的最大主机数,需要多个网段进行连接使用,但是这个单位想要自己通信自己单位的主机,极有可能需要跨网段通信,为了避免路由转发这种效率低效的通信方法,我们使用了合并网段的操作,并将合并网段得出的子网掩码作为这几个网段的子网掩码,则可以实现通信。而合并网段的操作就是超网。
操作
:
先判断合并的IP地址中的网络位的网络号是否能够合并
操作:需要将网络位最后一段的数字除以4得出的余数就是网络号,或者就是左移完多出的几位的主机位就是网络号。继而判断是否能够合并,也可以**判断最小的网络位最后一段是否为偶数(网络位是逐一递增的)**,如果为偶数则能够合并。
合并n个网络,则子网掩码左移n/2位
操作:例如C类地址192.168.0.0网络跟192.168.1.0合并,子网掩码为255.255.255.0,子网掩码左移一位,得出合并后的子网掩码为255.255.254.0
网络控制报文协议(ICMP)
概念:
- 为了提高IP数据包交付成功的机会,在网际层使用了网际控制报文协议ICMP
- ICMP允许主机或路由器报告差错情况和提供有关异常情况的报告
- ICMP不是高层协议,而是IP层协议
- ICMP报文作为IP层数据包的数据,加上数据报的首部,组成IP数据包发送出去
ICMP报文格式:
ICMP报文类型:
ICMP报文的前4个字节是统一的格式,共有三个字段:即类型、代码和检验和,接着的4个字节的内容与ICMP的类型有关
ICMP差错报告报文
差错报告报文的数据字段的内容
差错报告报文有五种:
- 终点不可达,type=3
- 源点抑制,放慢发送速率,type=4
- 时间超过,TTL=0,type=11
- 参数问题,首部参数有问题,type=12
- **改变路由(重定向)**,type=5
ICMP询问报告报文
询问报告有两种:
- 回送请求和回答报文,测试目的站是否可达,type=8或0
- 时间戳请求和回答报文,时钟同步和测量时间,type=13或i14
以下情况不发送差错报文:
- 对ICMP差错报告报文不再发送ICMP差错报告报文
- 对第一个分片的数据报片的所有后续数据报片都不发送ICMP差错报告报文
- 对具有多播地址的数据报都不发送ICMP差错报告报文
- 对具有特殊地址(如127.0.0.0或0.0.0.0)的数据报不发送ICMP差错报告报文
应用:
- ping —回送请求和回答报文,没有经过TCP和UDP
- tracert —时间差错报文和终点不可达报文
IPv6
诞生原因:32位的IPv4地址空间已分配殆尽,CIDR、NAT技术也只是治标不治本,只能延缓IPv4地址消耗殆尽时间,128位的IPv6地址从根本上解决地址耗尽的问题
诞生意义:
- 解决了IPv4地址耗尽问题
- 改进了首部格式
- 实现了快速处理/转发数据报
- 支持Qos(服务质量,Qos指一个网络能够利用各种基础技术,为指定的网络通信提供更好的服务能力,是网络的一种安全机制,是用来解决网络延迟和阻塞等问题的一种技术)
IPv6地址表示形式:
一般形式
:冒号十六进制记法:4BF5:AA12:0216:FEBC:BA5F:039A:BE9A:2170压缩形式
:将一组零压缩成一个0,将每组前三位包含0的省略,例如:4BF5:0000:0000:0000:BA5F:039A:000A:2176压缩成4BF5:0:0:0:BAF5:39A:A:2176双冒号表示法(零压缩)
:一连串连续的0可以被一对冒号取代,但是双冒号表示法在一个地址中仅可出现一次,出现超过一次的地址是错误的。例如:FF05:0:0:0:0:0:0:B3 ——>压缩成 FF05::B3
IPv6基本地址类型:
单播
地址:一对一通信,可做源地址和目的地址多播
地址:一对多通信,可做目的地址任播
地址:一对多的一个通信,可做目的地址
IPv6数据报格式
- 基本首部固定40B
- 版本:指明了协议版本,IPv6的协议版本总是6
- 优先级:区分数据报的类别以及优先级
- 流标签:**”流”是互联网络上从特定源点到特定终点的一系列数据报**。所有属于同一个流的数据报都具有同样的流标签
- 有效载荷长度:也就是说明有效载荷部分的长度
- 下一个首部:标识下一个扩展首部或上层协议首部
- 跳数限制:相当于IPv4的TTL
IPv6向IPv4过渡策略:
双栈协议
:双协议栈技术就是指在一台设备上同时启用IPv4协议栈和IPv6协议栈。这样的话,这台设备技能和IPv4网络通信,又能和IPv6网络通信。如果这台设备是一个路由器,那么这台路由器的不同接口上,分别配置IPv4地址和IPv6地址,并很可能分别连接了IPv4网络和IPv6网络。如果这台设备是一个计算机,那么它将同时拥有IPv4地址和IPv6地址,并具备同时处理这两个协议地址的功能隧道技术
:通过使用互联网络的基础设施在网络之间传递数据的方式。使用隧道传递的数据(或负载)可以是不同协议的数据帧或包。隧道协议将其它协议的数据帧或包重新封装然后通过隧道发送
IPv6和IPv4区别:
- IPv6将地址从32位(4B)扩大到**128位(16B)**,更大的地址空间
- IPv6将IPv4的校验和字段彻底移除,以减少每跳的处理时间
- IPv6将IPv4的可选字段移出首部,变成了扩展首部,成为灵活的首部格式,路由器通常不对扩展首部进行检查,大大提高了路由器的处理效率
- IPv6支持即插即用(即自动配置),不需要DHCP协议
- IPv6首部长度必须是8B的整数倍,IPv4首部是4B的整数倍
- IPv6只能在主机处分片,IPv4可以在路由器和主机处分片
- ICMPv6:附加报文类型”分组过大”
- IPv6支持资源的预分配,支持实时视像等要求,保证一定的带宽和时延的应用
- IPv6取消了协议字段,改成下一个首部字段
- IPv6取消了总长度字段,改用有效载荷长度字段
- IPv6取消了服务类型字段
路由选择协议
内部网关协议IGP
一个AS(自治系统)内使用 RIP、OSPF协议(都是动态路由协议)
RIP协议
概念:
- RIP是一种分布式的基于距离向量的路由选择协议,是因特网的协议标准,最大优点是简单
- RIP协议要求网络中每一个路由器都维护从它自己到其他每一个目的网络的唯一最佳距离记录(即一组数据)
距离
:通常为”跳数”,即从源端口到目的端口所经过的路由器个数,经过一个路由器跳数+1.从一路由器到直接连接的网络距离为1。RIP允许一条路由最多只能包含15个路由器,因此距离为16表示网络不可达RIP协议只适用于小互联网
- 每个路由器的路由表都由
周期性(30s)广播进行交流
,来交换路由表信息,更新每个路由器到其他路由器的最佳距离记录
交换操作:
- 仅和相邻路由器交换信息
- 路由器交换的信息是自己的路由表
- 每30s交换一次路由信息,然后路由器根据新信息更新路由表。若超过180s没收到邻居路由器的通告,则判定邻居没了,并更新自己路由表
- 路由器刚开始工作时,只知道直接连接的网络的距离(距离为1),接着每一个路由器也只和数目非常有限的相邻路由器交换并更新路由信息。
- 经过若干次更新后,所有路由器最终都会知道到达本自治系统任何一个网络的最短距离和下一跳路由器的地址,即**”收敛”**
距离向量算法:
例子:
修改相邻路由器发来的RIP报文中所有表项
对地址为X的相邻路由器发来的RIP报文,修改此报文中的所有项目:把”下一跳”字段中的地址改为X,并把所有的”距离”+1
对修改后的RIP报文中的每一个项目,进行以下步骤:
- R1路由表中若没有Net3,则把该项目填入R1路由表
- R1路由表中若有Net3,则查看下一跳路由器地址;若下一跳是X,则用收到的项目替换源路由表中的项目;若下一跳不是X,原来距离比从X走的距离远则更新,否则不作处理;
- 若180s还没收到相邻路由器X的更新路由表,则把X记为不可达的路由器,即把距离设置为16
- 返回
OSPF协议
概念:
- OSPF(开放最短路径优先)协议是基于最短路径优先的路由选择协议,使用了Dijkstra算法求最短路径
- 不受某一家厂商控制
- 使用了分布式的链路状态协议
- 该协议也是需要通过交换路由表来进行更新路径
- 该协议是触发式更新,只有当路由器中的链路状态发生变化才会开始交换路由表信息。
交换操作:
- 使用洪泛法向自治系统内所有路由器发送信息,即路由器通过输出端口向所有相邻的路由器发送信息,而每一个**相邻路由器又再次将此消息发往其所有的相邻路由器(广播)**。最终整个区域内的路由器都得到该路由器的信息。
- 发送的信息就是与本路由相邻的所有路由器的链路状态(本路由器和哪些路由器相邻,以及该链路的度量/代价 –费用、距离、时延、带宽等)
- 只有当链路状态发生变化时,路由器才向所有路由器洪泛发送此消息
- 最后所有路由器都能建立一个链路状态数据库,即全网拓扑图
链路状态路由算法:
- 每个路由器发现它的邻居结点【HELLO问候分组】,并了解邻居节点的网络地址
- 设置到它的每个邻居的成本度量metric
- 构造【DD数据库描述分组】,向邻站给出自己的链路状态数据库中的所有链路状态项目的摘要信息
- 如果DD分组中的摘要自己都有,则邻站不作处理;如果有没有的或者是需要更新的,则发送【LSR链路状态请求分组】请求自己没有的和比自己更新的消息
- 收到邻站的LSR分组后,发送【LSU链路状态更新分组】进行更新
- 更新完毕后,邻站返回一个【LSAck链路状态确认分组】进行确认
只要一个路由器的链路状态发生变化:
- 泛洪发送【LSU链路状态更新分组】进行更新
- 更新完毕后,其他站返回一个【LSAck链路状态确认分组】进行确认
- 使用Dijkstra算法根据自己的链路状态数据库构造到其他节点间的最短路径
OSPF的区域:
- 为了使OSPF能够用于规模很大的网络,OSPF将一个自治系统再划分为若干个更小的范围,叫做区域
- 每一个区域都有一个32位的区域标识符(用点分十进制表示)
- 区域也不能太大,在一个区域内的路由器最好不超过200个
特点:
支持多区域
触发式更新
- 路由表中有三个表(链路状态数据库):1.邻居表(通过发送hello包来获取),2.链路状态表,3.计算路由表
每隔30min,要刷新一次数据库中的链路状态
- 由于一个路由器的链路状态只涉及到与相邻路由器的连通状态,因而与整个互联网的规模并无直接关系。因此当互联网规模很大时,OSPF协议要比距离向量协议RIP好得多
- OSPF不存在坏消息传得慢的问题,它的
收敛速度很快
- OSPF不用UDP而是直接
用IP数据报传送
- OSPF对不同的链路可根据IP分组的不同服务类型而设置成不同的代价
- 如果到同一个目的网络有多条相同代价的路径,那么可以将通信量分配给这几条路径,这叫做多路径间的负载均衡
- 所有在OSPF路由器之间交换的分组都具有鉴别功能
支持可变长度的子网划分和无分类地址CIDR
- 每一个链路状态都带上一个32位的序号,序号越大状态越新
外部网关协议BGP
概念:
- BGP协议是不同自治系统的路由器之间交换路由信息的协议,BGP较新版本是BGP-4
- 边界网关协议BGP只能力求寻找一条能够到达目的网络且比较好的路由(不能兜圈子),而并非要寻找一条最佳路由
- 每一个自治系统的管理员要选择至少一个路由器作为该自治系统的”BGP发言人”
- 与其他AS的邻站BGP发言人交换信息,交换网络可达性的信息(路径向量),即要到达某个网络所要经过的一系列AS,发生变化时更新有变化的部分
- BGP是应用层协议,借助TCP传送
特点:
- BGP协议交换路由信息数量不是很多
- BGP发言人数目不多,路由选择相对简单
BGP协议支持CIDR
- BGP刚建立时,交换整个路由表,以后只交换变化部分
BGP协议报文格式:
一个BGP发言人与其他自治系统中的BGP发言人要交换路由信息,就要先建立TCP连接,即通过TCP传送,然后再次连接上交换BGP报文以建立BGP会话。利用BGP会话交换路由信息
BGP-4的四种报文:
OPEN(打开)报文
:用来与相邻的另一个BGP发言人建立联系,并认证发送方UPDATE(更新)报文
:通告新路径或撤销原路径KEEPALIVE(保活)报文
:在无UPDATE时,周期性证实邻站的连通性;也作为OPEN的确认NOTIFICATION(通知)报文
:报告先前报文的差错,也被用于关闭连接
三种协议比较
RIP是一种分布式的基于距离向量的内部网关路由选择协议,通过广播UDP报文来交换路由信息
OSPF是一个内部网关协议,要交换的信息量较大,应使报文的长度尽量短,所以不适用传输层协议(如UDP或TCP),而是直接采用IP
BGP是一个外部网关协议,在不同的自治系统之间交换路由信息,由于网络环境复杂,需要保证可靠传输,所以采用TCP
比较:
协议 | RIP | OSPF | BGP |
---|---|---|---|
类型 | 内部 | 内部 | 外部 |
路由算法 | 距离-向量 | 链路状态 | 路径-向量 |
传递协议 | UDP | IP | TCP |
路径选择 | 跳数最少 | 代价最低 | 较好,非最佳 |
交换结点 | 和本结点相邻的路由器 | 网络中的所有路由器 | 和本结点相邻的路由器 |
交换内容 | 当前本路由器知道的全部信息,即自己的路由表 | 与本路由器相邻的所有路由器的链路状态 | 首次,交换整个路由表;非首次,只交换有变化的部分 |
IP多播
概念
当网络中的某些用户需要特定数据时,多播数据发送者仅发送一次数据,借助多播路由协议为多播数据包建立多播分发树,被传递的数据到达距离用户端尽可能近的节点才开始复制和分发,是一种点对多点的传输方式
优点:
- 提高了数据传送效率
- 减少了主干网出现拥塞的可能性
- 多播组的主机可以是在同一个物理网络,也可以来自不同的物理网络(如果有
多播路由器
(运行多播协议的路由器)的支持)
IP多播地址
- IP多播地址让源设备能够将分组发送给一组设备。属于多播组的设备将被分配一个多播组IP地址(一群共同需求主机的相同标识)
- 多播地址范围为224.0.0.0~239.255.255.255(D类地址),一个D类地址表示一个多播组。只能用作分组的目标地址,源地址总是为单播地址
- 多播数据报也是”尽最大努力交付”,不提供可靠交付,应用于UDP
- 对多播数据包不产生ICMP差错报文
- 并非所有D类地址都可以作为多播地址
硬件多播
- 同单播地址一样,多播IP地址也需要相应的多播MAC地址在本网络中实际传送帧。多播MAC地址以十六进制值01-00-5E打头,余下的6个十六进制位是IP多播组地址的最后23位转换得到的
- TCP/IP协议使用的以太网多播地址的范围是:01-00-5E-00-00-00~01-00-5E-7F-FF-FF
- 收到多播数据包的主机,还要在IP层利用软件进行过滤,把不是本机要接收的数据报丢弃
IGMP协议与多播路由选择协议
网际组管理协议IGMP
概念:
让路由器知道本局域网上是否有主机(的进程)参加或者退出了某个多播组
工作的两个阶段:
- 某主机要加入多播组时,该主机向多播组的多播地址发送一个IGMP报文,声明自己要称为改组的成员。
- 本地多播路由器收到IGMP报文后,要利用多播路由选择协议把这组成员关系发给因特网上的其他多播路由器
- 本地多播路由器周期性探询本地局域网上的主机,以便知道这些主机是否还是多播组的成员
- 只要一个主机对某个组响应,那么多播路由器就认为这个组时活跃的;如果经过几次探询后没有一个主机响应,多播路由器就认为本网络上的没有此组多播组的主机,因此就不再把这组的成员关系发给其他的组播路由器
注意:多播路由器知道的成员关系只是所连接的局域网中有无多播组的成员
多播路由选择协议
概念:
多播路由协议目的是找出以源主机为根节点的多播转发树
特点:
- 构造树可以避免在路由器之间兜圈子
- 对不同的多播组对应于不同的多播转发树;同一个多播组,对不同的源点也会有不同的多播转发树
常用算法:
基于链路状态的路由选择
基于距离-向量的路由选择
协议无关的多播(稀疏/密集)
虚拟专用网络VPN
概念:
- 功能:在公用网络上建立专用网络,进行加密通讯。
- VPN网关通过对数据包的加密和数据包目标地址的转换实现远程访问。
- VPN可通过服务器、硬件、软件等多种方式实现
- VPN属于远程访问技术,简单地说就是利用公用网络架设专用网络。例如某公司员工出差到外地,他想访问企业内网的服务器资源,这种访问就属于远程访问。
实质:就是在原来发送的数据包再加一个vpn网关地址的数据包头进行重新封装,这样就可以通过公网到达vpn网关,再进行去掉新的数据包头,拿取原来的数据包,进而传输到内网指定地址
VPN工作过程:
- 要保护主机发送明文信息到其他VPN设备
- VPN设备根据网络管理员设置的规则,确定是对数据进行加密还是直接传输
- 对需要机密的数据,VPN设备将其整个数据报(包括要传输的数据、源IP地址和目的IP地址)进行加密并附上数据签名,加上新的数据报头(包括目的地VPN设备需要的安全信息和一些初始化参数)重新封装
- 将封装后的数据包通过隧道再公网上传输
- 数据包到达目的VPN设备后,将其解封,核对签名无误后,对数据包解密
网络地址转换技术NAT
概念:
- NAT是用于在本地网络中使用私有地址,在连接互联网时转而使用全局 IP 地址的技术。NAT实际上是为解决IPv4地址短缺而开发的技术。
- NAT旨在通过将一个外部 IP 地址和端口映射到更大的内部 IP 地址集来转换 IP 地址
功能:
- 解决IP地址不足的问题
- 宽带分享
- 安全保护,有效避免网络外部的攻击,隐藏并保护网络内部的计算机
实现方式:
静态转换
:指内部本地地址一对一转换成内部全局地址,相当内部本地的每一台PC都绑定了一个全局地址。一般用于在内网中对外提供服务的服务器。动态转换
:指将内部网络的私有IP地址转换为公用IP地址时,IP地址是不确定的,是随机的,所有被授权访问上Internet的私有IP地址可随机转换为任何指定的合法IP地址。端口多路复用(PAT)
:指改变外出数据包的源端口并进行端口转换,即端口地址转换。内部网络的所有主机均可共享一个合法外部IP地址实现对Internet的访问,从而可以最大限度地节约IP地址资源。网络中应用最多的就是端口多路复用方式
**NAPT(网络地址端口转换PAT)**:
- 可将多个内部地址映射为一个合法公网地址,但以不同的协议端口号与不同的内部地址相对应,也就是与之间的转换。NAPT也被称为“多对一”的NAT
- NAPT与动态地址NAT不同,它将内部连接映射到外部网络中的一个单独的IP地址上,同时在该地址上加上一个由NAT设备选定的TCP端口号。NAPT算得上是一种较流行的NAT变体,通过转换TCP或UDP协议端口号以及地址来提供并发性。除了一对源和目的IP地址以外,这个表还包括一对源和目的协议端口号,以及NAT盒使用的一个协议端口号。
工作原理:
- 借助于NAT,私有地址的内部网络通过路由器发送数据包时,私有地址会被转换成合法的IP地址
- NAT将自动修改IP报文的源IP地址和目的IP地址(通过NAT转换表)。
工作过程:
- 内网的主机向外网的主机发送数据包,数据包封装了源地址(内网主机地址)和目的地址
- 当数据包经过NAT路由器时,NAT路由器会根据NAT转换表将源IP地址和源端口号进行修改为NAT路由器的公网地址和端口号
- 然后到达目的地址就能得到数据包,反之原理一样。
传输层
概述
概念:
- 只有主机(端系统)才有的层次
- 为应用层提供通信服务,使用网络层的服务
- 提供应用进程间的逻辑通信
功能:
传输层提供进程与进程之间的逻辑通信(网络层提供主机之间的逻辑通信)
复用和分用
复用
:指在发送方不同的应用进程都可以使用同一个传输层协议传输数据(需要加上适当的首部)。例子:分别用微信和qq发送信息,这两条信息的报文段都可以通过同一个协议进行传输。分用
:指接收方的传输层在剥去报文的首部后能够把这些数据正确交付目的应用进程。例子:收到报文后,进行解包,通过各报文段的首部,进行分发到对应的应用进程(也就是微信和qq)传输层对收到的报文进行差错检测
传输层的两个协议:
TCP协议
:面向连接的传输控制协议,提供可靠传输、流量控制、拥塞控制功能概述:传送数据之前必须建立连接,数据传送结束后要释放连接,不提供广播或多播服务。由于TCP要提供可靠的面向连接的传输服务,因此不可避免增加了许多开销:确认、流量控制、计时器及连接管理等
特点:
- 可靠
- 面向连接
- 时延大,适用于大文件
- 开销大
UDP协议
:无连接的用户数据报协议,不可靠传输,不建立连接概述:传送数据之前不需要建立连接,收到UDP报文后也不需要给出任何确认
特点:
- 不可靠
- 无连接
- 时延小,适用于小文件
- 开销小
端口:
- 逻辑端口/软件端口,是传输层的SAP(服务访问网点),标识主机中的应用进程
- 端口号只有本地意义,在因特网中不同计算机的相同端口是没有联系的
- 端口号长度为16bit,能表示65536个不同的端口号
端口号(按范围分):
服务端
使用的端口号- **熟知端口号(0~1023)**:给TCP/IP最重要的一些应用程序,让所有用户都知道
- **登记端口号(1024~49151)**:为没有熟知端口号的应用程序使用
客户端
(主机)使用的端口号**(49152~65535):仅在客户进程运行时才动态选择**
一些熟知端口号:
应用程序 | FTP | TELNET | SMTP | DNS | TFTP | HTTP | SNMP |
---|---|---|---|---|---|---|---|
熟知端口号 | 21 | 23 | 25 | 53 | 69 | 80 | 161 |
套接字:
- 在网络中采用发送方和接收方的套接字组合来识别端点
- 套接字唯一标识了网络中的一个主机和它上面的一个进程
- 套接字
Socket=(主机IP地址:端口号)
应用层与传输层关系:
应用 | 应用层协议 | 传输层协议 |
---|---|---|
名字转换 | DNS(域名系统) | UDP |
文件传送 | TFTP(简单文件传送协议) | UDP |
路由选择协议 | RIP(路由信息协议) | UDP |
IP地址配置 | DHCP(动态主机配置协议) | UDP |
网络管理 | SNMP(简单网络管理协议) | UDP |
远程文件服务器 | NFS(网络文件系统) | UDP |
IP电话 | 专用协议 | UDP |
流式多媒体通信 | 专用协议 | UDP |
多播 | IGMP(网际组管理协议) | UDP |
电子邮件 | SMTP(简单邮件传送协议) | TCP |
远程终端接入 | TELNET(远程终端协议) | TCP |
万维网 | HTTP(超文本传送协议) | TCP |
文件传送 | FTP(文件传送协议) | TCP |
UDP协议
概述:UDP只在IP数据报服务之上增加了很少功能,即复用分用和差错检测功能
特点
- UDP是
无连接
的,减少开销和发送数据之前的时延 - UDP使用最大努力交付,即
不保证可靠交付
- UDP
是面向报文
的,即保留这些报文的边界。一次发一个完整报文,也就是应用层给UDP多长的报文,UDP就照样发送,因此应用程序必须选择合适大小的报文。适合一次性传输少量数据的网络应用 - UDP
无拥塞控制
,适合很多实时应用 - UDP
支持一对一、一对多、多对一和多对多的交互通信
- UDP
首部开销小
,占8B,而TCP首部占20B
UDP首部格式
源端口:源端口号。在需要对方回信时选用,不需要时可用全0
目的端口:目的端口号。这在终点交付报文时必须使用
长度:UDP用户数据报的长度,最小值是8(仅有首部)
检验和:检测UDP用户数据报在传输中是否有错。有错就丢弃
还有一种出错情况:
分用时,找不到对应的目的端口号,就丢弃报文,并给发送方发送ICMP”端口不可达”差错报告报文
UDP校验
- 伪首部只有在计算校验和时才出现,不向下传送也不向上递交
- 17:封装UDP报文的IP数据报首部协议字段是17
- UDP长度:UDP首部8B+数据部分长度(不包括伪首部)
过程
- 在
发送端
:- 填上伪首部
- 全0填充校验和字段
- 全0填充数据部分(UDP数据报要看成许多4B的字串接起来)
- 伪首部+首部+数据部分采用二进制反码求和
- 把和求反码填入校验和字段
- 去掉伪首部,发送
- 在
接收端
:- 填上伪首部
- 伪首部+首部+数据部分采用二进制反码求和
- 结果全为1则无差错,否则丢弃数据报/交给应用层附上出差错的警告
TCP协议
特点
TCP是**面向连接(虚连接)**的传输层协议
每一条TCP连接只能有两个端点,每一条TCP连接只能是点对点的
TCP提供可靠交付的服务,无差错、不丢失、不重复、按序到达。可靠有序,不丢不重
TCP提供全双工通信
- 发送缓存:准备发送的数据&已发送但尚未收到确认的数据
- 接收缓存:按序到达但尚未接受应用程序读取的数据&不按序到达的数据
TCP面向字节流
- TCP把应用程序交下来的数据看成仅仅是一连串的无结构的字节流
- 流:流入到进程或从进程流出的字节序列
TCP首部格式
序号
:在一个TCP连接中传送的字节流中的每个字节都按顺序编号,本字段表示本报文段所发送数据的第一个字节的序号确认号
:期望收到对方下一个报文段的第一个数据字节的序号。若确认号为N,则证明到序号N-1为止的所有数据都已正确收到数据偏移(首部长度)
:TCP报文段的数据起始处距离TCP报文段的起始处有多远,以4B为单位,即1个数值是4B6个控制位
:- 紧急位URG:URG=1时,标明此报文段中有紧急数据,是高优先级的数据,应尽快传送,不用在缓存里排队,配合紧急指针字段使用
- 确认位ACK:ACK=1时确认号有效,在连接建立后所有传送的报文段都必须把ACK置为1
- 推送位PSH:PSH=1时,接收方尽快交付接收应用进程,不再等到缓存填满再向上交付
- 复位RST:RST=1时,表明TCP连接中出现严重差错,必须释放连接,然后再重新建立传输连接
- 同步位SYN:SYN=1时,表明是一个连接请求/连接接受报文
- 终止位FIN:FIN=1时,表明此报文段发送方数据已发完,要求释放连接
窗口
:指的是发送本报文段的一方的接收窗口,即现在允许对方发送的数据量检验和
:检验首部+数据,检验时要加上12B伪首部,第四个字段为6紧急指针
:URG=1时才有意义,指出本报文段中紧急数据的字节数选项
:最大报文段长度MSS、窗口扩大、时间戳、选择确认…填充
:如果选项字段并不是4B的整数倍,因此填充就是进行用0补充,直到选项字段变为4B的整数倍
TCP连接管理
TCP连接传输三个阶段:1. 连接建立,2. 数据传送,3. 连接释放
TCP连接的建立采用客户服务器方式
,主动发起连接建立的应用进程叫做客户,而被动等待连接建立的应用进程叫服务器
TCP的连接建立(三次握手)
客户端发送连接请求报文段,无应用层数据
SYN=1,seq(序号)=x(随机)
服务器端为该TCP连接分配缓存和变量,并向客户端返回确认报文段,允许连接,无应用层数据
SYN=1,ACK=1,seq=y(随机),ack(确认号)=x+1
客户端为该TCP连接分配缓存和变量,并向服务器端返回确认的确认,可以携带数据
SYN=0,ACK=1,seq=x+1,ack=y+1
SYN洪泛攻击:
- 该攻击利用了TCP建立连接的三次握手来对服务器端进行的攻击,可以利用设置SYN cookie来防止被SYN洪泛攻击
- 先对服务端发送连接请求报文
- 当服务器返回ACK时,就不再对其进行确认,让该TCP连接处于挂起状态(半连接)
- 服务器收不到确认,则会重复发送ACK报文给攻击者,因为第二次握手服务端需要分配缓存和变量,这就造成了服务器的资源浪费。
- 攻击者对服务器发送非常大量的这种TCP连接,服务器则可能死机。
TCP连接释放(四次挥手)
参与一条TCP连接的两个进程中的任何一个都能终止该连接,连接结束后,主机中的”资源”(缓存和变量)将被释放
客户端发送连接释放报文段,停止发送数据,主动关闭TCP连接
FIN=1,seq=u
服务器端回送一个确认报文段,客户到服务器这个方向的连接就释放了 –半关闭状态
ACK=1,seq=v,ack=u+1
服务器端发完数据,就发出连接释放报文段,主动关闭TCP连接
FIN=1,ACK=1,seq=w,ack=u+1
客户端回送一个确认报文段,再等到时间为等待计时器设置的2MSL(最长报文段寿命)后,连接彻底关闭
ACK=1,seq=u+1,ack=w+1
第四次需要等待2MSL时间的原因:
因为如果客户端发送的确认报文丢失了,服务器端就会重传第三次连接释放报文,而不等待时间,客户端直接关闭的话,则服务器端将会一直收不到来自客户端的确认报文段,这样服务器端无法进入正常的关闭状态。
- 1个MSL保证四次挥手中主动关闭方最后的ACK报文最终到达对端
- 1个MSL保证对端没有收到ACK那么进行重传的FIN报文能够到达
半关闭状态客户端能发送回应报文原因:
- 因为我们的网络通信使用的socket套接字进行连接的,而socket套接字的内核是有两个缓冲区(一个读一个写)
- 半关闭状态关闭的不是客户端到服务端方向的连接,而只是关闭了套接字中的write的缓冲区,因此使客户端无法发送数据
- 而客户端与服务端的连接还在,因此客户端依然可以接收服务端的请求,并且回应确认报文。
TCP可靠传输
实现可靠传输的机制
校验
:与UDP校验一样,增加伪首部序号
:给发送的每一个包进行编号,接收方对数据包进行排序,把有序数据传送给应用层确认
:保证接收方是否能够正确的完整的接收报文段,TCP默认使用累计确认重传
:当报文丢失或者迟到时,并且在规定时间发送方没有收到确认就需要重传已发送的报文段。流量控制
:利用滑动窗口算法实现,控制发送方发送速率,保证接收方能够及时接收拥塞控制
:
ARQ协议
概念:
- 自动重传请求(ARQ)是数据链路层和传输层的错误纠正协议之一
- 通过使用确认和超时这两个机制,在不可靠服务的基础上实现可靠的信息传输
- 如果发送方在发送后一段时间之内没有收到确认帧,它通常会重新发送
- ARQ包括停止等待ARQ协议和连续ARQ协议
停止等待ARQ协议
概述:
基本原理就是每发完一个分组就停止发送,等待对方确认(回复ACK),如果过了(比RTT(往返时间)多一点的时间,还是没有收到 ACK 确认,说明没有发送成功,需要重新发送,直到收到确认后再发下一个分组
在停止等待协议中,若接收方收到重复分组,就丢弃该分组,但同时还要发送确认
特点:
- 简单
- 信道利用率低,等待时间长
无差错情况:发送方发送分组,接受方在规定时间内收到,并且回复确认。发送方再次发送
**出现差错情况(超时重传)**:
- 停止等待协议中超时重传是指只要超过一段时间仍然没有收到确认,就重传前面发送过的分组(认为刚才发送过的分组丢失了)
- 因此每发送完一个分组需要设置一个超时计时器,其重传时间应比数据在分组传输的平均往返时间更长一些,这种自动重传方式常称为自动重传请求ARQ
- 若收到重复分组,就丢弃该分组,但同时还要发送确认
确认丢失和确认迟到:
确认丢失
:确认消息在传输过程丢失。例子:A发送M1消息,B收到后,B向A发送了一个M1确认消息,但却在传输过程中丢失。而A并不知道,在超时计时过后,A重传M1消息,B再次收到该消息。解决措施:
- 丢弃重复的消息,并不向上层交付
- 向发送方发送确认信息(不会认为已经发送过了,就不再发送。发送防能重传,就证明接收方的确认消息丢失了)
确认迟到
:确认消息在传输过程中迟到。例子:A发送M1消息,B收到并发送确认。在超时时间内没有收到确认消息,A重传M1消息,B仍然收到并继续发送确认消息(B收到了2份M1)。此时A收到了B第二次发送的确认消息。接着发送其他数据。过了一会,A收到了B第一次发送的对M1的确认消息(A也收到了2份确认消息)解决措施:
- 发送方收到重复的确认后,直接丢弃
- 接收方收到重复的消息后,也直接丢弃重复的消息
连续ARQ协议
概念:
- 发送方维持一个发送窗口,凡位于发送窗口内的分组可以连续发送出去,而不需要等待对方确认
- 接收方一般采用累计确认,对按序到达的最后一个分组发送确认,表明到这个分组为止的所有分组都已经正确收到了
累计确认
:就是接收端并不是收到一个数据报就返回一个确认,而是接收多个后,再发一个确认
冗余ACK:
不能向发送方反映出接收方已经正确收到的所有分组的信息。 比如:发送方发送了5条消息,中间第三条丢失(3号),这时接收方只能对前两个发送确认。发送方无法知道后三个分组的下落,而只好把后三个全部重传一次。这也叫 Go-Back-N(回退 N),表示需要退回来重传已经发送过的 N 个消息。
优点:信道利用率高,容易实现,即使确认丢失,也不必重传
缺点:冗余ACK
流量控制
概念:
- 指在给定的发送端和接收端之间的点对点通信量的控制
- TCP利用滑动窗口实现流量控制,控制发送方发送速率,保证接收方来得及接收
- 接收方发送的确认报文中的窗口字段可以用来控制发送方窗口大小,从而影响发送方的发送速率
- 将窗口字段设置为 0,则发送方不能发送数据
工作过程:
- 发送方接收到接收方的确认报文,将发送窗口大小设置为接受方窗口大小
- 在发送窗口的字节就可以连续传送给接收方
- 接收方可以进行累计确认,将接收的最后一个按序排列序号返回确认
- 发送方就可以将接收方已经接收的字节进行丢弃,将发送窗口起始位置移动到接收了的最后一个字节的后一位
- 然后重复以上操作,直到将字节流全部传完
**选择确认(SACK)**:
- 之前在连续ARQ协议中有讲过冗余ACK的确认来防止数据报丢失,但是其还是太浪费资源
- 选择确认(SACK)是确认报文中的一个报文段,在接收到失序包时,接收端就知道中间的包已经丢失,则接收端可以在返回确认时设置SACK字段告诉发送端具体是哪个包丢失了,因此发送方收到确认就可以指发送丢失的包,不用发送冗余的数据报
超时重传时间选择
概念:
- TCP每发送一个报文段,就对这个报文段设置一次计时器,只要计时器设置的重传时间到但还没收到确认,就要重传这一报文段
- 而这个超时重传时间是通过一个公式动态计算出来
- 超时重传时间应较大于上面得出的加权平均往返时间RTTs(通过公式计算出来的)
RTTs公式:
新的RTTs=(1-a)\*(旧的RTTs)+a*(新的RTT样本)
RFC2988推荐的a值为1/8
拥塞控制
出现资源拥塞的条件:对资源需求的总和>可用资源
概念:
- 拥塞控制是一个全局性的过程,涉及到所有的主机、所有的路由器,以及与降低网络传输性能有关的所有因素
- 为了进行拥塞控制,TCP 发送方要维持一个**拥塞窗口(cwnd)**的状态变量。拥塞控制窗口的大小取决于网络的拥塞程度,并且动态变化。
- 发送方让自己的发送窗口取为拥塞窗口和接收方的接受窗口中较小的一个
- TCP的拥塞控制采用了四种算法,即慢开始、拥塞避免、快重传和快恢复。
拥塞控制实现:
慢开始:
- 当主机开始发送数据时,先探测一下,由小到大逐渐增大发送窗口,也就是由小到大逐渐增大拥塞窗口数值。
cwnd初始值为1
,每经过一个传播轮次,cwnd加倍(乘2)。
拥塞避免:
- 并非指完全避免了拥塞,而是使网络出现拥塞的概率降低
- 当前拥塞窗口大小等于慢开始门限时,则就进入了拥塞避免阶段
- 在拥塞避免阶段,拥塞窗口控制为按线性规律增长(每轮+1)
- 当出现网络拥塞时,则将慢开始的门限(ssthresh)取一半(
初始慢开始门限为16
)
快重传:
- 使用累计确认时,如果中间丢包了,得等接收端接收了一定的包才发来确认,这样就导致丢失的包重传的时间太慢了
- 快重传就是当接收包收到了失序的包,则认为没收到的包丢失了,则接收端就立即向发送端发送3次确认
- 当发送端收到3次确认,就重传确认包里告诉的丢失包给接收端。
- 例子:当发送端发送了1、2、3、4,而接收端是5个就发一次确认,当接收了4但没收到3,则接收端就发送3个确认给发送端,发送端就将3重发
快恢复:
- 当发生了快重传现象时,就认定当前网络拥塞,原先是直接重新从1继续慢开始阶段,慢开始门限变为原来的一半
- 而快恢复将能够快速恢复发送窗口的发送速率,也就是出现快重传后,不在从慢开始阶段开始而是直接从拥塞避免阶段开始,也就是当前拥塞窗口大小为慢开始门限(除了一半后的)。
应用层
协议
- 域名系统DNS
- DHCP协议
- FTP协议
- TELNET协议
- 远程桌面协议RDP
- HTTP协议
- 电子邮件协议
网络应用模型
客户/服务器(C/S)模型
服务器
:
- 提供计算服务的设备
- 永久提供服务
- 永久性访问地址/域名
客户机
:
- 请求计算服务的主机
- 间歇性接入网络
- 可能使用动态IP地址
- 不与其他客户机直接通信
P2P模型:
- 不存在永久在线的服务器
- 每个主机既可以提供服务,也可以请求服务
- 任意端系统/节点之间可以直接通讯
- 节点间歇性接入网络
- 节点可能改变IP地址
- 可扩展性好
- 网络健壮性强
域名系统DNS
域名:
- 访问一个网站往往不是访问其IP地址,因为IP地址比较难记,因此就出现了域名来担任网站的标识名称,并且全球唯一的
- 顶级域名:.com、.edu、.cn等等
- 二级域名:baidu (baidu.com)
- 三级域名:例如:dea(dea.baidu.com)
作用:
- 负责解析域名,将域名解析成IP
域名服务器:
- 根域名服务器:知道所有顶级域名服务器的IP地址
- 顶级域名服务器:管理该顶级域名服务器注册的所有二级域名
- 权限域名服务器:负责一个区的域名服务器
- 本地域名服务器:当一个主机发出DNS查询请求时,这个查询请求报文就发给本地域名服务器
工作过程:
- 主机访问网站,先向DNS服务器发送DNS查询请求
- 如果访问的网站域名后缀跟请求的DNS服务器解析的域名不同,则向根域名服务器请求让根域名服务器找寻对应的DNS服务器并把解析结果返回(例如DNS为.com的域名服务器,主机访问.cn的网站,因此.com会向根域名服务器请求)
- 将解析后的IP地址返回给主机,主机或域名服务器进行缓存
- 主机访问IP地址来访问方网站
域名解析过程:
递归查询
:靠别人,也就是该DNS服务器没有该结果,就向其他DNS服务器请求,例如向根域名服务器,如果根域名服务器也没有则根域名服务器向顶级域名服务器请求迭代查询
:靠自己,如果本地域名服务器查询不到,然后本地域名服务器就向根域名服务器发送请求,如果还没有,则由本地域名服务器向其他服务器发送请求。高速缓存
:为了提高查询效率,则添加了高速缓存,也就是查询过一次,则域名服务器将该查询结果进行缓存,这样就减少请求次数,需要定期更新(增加时间减少网络开销,减少时间提高域名转换的准确性)
DHCP动态主机配置
概念:
- 动态主机配置协议DHCP是应用层协议,使用客户/服务器方式,客户端和服务端通过广播方式进行交互,基于UDP。
- DHCP提供即插即用联网的机制,主机可以从服务器动态获取IP地址、子网掩码、默认网关、DNS服务器名称与IP地址
- 支持移动用户加入网络,支持在用地址续租
请求过程:
主机广播发送DHCP发送报文
,找到网络中的DHCP服务器,服务器获得一个IP地址DHCP服务器广播发送DHCP提供报文
,服务器拟分配给主机一个IP地址及相关配置,先到先得主机广播发送DHCP请求报文
,主机向服务器请求提供IP地址DHCP服务器广播发送DHCP确认报文
,正式将IP地址分配给主机
文件传输协议FTP
概念:
- FTP协议提供不同种类主机系统(硬、软件体系等都可以不同)之间的文件传输能力
- FTP是基于客户/服务器(C/S)的协议,基于TCP进行传输的
- 用户通过一个客户机程序连接至远程计算机上运行的服务器程序
- 依照FTP协议提供服务,进行文件传送的计算机就是FTP服务器
- 连接FTP服务器,遵循FTP协议与服务器传送文件的电脑就是FTP客户端
FTP使用两个TCP连接:
TCP控制连接
:传送文件操作命令(删除、下载、上传等),使用服务器21端口,连接始终保持TCP数据连接
:用来传输数据的(下载、上传等),连接保持一会,有两种模式- 主动模式:服务端从20端口主动向客户端发起连接。如果服务器有防火墙需要打开21和20端口
- 被动模式:**服务端在指定范围内的某个端口被动等待客户端发起连接(端口>1024)**。如果服务器有防火墙只打开21和20端口,FTP不能下载和上传数据
FTP传输模式:
- 文本模式:ASCII模式,以文本序列传输数据
- 二进制模式:Binary模式,以二进制序列传输数据
远程终端协议TELNET
概念:
- telnet是基于TCP的远程终端协议,默认端口为23
- 用户用TELNET就可在其所在地通过TCP连接注册(即登录)到远地的另一台主机上(使用主机名或IP地址)
- 基于客户服务器方式的协议,传输的格式使用NVT
超文本传输协议HTTP
概念:
- HTTP协议定义了浏览器(万维网客户进程)怎样向万维网服务器请求万维网文档,以及服务器怎样把文档传送给浏览器
具体过程:
- 浏览器分析URL
- 浏览器向DNS请求解析IP地址
- DNS解析出IP地址
- 浏览器与服务器建立TCP连接
- 浏览器发出取文件命令
- 服务器响应
- 释放TCP连接
- 浏览器显示
特点:
- http 1.0是无状态的,http 1.1是持续连接的
- HTTP采用TCP作为传输层协议,但HTTP协议本身是无连接的(通信双方在交换HTTP报文之前不需要先建立HTTP连接)
HTTP的连接方式:
非持久连接
持久连接
两种工作方式:
- 非流水线方式:收到响应后再发出请求
- 流水线方式:连续发送,只花费RTT时间
HTTP报文结构:
- HTTP报文是面向文本的,因此在报文中的每一个字段都是一些ASCII码串
请求报文
响应报文
电子邮件
电子邮件系统组成结构:
- 用户代理就是用户与电子邮件系统的接口,是电子邮件客户端软件。
简单邮件传送协议SMTP:
- SMTP规定了在两个相互通信的SMTP进程之间应如何交换信息
- 负责发送邮件的SMTP进程就是SMTP客户,负责接收邮件的进程就是SMTP服务器
- SMTP规定了14条命令(几个字母)和21种应答信息(三位数字代码+简单文字说明)
- SMTP协议是基于TCP连接以及C/S方式的协议,端口号为25
SMTP缺点:
- SMTP不能传送可执行文件或者其他二进制对象
- SMTP仅限于传送7位ASCII码,不能传送其他非英语国家的文字
- SMTP服务器会拒绝超过一定长度的邮件
MIME:
- 可以将邮件传送的附件类型码放进SMTP协议数据报中
- 使得接收用户浏览器知道用什么插件解析
邮局协议POP3:
- 基于TCP连接和C/S方式的协议,端口号110
- 用于接收邮件的协议
- 工作方式:1.下载并保存(在服务器),2.下载并删除
网际报文存取协议IMAP:
- 当用户PC上的IMAP客户程序打开IMAP服务器的邮箱时,用户可以看到邮箱的首部,若用户需要打开某个邮件,该邮件才上传到用户的计算机上
- IMAP可以让用户在不同的地方使用不同的计算机随时上网阅读处理邮件,还允许只读邮件中的某一个部分(先看正文,有wifi的时候再下载附件)
网络安全
网络安全问题概述
四种威胁:
截获
– 从网络上窃听他人的通信内容中断
– 有意中断他人在网络上的通信篡改
– 故意篡改网络上传送的报文伪造
– 伪造信息在网络上传送
截获信息的攻击称为被动攻击,而更改伪造信息和拒绝用户使用资源的攻击称为主动攻击
恶意程序:
计算机病毒
:会传染其他程序的程序,例如熊猫烧香,可以对计算机内的信息和系统变量进行篡改以及删除计算机蠕虫
:会消耗计算机资源(cpu、内存等)特洛伊木马
:需要与外网进行连通,将从计算机获取到的数据进行传送给攻击者逻辑炸弹
:需要满足特定条件进行触发的程序
加密技术
对称加密:
- 加密密钥与解密密钥是同一个密钥的加密技术就是对称加密
- 优点:效率高
- 缺点:密钥不适合网上传输,密钥维护麻烦
非对称加密:
- 加密密钥和解密密钥是不同的,是一个密钥对(公钥和私钥)
- 公钥加密私钥解密,私钥加密公钥解密
- 缺点:效率低
数字签名:防止抵赖,能够检查签名之后内容是否被更改
证书颁发机构作用:
- 为企业和用户颁发数字证书
- 确认这些企业和个人的身份
- 发布证书以及吊销列表
- 企业和个人信任证书颁发机构
Internet上使用的安全协议
运输层安全协议TLS/SSL
安全套接字SSL
概念:
- 在发送方,SSL接收应用层的数据(如HTTP或IMAP报文),对数据进行加密,然后把加了密的数据送往TCP套接字
- 在接收方,SSL从TCP套接字读取数据,解密后把数据交给应用层
- 网站使用SSL技术是https协议,而不是http协议,使用
tcp协议443端口
- SSL是TLS的前身
功能:
SSL服务器鉴别
:允许用户证实服务器的身份。具有SSL功能的浏览器维持一个表,上面有一些可信赖的认证中心CA和它们的公钥加密的SSL会话
:客户和服务器交互的所有数据都在发送方加密,在接收方解密SSL客户鉴别
:允许服务器证实客户的身份
运输层安全TLS
概念:
- TLS是继SSL后的运输层安全协议
- TLS采用主从式架构模型,用于在两个应用程序间透过网络创建起安全的连接,防止在交换数据时受到窃听及篡改。
- TLS协议的优势是与高层的应用层协议无耦合。应用层协议能透明地运行在TLS协议之上,由TLS协议进行创建加密通道需要的协商和认证。应用层协议传送的数据在通过TLS协议时都会被加密,从而保证通信的私密性。
- 一旦客户端和服务器都同意使用TLS协议,他们通过使用一个握手过程协商出一个有状态的连接以传输数据。通过握手,客户端和服务器协商各种参数用于创建安全连接
创建安全连接过程:
- 当客户端连接到支持TLS协议的服务器要求创建安全连接并列出了受支持的密码组合(加密密码算法和散列算法),握手开始
- 服务器从该列表中决定加密算法和散列算法,并通知客户端;
- 服务器发回其数字证书,此证书通常包含服务器的名称、受信任的证书颁发机构(CA)和服务器的公钥;
- 客户端验证其收到的服务器证书的有效性;
- 为了生成会话密钥用于安全连接,客户端使用服务器的公钥加密随机生成的密钥,并将其发送到服务器,只有服务器才能使用自己的私钥解密;
- 利用随机数,双方生成用于加密和解密的对称密钥。这就是TLS协议的握手,握手完毕后的连接是安全的,直到连接(被)关闭。如果上述任何一个步骤失败,TLS握手过程就会失败,并且断开所有的连接。
网络层安全协议IPsec
概念:
- IPsec数据报称为IP安全数据报
IPsec对等端:
- 两个端系统
- 两个路由器/防火墙
- 一个路由器/防火墙与一个端系统
组成:
IP安全数据报格式的两个协议:
- 鉴别首部AH协议
- 封装安全有效载荷ESP协议
有关加密算法的三个协议
互联网密钥交换IKE协议
传输模式:
- IPsec数据报的发送与接收均由端系统完成,主机是IPsec感知的
隧道模式:
- 边缘路由器是IPsec感知的
服务:
- 机密性
- 数据完整性
- 源认证/鉴别
- 重放攻击预防
安全关联SA:
- SA是构成IPsec的基础,是两个通信实体经协商(利用IKE协议)建立起来的一种协定
- 它决定了用来保护数据分组安全的安全协议(AH协议或者ESP协议)、转码方式、密钥与密钥的有效存在时间等
- 发送IP安全数据报(或者使用AH或者ESP)之前,从发送实体到接收实体之间需要建立安全关联SA
- SA是单工的:单向
- 发送实体与接收实体均需维护SA的状态,IPsec是面向连接的
主要参数
;
- **安全参数索引(SPI)**:32位SA唯一标识
- 加密密钥、认证密钥
- 密码算法标识
- **序列号(32位)**,用来抗重放攻击
- 抗重播窗口,接收方使用滑动窗口检测恶意主机重放数据报
- 生存周期,规定SA的有效使用周期
- 运行模式:传输模式或隧道模式
- IPsec隧道源、目的地址(如果是隧道模式)
安全关联数据库SAD:
- IPsec端点将SA状态保存在安全关联数据库SAD中
- 在处理IPsec数据包时,定位这些信息
- 对于n个销售人员,1个分支机构的VPN,总部路由器R1的SAD中存储2+2n条SAs
- 当发送IPsec数据包时,R1访问SAD,确定如何处理数据报
- 当IPsec数据报到达R2,R2检验IPsec数据报中的SPI,利用SPI检索SAD,处理数据报
安全策略数据库SPD:
安全策略SP:定义了对什么样的数据流实施什么样的安全处理
策略一般分三种:应用IPsec、绕过、丢弃
安全策略组成了SPD,每个记录就是一条SP
- 提取关键信息填充到一个称为“选择符”的结构,包括目标IP、源IP、传输层协议、源和目标端口等
- 利用选择符去搜索SPD,检索匹配的SP
安全处理需要的参数存储在SP指向的SA结构
密钥交换协议IKE:
IKE协议可自动管理SA的建立、协商、修改和删除,是IPsec唯一的密钥管理协议
IKE:
- ISAKMP的通用框架:定义了协商、建立、修改和删除SA过程的通用框架
- OAKLEY的密钥交换模式:一个密钥交换协议,允许认证过的双方通过不安全的网络交换密钥参数
- SKEME的共享和密钥更新技术:提供IKE交换密钥的算法
提供不同服务模型的两个协议:
- AH协议:认证头协议,在IP数据报文头中的协议号为51
- ESP协议:封装安全协议,在IP数据报文头中的协议号为50
认证头协议AH协议:
- 提供源认证/鉴别和数据完整性检验,但不提供机密性
- 在传输过程,中间的路由器都不查看AH首部,当数据报到达终点时,目的主机才处理AH字段,以鉴鉴别源点和检查数据报的完整性
封装安全协议ESP:
- 提供源认证/鉴别、数据完整性检验以及机密性
- 比AH应用更广泛
- 当IP首部检查到协议字段是50时,就知道在IP首部后面紧接着是ESP首部,同时在原IP数据报后面增加ESP尾部和ESP数据字段
防火墙(firewall)
概念:
- 防火墙是由软件、硬件构成的系统,是一种特殊编程的路由器,用来在两个网络之间实施接入控制策略。
- 接入控制策略是由使用防火墙的单位自行制订的,为的是可以最适合本单位的需要
- 防火墙内的网络称为”可信赖的网络”,而将外部的因特网称为”不可信赖的网络”
- 防火墙可用来解决内联网和外联网的安全问题
两类防火墙技术:
网络防火墙
:用来防止整个网络出现外来非法的入侵。属于这类的有分组过滤和授权服务器。前者检查所有流入本网络的信息,然后拒绝不符合事先制定好的一套准则的数据,而后者则是检查用户的登录是否合法应用级防火墙
:从应用程序来接入控制。通常使用应用网关或代理服务器来区分各种应用。例如:可以只允许通过访问万维网的应用,而阻止FTP应用通过
防火墙网络拓扑:
三向外围网
背靠背防火墙
单一网卡防火墙
边缘防火墙
无线网络
概念:
-