计算机网络 | 知识点整理
一、计算机网络概述
🔶计算机网络
🔹概念
一些互相连接的、自治的计算机的集合。
🔹组成
🔼从组成部分上看
由硬件、软件、协议三大部分组成
🔼从工作方式上看
(主要指 Internet)可分为边缘部分和核心部分
🔼从功能组成上看
由通信子网和资源子网组成。
- 通信子网由各种传输介质、通信设备和相应的网络协议组成。
- 资源子网是实现资源共享功能的设备及其软件的集合。
🔹功能
数据通信(最基本和最重要的功能),资源共享,分布式处理,提高可靠性,负载均衡。
🔹分类
🔼按作用范围分类
- 广域网 WAN(Wide Area Network):作用范围通常为几十到几千公里。
- 城域网 MAN(Metropolitan Area Network):作用范围一般是一个城市,作用距离约为5~50km。
- 局域网 LAN(Local Area Network):一般用微型计算机或工作站通过高速通信线路相连,地理上则局限在较小的范围(如1km左右)。
- 个人局域网 PAN(Personal Area Network)
🔼按拓扑结构分类
- 星形网络:每个终端或计算机都以单独的线路与中央设备相连。
- 总线形网络:用单根传输线把计算机连接起来。
- 环形网络:所有计算机接口设备连接成一个环。
- 网状形网络:一般情况下,每个结点至少有两条路径与其它结点相连,多用在局域网中。
🔹标准体系
因特网的所有标准都以 RFC(Request For Comments)的形式在因特网上发布,RFC 要上升为正式标准要经过四个阶段:
- 因特网草案(Internet Draft):还不是 RFC 文档。
- 建议标准(Proposed Standard):开始成为 RFC 文档。
- 草案标准(Draft Standard)
- 因特网标准(Internet Standard)
有许多标准化组织负责制定、实施相关网络标准,主要有:
- 国际标准化组织(ISO):OSI 参考模型、HDLC 等。
- 国际电信联盟(ITU):下属机构制定了大量有关远程通信的标准。
- 国际电气电子工程师协会(IEEE):最著名的研究成果是802标准。
🔶交换
🔹电路交换
在进行数据传输前,两个结点之间必须先建立一条专用(双方独占)的物理通信路径,可能经过许多中间结点。该线路在整个数据传输期间一直被独占,通信结束后才被释放。
🔹报文交换
数据交换的单位是报文,报文携带有目标地址、源地址等信息。报文交换在交换结点采用的是存储转发的存储方式。
🔹分组交换
也采用存储转发方式。但限制了每次传送的数据块大小的上限,把大的数据块划分为合理的小数据块,再加上必要的控制信息,构成分组(Packet)。
🔶计算机网络分层结构
🔹概念
- 协议:规则的集合。为进行网络中的数据交换而建立的规则、标准或约定称为网络协议(Network Protocol)。
- 接口:同一结点内相邻两层间交换信息的连接点,是一个系统内部的规定。
- 服务:下层为紧相邻的上层提供的功能调用。
🔹模型
🔼ISO/OSI
有七层,低三层统称为通信子网,高三层统称为资源子网。
- 物理层(Physical Layer):在物理媒体上为数据端设备透明地传输原始比特流。
- 数据链路层(Data Link Layer):成帧、差错控制、流量控制和传输管理。
- 网络层(Network Layer):把网络的协议数据单元(分组)从源端传输到目的端,为分组交换网上的不同主机提供通信服务。
- 传输层(Transport Layer):负责主机中两个进程间的通信。
- 会话层(Session Layer):允许不同主机上各进程之间的会话。
- 表示层(Presentation Layer):处理在两个通信系统中交换信息的表示方式。
- 应用层(Application Layer):为特定类型的网络应用提供访问 OSI 环境的手段。
🔼TCP/IP
有四层。
- 网络接口层:类似于 OSI 的物理层和数据链路层。
- 网际层(主机-主机):类似 OSI 的网络层。
- 传输层(应用-应用 或 进程-进程):类似 OSI 的传输层。
- 应用层(用户-用户)
🔶性能评价指标
- 带宽(Bandwidth):计算机网络中表示通信线路所能传送数据的能力,单位是比特每秒(b/s)。
- 时延(Delay):数据(一个报文或分组)从网络(或链路)的一段传送到另一端所需要的总时间,由四部分组成:发送时延、传播时延、处理时延和排队时延。其中高速链路指提高数据的发送速率,即减少发送时延。
- 时延带宽积:时延带宽积=传播时延*信道带宽。
- 往返时延(Round-Trip Time, RTT):从发送端发送数据开始,到发送端收到来自接收端的确认总共经历的时延。
- 吞吐量(Throughput):单位时间内通过某个网络(或信道、接口)的数据量。
- 速率(Speed):主机在数字信道上传送数据的速率。
二、物理层知识点
🔶通信概念
-
信道:表示向某一个方向传送信息的媒体。单向通信只需要一条信道,双向交替通信和双向同时通信都需要两条信道。
-
- 单向通信(单工通信):只能有一个方向的通信。
- 双向交替通信(半双工通信):双方都可以发送信息,但不能同时发送。
- 双向同时通信(全双工通信):双方可以同时发送和接受信息。
-
信号:数据的电气的或电磁的表现,是数据在传输过程中的存在形式。
-
带宽:信号具有的频带宽度。
-
码元:用一个固定时长的信号波形(数字脉冲),表示一位 k 进制数字。
-
波特:表示单位时间内数字通信系统传输的码元数。
-
速率:也叫数据率,是指数据的传输速率,表示单位时间内传输的数据量。
-
- 码源传输速率:单位为波特(Baud)。
- 信息传输速率:单位为比特/秒(bit/s)。
-
信源:产生和发送数据的源头。
-
信宿:接收数据的终点。
🔶编码与调制
🔹编码
把数据变换为数字信号的过程称为编码。数字数据编码为数字信号:
- 非归零码(NRZ):两个电压来代表两个二进制数字。
- 曼彻斯特编码(Manchester Encoding):将一个码元分成两个相等的间隔,前一个间隔为高电平后一个为低电平表示码元1;码元0则相反。也可以采用相反的规定。
- 查分曼彻斯特编码:若码元为1,则前半个码元的电平与上一个码元的后半个码元的电平相同;若为0则相反。
- 4B/5B 编码:将欲发送的数据流的每4位作为一组,按照规则将其转换为相应的5位码。5位码中剩余的16种作为控制码或保留。
模拟数据编码为数字信号:如对音频信号进行编码的脉码调制(PCM),包括抽样、量化和编码。
🔹调制
把数据变换为模拟信号的过程称为调制。数字数据调制为模拟信号:
- 幅移键控(ASK):改变载波信号的振幅来表示数字信号0和1。容易实现,抗干扰能力差。
- 频移键控(FSK):改变载波信号的频率来表示数字信号0和1。容易实现,抗干扰能力强。
- 相移键控(PSK):改变载波信号的相位来表示数字信号0和1。
- 正交振幅调制(QAM):将 ASK 与 PSK 结合起来。
模拟数据调制为模拟信号:可以使用频分复用技术。
🔶定理
🔹奈奎斯特定理
在理想低通(没有噪声、带宽有限)的信道中,极限码源传输率为 2W 波特。其中 W 是理想低通信道的带宽,单位为 Hz。若用 V 表示每个码元离散电平的数目(指有多少种不同的码元),则极限数据传输率为 2 W log 2 V 2W\log_2 V 2Wlog2V(b/s)。
🔹香农定理
给出了带宽受限且有高斯白噪声干扰的信道的极限传输速率,用此速率传输时可不产生误差。极限数据传输速率= W log 2 ( 1 + S / N ) W\log_2 (1+S/N) Wlog2(1+S/N)(b/s)。其中 W 为信道带宽,S 为信道所传输信号的平均功率,N 为信道内部的高斯噪声功率。信噪比= 10 log 10 ( S / N ) 10\log_{10}(S/N) 10log10(S/N)(dB)。
🔶复用技术
- 频分多路复用(FDM):将多路基带信号调制到不同频率载波上再进行叠加形成一个复合信号的多路复用技术。
- 时分多路复用(TDM):将一条物理信道按时间分成若干个时间片,轮流地分配给多个信号使用。
- 波分多路复用(WDM):光的频分多路复用,在一根光纤中传输多种不同波长(频率)的光信号,由于波长(频率)不同,所以各路光信号互不干扰,最后再用波长分解复用器将各路波长分解出来。
- 码分多路复用(CDM):靠不同的编码来区分各路原始信号的一种复用方式。
🔶传输介质
- 双绞线:把两根互相绝缘的铜导线斌并排放在一起,然后用规则的方法绞合起来。为了提高双绞线的抗电磁干扰能力,可以在双绞线的外面再加上一层用金属丝编织成的屏蔽层。
- 同轴电缆:由内导体铜质芯线(单股实心线或多股绞合线)、绝缘层、网状编织的外导体屏蔽层及保护塑料外层所组成。
- 光纤:利用光导纤维传递光脉冲来进行通信。
- 无线传输介质
🔶网络设备
🔹中继器
又称为转发器,主要功能是将信号整形并放大再转发出去,以消除信号由于经过一长段电缆,因噪声或其他原因而造成的失真和衰减。原理是信号再生。
🔹集线器
集线器(Hub)实质上是一个多端口的中继器,也工作在物理层。
三、数据链路层知识点
🔶功能
- 为网络层提供服务:无确认的无连接服务,有确认的无连接服务,有确认的面向连接服务
- 链路管理:数据链路层连接的建立、维持和释放过程
- 帧定界、帧同步与透明传输
- 流量控制:限制发送方的数据流量,使其发送速率不超过接收方的接收能力
- 差错控制:使发送方确定接收方是否正确收到了由它发送的数据的方法
🔶组帧与透明传输
发送方依据一定的规则把网络层递交的分组封装成帧。透明传输指不管所传数据是什么样的比特组合,都应当能在链路上传送。
- 字符计数法:在帧头部使用一个计数字段来标明帧内字符数
- 字符填充的首位定界符发:使用一些特定的字符来定界一帧的开始(DLE STX)与结束(DLE ETX)。为了使信息位中出现的特殊字符不被误判,可以在特殊字符前面填充一个转义字符(DLE)来区分,数据段中出现 DLE 可在其前面再插入一个 DLE
- 比特填充的首位标志法:使用一个特定的比特模式,即01111110来标志一帧的开始和结束。发送方在信息位中出现连续5个1时自动在后面插入一个0,接收方进行逆操作
- 违规编码法:如在曼彻斯特编码方法中采用”高-高“电平对和”低-低“电平对
🔶差错控制
差错控制可分为:
- 检错编码(Error-Detecting Code):出错时只能通知发送端重发。
- 纠错编码(Error-Correcting Code):出错时可以确定错误位置并加以纠正。
常见的检错技术:
- 奇偶校验:1位校验元,如果是奇校验码,附加上1位校验元后,码字中1的个数为奇数。
- 循环冗余校验(Cyclic Redundancy Code, CRC):一个二进制数位串可看作只有0和1两个系数的多项式。发送方和接收方事先商定一个 r 阶多项式 G(x)(最高位和最低位必须为1),发送方将待发送的帧后面补 r 个0,然后用补完的数据串去除 G(x),将得到的余数代替所补的 r 个0;这样接收方用同样的多项式去除收到的数据包,余数为0则表明正确。
- 校验和:循环冗余校验中的最后 r 位即可称为校验和。
🔶可靠传输
可靠传输机制:通常使用确认和超时重传两种机制完成。
- 滑动窗口机制:在任意时刻,发送方都维持一组连续的允许发送的帧的序号,称为发送窗口;接收方维持接收窗口。接收方只有收到数据帧的序号落在接收窗口内才允许将该数据帧收下。
- 停止-等待协议:发送方每发送一帧,都要等待对方的应答信号,之后才能发送下一帧;接收方每接收一帧,都要反馈一个应答信号,表示可接收下一帧。
🔶动态媒体接入控制技术
🔹ALOHA 协议
- 纯 ALOHA 协议:当网络中的任何一个站点需要发送数据时,可以不进行任何检测就发送数据。如果一段时间内没有收到确认,该站点就认为传输过程中发生了冲突,等待一段时间后再发送数据。
- 时隙 ALOHA 协议:把所有各站在时间上同步起来,将时间划分为一段段等长的时隙(Slot),规定只能在每个时隙开始时才能发送一个帧。
🔹CSMA 协议
每个站点发送前先侦听共用信道,发现空闲后再发送。
- 1-坚持 CSMA:侦听信道:空闲则立即发送;忙则继续侦听直至信道空闲;冲突则随即等待一段时间再侦听。
- 非坚持 CSMA:侦听信道:空闲则立即发送;忙则等待一个随机的时间后再侦听。
- p-坚持 CSMA:侦听信道:忙则等待下一个时隙再侦听;空闲则以概率 p 发送数据,以概率 1-p 推迟到下一个时隙。
🔹CSMA/CD 协议
传输过程中,适配器检测来自其他适配器的信号能量的出现。如果传输完整个帧都没有检测到来自其他适配器的信号,则完成传输;否则停止传输,取而代之传输一个48比特的拥塞信号,然后等待一段随机事件后重新尝试传输。
🔹CSMA/CA 协议
信道忙变为空闲,且要发送数据时,不仅需要等待一个时间间隔,还要进入争用窗口,并计算随机退避时间以便再次重新试图接入到信道。
🔶以太网
🔹总线型以太网
以太网是目前使用范围最广的局域网,其逻辑拓扑是总线型结构,物理拓扑是星形或拓展星形结构。以太网使用 CSMA/CD 方式对总线进行访问控制。
🔹交换以太网
以交换机代替共享式 HUB,把非广播数据只发送到对应端口,所有端口对之间的通讯互不干扰,故速度比 HUB 广播快得多。
🔶设备
🔹网桥的概念和原理
两个或多个以太网通过网桥连接起来后,就成为一个覆盖范围更大的以太网。网桥工作在链路层的 MAC 子层,可以使以太网各网段称为隔离开的碰撞域。
网桥有路径选择的功能,根据路径选择算法的不同,可将网桥分为透明网桥和源路由网桥。其中最佳路由不是指经过路由器最少,而是发送帧往返时间最短。
- 透明网桥:选择的不是最佳路由
- 源路由网桥:选择的是最佳路由
🔹交换机及其工作原理
交换机就是一个多端口的网桥。它检测从以太端口来的数据帧的源和目的地的 MAC 地址,然后与系统内部的动态查找表进行比较,若数据帧的 MAC 地址不在查找表中,则将该地址加入查找表,并将数据帧发送给相应的目的端口。
四、网络层知识点
🔶网络层的功能
🔹异构网络互联
互联指将两个以上的计算机网络,用一种或多种通信处理设备(即中间设备)相互连接起来,以构成更大的网络系统。中间设备又称为中间系统或中继系统,根据其所在层次可以分为:
- 物理层:中继器、集线器
- 数据链路层:网桥、交换机
- 网络层:路由器
- 网络层以上:网关
🔹路由与转发
路由器主要完成两个功能:
- 路由选择:动态改变所选择的路由。
- 分组转发:将用户的 IP 数据报从合适的端口转发出去。
🔶IP 协议
🔹分组格式
一个 IP 分组由首部和数据两部分组成。IP 首部的部分重要字段含义如下:
- 版本:IP 协议的版本,目前广泛使用的为 4。
- 首部长度:占4位,最大值为60字节。最常使用20字节,即不使用任何选项。以4个字节为偏移单位。
- 总长度:占16位,首部和数据之和的长度,最大为65535字节。以1个字节为偏移单位。
- 标识:占16位,是一个计数器,每产生一个数据报就加1。
- 标志:占3位,最低位为 MF,MF=1 表示后面还有分片;MF=0 表示最后一个分片。中间一位是 DF,只有 DF=0 才允许分片。
- 片偏移:占13位,指出分片后,某片在原分组中的相对位置。以8个字节为偏移单位。
- 首部检验和:占16位,只校验分组的首部。
- 生存时间 TTL:占8位,数据报在网络中可通过的路由器的最大值。
- 协议:占8位,指出携带的数据使用何种协议。
🔹地址分类
分为 A、B、C、D、E 五类:
类别(网络号) | 0 | 1 | 2 | 3 | 4~8 | 9~16 | 17~24 | 25~32 |
---|---|---|---|---|---|---|---|---|
A 类(1~126) | 0 | 网络号 | 主机号 | |||||
B 类(128~191) | 1 | 0 | 网络号 | 主机号 | ||||
C 类(192~223) | 1 | 1 | 0 | 网络号 | 主机号 | |||
D 类(224~239) | 1 | 1 | 1 | 0 | 多播地址 | |||
E 类(240~255) | 1 | 1 | 1 | 1 | 保留为今后使用 |
特殊 IP:
- 主机号全为0表示网络本身。
- 主机号全为1表示本网络的广播地址。
- 127.0.0.0网络保留作为环路自检地址,表示任意主机本身,目的地为该地址的 IP 数据包永远不会出现在网络上。
- 0.0.0.0表示本网络上的本主机。
- 255.255.255.255表示整个 TCP/IP 网络的广播地址。
- 专用地址:10.0.0.0到10.255.255.255,172.16.0.0到172.31.255.255,192.168.0.0到192.168.255.255,这三个地址块只用作本地地址。
🔹子网与超网
在 IP 地址中增加一个“子网号字段”,使两级 IP 地址变为三级 IP 地址,这种做法叫划分子网。从主机号借用若干个比特作为子网号,路由器收到 IP 数据报后,先按目的网络号和子网号找到目的子网。
子网掩码是一个与 IP 地址相对应的32位二进制串,由一串1和跟随的一串0组成,其中1对应网络号和子网号。路由器在相互交换路由信息时,必须把自己所在网络的子网掩码告诉对方;路由表中的每一个条目,除了要给出目的网络地址和下一跳地址外,还需要同时给出该目的网络的子网掩码。
无分类域间路由选择(CIDR)是在变长子网掩码的基础上提出的一种消除传统A、B、C类网络划分,并且可以在软件的支持下实现超网构造的一种 IP 地址的划分方法。IP 地址的无分类两级编址为:IP::={<网络前缀>,<主机号>};将网络前缀都相同的连续的 IP 地址组成“CIDR 地址块“,一个地址块可以表示很多地址,这种地址的聚合称为路由聚合。路由表项由”网络前缀“和”下一跳地址“组成,在查找路由表时应当选择具有最长网络前缀的路由,称为最长前缀匹配。
🔼分片传输
一个链路层数据报能承载的最大数据量称为最大传送单元(MTU)。当 IP 数据报的总长度大于链路 MTU 时,就需要将 IP 数据报中的数据分装在两个或更多个较小的 IP 数据报中,这些小的数据报叫做片。当一个路由器需要将一个数据报分片时,形成的每个片都具有原始数据报的标识。分片后,由于片偏移的单位为8字节,所以除了最后一个片外,其他所有片中的有效数据载荷都是8的倍数。
🔶路由算法及协议
🔹分层路由设计
因特网将整个互联网划分为许多较小的自治系统,每个自治系统有权自主地决定本系统内应采用何种路由选择协议。因特网把路由选择协议划分为两大类:
- 一个自治系统内部所使用的称为内部网关协议(IGP),也称为域内路由选择,具体协议有 RIP 和 OSPF。
- 自治系统之间所使用的称为外部网关协议(EGP),也称为域间路由选择,具体协议有 BGP。
当使用层次路由时,OSPF 将一个自治系统再划分为若干个区域,每个路由器只需知道本区域内的细节。
🔹域内域间路由协议算法
🔼RIP 路由协议
路由信息协议(RIP)是 IGP 中最先得到广泛应用的协议,是应用层协议,使用 UDP 传送数据。每个路由器维护从它自己到每一个目的网络的距离记录,称“距离向量”;优先选择跳数少的路径;为了防止不断循环,一条路径最多只能包含15个路由器,16跳时即表示网络不可达。
-
特点:仅和相邻路由器交换信息;路由器之间交换本路由器所知道的全部信息;按固定的时间间隔交换路由信息。
-
距离向量算法:每一个路由表项都有三个关键数据:<目的网络 N,距离 d,下一跳路由器 X>,对于每个相邻路由器发送过来的 RIP 报文,进行:
-
- 对地址为 X 的相邻路由器发来的 RIP 报文,先把下一跳字段都改为 X,并把距离都加1。
- 当原来的路由表中没有目的网络 N 时,把该表项加到路由表中。
- 当原来的路由表中有目的网络 N,且下一跳路由器地址是 X 时,用收到的项目替换原路由表中的项目。
- 当原来的路由表中有目的网络 N,且下一跳路由器地址不是 X 时,若收到的表项中的 d 小于原表项中的,则替换。
- 如果180秒还没有收到相邻路由器的更新路由表,则把此相邻路由器距离设为16。
🔼OSPF 路由协议
开放最短路径优先(OSPF)协议是 IGP 中的一种,是分布式链路状态路由算法的典型代表。
- 与 RIP 区别:向本自治系统所有路由器发送信息,采用洪泛法;发送的信息只有与本路由器相邻的路由器以及该链路的代价;只有当链路状态发生变化时,才向所有路由器发送此信息;是网络层协议,直接 IP 数据报传送。
- 基本工作原理:所有路由器最终能建立一个链路状态数据库,即全网的拓扑结构图。每个路由器根据该结构图,使用 Dijkstra 最短路算法计算自己到各自网络的最优路径,将下一跳路由器存到路由表中。
🔼BGP 路由协议
边界网关协议(BGP)是 EGP 中的一种,采用路径向量路由选择协议,是应用层协议,基于 TCP。
工作原理:每个自治系统选择至少一个路由器作为该系统的“BGP 发言人”。两个自治系统的发言人之间要交换路由信息,就要先建立 TCP 连接。当所有 BGP 发言人都相互交换网络可达性的信息后,就可找出到达各个自治系统的比较好的路由。
🔶相关协议
🔹ARP 协议
地址解析协议,完成 IP 地址到 MAC 地址的映射,工作在网络层。
发送 IP 数据报前先查 ARP 表,若无目的 IP 地址对应的 MAC 地址,就通过目的地址为 FF-FF-FF-FF-FF-FF 的帧来封装并广播 ARP 请求分组,目的 IP 主机收到后进行单播回复。
🔹ICMP 协议
网际控制报文协议,允许主机或路由器报告差错和异常情况,是 IP 层协议。报文分两类:ICMP 差错报告报文和 ICMP 询问报文。两个常见应用是 ping 和 traceroute。
其中差错报告报文包括:
- 终点不可达:路由器或主机不能交付数据报。
- 源点抑制:路由器或主机由于拥塞而丢弃数据报。
- 时间超过:路由器收到 TTL 为0的数据报。
- 参数问题:数据包的首部中有的字段的值不正确。
- 改变路由(重定向):让主机知道下次应将数据报发送给另外的路由器,可获得更好的路由。
询问报文包括:回送请求和回答报文、时间戳请求和回答报文、掩码地址请求和回答报文、路由器询问和通告报文。
🔹DHCP 协议
动态主机配置协议,给主机动态地分配 IP 地址,工作在应用层,基于 UDP。
- 客户机广播“DHCP 发现”消息,服务器获得一个 IP 地址。
- 服务器收到消息后广播“DHCP 提供”消息,其中包括提供客户机的 IP 地址和相关配置信息。
- 客户机收到消息,如果接受服务器提供的相关参数,则广播“DHCP 请求”消息。
- 服务器广播“DHCP 确认”消息,将 IP 地址分配给客户机。
🔹NAT
网络地址转换,通过将专用网络地址转换为共用地址,从而隐藏了内部管理的 IP 地址,使整个内部网只需要一个全球 IP 地址就可以与因特网连通。
NAT 路由器根据 NAT 转换表进行本地地址转与全球地址之间的互相转换,转换表中存放着{本地 IP 地址:端口}到{全球 IP 地址:端口}的映射。
🔹VPN
虚拟专用网,利用公共的因特网作为机构内专用网之间的通信载体。出口路由器将要传送的数据报进行加密,然后封装成目的地址为目的内网出口路由器地址的报文在因特网上进行传送,目的内网的出口路由器收到报文后进行解密,再将报文传到内网中的指定主机上。
🔶IPv6 协议
🔹改进及设计思路
IPv6 地址有128位,首部长度必须是8字节的整数倍,传输路径中的路由器不能分片,采用身份验证和保密功能。
IPv6 地址可以是单播、多播、任播三种基本类型之一。IPv4 向 IPv6 过渡可以采用双协议栈和隧道技术两种策略。
🔹移动 IP 的基本原理
移动 IP 技术是移动结点以固定的网络 IP 地址,实现跨越不同网段的漫游功能,并保证了基于 IP 的网络权限在漫游过程中不发生任何改变。基于 IPv4 的移动 IP 定义三种功能实体:移动结点、归属代理(也叫本地代理)和外埠代理(也叫外部代理)。
移动 IP 技术的基本通信流程如下:
- 移动结点在本地网时,按传统的方式通信(在本地网固有的地址)。
- 移动结点漫游到一个外地网络时,仍然使用固定的 IP 地址进行通信。移动结点需要向本地代理注册当前的位置地址,即转交地址(可以是外部代理的地址或动态配置的一个地址)。
- 本地代理接收注册后,会构建一条通向转交地址的隧道,将截获的发给移动结点的 IP 分组通过隧道送到转交地址处。
- 在转交地址处解除隧道封装,恢复出原始的 IP 分组,最后送到移动结点。
- 移动结点在外网通过外网的路由器或者外代理向通信对端发送 IP 数据包。
🔶路由器的功能和组成,路由表与路由转发
路由器具有多个输入输出端口,任务是连接不同的网络并完成路由转发。从结构上看,路由器由路由选择和分组转发两部分构成。
路由表是根据路由选择算法得出的,主要用途是路由选择,包含:目的网络 IP 地址、子网掩码、下一跳 IP 地址、接口。
转发表是从路由表得出的,但格式不同,结构应使查找过程最优化,包含:目的地址、下一跳地址(实际为 MAC 地址)。
五、传输层知识点
🔶传输层提供的服务
🔹传输层的功能
- 传输层位于网络层之上,为运行在不同主机上的进程之间提供了逻辑通信,而网络层提供了主机之间的逻辑通信。
- 复用和分用。复用指发送方不同的应用进程都可以使用同一个传输层协议传送数据,分用指接收方的传输层在剥去报文的首部后能够把这些数据正确交付到目的应用进程。
- 传输层还要对收到的报文进行差错检测,包括数据部分。
- 提供两种不同的传输协议,即面向连接的 TCP 和无连接的 UDP。采用 TCP 时,应用进程看到的是一条全双工的可靠信道;采用 UDP 时,这种逻辑通信信道仍然是一条不可靠信道。
🔹传输层寻址与端口
-
端口能够让应用层的各种应用进程将其数据通过端口向下交付给传输层,以及让传输层知道应当将其报文段中的数据向上通过端口交付给应用层相应的进程。端口标识了主机中的应用进程,端口号只具有本地意义。
-
端口号长度为16位,根据端口号范围可分为两类:
-
- 服务端使用的端口号:这里又分两类,最重要的一类是熟知端口号,数值为0~1023,被 IANA(互联网地址指派机构)分配给 TCP/IP 一些最重要的应用程序;另一类是登记端口号,数值为1024~49151,使用时必须在 IANA 登记。
- 客户端使用的端口号:数值为49152~65535,又叫短暂端口号或临时端口。客户进程通信结束后就可以给其它客户进程使用。
-
套接字(Socket)=(主机 IP 地址,端口号)。
🔹无连接服务与面向连接服务
- TCP 提供面向连接的服务,在通信之前必须先建立连接,数据传送结束后释放连接。会增加许多开销,会使协议数据单元头部增大,也会占用处理机资源,适用于 FTP,HTTP 等。
- UDP 提供无连接服务,直接将信息发送到网络中,尽力向目的地传送。执行速度快,实时性好,适用于 DNS 等。
🔶UDP 协议
UDP 提供尽最大努力的交付,即不保证可靠交付,所有维护传输可靠性的工作需要在应用层完成。UDP 是面向报文的。
🔹UDP 数据报
UDP 数据报包含 UDP 首部和用户数据。首部有8个字节,由4个字段组成:源端口、目的端口、长度和校验和。校验和检测有错就丢弃,当源主机不想计算校验和时可全置0。
🔹UDP 校验
计算校验和时,要在 UDP 数据报之前增加12个字节的伪首部,其中包括源 IP 地址、目的 IP 地址和 UDP 长度。UDP 校验时把首部部分和数据部分一起检验。
🔶TCP 协议
提供可靠的交付服务,保证传送的数据无差错、不丢失、不重复且有序。提供全双工通信。
🔹TCP 段
首部的前20字节是固定的;首部最短为20字节,后面有4N字节是根据需要可增加的选项。
- 源端口和目的端口字段:各2字节。
- 序号字段:4字节。TCP 是面向字节流的,传送的数据流中的每个字节都有序号,该字段的值为本报文段所发送数据第一个字节的序号。
- 确认号字段:4字节。是期望收到对方的下一个报文段的数据的第一个字节的序号。
- 数据偏移(即首部长度):4位。
- 紧急位 URG:有效时表明此报文段有紧急数据,应尽快传送。数据从第一个字节到紧急指针字段(16位)所指字节位紧急数据。
- 确认位 ACK:有效时确认号字段才有效。规定建立连接后所有的报文段都要把 ACK 置1。
- 推送位 PSH:有效时就尽快交付应用程序。
- 复位位 RST:有效时表明连接中出现严重差错,必须释放连接然后重新建立。
- 同步位 SYN:有效时表明这是连接请求或连接接收报文。
- 终止位 FIN:有效时表明发送方数据已发送完毕。
- 窗口字段:2字节。指出现在允许对方发送的数据量,单位为字节。
- 检验和:2字节。检验包括首部和数据,计算时要加12字节的伪首部。
🔹TCP 连接管理
每个 TCP 连接都有三个阶段:连接建立、数据传送和连接释放。TCP 连接的两个端点是套接字。
🔼连接建立
- 客户机的 TCP 首先向服务器的 TCP 发送一个连接请求报文段,其中不含应用层数据。首部的 SYN 被置为1,客户机会随机选择一个起始序号x。
- 服务器的 TCP 收到请求报文段后,同意则为该连接分配 TCP 缓存和变量,并发回确认。确认报文段中 SYN 和 ACK 都被置为1,确认号字段值为x+1,随机产生一个起始序号值为y。
- 客户机收到确认报文段后,分配缓存和变量,并发回确认。报文段的 ACK 置为1,序号字段为x+1,确认号字段为y+1。
🔼连接释放
- 客户机打算关闭连接,就向 TCP 发送连接释放报文段,并停止再发送数据。报文段的 FIN 置1,序号字段为已传送过的数据的最后一个字节的序号加1。
- 服务器收到连接释放报文段后发回确认。确认号字段为u+1,序号字段为已传送过的数据的最后一个字节的序号加1。此时,从客户机到服务器方向的连接就释放了,TCP 处于半关闭状态。
- 若服务器也打算关闭连接,就发出 FIN 为1的连接释放报文段。
- 客户机收到连接释放报文段后,必须发出确认。确认报文段中 ACK 置1,序号字段为u+1。
🔹TCP 可靠传输
-
TCP 首部的序号字段用来保证数据能有序提交给应用层,TCP 把数据看成有序的字节流,序号是建立在传送的字节流之上的。
-
确认号字段默认使用累计确认,即只确认数据流中至第一个丢失字节为止的字节。
-
有两种事件会导致 TCP 对报文段进行重传。
-
- 超时:TCP 每发送一个报文段,就对这个报文段设置一个计时器,只要计时结束但还没收到确认,就重传这一报文段。TCP 会记录一个报文段发出的时间,以及收到相应确认的时间,时间差叫做报文段的往返时间(RTT),并保留一个加权 RTT 来计算要设置的重传时间。
- 冗余 ACK:TCP 规定每当比期望序号大的失序报文段到达时,发送一个冗余 ACK,指明下一个期待字节的序号。并且当发送方收到对同一个报文段的3个冗余 ACK 时,就可以认为跟在这个被确认报文段之后的报文段已经丢失。这时要立刻重传,这种技术称为快速重传。
🔹TCP 流量控制
流量控制是用来匹配发送方的发送速率和接收方的读取速率。在通信过程中,接收方动态地调整发送方的发送窗口大小,这就是接收窗口 rwnd,即调整首部中的窗口字段值。同时,发送方根据其对当前网络拥塞程度的估计而确定的窗口值称为拥塞窗口 cwnd。发送窗口的实际大小是取 rwnd 和cwnd 的最小值。
🔹TCP 拥塞控制
拥塞控制是让网络能够承受现有的网络负荷,是一个全局性的过程。流量控制往往指点对点的通信量的控制。
🔼慢开始和拥塞避免
- 慢开始算法:先令拥塞窗口 cwnd=1,每收到一个对新的报文段的确认后,将 cwnd 加1。使用这种算法,每经过一个传输轮次,即 RTT,cwnd 就会加倍。一直增加到一个规定的慢开始门限 ssthresh,然后改用拥塞避免算法。
- 拥塞避免算法:cwnd 每经过一个 RTT 就增加1,使 cwnd 按线性规律缓慢增长,出现一次超时时,就令 ssthresh 等于当前 cwnd 的一半。
- 拥塞处理:无论在慢开始阶段还是拥塞避免阶段,只要发送方检测到超时事件,就把 ssthresh 设置为出现拥塞时 cwnd 的一半(不能小于2),然后把 cwnd 重新设置为1,执行慢开始算法。在慢开始阶段,若 2*cwnd>ssthresh,则下一个 RTT 的 cwnd 应等于 ssthresh。
🔼快重传和快恢复
快重传和快恢复算法是对上述算法的改进。
- 快重传:使用冗余 ACK 来检测丢包的发生。并非取消重传计时器,而是在某些情况下能更早地重传丢失的报文段。
- 快恢复:发送端收到连续三个冗余 ACK 时,就把 ssthresh 和 cwnd 同时设置为出现拥塞时 cwnd 的一半,然后执行拥塞避免算法。
六、应用层知识点
🔶网络应用模型
🔹客户/服务器模型
在客户/服务器(Client/Server,C/S)模型中,有一个总是打开的主机称为服务器,它服务于许多来自客户机的请求。客户程序必须知道服务器程序的地址;服务器程序不需要知道客户程序的地址。
模型最主要的特征是:客户是服务请求方,服务器是服务提供方。
🔹P2P 模型
各计算机没有固定的客户和服务器划分,任意一对计算机——称为对等方(Peer),直接相互通信。
与 C/S 模型相比,优点主要体现在:减轻服务器压力,消除对某个服务器的完全依赖;多个客户机之间可以直接共享文档;可扩展性好;网络健壮性强。缺点有会占用较多内存,影响整机速度。
🔶DNS 系统
域名系统 DNS(Domain Name System)是因特网使用的命名系统,用来把便于人们记忆的含有特定含义的主机名转换为便于机器处理的 IP 地址。运行在 UDP 协议之上,使用53号端口。
🔹层次域名空间
因特网采用层次树状结构的命名方法。每一个域名都是由标号序列组成,各标号之间用点隔开。标号中的英文不区分大小写;标号中除连字符外不能使用其它的标点符号;级别最低的域名写在左边,级别最高的顶级域名写在最右边。
顶级域名(Top Level Domain,TLD)有三类:国家顶级域名(如“.cn”,“.us”等),通用顶级域名(如“.com”,“.org”等),基础结构域名(只有arpa,用于反向域名解析)。
🔹域名服务器
因特网的域名系统被设计成一个联机分布式的数据库系统,采用 C/S 模型。
- 根域名服务器:最高层次的域名服务器,知道所有顶级域名服务器的 IP 地址。因特网有13台根域名服务器。
- 顶级域名服务器:负责管理在该顶级域名服务器注册的所有二级域名。
- 授权域名服务器(权限域名服务器):每个主机都必须在授权域名服务器处登记。许多域名服务器都同时充当本地域名服务器和授权域名服务器。
- 本地域名服务器:当一个主机发出 DNS 查询请求时,这个查询请求报文就发送给该主机的本地域名服务器。
🔹域名解析过程
域名解析是指把域名映射为 IP 地址(正向解析)或把 IP 地址映射为域名(反向解析)的过程。有两种方式:递归查询和递归与迭代相结合的查询。
- 主机向本地域名服务器的查询采用的是递归查询:如果本地域名服务器不知道被查询域名的 IP 地址,就以 DNS 客户的身份,向根域名服务器继续发出查询请求报文。
- 本地域名服务器向根域名服务器的查询采用迭代查询:根域名服务器收到本地域名服务器发出的迭代查询请求报文时,要么给出所要查询的 IP 地址,要么给出下一步要查询的顶级域名服务器的 IP 地址。
🔶文件传输协议 FTP
FTP(File Transfer Protocol)是因特网上使用得最广泛的文件传送协议。提供交互式访问,允许客户指明文件类型与格式。
🔹工作原理
FTP 采用 C/S 的工作方式,使用 TCP 可靠的传输服务。服务器进程由两部分组成:一个主进程,负责接收新的请求;另外有若干个从属进程,负责处理单个请求。
🔹控制连接与数据连接
工作时使用两个并行的 TCP 连接,一个是控制连接(端口21),一个是数据连接(端口20)。
- 控制连接:用来传输控制信息(如连接请求、传送请求等)。整个会话期间一直保持打开状态。
- 数据连接:完成文件的传送。
🔶电子邮件
🔹电子邮件系统的组成结构
一个电子邮件系统应具有三个最主要的组成构件:
- 用户代理(User Agent):用户与电子邮件的接口。
- 邮件服务器:组成了电子邮件系统的核心。用来发送和接收邮件,同时还要向发信人报告邮件传送的情况。
- 使用的协议:邮件发送协议通常使用 SMTP;邮件读取协议有 POP3。
🔹SMTP 协议
简单邮件传输协议 SMTP 控制两个相互通信的 SMTP 进程交换信息。SMTP 通信有三个阶段:
- 连接建立:SMTP 客户每隔一定时间对邮件缓存扫描一次,发现有邮件,就使用端口25与接收方邮件服务器的 SMTP 服务器建立 TCP 连接。
- 邮件传送:邮件的传送从 MAIL 命令开始,命令后面有发件人的地址。若服务器已准备好接收邮件,则回答“250 OK”。然后客户端发送一个或多个 RCPT 命令,每个命令都会收到“250 OK”或“550 No such user here“回复。获得 OK 的回答后,就使用 DATA 命令传输邮件内容。
- 连接释放:邮件发送完毕后客户发送 QUIT 命令。
🔹POP3 协议
采用”拉“(Pull)的通信方式,使用 C/S 工作方式,使用 TCP 协议,端口为110。有两种工作方式:下载并保留和下载并删除。
🔶万维网 WWW
🔹WWW 的概念与组成结构
WWW 是一个资料空间。WWW 的内核部分是由三个标准构成的:
- 统一资源定位符(URL):负责标识万维网上的各种文档,并使每个文档在整个万维网内有唯一的标识符。一般形式是:<协议>://<主机>:<端口>/<路径>。
- 超文本传输协议(HTTP):是一个应用层协议,使用 TCP 连接进行可靠的传输。
- 超文本标记语言(HTML):是一种文档结构的标记语言,对页面上的各种信息、格式进行描述。
🔹Web 应用的基本概念
Web 应用由两部分组成,客户端和服务器端。客户端指定 URL 与服务器端进行连接;服务器把 URL 转换为文件路径,并返回信息给 Web 浏览器;通信完成,关闭连接。
🔹HTTP 协议
定义了浏览器怎样向万维网服务器请求万维网文档,以及服务器怎样把文档传送给浏览器。
-
览器获得服务器的 IP 地址后,将通过 TCP 向服务器发送连接建立请求。每个万维网站点都有一个服务器进程,监听80端口,监听到连接请求后就建立连接。因此 HTTP 有两类报文:请求报文和响应报文。
-
HTTP 协议是无状态的,即同一个客户第二次访问同一个服务器时,服务器并不记得这个客户。实际中采用 Cookie 加数据库的方式来跟踪用户活动。Cookie 是一个存储在用户主机中的文本文件,含有一串识别码,用来识别用户。
-
HTTP 既可以使用非持久连接,即每一个网页对象的传输都需要单独建立一个 TCP 连接;也可以使用持久连接,即服务器发送响应后仍然保持这条连接。
-
HTTP 是面向文本的,报文中的每个字段都是 ASCII 码串,每个字段的长度都是不确定的。请求报文中有几个常用的方法(操作):
-
- GET:请求读取由 URL 所标志的信息
- HEAD:请求读取由 URL 所标志的信息的首部
- POST:给服务器添加信息(例如,注释)
- CONNECT:用于代理服务器