计算机网络知识点总结
一、计算机网络的体系结构
1.1分层次的体系结构
OSI的七层体系结构:应用层、表示层、会话层、运输层、网络层、数据链路层、物理层
TCP/IP的四层体系结构:应用层、运输层、网际层IP、网络接口层
五层体系结构:应用层、运输层、网络层、数据链路层、物理层
1.2各层的主要功能
为了方便理解计算机网络的原理,这里采用五层协议的体系结构进行阐述。
1、应用层
功能:通过应用进程间的交互来完成特定网络应用。
交互的数据单元称为报文。
2、运输层
功能:负责向两台主机之间的通信提供数据传输服务。
传输控制协议TCP:提供面向连接、可靠的数据传输服务,数据单位是报文段。
用户数据报协议UDP:提供无连接、尽最大努力的数据传输服务,数据单位是用户数据报。
3、网络层
功能:寻址和路由,完成网络中所有节点之间的连接。
在发送数据时,将把运输层产生的报文段或用户数据报封装成分组(IP数据报、数据报)或包进行传送。
4、数据链路层
功能:在两个相邻结点间的线路上无差错地传送以帧为单位的数据。
传送数据时,将网络层交下的IP数据报封装成帧,以帧为数据单元。
5、物理层
功能:透明地传送比特流,确定与传输媒体的接口有关的一些特性。
数据单位是比特。
二、物理层
2.1 物理层的基本概念
1、解决的问题
物理层考虑的是怎样才能在连接各种计算机的传输媒体上传输数据比特流,而不是指具体的传输媒体。
作用:尽可能屏蔽掉不同传输媒体和通信手段的差异。
2、四个特性
机械特性:指明接口所用的接线器的尺寸、形状、引脚数目等。
点气特性:指明在接口电缆的各条线上出现的电压的范围。
功能特性:指明某条线上出现的某一电平的电压的意义。
过程特性:指明不同功能的各种可能事件的出现顺序。
2.2数据通信的基础知识
1、数据通信系统
一个数据通信系统的划分:源系统、传输系统、目的系统。
源系统分为:源点(源站、信源)、发送器、接收器、终点。
2、通信的工作方式
单向通信(单工通信):只能有一个方向的通信,没有反方向的交互。
双向交替通信(半双工通信):通信的双方都可以发送信息,但双方不能同时发送(当然也就不能同时接收)。
双向同时通信(全双工通信):通信的双方可以同时发送和接收信息。
3、编码方式
不归零制:正电平代表 1,负电平代表 0。
归零制:正脉冲代表 1,负脉冲代表 0。
曼彻斯特编码:位周期中心的向上跳变代表 0,位周期中心的向下跳变代表 1。但也可反过来定义。
差分曼彻斯特编码:在每一位的中心处始终都有跳变。位开始边界有跳变代表 0,而位开始边界没有跳变代表 1。
4、带通调制方法
调幅(AM):载波的振幅随基带数字信号而变化。
调频(FM):载波的频率随基带数字信号而变化。
调相(PM) :载波的初始相位随基带数字信号而变化。
正交振幅调制(QAM):一种多元制的振幅相位混合调制方法,以达到更高的信息传输速率。
5、信道的极限容量
码元的传输速率越高、信号的传输距离越远、或噪声的干扰越大、传输媒体质量越差,接收端的波形失真越严重。
奈氏准则:在带宽为 W (Hz) 的低通信道中,若不考虑噪声影响,则码元传输的最高速率是 2W (码元/秒)。传输速率超过此上限,就会出现严重的码间串扰的问题,使接收端对码元的判决(即识别)成为不可能。
奈氏公式:信道传输速率C = 2Wlog2L,(L为每个码元的状态数或可表示的比特数,W为带宽,1bit/s=2码元/s)
信噪比:信号平均功率的噪声的平均功率之比。并用分贝 (dB) 作为度量单位。即:信噪比(dB) = 10 log10(S/N) (dB)。
香农公式:信道的极限信息传输速率C可表示为:C = W log2(1+S/N) (bit/s)
信道的带宽或信道中的信噪比越大,则信息的极限传输速率就越高。
只要信息传输速率低于信道的极限信息传输速率,就一定可以找到某种办法来实现无差错的传输。
如果带宽确定,信噪比确定,码元传输速率达到上限值,则可以通过编码的方式让每一个码元携带更多的比特信息量来提高信息的传输速率
2.3物理层的传输媒体
1、导引型传输媒体
双绞线:
屏蔽双绞线(STP),提高抗电磁干扰能力。
无屏蔽双绞线(UTP),UTP的5类双绞线比3类双绞线大大增加了每单位长度的绞合次数,最常用。
同轴电缆:
由内到外:内导体、绝缘层、外导体屏蔽层、塑料外层。
具有很好的抗干扰特性,被广泛用于传输较高速率的数据。
光缆:
由一根或多跟光纤组成。光纤是光纤通信的传输媒体。通过传递光脉冲来进行通信。其传输带宽远远大于目前其他各种传输媒体的带宽。
多模光纤:可以存在多条不同角度入射的光线在一条光纤中传输。光脉冲在多模光纤中传输时会逐渐展宽,造成失真,只适合于近距离传输。
单模光纤:其直径减小到只有一个光的波长(几个微米),可使光线一直向前传播,而不会产生多次反射。制造成本较高,但衰耗较小。光源要使用昂贵的半导体激光器,不能使用较便宜的发光二极管。
光纤特点:损耗小,中继长,抗干扰性强,无串音干扰,保密性好,体积小,重量轻。
2、非导引型传输媒体
利用无线电波在自由空间的传播可较快地实现多种通信,因此将自由空间称为“非导引型传输媒体”。
无线传输所使用的频段很广: LF ~ THF (30 kHz ~ 3000 GHz)
微波频率范围:300 MHz~300 GHz(波长1 m ~ 1 mm)。主要使用:2 ~ 40 GHz。
在空间主要是直线传播。地球表面:传播距离受到限制,一般只有 50 km左右。100 m 高的天线塔:传播距离可增大到 100 km。
2.4 信道复用技术
FDM:频分复用,所有用户在同一时间占用不同带宽资源。
TDM:时分复用,所有用户在不同时间占同样的带宽。
WDM:波分复用,不同用户,相同时间,不同波长(将多种不同波长的光载波信号,在发送端经复用器汇合一起,并耦合到光线路中同一根光纤中进行传输)。
CDM:码分复用,一种共享信道的方法,不同用户,相同时间,不同码片,使用经过特殊挑选的不同码型
三、数据链路层
解决问题:直连网络内,数据帧的传输问题
信道类型:点对点信道-PPP 协议;广播信道-CSMA/CD 协议
3.1使用点对点信道的数据链路层
1、链路与数据链路
链路:从一个结点到相邻结点的一段物理线路,中间没有任何交换结点。
数据链路:除了一条物理线路外,还必须有一些必要的通信协议来控制数据的传输。最常用的方法是使用网络适配器。
2、数据链路层的三个基本问题
(1)封装成帧
概念:在一段数据的前后分别添加首部(帧开始符SOH)和尾部(帧结束符EOT),构成一个帧。
作用:接收端以便从收到的比特流中识别帧的开始与结束,帧定界是分组交换的必然要求。
数据部分长度上限:最大传送单元MTU。
(2)透明传输
概念:不管从键盘上输入什么字符都可以放到帧中传输。
作用:避免消息符号与帧定界符号相混淆。
解决方法:字节填充或字符填充法,在控制字符SOH或EOT前面插入转义字符ESC。
(3)差错检验
比特差错:比特在传输过程中可能出现1变0,、0变1的情况。
误码率:传输错误的比特占总比特数的比率,信噪比越高,误码率越小。
作用:防止差错的无效数据帧,浪费网络资源。
数据链路层采用循环冗余检验CRC的检错技术。
3.2点对点协议 PPP
1、ppp协议
特点:ppp协议就是用户计算机和ISP进行通信时所使用的数据链路层协议。
组成:
一个将IP数据报封装到串行链路的方法。
一个用来建立、配置和测试数据链路连接的链路控制层协议LCP。 一套网络控制协议NCP。
2、ppp协议的帧格式
首部:4 个字段。
标志字段 F: 0x7E 。连续两帧之间只需要用一个标志字段。
地址字段 A:只置为 0xFF。实际上不起作用。
控制字段 C:通常置为 0x03。
协议字段。
尾部:2 个字段。
3、字节填充
当信息字段出现和标志字段一样的比特(0x7E)组合时,必须采用措施。
当ppp使用异步传输时,把转义字符定义为0x7D。
方法:将每一个0x7E字节转为2字节序列(0x7D,0x5E)
若出现ASCII的控字符(数值小于0x20的字符),则加0x7D并改变该字符编码。
4、零比特填充
当ppp协议使用同步传输
为避免信息字段中出现0x7E,发现5个连续的1就立即在后面添加一个0。
3.3使用广播信道的数据链路层
1、局域网
特点:
网络为一个单位所有。
地理范围和站点数目有限。
具有更好的数据率、较低的时延和较小的误码率。
优点:
具有广播功能,从一个站点可以很方便的访问全网。
便于系统的扩展。
提高了系统的可靠性、可用性、生存性。
2、局域网的网络拓扑结构
星形网
环形网
总线网
3、CSMA/CD协议
以太网采用了两种措施:
采用无连接的工作方式,即不必建立连接就可以直接发送数据(不可靠)。
发送的数据使用曼彻斯特编码,导致所占频带宽度比原始的基带信号增加了一倍。
CSMA/CD 协议的要点:
载波监听:不管在发送前还是发送中,每个站都必须不停的检测信道。
多点接入:说明这是总线网络。
碰撞检测:边发送边监听是否发送碰撞,一旦发送碰撞,应立即停止发送数据。
截断二进制指数退避算法:
规定基本退避时间为一个争用期,51.2us。对于10Mbit/s的以太网,可以发送512bit,即64字节。
从离散集合[0,1,2...(2的次方-1)]中取一个数r,重传时间就应是r倍争用期。
重传次数k最大值为10,k=Min[重传次数,10],若重传16次还不成功,则丢弃该帧,向高层报告。
4、以太网的 MAC 层
MAC 层的硬件地址:
硬件地址又称为物理地址和 MAC 地址,硬件地址在适配器生产时固化在适配器的ROM 中。以太网 MAC 地址共 6 字节(48bit)
MAC 地址分类:
单播 MAC 地址:第一个字节的最低位(I/G 位)为 0 的 MAC 地址,代表了一块特定网卡。
组播 MAC 地址:I/G 位为 1,代表了一组网卡。
广播 MAC 地址:每一位都是 1 的 MAC 地址。广播是组播的一个特例,代表所有网卡,广播/组播地址只能作为目的地址使用。
MAC 帧的格式(以太网 V2):
目的地址和源地址指的是硬件地址。
第三个字段是 2 字节的类型字段,用来标志上一层使用的是什么协议。
数据字段长度 46~1500 字节之间(46:最小长度 64 字节减去 18 字节的首部和尾部)。
无效的 MAC 帧:
帧的长度不是整数个字节。
用收到的帧检验序列 FCS 查出有差错。
数据字段的长度不在 46~1500 字节之间。有效 MAC 长度为 64~1518 字节之间(包含首尾)。
3.4扩展的以太网
1、交换机的特点
以太网的交换机实质是一个多接口的网桥,与主机使用全双工通信方式。
相互通信的主机都是独占传输媒体,无碰撞地传输数据。
接口不会平分带宽,一个用户在通信时独占。
2、虚拟局域网(VLAN)
利用以太网交换机可以很方便的实现虚拟局域网。
虚拟局域网只是局域网给用户提供的一种服务,并不是一种新型局域网。
每一个VLAN的工作站可处在不同的局域网中。
四、网络层
4.1网络层的几个重要概念
1、网络层提供的两种服务
(1)虚电路服务
预约了双方通信的一切资源。
有网络质量保障,保证分组无差错有序达到终点,使发送的分组不出错、不重复、不丢失。
路由器复杂,成本高。
(2)数据报服务
网络造价大大降低,路由器简单。
有故障可绕过故障点。
无网络质量保障,分组可能会丢失、重复,且不一定按顺序到达。
2、网络层的两个层面
数据层面:路由根据本路由器生成的转发表,把收到的分组,从查找到的对应接口转发出去(纳秒数量级)。
控制层面:路由器和相邻的路由器经常交换路由信息,然后才能创建本路由器的路由表,根据由选择协议所用的路由算法计算路由要使用的软件(秒级)。
4.2网际协议 IP
1、几个协议
TCP/IP 体系中最重要的协议之一。与协议 IP 配套使用的三个协议:
地址解析协议 ARP。
网际控制报文协议 ICMP。
网际组管理协议 IGMP。
2、IP地址的分类
IP地址编址经历的阶段:分类的IP地址、子网的划分、构成超网
分类的IP地址:
将IP地址分为网络号和主机号;IP地址::={<网络号>,<主机号>}。“::=”表示“定义为”。
具体分为5类,A类、B类、C类、D类、E类;A、B、C类地址都是单播地址,最常用。
划分子网:
在两级IP地址中增加一个子网号字段,使其变为三级IP地址。
划分子网的网络对外任然表现为一个网络。
从网络的主机号中划分若干位来作为子网号。
IP地址::={<网络号>,<子网号>,<主机号>}。
划分子网增加了灵活性,但却减少了能够连接在网络上的主机数。
无分类编址CIDR:
CIDR消除了传统的A类、B类、C类地址以及划分子网的概念。
IP地址::{<网络前缀>,<主机号>}。
如128.14.35.7/20,前20位就为网络前缀,后12位是主机号。
CIDR使用32位地址掩码,地址掩码由1和0组成,1的个数就是网络前缀的长度。
CIDR把网络前缀相同的连续的IP地址组成一个CIDR地址块。
构成超网:
前缀长度不超过 23 位的 CIDR 地址块都包含了多个 C 类地址,这些 C 类地址合起来就构成了超网。
CIDR 地址块中的地址数一定是 2 的整数次幂。
网络前缀越短,其地址块所包含的地址数越多,在三级结构的 IP 地址中,划分子网。
使网络前缀变长CIDR 的一个好处是:可以更加有效地分配 IPV4 的地址空间。
3、IP地址的特点
每一个IP地址都有网络号和主机号两部分组成,IP地址是一种分等级的地址结构,在分配时只需要分配网络号。
IP地址是标志一台主机或一条链路的接口
用转发器或网桥连接起来的若干个局域网仍为一个网络,他们都具有同样的网络号。
IP地址中,所有分配到的网络号都是平等的。
4、IP地址与硬件地址的区别
物理地址是数据链路层和物理层使用的地址。
IP地址是网络层及以上使用的地址,是一种逻辑地址。
IP地址放在IP数据报的首部,硬件地址放在MAC帧的首部。
在IP层的互联网上只能看到IP数据报,在局域网的链路层只能看到MAC帧。
5、地址解析协议ARP
作用:从网络层使用的IP地址,解析出在数据链路层使用的硬件地址。
解决同一个局域网上的主机或路由器的IP地址和硬件地址的映射问题。
只要主机或路由器要和本网络上的另一个已知IP地址的主机或路由器通信,则就需要进行一次ARP解析。
6、IP数据报的格式
IP数据报由首部和数据两部分组成。
首部的前一部分是固定字段,20个字节;后一部分为可变长度,最长40字节。
首部长度:最长为60字节。
总长度:首部和数据部分长度之和,但数据字段有MTU限制,以太网规定MTU为1500字节,因此长度超过1500需要进行切片。
标志:占3位,最低位为MF,MF=1表示后面还有切片,MF=0表示这是最后一片;中间位为DF,DF=0才允许分片。
片偏移:用户数据字段的起点,片偏移以8个字节为偏移单位。
首部检验和:只检验数据报的首部,不检验数据部分
7、IP 层转发分组的过程
(1)基于终点的转发:
分组在互联网中是逐跳转发的。
基于分组首部中的目的地址传送和转发。
为了压缩转发表的大小,转发表中最主要的路由是(目的网络地址,下一跳地址),而不是(目的地址,下一跳地址)。
查找转发表的过程就是逐行寻找前缀匹配。
(2)最长前缀匹配:
使用 CIDR 时,路由表中的每个项目由“网络前缀”和“下一跳地址”组 成。在查找路由表时可能会得到不止一个匹配结果。
路由器转发时,每次都从匹配结果中选择网络前缀最长的路由。
网络前缀越长,其地址块就越小,路由就更具体。、
主机路由:特定主机路由,对特定目的主机的 IP 地址专门指明的一个路由。
默认路由:不管分组的最终目的网络在哪里,都由指定的路由器 R 来处理。
4.3网际控制报文协议 ICMP
ICMP不是高层协议,ICMP报文是装在IP数据报中,是IP层协议。
1、ICMP种类
ICMP差错报告报文
ICMP询问报文
2、ICMP差错报文
终点不可达
时间超过
参数问题
改变路由(重定向)
3、ICMP询问报文
回送请求和回答
时间戳请求和回答
4、不应发送 ICMP 差错报告报文的几种情况
对 ICMP 差错报告报文,不再发送 ICMP 差错报告报文。
对第一个分片的数据报片的所有后续数据报片,都不发送 ICMP 差错报告报文。
对具有多播地址的数据报,都不发送 ICMP 差错报告报文。
对具有特殊地址的数据报,不发送 ICMP 差错报告报文。
4.4ipv6
1、基本信息
ipv6支持无连接的传送,协议将数据单元PDU分组,而不是ipv4的数据报。
ipv6数据报组成:基本首部和有效载荷。
ipv6地址占128位,16个字节。
2、IPV6 基本首部和有效载荷
版本:4 位,对 IPV6 该字段是 6。
通信量类:8 位。
流标号:20 位,标识这个数据报属于源节点和目标节点之间的一个特定数据包序列,允许路由器把每一个数据报与一个给定的资源分配相联系。
有效载荷长度: 16 位,指明 IPV6 数据报除基本首部以外的字节数,最大值为 64KB(包含扩展首部和数据长度和)。
下一个首部:8 位,相当于 IPV4 协议字段或可选字段。
当 IPV6 数据报没有扩展首部时,下一个首部字段的作用和 IPV4 协议字段一致。
当出现扩展首部时,下一个首部字段的值就标识后面第一个扩展首部的类型。
跳数限制:8 位,最大 255 跳,等于 IPV4 TTL。
源地址:128 位,数据报发送端的 IP 地址。
目的地址:128 位,数据报接收端的 IP 地址。
扩展首部:定义了 6 种扩展首部:逐跳选项、路由选择、分片、鉴别、封装安全有效载荷、目的站选项。IPV6 把 IPV4 首部选项的功能都放在扩展首部中。。
3、IPV6 的地址
三种基本类型:
单播 (unicast):传统的点对点通信。
多播 (multicast):一点对多点的通信。
任播 (anycast):IPv6 增加的一种类型。终点为一组计算机,但数据只交付给其中的最近一个。
IPV6地址使用冒号十六进制法:
16 位的值用十六进制值表示,各值之间用冒号分隔。
零压缩:一串连续的零可以用一对冒号取代。在任一地址中,只能使用一次零压缩。
点分十进制记法的后缀:结合使用点分十进制记法的后缀在 IPv4 向 IPv6 的转换阶段特别有用。
4、从 IPV4 向 IPV6 过渡
双协议栈:在完全过渡到 IPV6 之前,使一部分主机(或路由器)同时装有 IPV4 和 IPV6 这两种协议栈。
隧道技术把 IPV6 数据报封装成为 IPV4 数据报,使得整个 IPV6 数据报变成了 IPV4 数据报的数据部分。
4.5路由选择协议
1、路由选择协议分类
(1)内部网关协议IGP:
在一个自治系统内部使用的路由选择协议。
常用:RIP,OSPF。
(2)外部网关协议EGP:
在不同自治系统之间进行路由选择时使用的协议。
使用最多:BGP-4。
2、内部网关协议RIP
RIP是一种分布式的基于距离向量的路由选择协议。
RIP允许一条路径最多包含15个路由 器,因此RIP只适合小型互联网。
特点:
仅和相邻路由器交换信息。
路由器交换的信息是当前路由器知道的所有信息。
按固定的时间间隔交换路由信息。
距离向量法:
对地址为X的相邻路由器发送来的RIP报文的下一跳地址改位X,并将所有项距离+1。
对比原路由表和收到的RIP报文,若原路由表中没有目的网络N,则添加。
若有目的网络N,且下一跳的地址为X,则直接替换。
若有目的网络N,但下一跳地址不同,则需比较距离,选择距离小的。
RIP协议优点:
实现简单,开销较小。
RIP协议缺点:
网络规模有限。最大距离为 15(16 表示不可达)。
交换的路由信息为完整路由表,开销较大。
坏消息传播得慢,收敛时间过长。
3、内部网关协议OSPF
OSPF是一种分布式的链路状态协议。
OSPF不用UDP而是直接使用IP数据报传送。
OSPF构成的数据报很短,可以减少路由信息的通信量。
特点:
使用洪泛法向本自治系统的所有路由器发信息。
发送的信息是与本路由器相连的所有路由器的链路状态。
当链路状态发生变化或每隔一段时间,向所有路由器发送此信息。
链路状态数据库:
每个路由器最终都能建立。
全网的拓扑结构图。
在全网范围内是一致的(这称为链路状态数据库的同步)。
每个路由器使用链路状态数据库中的数据构造自己的路由表。
OSPF 的五种分组类型:
问候分组。
数据库描述分组。
链路状态请求分组。
链路状态更新分组。
链路状态确认分组。
4、外部网关协议BGP
BGP是一种基于路径向量的路由选择协议。
BGP 是不同自治系统的路由器之间交换路由信息的协议。
选择能达到路径的较好路由,而非最佳路由。
特点:
使用TCP协议与其他BGP路由器建立可靠连接。
BGP路由器之间交换的信息是路由更新信息,包括可达性,AS路径等。
采取增量更新方式,只发送变化的路由信息。
BGP的四种报文:
open 报文,用来与 BGP 连接对等端建立关系。
update 报文,用来通告某一路由的信息,以及列出要撤销的路由。
keepalive 报文,用来周期性地证实与对等端的连通性。
notification 报文,用来发送检测到的差错。
4.6路由器的构成
1、路由器的结构
路由选择部分:控制部分;核心构件是路由选择处理机。
分组转发部分:数据层面;由三部分组成:交换结构、一组输入端口、输出端口。
2、路由器的三种交换结构
通过存储器:使用计算机作为路由器,用计算机的 CPU 作为路由器的路由选择处理机。
通过总线:不需要路由选择处理机的干预。
通过纵横交换结构:即互连网络。
4.7 IP多播
1、IP 多播的基本概念
在互联网上进行多播就叫做 IP 多播。
多播路由器:在互联网范围的多播要靠路由器来实现,这些路由器必须增加一些能够识别多播数据报的软件。能够多播协议的路由器称为多播路由器。多播路由器也可以转发普通的单播数据报。
多播 IP 地址:
一个多播 IP 地址并不是表示具体某台主机,而是一台主机的集合。
其实多播组的标识符就是 IP 地址中的 D 类地址。
主机申明加入某多播组即标识自己需要接收目的地址为该多播地址的数据。
不能作为源地址,只能作为目的地址。
2、IP 多播需要两种协议
(1)网际组管理协议 IGMP:
使多播路由器知道多播组成员信息(有无成员)。
在 IGMP 报文加上 IP 首部构成 IP 数据报。
但 IGMP 也向 IP 提供服务。
因此,不把 IGMP 看成是一个单独的协议,而是整个网际协议 IP 的一个组成部分。
IGMP 工作可分为两个阶段:加入多播组;探询组成员变化情况。
(2)多播路由选择协议:
使多播路由器协同工作,把多播数据报用最小代价传送给多播组的所有成员。
在 IGMP 报文加上 IP 首部构成 IP 数据报。
但 IGMP 也向 IP 提供服务。
因此,不把 IGMP 看成是一个单独的协议,而是整个网际协议 IP 的一个组成部分。
转发多播数据报时使用三种方法:洪泛与剪除;隧道技术;基于核心的发现技术。
4.8虚拟专用网 VPN 和网络地址转换 NAT
1、私有 IP 地址
解决 IPV4 不够用的问题;任意两台使用专用 IP 地址的设备间通信
私有 IPV4 地址(可重复使用):
10.0.0.0~10.255.255.255,10.0.0.0/8
172.16.0.0~172.31.255.255,172.16.0.0/12
192.168.0.0~192.168.255.255,192.160.0.0/16
互联网上的路由器不转发目的 IP 是专用地址的数据报。
使用专用地址互连的网络称为专用互联网、本地互联网和专用网。
2、虚拟专用网 VPN
利用公共的互联网作为本机构各专用网之间的通信载体;
通信载体是逻辑上的而不是物理的;
虚拟:用户不需要拥有实际的长途数据线路,使用公共资源建立自己的私有网络;
专用:用户可以定制最符合自身需求的网络,用于机构内部通信;
需要专门的硬件和软件支持;
核心技术:隧道技术、加解密技术。
VPN 类型:内联网;外联网;远程接入VPN。
3、网络地址转换 NAT
解决问题:在专用网内部的一些主机本来已经分配到了本地的 IP 地址(专用地址),但现在又想和互联网上的主机通信(并不需要加密)。
网络地址转换 NAT:
专用网连接到互联网的路由器上安装 NAT 软件(NAT 路由器);
NAT 路由器至少有一个有效的外部全球 IP 地址;
使用本地地址的主机在和外界通信时,在 NAT 路由器上将其本地地址转换成全球 IP地址,才能和互联网连接。
五、运输层
5.1运输层协议概述
1、进程间的通信(运输层功能)
网络层为主机之间提供逻辑通信,而运输层为应用进程之间提供端到端的逻辑通信。
运输层还需对收到的报文进行差错检测。
运输层向上面的应用层提供通信服务。
两台主机进行通信就是两台主机中的应用进程互相通信。
从运输层来说,端到端的通信就是应用进程之间的通信。
2、运输层的两种协议
(1)用户数据报协议 UDP:
在传送数据之前不需要先建立连接。
远地主机的运输层在收到 UDP 报文后,不需要给出任何确认。
当运输层使用TCP时,尽管下面网络不可靠,但这种逻辑通道相当于一条全双工的可靠信道。
UDP 传送的数据单位协议是 UDP 报文或用户数据报。
(2)传输控制协议 TCP:
提供可靠的、面向连接的运输服务。
不提供广播或多播服务,收到 TCP 报文段后,需要确认。
当运输层使用UDP时,这种逻辑通信信道是不可靠信道。
TCP 传送的数据单位协议是 TCP 报文段。
3、运输层的端口
需要解决的问题:发送方几乎无法识别其他机器上的进程。
解决办法:在运输层使用协议端口号,把端口设为通信的抽象终点。
端口用一个 16 位端口号进行标志;
端口号只具有本地意义,只是为了标志本计算机应用层中的各进程。
两个计算机中的进程要互相通信,不仅必须知道对方的 IP 地址,而且还要知道对方的端口号。
两大类端口:
(1)服务器端使用的端口号:
熟知端口,数值一般为 0~1023,标记常规的服务进程。
登记端口号,数值为 1024~49151,标记为没有熟知端口号的非常规的服务进程,使用这个范围的端口号必须在 IANA 登记,以防止重复。
(2)客户端使用的端口号:
又称为短暂端口号,数值为 49152~65535,留给客户进程短暂使用,通信结束后,被系统收回。
5.2用户数据报协议 UDP
UDP 在 IP 数据报服务增加功能:复用和分用、差错检测。
1、UDP 主要特点:
无连接。发送数据之前不需要建立连接。
使用尽最大努力交付。即不保证可靠交付。
面向报文。UDP 一次传送和交付一个完整的报文。
没有拥塞控制。
支持一对一、一对多、多对一、多对多等交互通信。
首部开销小,只有 8 个字节。比 TCP 的 20 个字节的首部短
2、UDP的首部格式
UDP 数据报=首部字段(8 字节)+数据字段
源端口:2个字节,在需要对方回信时选用,不需要时全 0。
目的端口:2个字节,在终点交付报文时必须使用。
长度:2个字节,UDP用户数据报的长度,最小值为8,即没有数据部分。
检验和:检测UDP用户数据报在传输中是否出错,出错则丢弃。
伪首部:12 字节;在计算检验和时临时添加。既不向下传送也不向上递交。
5.3传输控制协议 TCP
1、TCP 主要的特点
TCP 是面向连接的运输层协议。
每一条 TCP 连接只能有两个端点,每一条 TCP 连接只能是点对点的。
TCP 提供可靠交付的服务;无差错,不丢失,不重复,按序到达。
TCP 提供全双工通信。
面向字节流-虽然应用程序和 TCP 交互是一次一个数据块,但 TCP 把应用程序交下来的数据仅仅看成是一连串的无结构的字节流。
2、TCP的连接
TCP 把连接作为最基本的抽象。
每一条 TCP 连接有两个端点,TCP连接的端点叫做套接字或插口。
套接字socket=(IP地址:端口号)。
每一条TCP连接唯一的被通信两端的两个端点确定,即TCP 连接 ::= {socket1, socket2} = {(IP1: port1),(IP2: port2)}。
同一个IP地址可以有多个TCP连接,而同一个端口号可以出现在多个不同的TCP连接中。
3、TCP 报文段的首部格式
TCP 报文段首部的前20个字节是固定的,后面有4n字节是根据需要而增加的选项。因此 TCP 首部的最小长度是20字节。
源端口和目的端口:各 2 字节,分别写入源端口号和目的端口号。
序号:4 字节,0~2^32-1。把应用进程交来的数据按字节编号。首部中的序号字段值指的是本报文段所发送的数据的第一个字节的序号。
确认号:4 字节,是期望收到对方下一个报文段的第一个数据字节的序号。若确认号=N,则表明:到序号 N-1 为止的所有数据都已正确收到。
数据偏移:4 位指出 TCP 报文段的首部长度。数据偏移的最大值是 60 字节,也是TCP 首部的最大长度(即选项长度不能超过 40 字节)。
保留:6 位,保留为今后使用,但目前应置为 0。
紧急 URG:URG=1,紧急指针字段有效。告知系统此时报文段中有紧急数据,应尽快传递(高优先级),发送方 TCP 就把紧急数据插入到本报文段数据最前面。
确认 ACK:等于 1 时有效。TCP 规定,在连接建立后所有传送的报文段都必须把 ACK 置 1。
推送 PSH:置 1,立即收到对方的响应,尽快交付接收应用进程,不再等到整个缓存都填满后再向上交付。
复位 RST:RET=1,表明 TCP 连接中出现严重差错。必须释放后重连。
同步 SYN:在连接建立时用来同步序号。
终止 FIN:用来释放一个连接。发送完毕,释放运输连接。
窗口:2 字节。0~2^16-1;窗口值告诉对方:从本报文段首部中的确认号算起,接收方目前允许对方发送的数据量。
检验和:2 字节,检验和字段检验范围包括首部和数据两部分。
紧急指针:2 字节。仅在 URG=1 时有意义。指出本报文段中的紧急数据的字节数。
选项:长度可变,最长 40 字节。TCP 最初规定了最大报文段长度 MSS-每一个TCP 报文段中的数据字段的最大长度。后续增加窗口扩大选项、时间戳选项和选择确认。
4、TCP可靠传输的实现
(1)以字节为单位的滑动窗口:
发送窗口表示:在没有收到 B 的确认的情况下,A 可以连续把窗口内的数据都发送出去,边发送边接收确认。
接收方发送确认的时机:接收方可以在合适的时候发送确认,也可以在自己有数据要发送时把确认信息顺便带上。
发送、接受方维持的发送缓存和发送窗口:
发送方:发送缓存用来暂时存放:发送应用程序传送给发送方 TCP 准备发送的数据;TCP 已发送但尚未收到确认的数据。
接收方:接受缓存用来暂时存放:按序到达的、但尚未被接收应用程序读取的数据;不按序到达的数据以及未进入到接收窗口的数据。
(2) 超时重传时间的选择:
超时重传时间设置太短,引起过多的不必要的重传,网络负荷增大;超时重传时间设置的过长,网络的空闲时间增大,网络传输效率降低。
TCP采用了一种自适应算法,它记录一个报文段发出的时间,以及收到相应的确认的时间。这两个时间之差就是报文段的往返时间 RTT。TCP保留了RTT 一个加权平均往返时间RTTs。新的RTTS(1)(旧的RTTS)+(新的RTT 样本)。
超时计时器设置的超时重传时间 RTO 应略大于上面得出的 RTTs。
RF C6298建议RTO:RTO=RTTS+4RTTD其中:RTTD是RTT偏差的加权平均值。
RF C6298建议RTTD:新的RTTD=(1)(旧的RTTD)+RTTS新的RTT样本
Karn算法:在计算加权平均RTTs时,只要报文段重传了,就不采用其他往返时间样本,这样得出的加权平均RTTs和RTO比较准确。针对超时重传时间无法更新问题,进行算法修正:报文段每重传一次,就把超时重传时 间RTO增大一些,典型的做法是取新的重传时间为旧的重传时间的2倍。
(3)选择确认 SACK:
使用选择确认 SACK,在建立 TCP 连接时,就要在 TCP 首部的选项中加上“允许 SACK”,而双方都必须实现商量好。
如果使用选择确认,那么原来首部中的“确认号字段”用法不变,只是以后在 TCP 报文段的首部中都增加了 SACK 选项,以便报告收到的不连续的字节块的边界。选项最多指明 4 个字节块的边界信息。
5、TCP的流量控制与拥塞控制:
(1)区别:
拥塞控制是防止过多的数据注入到网络中,避免网络中的路由器或链路过载。
拥塞控制是一个全局的过程。
流量控制是指点对点通信量的控制,是一个端到端的问题。
(2)TCP的拥塞控制方法:
慢开始算法:由小到大逐渐增大发送窗口,逐渐增大拥塞窗口数值。
使用慢开始算法后,每经历一个传输轮次,拥塞窗口数值cwnd就加倍。
拥塞避免算法:每经过一个RRT,cwnd加一,而不是加倍,实现加法增大。
慢开始门限ssthresh:cwnd<ssthresh时使用慢开始算法;cwnd>ssthresh时使用拥塞避免算法;cwnd=ssthresh时都可以使用。
快重传算法:发送方只要一连收到3个重复的确认,就立即重传并使用拥塞避免算法。
快恢复算法:发送方连续收到3个重复的ACK后,就将ssthresh减半且使cwnd=ssthresh。
5.4 TCP的连接建立
TCP 连接的建立采用客户服务器方式。
1、连接要解决的三个问题
要使每一方能够确知对方的存在;
要允许双方协商一些参数;
能够对运输实体资源进行分配。
2、TCP 连接有三个阶段
连接建立:三报文握手建立连接。
数据传送
连接释放:四报文握手释放连接。
六、应用层
6.1应用层协议
内容:精确定义不同主机中的多个应用进程之间的通信规则。
域名服务 DNS、文件传输 FTP、电子邮件 SMTP,POP3、远程登陆 TELNET、WWW 服务 HTTP。
两种工作模式:Client/Server(客户/服务器)模式、P2P 模式。
6.2域名系统NDS
1、概述
NDS是互联网使用的命名系统,功能:将域名解析为主机能识别的 IP 地址。
在NDS解析中,以UDP用户数据报方式(减少开销)发送给本地域名服务器。
2、域名结构
域名的结构由标号序列组成,各标号之间用点隔开:三级域名.二级域名.顶级域名。
标号都由英文字母或数字组成,每一个标号不超过63个字符,不区分大小写。
级别最高的域名写在左边,最低的写在右边。
3、域名服务器
根域名服务器:是最高层次的域名服务器,也是最重要的域名服务器;所有的根域名服务器都知道所有的顶级域名服务器的域名和IP地址。
顶级域名服务器:负责管理在该顶级域名服务器注册的所有二级域名。
权限域名服务器:是负责一个区的域名服务器,用来保存该区中的所有主机的域名到IP地址的映射。
本地域名服务器:离用户较近,一般不超过几个路由器的距离。当一个主机发出DNS查询请求时,这个查询请求报文就发送给本地域名服务器。
4、域名的解析过程
递归查询:通常,主机向本地域名服务器查询时使用。若不知道,就以DNS客户的身份,向其他根域名服务器继续发出查询请求报文。
迭代查询:本地域名服务器向根域名服务器查询时使用。要么给出所要查询的IP地址,要么告诉下一个要查询的域名服务器的IP地址。本地域名服务器继续后续查询。
6.3文件传送协议FTP
1、FTP概述
FTP是互联网使用最广泛的文件传输协议,提供交互式访问,允许客户指定文件的类型与格式
FTP 使用客户服务器方式。一个FTP服务器进程可同时为多个客户进程提供服务。
FTP 的服务器进程由两大部分组成:主进程,负责接受新的请求;若干个从属进程,负责处理单个请求。
FTP要求在客户和服务器之间要建立控制连接和 数据连接2条TCP连接。
2、FTP的工作过程
打开熟知端口(端口号为21),使客户进程能够连接上。
等待客户进程发出连接请求。
启动从属进程来处理客户进程发来的请求。
回到等待状态,继续接受其他客户进程发来的请求。
FTP是带外传送控制信息:FTP使用分离的控制连接,主进程与从属进程的处理是并发地进行。
6.4万维网WWW
1、特点
万维网是一个大规模的、联机式的信息存储所。
万维网是一个分布式的超媒体系统,是超文本系统的扩充。
2、万维网解决的问题
怎样标志分布在整个互联网上的万维网文档:使用统一资源定位符 URL。
用什么协议来实现万维网上的各种链接:使用超文本传送协议 HTTP 。
怎样使不同作者创作的不同风格的万维网文档都能在互联网上的各种主机上显示出来,同时使用户清楚地知道在什么地方存在着链接:使用超文本标记语言 HTML。
怎样使用户能够很方便地找到所需的信息:使用各种的搜索工具(即搜索引擎)。
3、统一资源定位符URL
用来表示从互联网上得到的资源位置和访问这些资源的方法。
URL实际上就是互联网上资源的地址。
格式:<协议>://<主机>:<端口>/<路径>。
最常用的协议为http,其次为ftp,端口和路径可以省略。
4、超文本协议HTTP
默认端口80,是面向事务的应用层协议。
http协议是无状态的,不会记得曾经访问过的用户。
HTTP 的主要特点:
HTTP 使用了面向连接的 TCP 作为运输层协议,保证了数据的可靠传输。
HTTP 协议本身也是无连接的。
HTTP 是无状态的,简化了服务器的设计,使服务器更容易支持大量并发的 HTTP 请求。
HTTP 的工作过程可分为四步:
客户机与服务器需要建立连接。只要单击某个超级链接,HTTP 的工作开始;
建立连接后,客户机发送一个请求给服务器;
服务器接到请求后,给予相应的响应信息;
客户端接收服务器所返回的信息通过浏览器显示在用户的显示屏上,然后客户机与服务器断开连接。
HTTP/1.1 协议使用持续连接,两种工作方式:
非流水线方式:客户在收到前一个响应后才能发出下一个请求。
流水线方式:客户在收到 HTTP 的响应报文之前就能够接着发送新的请求报文。一个接一个的请求报文到达服务器后,服务器就可连续发回响应报文。客户访问所有对象只需花费一个 RTT 时间。
HTTP/2 协议:
把服务器发回的响应变成可以并行发回(使用同一个 TCP 连接);
允许客户复用 TCP 连接进行多个请求(请求不同页面用同一个 TCP 连接)
把所有报文都划分为许多较小的二进制编码的帧,不发送重复的首部字段,减小开销。
HTTP 报文类型:
请求报文-从客户向服务器发送请求报文。
响应报文-从服务器到客户的回答。
HTTP报文格式:
请求报文格式:由三部分组成:开始行、首部行和实体主体。
响应报文格式:开始行是状态行,由三部分组成:HTTP 版本、状态码、解释状态码的简单短语。
5、超文本标记语言 HTML
HTML 定义了许多用于排版的命令(即标签)。
HTML 把各种标签嵌入到万维网的页面中,构成了所谓的 HTML 文档。
HTML 文档是一种可以用任何文本编辑器创建的 ASCII 码文件。
HTML 文档的后缀:.html 或 .htm。
层叠样式表 CSS是一种样式表语言,用于为 HTML 文档定义布局。CSS 与 HTML 的区别:HTML 用于结构化内容,而 CSS 则用于格式化结构化的内容。
动态万维网文档:静态文档,动态文档。
6.5电子邮件
1、概述
电子信件:指使用电子设备交换的邮件及其方法。
重要的标准:简单邮件传送协议SMTP、互联网文本报文格式、通用互联网邮件扩充 MIME、邮件读取协议POP3 和 IMAP
2、组成部分
用户代理(UA):用户与电子邮件系统的接口。
邮件服务器:发送邮件和接收邮件。
邮件发送协议和邮件读取协议。
3、电子邮件的组成和地址格式
电子邮件组成:由信封和内容两部分组成。
地址格式:用户名@邮件服务器的域名 如:xyz@abc.com
4、简单邮件传送协议SMTP
SMTP的特点:
采用 TCP 协议,监听 25 号端口;
不使用中间服务器-发收邮件服务器直接建立 TCP 连接;
发送邮件不需要鉴别; SMTP 采用 ASCII 明文传送。
SMTP的三个阶段:
连接建立:连接是在发送主机的SMTP客户和接收主机的SMTP服务器之间建立的。
邮件发送:从MAIL命令开始
连接释放:邮件发送完毕后,SMTP应释放TCP连接。
注:SMTP协议指只能用来发邮件
5、邮件读取协议POP3和IMAP
POP3协议:
使用客户服务器的工作方式。在接收方POP3客户程序,接收方所链接的ISP服务器中则POP3服务器程序。
只要用户从POP3服务器读取了邮件,POP3服务器就会删除这个邮件
IMAP协议:
在用户的计算机上IMAP客户程序,与接收方的邮件服务器上的IMAP服务器程序建立TCP连接。
POP与IMAP的区别:
POP是一个脱机协议,所有对邮件的处理都在用户的PC机上进行。
IMAP是一个联机协议,用户可以操纵ISP的邮件服务器邮箱。
SMTP、POP3、IMAP的区别:
邮件读取协议 POP 或 IMAP 与邮件传送协议 SMTP 完全不同。
发信人的用户代理向源邮件服务器发送邮件,以及源邮件服务器向目的邮件服务器发送邮件,都是使用 SMTP 协议。
而 POP 协议或 IMAP 协议则是用户从目的邮件服务器上读取邮件所使用的协议。
6.6动态主机配置协议 DHCP
1、配置协议 DHCP
DHCP 提供了即插即用连网的机制;
允许一台计算机加入新的网络和并自动获取 IP 地址;
DHCP 为服务器、且位置固定的计算机指派一个永久地址;
DHCP 为客户端的计算机分配一个临时地址。
2、DHCP 解决的问题
普通用户配置协议参数易出错;
管理员配置多台设备麻烦;
IP 地址数少于用户数。
3、DHCP 采用客户/服务器模式
需要 IP 地址的主机在启动时广播发送 DHCP 发现报文:该主机就成为 DHCP 客户;
本地网络上 DHCP 服务器回答此广播报文:
服务器首先在其数据库中查找该计算机的配置信息;
若找到,则返回找到的信息;
否则,从服务器的 IP 地址池中取一个地址分配给该计算机;
服务器的回答报文称为提供报文。
本网络上的所有 DHCP 服务器都会发送回应,DHCP 客户选用收到的第一个 DHCP 回答请求 IP 地址。
4、DHCP 中继代理
为减少 DHCP 服务器的数据,可以采取中继代理。
使每一个网络至少有一个 DHCP 中继代理,它配置了 DHCP 服务器的 IP 地址信息。
租用期:DHCP 服务器分配给 DHCP 客户的 IP 地址是临时的,DHCP 客户只能在一段有限的时间内使用这个分配到的 IP 地址。称这段时间为租用期。
DHCP 客户也可在自己发送的报文中提出对租用期的要求;租用期的数值应由 DHCP 服务器决定。
6.7P2P应用
1、P2P工作方式概述
在 P2P 工作方式下,所有的音频/视频文件都是在普通的互联网用户之间传输。
2、P2P应用的工作原理
发现节点:P2P 应用需要一种机制来发现其他节点并建立连接。通常使用的方法是通过中心化的服务器或者分布式的 DHT(分布式哈希表)来维护节点的信息,并且节点可以通过查询这些服务器或DHT找到其他节点。
建立连接:一旦节点发现其他节点,它们可以尝试建立连接。节点之间可以使用不同的协议和技术来建立直接的点对点连接,例如TCP、UDP或直接的套接字连接。
数据传输:一旦节点之间建立了连接,它们可以开始直接交换数据。P2P 应用可以支持多种类型的数据传输方式,例如文件共享、实时音视频传输、即时消息等。节点可以根据自己的需求选择和配置适当的传输方式。
路由和搜索:P2P 应用中的节点通常具有路由和搜索功能,这使得节点可以找到特定的资源或服务。节点可以使用搜索算法来查找其他节点中的特定资源,例如文件名、关键字等。路由算法则用于确定数据传输的路径,以便有效地在节点之间传递数据。
数据管理:P2P 应用可能需要管理大量的数据,包括节点信息、资源索引和共享文件等。节点可以使用分布式哈希表(DHT)或其他数据结构来存储和管理这些数据,以便其他节点可以轻松地访问和共享。
七、参考资料
(1)计算机网络、谢希仁、电子工业出版社、第8版、2021年、ISBN:9787121411748
