计算机网络知识点整理
概述:
时延:
总时延 = 传输时延 + 传播时延 + 处理时延 + 排队时延
- 传输时延:主机或路由器传输数据帧所需要的时间
其中 l 表示数据帧的长度,v 表示传输速率(或信道宽度)。
- 传播时延:电磁波在信道中传播所需要花费的时间,电磁波传播的速度接近光速
其中 l 表示信道长度,v 表示电磁波在信道上的传播速度。
- 处理时延:主机或路由器收到分组时进行处理所需要的时间,例如分析首部、从分组中提取数据、进行差错检验或查找适当的路由等。
- 排队时延:分组在路由器的输入队列和输出队列中排队等待的时间,取决于网络当前的通信量。
对网络模型进程分层的目标:
- 提供标准语言
- 定义标准界面
- 增加功能之间的独立性
ISO/OSI参考模型在网络层支持无连接和面向连接的通信,但在传输层仅支持面向连接的通信;
TCP/IP模型在网络层仅有无连接的通信,而在传输层支持无连接和面向连接的通信。
在不同层次进行互联时,本层及本层以下的协议必须相同,本层以上的协议可以不同。
路由器是第三次设备,向传输层及以上层隐藏下层的具体实现,所以物理层、数据链路层、网络层协议可以不同。
物理层
通信基础
:
-
数据:指传送信息的实体
- 连续变化的数据(或信号)称为模拟数据(或模拟信号)
- 取值仅允许为有限的几个离散数值的数据(或信号)称为数字数据(或数字信号)
-
信道:
- 单工:只有一个方向的通信,而没有反方向的交互
- 半双工:通信双方都可以发送、接收信息,但不能同时发送接收
- 全双工:通信双方可以同时发送、接收信息
-
定理:
- 奈氏准则:理想低信道下的极限数据传输率 = 2Wlog2V
- 香农定理:信道的极限数据传输速率 = W log2(1+S/N)
- 其中,W 为信道的带宽,S 为信道所传输信号的平均功率,N 为信道内部的高斯噪声功率。
- 从香浓定理可以看出,若信道带宽W或信噪比S/N没有上限,那么信道的极限信息传输速率也就没有上限。
-
调制与编码:
- 调制:把数据变换为模拟信号的过程
- 编码:把数据变换为数字信号的过程
- 数字数据->数字信号:非零编码(NRG)、曼切斯特编码、差分曼切斯特编码
- 数字数据->模拟信号:幅移键控、频移键控、相移键控、正交振幅调制
- 模拟数据->数字信号:1.抽样 2.量化 3.编码 (对音频信号进行编码的脉码调制(PCM))
- 模拟数据->模拟信号:频分复用技术等(在电话机和本地局交换机所传输的信号)
-
传输方式:
- 电路交换:两点之间建立一条专用的物理通信路径,传输期间一直独占;(常用于电话通信系统)
- 报文交换:无需建立专门连接,报文携带有目标地址等信息,采用存储转发方式
- 报文交换对报文大小没有限制,需要网络结点有较大的缓存空间。
- 不适合实时通信应用环境(如语音、视频等)。
- 分组交换:把报文分割成小的数据块,加上必要的控制信息进行传输
- 数据报:分组之间可能存在不同路径,各个分组分别转发
- 无连接,不提供可靠性保障,也不保证分组的有序到达
- 虚电路:在发送方和接收方之间建立一条逻辑上相连的虚电路,分组沿着虚电路传输
- 虚电路不一定是临时的,提供的服务包括永久性虚电路(PVC)和交换型虚电路(SVC)
- 数据报:分组之间可能存在不同路径,各个分组分别转发
传输介质
:
- 无线:无线电波、微波、红外线和激光
- 有线:双绞线、同轴电缆、光纤
- 物理层接口的特性:
- 机械特性:主要定义物理连接的边界点,即接插装置。
- 电气特性:规定传输二进制位时,线路上信号的电压高低、阻抗匹配、传输速率和距离限制等。
- 功能特性:指明某条线上出现的某一电平的电压表示何种意义,接口部件的信号线(数据线、控制线、定时线等)的用途。
- 规程特性:主要定义各种物理线路的工作规程和时序关系。
设备
:
- 中继器(转发器):将信号整形放大(原理:信号再生)再转发出去,消除信号的失真和衰减问题,具有 5-4-3 规则
- 5-4-3规则:互相串联的中继器个数不能超过4个,而且用4个中继器串联的5段通信介质中只有3个段可以挂接计算机,其余两个段只能用作扩展通信范围的链路段,不能挂接计算机。
- 半双工;直通式设备
- 仅作用于信号的电气部分
- 使用中继器连接起来的几个网段仍属于一个局域网
- 不能连接两个具有不同速率的局域网
- 集线器(Hub):实质上是一个多端口的中继器,对信号放大后发到其他所有端口
- 半双工
- 集线器连接的工作站集合同属于一个冲突域和广播域
- 集线器无寻址功能,从一个端口接收到的数据从其他所有端口转发出去
数据链路层
功能:为网络层提供服务、链路管理、帧定界、帧同步与透明传输、流量控制和差错控制
为网络层提供服务:
- 无确认的无连接服务:如以太网
- 有确认的无连接服务:如无线通信
- 有确认的面向连接服务:通信要求(可靠性、实时性)较高的场合
- 注:有连接就一定要确认
帧同步指的是接收方应当能从接收到的二进制比特流中区分出帧的起始和终止。
组帧
:主要解决帧定界、帧同步与透明传输等问题
- 字符计数法:在帧头部使用一个计数字段来标明帧内字符数(此字段也在计数范围内)
- 首尾定界法:
- 概念:使用特定字符或比特模式定界帧的开始和结束
- 字符填充:在数据中的特殊字符前面用转义字符(ESC)填充加以区分;
- 比特填充:使用一个特定的比特模式,即 0111110(FLAG)来标志一段帧的开始和结束;容易由硬件来实现,性能好;
- 违规编码法:信号传输过程中采用违规的编码来表示帧的起始和终止。(曼彻斯特编码中,采用高-高或低-低的违规方式来定界帧)
差错控制
:分为位错和帧错,主要解决方法有自动重传请求(ARQ)和前向纠错(FEC)
-
噪声:传输中的差错都是由噪声引起的
- 随机热噪声:信道固有,可提高信噪比来减少或避免干扰;
- 冲击噪声:来自外界,不可通过提高信号幅度来避免,是产生差错的重要原因;
-
检错编码:
- 奇偶校验码:奇校验,由n-1位信息元和1位校验元组成,在附加上一个校验元后,码长为n的码字中“1”的个数为奇数。偶校验可反推。奇偶校验只能发现奇数个比特的错误。
- 循环冗余码(CRC):(计算)
-
纠错编码:
- 海明码:能发现双比特错,但只能纠正单比特错;(计算)海明码纠错d位,需要码距为2d+1;检错d位,需要码距d+1;
流量控制
:限制发送方的数据流量,使其发送速率不超过接收方的接收能力。
-
停止等待协议:发送方每发送一帧都要等待接收方的应答信号才能发送下一帧
- 发送窗口大小=1,接收窗口大小=1
-
后退N帧协议(GBN):发送方一次可发送N帧,按顺序接收,重传从最后一个确认开始(即采用累积确认,如若收到对5号帧的确认意味着接收方收到了5号及5号帧前面的帧)
- 发送窗口大小>1,接收窗口大小=1
-
选择重传协议(SR):发送方一次可发送N帧,可以不按序接收,重传没有确认的帧
- 发送窗口大小>1,接收窗口大小>1
- 接收窗口不超过序号范围的一半(避免接收端窗口向前移动窗口后,新的窗口与旧的窗口产生重叠)
- 接收窗口Wr+发送窗口Wt < 2的n次方,n为编号位数
-
对于窗口大小为n的滑动窗口,其发送窗口大小为n-1,即最多可以有n-1帧已发送但没有确认
可靠传输
:数据链路层通常使用确认和超时重传两种机制来保证可靠传输。
数据链路层中流量控制机制和可靠传输机制是交织在一起的。
介质访问
:为使用介质的每个结点隔离来自同一信道上其他结点所传送的信号,以协调活动结点的传输。
-
用来决定广播信道中信道分配的协议属于数据链路层的一个子层,称为介质访问控制(Medium Access Control, MAC)子层。
-
信道划分介质访问控制:
- 频分复用(FDM)Frequency:将多路信号调制到不同频率载波上叠加形成一个复合信号;适合于传输模拟信号;
- 时分复用(TDM)Time:将物理信道按时间分为若干时间片,轮流给不同的信号使用;适合于传输数字信号;
- 波分复用(WDM)Wavelength:在一根光纤中传输多种不同波长(频率)的光信号
- 码分复用(CDM)Code:靠不同的编码来区分各路原始信号,例如CDMA技术
-
随机访问介质访问控制:不采用集中控制方式解决发送信息的次序问题,用户随机发送信息,占用信道全部速率。
-
ALOHA协议:
- 纯ALOHA:不检测直接发送,若无确认则等待重发
- 时隙ALOHA:将时间划分为若干个等长时隙,按时发送
-
CSMA协议:
- 1-坚持:闲则发送,忙则继续监听
- 非坚持:闲则发送,忙则等待一个随机时间再监听
- p-坚持:闲则以概率p发送,1-p等待下一个时隙;忙则等待一个随机时间再监听
-
CSMA/CD协议(载波侦听多路访问/碰撞检测协议):
- 流程:先听后发,边听边发,冲突停发,随机重发
- 碰撞解决:采用二进制指数退避算法来解决碰撞问题(即在第i(i<10)次碰撞后,站点会在0~2的(i-1)次方之间随机选择一个数M,等待M倍的争用期再发送数据。在达到10次碰撞后,随机数的区间固定在最大值1023上,以后不再增加,如果连续超过16次冲突,则丢弃。)
- 冲突检测时间(即争用期)是指信号在最远两个端点之间往返传输的时间
- 最短帧长等于在争用期时间内发送出的比特数
- 只有经过争用期之后还没有检测到碰撞,才能肯定这次发送不会发生碰撞。
- 有线局域网
- 半双工通信
-
CSMA/CA(CA 碰撞避免)协议:
-
-
基本思想:发送数据前先广播告知其他结点,在某一段时间内不要发送数据,以免出现碰撞。
-
避免碰撞:预约信道、ACK帧、RTS/CTS帧
-
解决碰撞:采用二进制指数退避算法来解决碰撞问题
-
无线局域网
-
-
-
轮询访问介质访问控制:令牌传递协议,以循环的方式轮询每个结点,只有得到令牌的机器才能发送数据,其他必须等待。令牌环网适合负载重的环境;
局域网
:一种典型的广播信道,在一个较小的范围内,将各种计算机等设备通过双绞线等介质连接。
- 考虑到局域网信道质量好:
- 采用无连接的工作方式;
- 不对发送帧编号、确认;
- 介质访问控制方式(决定性)(CSMA/CD、令牌总线和令牌环,前两种用于总线型局域网,第三种用于环形局域网)
- IEEE 802 标准定义局域网的参考模型对应于OSI参考模型的数据链路层和物理层,并将数据链路层拆分为两个子层:逻辑链路控制(LLC)子层和媒体接入控制(MAC)子层;
- 物理层:信号的编码和译码、比特的接收和传输;
- MAC子层:向上层屏蔽对物理层访问的各种差异,提供对物理层的统一访问接口,功能:组帧和拆卸帧、比特传输差错检测、透明传输、寻址、竞争处理。
- LLC子层:建立和释放数据链路层的逻辑连接、提供与高层的接口、差错控制、给帧加序号;
- 较低延时和较低的误码率
- 三种局域网拓扑实现:
- 以太网(Ethernet):逻辑拓扑是总线型结构,物理拓扑是星形或拓展星形;
- 10BASE-T以太网使用曼切斯特编码;
- 信息传播方式:广播式;
- 令牌环:逻辑拓扑是环形结构,物理拓扑是星形结构;
- 最坏情况下,一个结点获得令牌的等待时间等于逻辑环上所有其他结点一次获得令牌,并在令牌持有时间内发送数据帧的时间总和。
- FDDI:逻辑拓扑是环形结构,物理拓扑是双环结构;
- 以太网(Ethernet):逻辑拓扑是总线型结构,物理拓扑是星形或拓展星形;
- 网卡:装有处理器和存储器,是工作在数据链路层的网路组件,有唯一代码,称为介质访问控制(MAC)地址;
- MAC地址:
- MAC 地址是链路层地址,长度为 6 字节(48 位),用于唯一标识网络适配器(网卡)
- 一台主机拥有多少个网络适配器就有多少个 MAC 地址。例如笔记本电脑普遍存在无线网络适配器和有线网络适配器,因此就有两个 MAC 地址。
- MAC地址:
虚拟局域网
:
- 虚拟局域网可以建立与物理位置无关的逻辑组,只有在同一个虚拟局域网中的成员才会收到链路层广播信息。
广域网
:
-
在OSI参考模型中,广域网涉及物理层、数据链路层和网络层
-
广域网数据链路层控制协议:
- PPP协议:
- 定义:使用串行线路通信的面向字节(帧全长是整数个字节)的协议,应用在直接连接两个结点的链路上
- 面向字节,采用字节填充方式,只支持全双工链路
- 提供差检测但不提供差错纠错,保证无差错接收;不可靠,不使用序列号和确认机制;
- 三个组成部分:
- 链路控制协议LCP:用于建立、配置、测试和管理数据链路;
- 网络控制协议NCP:PPP允许采用多种网络层协议,每个不同的网络层要用一个相应的NCP来配置,为网络层协议建立和配置逻辑连接;
- 一个将IP数据包封装到串行链路的方法;
- HDLC协议(高级数据链路控制协议):面向比特,采用0比特插入法,帧类分为信息帧、监督帧和无编号帧,数据操作方式:正常响应方式(从站在收到主站许可后才能)、异步平衡方式(每一个复合站都可以进行对其他站的数据传输)、异步响应方式(从站无需主站许可)
- 信息帧:第一位为0,传输数据,或使用捎带技术对数据进行确认
- 监督帧:第1、2位分别为1、0,流量控制和差错控制,确认、请求重发、请求暂停发送
- 无编号帧:链路建立、拆除等多种控制功能;
- PPP协议:
设备
:
- 网桥:
- 特点:把两个或多个以太网通过网桥连接起来变成一个网段
- 类型:
- 透明网桥(选择的不是最佳路由):按照自学习算法填写转发表,按转发表转发
- 源路由器网桥(选择的是最佳路由):先发送发现帧,按返回结果转发
- 交换机:实际是一个多端口网桥,工作在数据链路层,数据链路层使用武力地址进行转发
- 特点:实际是一个多端口网桥
- 交换机具有自学习能力,学习的是交换表的内容,交换表中存储着 MAC 地址到接口的映射,即插即用设备;
- 优点:每个端口结点所占用的带宽不会因为端口结点数目的增加而减少,且整个交换机的总带宽会随着端口结点的增加而增加;
- 利用交换机可以实现虚拟局域网(VLAN),VLAN不仅可以隔离冲突域,也可以隔离广播域;
- 交换方式:
- 直通式:帧在接口后只检查目的地址,几乎马上就被传出去
- 存储转发:先将接收到的帧缓存到高速缓存器,检查数据正确性
- 相同点:按MAC地址转发,都能隔离冲突域,不能隔离广播域。
- 交换机比集线器提供更好的网络性能的原因是交换机支持多对用户同时通信。
网络层
功能:使用 IP协议 把异构网络互连、路由与转发、拥塞控制
IP协议提供的是不可靠服务,但其服务的上层协议为了规避这些不可靠的因素,有些协议就会自己设计机制从而保证自己传输的内容可靠。
流量控制与拥塞控制的区别
:
- 流量控制往往是指在发送端和接收端之间的点对点通信量的控制;
- 拥塞控制必须确保通信子网能够传送待传送的数据,是一个全局性的问题;包括开环控制(设计时事先考虑)、闭环控制。
- 开环控制。设计网络时事先将有关发生拥塞的因素考虑周到,力求不产生拥塞。是一种静态的预防方法,系统运行后不再需要修改。理解:无需对当前网络状况的反馈。
- 闭环控制。采用监控网络系统去监视,及时检测到哪里发生拥塞,然后将拥塞信息传到合适的地方,以便调整网络系统的运行。是基于反馈环路的概念,是一种动态的方法。
路由算法
:
- 静态:网络管理员手工配置路由信息
- 动态:通过路由器间彼此交换的信息来构造路由表
- 距离-向量路由算法:路由表保存了到达每个目的地址的已知最佳距离和下一步的转发地址(IP地址)。
- 所有结点都监听从其他结点传来的路由选择更新信息,以下情况更新它们的路由选择表:
- 被通告一条新的路由,该路由在本结点的路由表中不存在,此时本地系统加入这条新的路由;
- 发送来的路由信息中有一条到达某个目的地的路由,该路由比当前使用的路由有较短的距离。
- 慢收敛导致发送路由器回路。
- Bellman-Ford算法,容易产生环路、无穷大的问题,需要配合防环机制
- 所有结点都监听从其他结点传来的路由选择更新信息,以下情况更新它们的路由选择表:
- 链路状态路由算法
- 要求每个参与该算法的结点都有完全的网络拓扑信息,它们执行下述两项任务:
- 主动测试所有邻接结点的状态
- 定期将链路状态传播给所有其他的结点(路由结点)
- 每当链路状态报文到达时,路由结点便使用这些状态信息去更新自己的网络拓扑和状态“视野图”,利用 Dijsktra最短路径算法 重新计算路由,即从单一的源出发计算到达所有目的结点的最短路径。
- 要求每个参与该算法的结点都有完全的网络拓扑信息,它们执行下述两项任务:
- 比较:距离-向量路由算法的每个结点仅为直接邻居提供从自己到网络中所以其他结点的最低费用估计。链路状态路由算法中,每个结点通过广播的方式与所有其他节点交谈 ,但仅高数它们与它直接相连的链路的费用。距离-向量路由算法可能遇到环路等问题。
- 距离-向量路由算法:路由表保存了到达每个目的地址的已知最佳距离和下一步的转发地址(IP地址)。
层次路由
:
- 概念:将互联网分成许多较小的自治系统,系统有权决定自己内部采用什么路由协议
- 协议:
- 内部网关协议(IGP):自治系统内部使用的网关协议,如RIP、OSPF
- 外部网关协议(EGP):自治系统之间使用的网关协议,如BGP4
- 好处:使每个区域内部交换路由信息的通信量大大减小
路由选择
:
- 路由选择分为直接交付和间接交付:
- 通过判断分组的目的IP地址和该路由器的接收端口的IP地址是否属于同一个子网来进行判断;
- 直接交付:发送站与目的站在同一网段内,不涉及路由器;
- 间接交付:发送站与目的站不在同一网段内,间接交付的最后一个路由器肯定是直接交付
IPv4
:
- 首部:固定部分共20B,其中首部长度、总长度和片偏移量的基本单位分别为4B、1B、8B
1)版本:指IP协议的版本,目前广泛使用的版本号为4
2)首部长度:占4位。以32位(4字节)为单位,最大值为60字节;最常用的首部长度是20字节,此时不使用任何选项;
3)区分服务 : 用来获得更好的服务,一般情况下不使用。
4)总长度:占16位。单位为字节,**指首部和数据之和的长度**
5)生存时间 :TTL,它的存在是为了防止无法交付的数据报在互联网中不断兜圈子。以路由器跳数为单位,当 TTL 为 0 时就丢弃数据报。
6)协议 :指出携带的数据应该上交给哪个协议进行处理,例如 ICMP、TCP、UDP 等。
7)首部检验和 :因为数据报每经过一个路由器,都要重新计算检验和,因此检验和不包含数据部分可以减少计算的工作量。
8)标识 : 在数据报长度过长从而发生分片的情况下,相同数据报的不同分片具有相同的标识符。
9)片偏移 : 和标识符一起,用于发生分片的情况。片偏移的单位为 8 字节。
- 网络地址转换(NAT):实现专用网络地址和公用网络地址之间的相互转换,对外隐藏内部管理的IP地址,使得整个专用网只需要一个全球IP地址,就可以让多台主机同时访问因特网。
- 私有IP地址:只用于LAN(局域网),不用于WAN(广域网),只具有本地意义
- A类私有地址:10.0.0.0/8,范围是:10.0.0.0 ~ 10.255.255.255
- B类私有地址:172.16.0.0/12,范围是:172.16.0.0 ~ 172.31.255.255
- C类私有地址:192.168.0.0/16,范围是:192.168.0.0 ~ 192.168.255.255
- NAT看到了端口,所以在传输层
- 私有IP地址:只用于LAN(局域网),不用于WAN(广域网),只具有本地意义
- 子网划分:采用子网掩码对物理子网再一次进行子网划分,IP地址=
- 流程:传来的IP数据报,根据网络号,找到连接在本单位网络上路由器,然后此路由器再按照目的网络号和子网号找到目的子网 ,最后交付给目的主机。
- 要使用子网,必须配置子网掩码。一个 B 类地址的默认子网掩码为 255.255.0.0,如果 B 类地址的子网占两个比特,那么子网掩码为 11111111 11111111 11000000 00000000,也就是 255.255.192.0。
- 子网掩码:为了告诉主机或路由器对一个A类、B类、C类网络进行了子网划分,使用子网掩码来表达对原网络中主机号的借位。
- 计算机只需要将IP地址和其对应的子网掩码逐位”与“,就可得出对应子网的网络地址。
- 无分类编址 CIDR:消除了传统 A 类、B 类和 C 类地址以及划分子网的概念,使用网络前缀和主机号来对 IP 地址进行编码,网络前缀的长度可以根据需要变化,IP 地址 =
- CIDR 的记法上采用在 IP 地址后面加上网络前缀长度的方法,例如 128.14.35.7/20 表示前 20 位为网络前缀。
- 这种通过使用网络前缀来减少路由表项的方式称为路由聚合,也称为 构成超网 。
- 路由聚合:
- 概念:将网络前缀都相同的连续的IP地址组成“CIDR地址块“
- 目的:使得一个地址块可以表示很多地址,减少路由表表项和路由器间的信息交换
- 方法:把一串IP地址都写为二进制表示,取最长的公共前缀作为网络号
- 协议:
- 地址解析协议 ARP:对于特定的IP地址,查询其对应的物理地址
- 工作在网络层
- 每个主机都设有一个ARP高速缓存,存放ARP表(本局域网上各主机和路由器的IP地址到MAC地址的映射表),并使用ARP协议动态维护。
- ARP请求分组是广播发送的,ARP响应分组是单播(即一个源地址发送到一个目的地址)
- 在通信过程中,IP 数据报的源地址和目的地址始终不变,而 MAC 地址随着链路的改变而改变
- 工作原理:
-
- 主机A打算向本局域网的主机B发送IP数据报;
- 先查找ARP表中是否有B的IP地址,如果有,就能查出MAC地址,完成传输;
- 如果ARP表中没有,主机A发送MAC地址为FF-FF-FF-FF-FF-FF的帧广播ARP请求分组;
- 主机B收到该ARP请求后,会想主机A发送响应ARP,分组中包含B的IP与MAC地址映射关系
- A收到该映射关系后,写入A的ARP表中,然后按照查到的MAC地址,发送MAC帧。
-
- 动态主机配置协议 DHCP:给网络中的主机动态的分配IP地址
- 应用层协议,基于UDP,通过客户/服务器方式工作的;
- 网际控制报文协议 ICMP:用来给主机或路由器报告差错和异常情况,分为差错报告报文和询问报文两类。
- IP层协议;
- ICMP差错报告报文:
- 终点不可达:当路由器或主机不能交付该数据报时向终点发送
- 源点抑制:拥塞丢弃数据报,向源点发送
- 时间超过:路由器收到生存TTL为零的数据报时,丢弃该数据报并向源点发送该报文
- 参数问题:路由器或主机收到的数据报的首部中有的字段不正确,丢弃并向源点发送该报文
- 改变路由(重定向):路由器把改变路由报文发送给主机,让主机知道下次应将数据发送给另外的路由器(可通过更好的路由);
- ICMP询问报文:
- 回送请求和回答报文(例PING)
-
- 时间戳请求和回答报文
-
- 掩码地址请求和回答报文
-
- 路由器询问和通告报文
- 不应发送ICMP差错报告报文的几种情况:
- 对ICMP差错报告报文不再发送ICMP差错报告报文
- 对第一个分片的数据报片的所有后续数据报片都不发生ICMP差错报告报文
- 对具有组播地址的数据报都不发送ICMP差错报告报文
- 对具有特殊地址(如127.0.0.0或0.0.0.0)的数据报不发送ICMP差错报告报文
- ping:使用ICMP回送请求和回答报文,工作在应用层
- traceroute:使用ICMP时间超过报文,工作在网络层
- 地址解析协议 ARP:对于特定的IP地址,查询其对应的物理地址
IPv6
:首部40B,地址长度16B,从根本上解决Ipv4地址耗尽的问题。
- 特点:
- 更大的地址空间,128位,IPv4为32位
- 扩展的地址层次结构
- 灵活的首部格式
- 改进的选项
- 允许协议继续扩充
- 支持即插即用(即自动配置)
- 支持资源的预分配
- IPv6只有在包的源结点才能分片,是端到端的,传输路径中的路由器不能分片,所以在一般的意义上讲,IPv6不允许分片。
- 增加安全性。
- 不提供校验和字段。
- 压缩方式:
- 省略前导零:
1050:0000:0000:0000:0005:0600:300c:326b
可表示为1050:0:0:0:5:600:300c:326b
- 通过使用双冒号 (:😃 代替一系列零来指定IPv6地址:
1A22:120D:0000:0000:72A2:0000:0000"00C0
可表示为1A22:120D::72A2:0000:0000:00C0
- 注意:双冒号 (:😃 在一个地址中只能出现一次,也就是说有多处相邻的0时,只能用 (:😃 代表其中一处。
- 省略前导零:
路由协议
:功能为获取网络拓扑信息、构建路由表、在网络中更新路由信息、选择到达每个目的网络的最优路径、识别一个网络的最优路径、识别一个网络的无环通路等。
-
路由收敛:指当路由环境发生变化后,各路由器调整自己的路由表以适应网络拓扑结构的编号,最终达到稳定状态。
-
自治系统(AS):在单一的技术管理下的一组路由器。
-
内部网关协议 IGP:
- RIP协议:基于距离-向量路由选择协议,使用UDP,与相邻路由器交换整个路由表
- 应用层协议,使用UDP传输数据;
- 最大跳数为15,跳数为16则被视为不可达
- OSPF协议:基于链路状态路由算法,使用IP,与全部路由器交换相邻结点链路状态
- 网络层协议,直接使用IP数据报发送
- 使用Hello分组来保持与其邻居的连接
- RIP协议:基于距离-向量路由选择协议,使用UDP,与相邻路由器交换整个路由表
-
外部网关协议 EGP:
- BGP协议:基于路径-向量路由选择协议,使用TCP,寻找的并非最佳路由
- 使用TCP
- 只发送增量路由更新。在建立邻居关系后,路由器会将自己的全部路由信息告知邻居,此后如果路由表发生了变化,只将增量/更新部分发送给邻居。
- BGP交换的路由信息是到达某个目的网络所要经过的各个自治系统序列而不仅仅是下一跳。
- BGP协议:基于路径-向量路由选择协议,使用TCP,寻找的并非最佳路由
IP组播
:在发送者和每一接收者之间实现点对多点网络连接,应用UDP协议,使用D类地址。
- D类地址(即组播地址)范围:224.0.0.0 ~ 239.255.255.255
- IGMP协议:使路由器知道组播成员的信息
- 避免路由环路:构造组播转发树
移动IP
:支持移动性的因特网体系结构
- 概念:移动节点以固定的网络IP地址,实现跨不同网段的漫游功能
- 组成:移动结点、本地代理、外部代理
- 主机离开归属地时,既不能直接接收分组,也不能直接发送分组,通过交换地址来间接接收和发送分组。
路由器
:就是一台多个输入输出端口的专用计算机,其任务是连接不同的网络(异构网络)并完成路由转发。
- 主要功能:路由选择、分组转发(IP数据报)
- 特点:跨域用来连接异构网络,实现路由转发,能隔离冲突域和广播域,依照IP地址转发
- 组成:
- 控制部分(路由选择部分):路由选择处理机,根据路由协议构造与维护路由表
- 分组转发部分:交换结构、一组输入端口和一组输出端口
- 路由表用软件实现,转发表用软件或硬件实现。
- 路由表具有四个项目:目的网络IP地址、子网掩码、下一跳IP地址、接口
- 转发表由路由表得出:目的站、下一跳的MAC地址
- 路由表中默认路由的目的地址和子网掩码都是0.0.0.0。
- 路由器是第三层设备,向传输层即以上层隐藏下层的具体实现,所以物理层、数据链路层、网络层协议可以不同,而网络层以上的高层协议必须相同。
传输层
提供服务:进程之间的逻辑通信(即端到端通信)、复用和分用、差错检测(首部和数据部分)、面向连接的TCP和无连接的UDP。
数据链路层的SAP(Service Access Point)是MAC地址;网络层的SAP是IP地址;传输层的SAP是端口。
套接字 = (主机IP地址, 端口号),唯一标识了网络中的一个主机和其上的一个应用(进程)
端口号:端口号只具有本地意义,一台计算机中TCP和UDP分别拥有自己的端口号,互不干扰。
可靠的传输协议中“可靠”指的是使用确认机制来确保传输的数据不丢失。
-
服务端口号:
- 熟知端口号:0~1023,指派给TCP/IP最重要的一些应用程序;
应用程序 FTP TELNET SMTP DNS TFTP HTTP SNMP 熟知端口号 21 23 25 53 69 80 161 - 登记端口号:1024~49151
-
客户端使用的端口号:49152~65535,客户进程运行时选择
UDP协议
:复用和分用以及差错检测,维护传输可靠性的工作需用户在应用层完成。
- 面向报文;
- UDP数据报:
- 区分:IP数据报在网络层要经过路由的存储转发;而UDP数据报是在传输层的端到端的逻辑信道中传输,而封装成IP数据报在网络层传输时,UDP数据报的信息对路由是不可见的。
- UDP是面向报文的,报文不可分割,是UDP数据处理的最小单位;
- 特点:无连接、不保证可靠递交、没有重传机制、首部开销小(8B)、最大努力交付,应用层要保证可靠性
- 首部:8B,分别为源端口号、目的端口号、长度(包括首部和数据部分的长度)、校验和
- 校验:采用首部、伪首部、数据进行二进制反码运算求和再运算
- IP数据报的校验和只检验IP数据报的首部,但UDP的校验和是把首部和数据部分一起检验;
- 在计算校验和时,要在UDP数据报之前增加12个字节的伪首部,并不是UDP真正的首部,不向下传送也不向上递交;
- 校验和功能不是必须的,可以不使用;
- 如果不使用校验和,则将校验和字段置为0;而如果校验和的计算结果恰为0时,则将校验和置为全1
TCP协议
:
1)序号 :用于对字节流进行编号,例如序号为 301,表示第一个字节的编号为 301,如果携带的数据长度为 100 字节,那么下一个报文段的序号应为 401。
2)确认号 :期望收到的下一个报文段的序号。例如 B 正确收到 A 发送来的一个报文段,序号为 501,携带的数据长度为 200 字节,因此 B 期望下一个报文段的序号为 701,B 发送给 A 的确认报文段中确认号就为 701。
3)数据偏移 :指的是数据部分距离报文段起始处的偏移量,实际上指的是首部的长度。
4)确认 ACK :当 ACK=1 时确认号字段有效,否则无效。TCP 规定,在连接建立后所有传送的报文段都必须把 ACK 置 1。
5)同步 SYN :在连接建立时用来同步序号。当 SYN=1,ACK=0 时表示这是一个连接请求报文段。若对方同意建立连接,则响应报文中 SYN=1,ACK=1。
6)终止 FIN :用来释放一个连接,当 FIN=1 时,表示此报文段的发送方的数据已发送完毕,并要求释放连接。
7)窗口 :窗口值作为接收方让发送方设置其发送窗口的依据。之所以要有这个限制,是因为接收方的数据缓存空间是有限的。
- 面向字节流;
- TCP段
- 特点:有连接、一对一、提供可靠交付、全双工通信、面向字节流
- 首部:20B,源端口、目的端口、序号、确认号等控制信息
- 连接管理:三次握手建立,四次握手释放
- 可靠传输机制:
- 序号:用来保证数据能有序提交给应用层
- 确认:确认号为期待收到下一个报文段第一个字节的序号
- 使用累计确认的机制(举例:确认号12,意思是0~11我都确认没有问题,12有问题)。累计确认有后退重传N帧(GBN)的风格,但是,收到正确却失序的报文不会被丢弃,而是缓存起来,GBN会要求重传失序后的所有帧。
- 重传:
- 超时:计时器到期还没收到确认则重传对应报文
- 冗余确认:当收到失序报文时向发送端发送冗余ACK
- 流量控制:在确认报文中设置接收窗口rwnd的值来限制发送速率
- TCP提供了流量控制服务以消除发送方使接收方缓存区溢出的可能性;
- rwnd(接收窗口):接收方根据自己接收缓存的大小,动态地调整发送方的发送窗口大小;
- cwnd(拥塞窗口):发送方根据其对当前网络拥塞的估计而确定的窗口值;
- 传输层和数据链路层的流量控制区别:
- 传输层定义了端到端用户之间的流量控制;数据链路层定义了两个中间的相邻结点的流量控制;
- 数据链路层的滑动窗口协议的窗口大小不能动态变化,传输层的可以动态变化;
- 拥塞控制:让网络能够承受现有的网络负荷,是一个全局性的过程,涉及所有的主机、所有的路由器,以及与降低网络性能有关的所有因素。
- 原理:根据自己估算的网络拥塞程度设置cwnd的值来限制发送速率
- 方法:
- 慢开始:当cwnd<ssthresh(慢启动阈值)时,每收到一个报文段的确认cwnd加1
- 拥塞避免:当cwnd>ssthresh时,每经过一个往返延时cwnd加1
- 快重传:当收到连续的三个冗余的ACK,直接重传对方期待的报文
- 快恢复:当收到连续的三个冗余ACK,令ssthresh=cwnd=cwnd/2
- 拥塞处理(出现超时现象):ssthresh置为原cwnd的一半,cwnd置1
- TCP校验机制与UDP一样
应用层
网络应用模型
:
- C/S模型:区分处理请求的服务器和发出请求别的客户机
- P2P模型:每台机器既是服务器又是客户机
- 优点:
- 减轻了服务器的计算压力;
- 多个客户机可以直接共享文档(C/S模式下各客户机无法直接通信);
- 可扩展性好,传统服务器有响应和带宽的限制,因此只能接受一定数量的请求;
- 网络健壮性好,单个结点的失效不会影响其他部分的结点。
- 缺点:
- 会占用较多的内存,影响整机的速度;
- 经常进行P2P下载,会对硬盘造成较大的损伤;
- P2P程序会使网络变得非常拥塞,因此遭到各大互联网服务提供商ISP的嫌弃。
- 优点:
域名系统(DNS)
:基于C/S模式的分布式系统
-
概念上可分为3部分:层次域名空间、域名服务器和解析器;
-
作用:把主机名转换为IP地址
-
协议与端口:运行在UDP之上,使用53号端口
-
因特网的域名系统被设计成一个联机分布式的数据库系统,并采用客户/服务器模型。
-
服务器分类:
- 根域名服务器:知道所有顶级域名服务器的IP地址
- 顶级域名服务器:负责管理在其服务器注册的所有二级域名
- 授权域名服务器:能够将其管辖的主机名转换为该主机的IP地址
- 本地域名服务器:本地网络提供商负责的域名服务器
-
域名解析:指把域名映射成为IP地址(正向解析)或把IP地址映射成为域名(反向解析)的过程。
-
查询方式:
- 递归查询:由查询的服务器发起下一次查询
- 递归与迭代查询:主机向本地服务器的查询采用的是递归查询,其余均由本地域名服务器向外迭代查询
-
文件传输协议(FTP)
:
- 作用:允许用户在因特网上存取文件,提供交互式访问,允许客户指明文件的类型与格式,并允许文件具有存取权限;
- 协议与端口:使用两个并行的TCP连接,控制链接为21号端口,数据链接为20号端口;
- 控制链接:传输控制信息(如连接请求、传送请求等);
- 数据链接:连接客户端和服务器端的数据传送进程,完成实际的文件传送;
- 文件的列表是通过数据连接来传输的;
- 匿名用户:anonymous
电子邮件
:
-
地址格式:用户名@邮箱所在主机的域名
-
STMP:
- 作用:向邮件服务器主动发送电子邮件
- 协议与端口:运行在TCP之上,使用25号端口
-
POP3:
- 作用:向邮件服务器要求接收电子邮件
- 协议与端口:运行在TCP之上,使用110号端口
- POP3协议在传输层使用明文来传输密码,并不对密码进行加密。
-
基于万维网的电子邮件接收发送都使用HTTP协议,仅在不同邮件服务器之间传送邮件才使用SMTP
万维网(WWW)
:
- 统一资源定位符(URL):负责标识万维网上的各种文档
- URL的一般形式是:<协议>://<主机>:<端口>/<路径>
- 超文本传输协议(HTTP):
- 应用层协议
- 作用:在万维网上能够可靠的交换文件
- 协议与端口:运行在TCP之上,使用80号端口
- 过程:浏览器要访问WWW服务器时,首先要完成对WWW服务器的域名解析。一旦获得了服务器的IP地址,浏览器将通过TCP向服务器发送连接建立请求。
- 超文本标记语言(HTML):文本结构标记语言,使用约定的标记对页面上的各种信息进行描述