了解交换机、路由器、网关的概念、并知道各自的用途
-
交换机
直接查询挂接在哪个端口上,通过内部交换矩阵迅速将数据包传送到目的端口。目的 MAC 若不存在,交换机才广播到所有的端口,接收端口回应后交换机会”学习“ 新的地址。并把它添加到内部地址表或中
交换机工作于 OSI 参考模型的第二层,即数据链路层。交换机内部的CPU 会在每个端口成功连接时,通过 ARP 协议学习它的 MAC 地址,保存一张 ARP 表。 -
路由器
提供了路由与传送送两种重要机制,工作在网络层;
路由:可以决定数据包从来源段到目的端所经过的路由路径
传送:将路由器输入端的数据包移送至适当的路由器输出端(在路由器内部进行) -
网关
网关,顾名思义就是连接两个网络的设备,用于连接局域网和 Internet。网关经常指把一种协议转换成另一种协议的设备
网关(gateway)能在不同协议间移动数据,而路由器(router)是在不同网络间移动数据,相当于传统所说的IP网关(IP gateway)
网关中并没有路由表,他只能按照预先设定的不同网段来进行转发
带宽(bandwidth)
- 在计算机网络中,表示在单位时间内从网络中的某一点到另一点所能通过的“最高数据率”。常用来表示网络的通信线路所能传送数据的能力。单位是“比特每秒”,记为b/s。
吞吐量
- 表示在单位时间内通过某个网络(或信道、接口)的实际数据量。吞吐量更经常地用于对现实世界中的网络的一种测量,以便知道实际上到底有多少数据量能够通过网络。吞吐量受网络的带宽或网络的额定速率的限制。吞吐量小于等于带宽
重要概念
- 按照作用范围的不同,计算机网络分为广域网WAN,城域网MAN,局域网LAN,个人区域网PAN
- 计算机网络最常用的性能指标是:速率,带宽,吞吐量,时延(发送时延,处理时延,排队时延),时延带宽积,往返时间和信道利用率
- 计算机网络采用的通信方式是客户-服务器方式(C/S方式)和对等连接方式(P2P方式)
- 五层体系结构由应用层,运输层,网络层(网际层),数据链路层,物理层组成。运输层最主要的协议是TCP和UDP协议,网络层最重要的协议是IP协议。
物理层
- 单工:只能有一个方向的通信而没有反方向的交互
- 半双工:通信的双方都可以发送信息,但不能双方同时发送(当然也就不能同时接收)
- 全双工:通信的双方可以同时发送和接收信息。
- 调制:将来自源信号的低频甚至直流信号进行变换,使得这种低频直流信号可以便于在信道内传输
- 两种调制方法:
基带调制: 把数字信号转换为另一种形式的数字信号,即仅对信号的波形进行变换,可称之为编码调制
带通调制:使用载波进行调制,将基带信号的频率般到高频段,并将之转换为模拟信号
数据链路层
- 数据链路:点到点之间除了有一条物理链路外,还必须有一些必要的通信协议来控制这些数据的传输
- 数据链路层的作用就是将网络层的数据包封装成帧(交给物理层)发送到链路上;或者把(从物理层中)接收到的帧中的IP数据报取出并交给网络层
- 数据链路层的三个基本问题:封装成帧,透明传输,差错检测
- 封装成帧:
将IP数据报的前后分别添加首部和尾部构成帧,以便于接收端能够在物理层的比特流中知道帧的开始和结束,即进行帧定界
- 透明传输:
透明传输的概念是指在数据链路层传输时,所传输的数据在数据链路层没有任何的阻挡,接收方所收到的数据和发送方发送的数据没有任何差别,也就是说,数据链路层对其传输的数据帧是完全透明的; - 差错检测:
差错检测指的是在传输过程中产生的比特差错;
误码率:一段时间内,传输错误的比特占传输总数的比率;
在数据链路层我们保证的是无比特差错,而并非无传输差错,传输差错还包含帧丢失,帧重复,帧失序等; - 使用广播通信的数据链路层:局域网主要使用的就是广播信道
- 适配器的作用:
- 适配器用来连接计算机与局域网;同时要能够实现以太网协议‘
- 适配器和局域网之间的通信是通过双绞线或者电缆以串行传输的方式进行的;而适配器与计算机之间的通信是并行方式进行的,之所以适配器要能够进行两种数据传送方式之间的串并行转化;
- 网络上的数据率与计算机总线上的数据率不同,因此适配器要安装内存储器以进行两种速率下的缓存功能
- 适配器要能够实现以太网协议
- 计算机的硬件地址就在适配器的ROM中;(计算机的软件地址IP地址,在计算机的存储器中)
CSMA/CD协议
基于以太网的广播通信方式采用的具有检测功能的协议
MA: 多点接入 —— 多个主机接入同一条总线
CS: 载波监听 —— 在发送前和发送中不断检测信道是否有其它站点发送的信息
CD: 碰撞检测 —— 边发送边监听,若在信道上有至少两个站点同时发送信息便发生碰撞,使得两边发送的信息都作废
碰撞检测:
- 为什么需要碰撞检测?
信息传递具有时延,当某主机检测信道上无信息,并发送自身信息。可能信道并不空闲,只是其它站点发送的信息还未传递过来,因为该主机发送的信息会产生碰撞。 - 争用期
所以一个站点最长在发送信息之后的一个往返时间(即两倍的端到端的传播时延)内能收到碰撞信号,所以一个站点在发送信号的一段时间内,是不确定是否会遭遇碰撞的;——即以太网发送的不确定性;而这段不确定是否会发生碰撞的时间称为争用期(或碰撞窗口);
截断二进制指数退避算法:
-
在争用期如果发生碰撞则双方都需要进行重传操作
-
这是一种动态退避算法
-
退避时间 = 基本退避时间(2倍端到端时间) + 随机数r
随机数r = {0,1,2,… ,(2^k - 1)} 随机选择
k = min{ 重传次数,10} -
数据帧的最小长度应该为512bit —— 为了使所有的站点发送的每一个数据帧都能保证得到想要的发送结果信息(是否发生碰撞)
MAC层的硬件地址:
- 硬件地址又称为物理地址或MAC地址
- 硬件地址是适配器唯一编号,用来唯一的标识每台电脑上的适配器
- 硬件地址在适配器生产时固化在适配器的ROM中
MAC地址的格式
总共64位(6字节)前三字节由管理全球硬件地址的机构——注册管理机构RA向适配器制造公司出售称为组织唯一标识符OUI,后三字节由制造公司自行分配,称为扩展标识符,(其中前三字节中有两位是用来标识是否位单播地址和是否属于全球管理的)
网络层
网络层提供的两种服务
- 面向连接和无连接的传送服务
- 从某个网络传送到另一个网络或网络内不同主机的传送
- 网络层不提供服务质量的承诺
网际协议IP基本概念
- 三个协议:
地址解析协议ARP
网际报文管理协议ICMP
网际组织管理协议IGMP - 三者与IP协议关系:
网络互联的一些中间设备:
物理层:转发器
数据链路层:网桥
网络层:路由器
网络层以上:网关
分类的IP地址
- IP地址的概念:用来唯一标识全球连接在互联网上的主机的接口的标识符
- IP地址的划分方式历史: 分类的IP地址; 划分子网; 构成超网;
分类的IP地址:
IP地址的点分十进制表示法——把IP地址的每八位用十进制表示,便于记忆书写
A类网络:
- 本网络:A类地址中网络号全为0的IP地址
- 环回测试:A类地址中网络号为01111111的IP地址用作本地软件环回测试本主机的进程之间的通道
相同的对于B类和C类网络: 全为0 代表本网络;全为1 代表广播 故最多的网络数量要在2的指数方后减去2;
一个网络是指具有相同网络号的主机的集合,因此用网桥或转发器连接起来的若干局域网属于同一个网络
IP地址与硬件(MAC)地址
- 硬件地址时物理层和数据链路层使用的地址
- IP地址是IP数据报在网络层及以上各层使用的一种逻辑地址
- MAC帧中的源地址和目的地址都是硬件地址,整个IP数据报在物理层被封装在数据部分,IP地址对数据链路层不可见
- 数据报在路由其之间传送时,途径的路由器地址不出现在IP数据报中,当前路由器根据目的IP地址自主路由出下一路由器地址
- 每次经过路由器转发时都要将MAC的首部和尾部丢弃重新封装——变换MAC帧中的目的地址和源地址
地址解析协议ARP
- ARP协议:根据已知的IP地址解析出该主机的硬件地址;
- 主机ARP高速缓存表:用来存放从IP地址映射MAC地址的映射表,并且动态更新(方法:新增或超时删除)这个映射表;
- 新增的方法:
将本主机的IP地址和MAC地址以及所已知的IP地址封装,并向本局域网内所有的主机发送ARP请求,。若收到请求的主机的IP地址与发送过来的已知IP地址不同,则忽略请求;否则,将收到的源主机的IP地址和MAC地址写入接受主机的ARP高速缓存中。接受主机将发送响应给源主机,该响应包含接受主机的MAC地址,在得到响应后便将这个目的主机的MAC地址写入ARP高速缓存表中 - 更新:
同时,ARP高速缓存中对每个硬件地址都设置了生存时间,超过生存时间的硬件地址便进行删除操作,便于进行动态更新,防止出现发送到错误(过时的)硬件地址处;
注意:地址解析协议ARP只能用来解决同一个局域网(包括该网络和与该网络相连的路由器)内的地址映射,网络之间的路由并能不能做到;
从硬件地址到IP地址的解析每次转发分组时都要重复进行,但这种开销是不可避免的,是为方便的在各种异构网络之间进行转发工作而屏蔽网络硬件之间的异构性,从而体现出虚拟网络的含义;
IP数据报的格式
-
版本: 表明是 IPv4 还是 IPv6
-
首部长度: 4字节为一个单位
-
标识: 用于判断各分段是否属于同一网络;同一网络具有相同的标识;
-
标志: 用于判断是否可以分段以及该段是否是最后一段
-
片偏移 : 用于组合个分段,表明各分段的位置顺序
-
生存时间TTL:当生存时间为0时,将会丢弃该报文
-
首部校验和:
用于检验数据报在传送的过程中其首部是否出错;
检验方法:在发送方将IP数据报的首部划分为许多16位的字序列;并把检验和字段置零,用反码运算术将字相加之后,将得到的和的反码写入检验和位置;在接受方接收到数据报之后,使用相同的方法将首部所有的字(包括检验和)相加一次,若没有出错则,得到的结果必然为零,最后的结果便可作为是否出错的判断标志
反码求和:0+0=0;0+1=1;1+1=0,同时产生进位;最高位产生进位时最后的结果加+1; -
源地址,目的地址: 32位
-
填充: 字节对齐
划分子网
- 加入一个子网号,用来判断属于哪一个子网 : 网络号 - 子网号 - 主机号
- 子网号将占用主机号的位数
- 设置子网掩码,网络号和子网号设为1,主机号清零
- 例子(C类网络地址划分子网):
网络地址192.168.10.0 子网掩码: 255.255.255.128
则:
子网掩码 255.255.255.10000000
子网号占1位,故有子网数为2;
子网地址 : ~~~~~~~~ 0 ~~~~~~~ 1
最小主机地址: ~~ 1 ~~~~~~~ 129
最大主机地址: ~ 126 ~~~~~ 254
广播地址: ~~~~~~~~ 127 ~~~~~ 255
(备注:全称应为 192.168.10.127)
规律:1)计算子网增量 256-128 = 128
~~~~~~~~~
2)子网个数 = 256/128 = 2
~~~~~~~~~
3) 最小主机地址 = 本网络地址+1
~~~~~~~~~
4) 最大主机地址 = 广播地址 -1;
~~~~~~~~~
5) 广播地址 = 下一个网络地址 -1
例子2:
网络地址:172.16.0.0 子网掩码: 255.255.255.128
解: B类网络,子网增量:第三位256 - 255 =1 第四位:256 - 128 = 128
故而子网个数为: (256 /1 )*(256/128) = 512
子网地址: 0.0
~~~
0.128
~~~
1.0
~~~
1.128
~~~
…
~~~
255.0
~~~
255.128
构建超网
- IP地址 = 网络前缀+主机号/ 网络前缀所占位数
- CIDR地址块: 具有相同网络前缀的IP地址组成一个CIDR地址块
- 例子:
IP地址:128.14.35.7/20
~~~~~~~~~~~ =128.14.0010 ~ 0011.00000111
故有:
最小地址: ~ 128.14.0010 ~ 0000.00000000
最大地址: ~ 128.14.0010 ~ 1111.11111111
地址数量: 2的12次方
聚合C类网: 2的12次方/2的8次方 = 16
地址掩码: 255.255.1111 ~ 0000.00000000
网际控制报文协议ICMP
-
ICMP数据报装在IP数据报中
-
ICMP数据报有两种:ICMP差错报告报文和ICMP询问报文
-
改变路由报文:(重定向)——互联网主机中也存在路由表,但主机中的路由表并不实时更新,(不和路由器定期交换路由信息),所以主机中的路由表更新的方法就是主机通过接收这种来自路由器的改变路由报文来更新其路由表;
-
ICMP的应用
PING(分组网间探测):用来测试两台主机之间的连通性
用在UNIX操作系统中用来跟踪一个分组从源点到终点的路径
互联网的路由选择协议
- 自治系统AS:在单一技术管理下的一组路由器(一个AS对其他AS表现出的是一个单一的和一致的路由选择策略)
- 两种路由选择协议:
内部网关协议IGP:在自治系统内部使用的路由选择协议,域间路由选择,有多种,如RIP,OSPF
外部网关协议EGP:在自治系统之间使用的路由选择协议,域内路由选择,目前使用的是BGP协议
内部网关协议RIP
- 工作原理:
~~~ 1) 是一种分布式的基于距离向量的路由选择协议
~~~ 2) 分布式:每个路由器不断地和相邻路由器交换信息;(所交换的式当前路由器知道的所有路由信息)
~~~ 3) 距离向量:从当前路由器每经过一个路由器则距离加一;记录到达每个路由器的距离,以找出最小距离;当距离大于15则认为不可达 - RIP2的报文格式
内部网关协议OSPF
- OSPF的基本特点:开放最短路径优先——为克服RIP协议制定的协议;使用了Dijkstra的最短路径算法;使用分布式的链路状态协议
- 洪范法:路由器通过所有的端口向所有的相邻路由器发送信息,而所有的相邻路由器也是同样的做法,(但发送的对象不包括之前向他发送信息的那个路由器),从而最终使得整个局域网都得到该信息的一个副本
而发送的信息就是与本路由器相邻的所有路由器的链路状态(链路状态是指相邻路由器及到达该路由器的代价)
只有链路状态发生变化时,才使用洪范法发送信息,(不是定期交换)
外部网关协议BGP
- 外部网关协议用来解决不同自治系统之间的路由选择策略;
- 边界网关协议不追求寻找最佳路径,而是在可到达的基础上找到一条相对较好的路径;
- BGP发言人:在BGP协议中,一个自治系统中用来与其他自治系统(通过TCP连接)交换路由信息的路由器;
- 交换信息的两个BGP发言人彼此成为临站或对等站
- 所交换的信息是可达性信息
- 每个发言人除了要运行BGP协议外,还要运行本自治系统内部的协议;
路由器的构成
路由器的结构两部分:路由选择部分 和 分组转发部分
-
路由选择部分:
控制部分,核心是路由选择处理机,路由选择处理机的作用是构造路由表,同时定期更新维护路由表路由表 -
分组转发部分:
由三部分组成——输入输出端口,交换结构
交换结构的工作是将收到的分组根据路由表从输入端口转发到输出端口
IGMP协议
虚拟专用网VPN
网络地址转换NAT
运输层
运输层协议概述
- 运输层用来解决进程之间的通信问题,属于面向通信部分的最高层
- 运输层向用户屏蔽了下面网络核心的细节
- 为了能够满足同一主机的不同进程间的通信要求,运输层需要一个很重要的功能——分用与复用(分用指发送方不同进程可以使用同一运输协议进行发送数据报。复用指接收方的运输层可以将接收到的数据报正确交付给不同的进程)
- 两个主要协议:
用户数据报协议UDP——无连接
传输控制协议TCP——面向连接
运输层的端口
- 端口是指软件端口,是应用层的各种协议进程与运输实体进行层间交互的一种地址
- 主机通过端口将数据报分发给不同的进程
- 端口号只具有本地意义,是为了标志本计算机中各个进程在和运输层交互时的层间接口
- TCP/IP协议中,在运输层用16位端口号来标志一个端口,一个主机总共有65535个端口,
- 端口号分类:
服务器端口号:
~~~ 1) 熟知端口号(系统端口号):0 - 1023
~~~ 应用进程 ~~~~~ FTP ~~~ TFTP ~~~ HTTP ~~~ SMTP
~~~ 熟知端口号 ~~~ 21 ~~~~~~ 69 ~~~~~~~~ 80 ~~~~~~~~ 25
~~~ 2) 登记端口号:这类端口号是为没有熟知端口号的应用程序使用的
客户端端口号:
~~~ 3)短暂端口号 :给客户进程暂时使用的;通信结束后,这个端口号就不存在了,可供其他客户进程使用;
用户数据报协议UDP
- 特点:
1)无连接,支持一对一,一对多,多对一,多对多的交互通信
2)不可靠传输
3)面向报文:发送方的UDP对应用程序交下来的报文,在添加首部后就直接向下交付给网际层(即一次发送一个报文)
4) 没有拥塞控制和流量控制
5)首部开销小,只有8字节 - 首部格式:源端口 - 目的端口 - 首部长度 - 校验和
传输控制协议TCP
- 特点:
1)面向连接的,只能一对一交互通信
2)可靠传输
3)面向字节流:
~~~~~ TCP中的“流”指:流入进程或从进程流出的字节序列
~~~~~ 面向字节流是指:虽然应用程序和TCP的交互是一次一个数据块,但TCP把应用程序交下来的数据仅仅看成一连串的无结构的字节流;TCP不理解这些字节流的含义;TCP不保证发送方数据块和接收方数据块具有相同的大小,即可以发送方发送10个数据块,但接收方只使用4个数据块就全部接受完毕了。
4)具有拥塞控制和流量控制
5)首部至少20字节
TCP连接之套接字
- 每一条TCP连接只有两个端点 —— 这个端点称为 套接字(socket)
- 套接字 = (IP地址:端口号)
- TCP连接 = {socket1,socket2} = {(IP1:port1), (IP2,port2)}
- 注意: 同一个IP地址可以有多个不同的TCP连接,同一个端口号也可以出现在多个不同的TCP中
TCP可靠传输工作原理
- 停止等待协议
- 工作原理:发送方每发送一个分组,需等待接收方发回一个确认信号才发送下一个分组;若未接受到确认信号,一段时间后将重新发送该分组;
- 设置了超时计时器,超过该时间未受到确认信号则重传 —— 称超时重传
- 超时计时器的时间应长于平均往返时间
- 工作状态:无差错情况;出现差错;确认丢失;确认迟到
- 信道利用率: 非常低!!
- 连续ARQ(自动重传请求)协议
- 工作原理:利用滑动窗口实现;发送方维持一个发送窗口,表示未受到确认前最多向接收方发送的分组(这样可以连续发送多个分组,提高信道利用率);接收方维持一个接受窗口,当接收到分组后,接受窗口后移并返回一个确认给发送方;发送方收到接收方的确认后,才后移发送窗口
- 接收方一般采用 累计确认;
TCP报文段首部格式
- 一个TCP报文段分为首部和数据两个部分
- 首部前20个字节固定,后40个字节可选
- 序号: 每个字节都按顺序编号;该序号表示 本报文段 所发送的数据的第一个字节的序号;
- 确认号:期望收到对方下一个报文段的第一个数据字节的序号
- 数据偏移:指出TCP报文段的数起始处距离TCP报文段的起始处有多远;实际上指出了TCP报文段的首部长度;以4字节为单位;
- 保留:为今后使用而保留
- 紧急URG: 当其为1,表明紧急指针有效,应尽快传送
- 确认ACK:为1时才有效,传送时必须置1
- 推送PSH:当两个应用程序进行交互式通信时,又是在一端的应用进程希望在键入一个命令后立即收到对方响应;—— 尽快向上交付,而不是等到整个缓存填满后交付
- 复位RST:RST=1时,表明连接中出现严重错误,必须释放连接;
- 同步SYN
- 终止FIN :释放连接;
- 窗口:指的是发送方的接收窗口,窗口值的意义:从本报文段首部中的确认号算起,接收方目前允许对方发送的数据量;(窗口值是不断动态变化的)(动态确认机制)
例子:确认号701,窗口字段1000,代表从701算起,我(发送此报文的一端)还可以接受1000个字节数据(字节序号:701 - 1700) - 校验和:检验首部和数据两个部分
TCP可靠传输实现
- 停止-等待法
- 后退N帧法
发送方:
~~~~~~~~~~~ - 维护一个发送窗口,其大小为 —— 大于1,小于等于 ( 2 n − 1 ) (2^n -1) (2n−1);
~~~~~~~~~~~ - 当且仅当收到确认才向后移动窗口;
~~~~~~~~~~~ - 若重传计时器为0时,仍未收到确认,则将上一确认后的所有报文重传;
接受方:
~~~~~~~~~~~ - 维护一个接收窗口,窗口大小为1;
~~~~~~~~~~~ - 当收到发送方的正确报文后,向后移动;采取累积确认;
~~~~~~~~~~~ - 注意接收方接受报文段一定时按序号顺序接受的,不能乱序接受 - 选择重传法
发送方:
~~~~~~~~~~~ - 维护一个发送窗口 W T W_T WT,其大小为 —— 大于1,小于等于 2 ( n − 1 ) 2^{(n -1)} 2(n−1);
~~~~~~~~~~~ - 当且仅当收到确认后才移动窗口
~~~~~~~~~~~ - 重传计时器清零或收到接收方发回的重传信号时,重传
接收方:
~~~~~~~~~~~ - 维护一个接受窗口 W R W_R WR,其大小为 —— 小于等于 W T W_T WT
~~~~~~~~~~~ - 当收到发送方的正确报文后,向后移动,采取立即确认;若某个序号未接受到则立 ~~~~~~~~~~~ 即返回重传信号;
~~~~~~~~~~~ - 允许乱序接收
~~~~~~~~~~~ - 确认信号是 连续序号的最大值
重传时间选择
- 重传时间 R T O RTO RTO要略大于往返时间 R T T RTT RTT
- 问题在于:不同报文的往返时间不同 —— 故而,取加权平均往返时间 R T T S RTT_S RTTS
- 计算公式:
R T T S 1 = R T T 1 RTT_{S1} = RTT_1 RTTS1=RTT1 ~~ 只有一个报文段时
R T T S = ( 1 − α ) ∗ RTT_S = (1 - \alpha) * RTTS=(1−α)∗ 旧的 R T T S + α ∗ R T T RTT_S + \alpha *RTT RTTS+α∗RTT
典型: α = 1 / 8 \alpha = 1/8 α=1/8 - 重传时间计算公式:
R T O = R T T S + 4 ∗ R T T D RTO = RTT_S +4*RTT_D RTO=RTTS+4∗RTTD
R T T D RTT_D RTTD:代表往返时间的偏差的加权平均值 -
R
T
T
D
1
=
R
T
T
1
/
2
RTT_{D1} = RTT_1/2
RTTD1=RTT1/2
~~~
只有一个报文段
R T T D = ( 1 − β ) RTT_D = (1-\beta) RTTD=(1−β) ∗ R T T D + β ∗ ∣ R T T − R T T S ∣ *RTT_D + \beta *|RTT-RTT_S| ∗RTTD+β∗∣RTT−RTTS∣
典型: β = 1 / 4 \beta = 1/4 β=1/4 - 如何得到正确的往返时间:特别时对于确认迟到情况,进行重传后收到的确认到底是上一个的确认还是重传的确认。
- 采用方法:
1) 只要报文段重传则不使用其往返时间,这样得到的 R T O RTO RTO , R T T S RTT_S RTTS准确;
~~~~~ 但,若系统时延突然增大,则无法更新超时重传时间,造成不必要重传
2)只要每重传一次,就将 R T O RTO RTO增大一些;典型做法是变为原来的2倍;
TCP流量控制
- 流量控制就是让发送方发送的速率不要过快,使得接收方来得及接受(接受缓存足够)。
- 利用滑动窗口实现
- TCP窗口单位是字节,不是报文段
TCP拥塞控制
- 拥塞:在某段时间,若对网络中的资源需求超过了该资源所能提供的可用部分,使得网络的性能变坏;(资源包括——链路容量,交换节点中的缓存,处理机)
- 控制算法:
1)慢开始
2)拥塞避免
3)快重传
4)快恢复
TCP连接
- 运输连接管理的目的是为了使运输连接的建立和释放都能够正常的进行
- 三报文握手 —— 建立连接
- 四报文挥手 —— 断开连接
应用层
数据传输的终点是主机进程,而网络通信的目的是为了给应用提供服务;本章中的各应用层协议主要讲述了各应用的进程是如何在主机中完成通信工作的;
重点主要在于:
- 域名系统DNS —— 从域名解析得到IP地址
- 万维网和HTTP协议以及万维网的两种不同的xinxisousuoyinq
- 电子邮件的传送过程(SMTP协议,POP3协议及IMAP协议的使用)
- 动态主机配置协议DHCP
- 网络管理的三个组成部分(SNMP本身,管理信息结构SMI和管理信息库MIB)
- 系统调用和应用编程接口的基本概念
- P2P文件系统
域名系统DNS
- 应用层软件一般直接使用的是域名而非IP地址,在网络层进行数据传输时才将域名转化为路由中使用的IP地址
- 域名系统是为了使对用户来说32位的IP地址更加容易记忆和使用而选择的一种映射方式;其将域名解析为IP地址
- DNS被设计成一个联机分布式的数据库系统,并采用客户服务器方式
- DNS中大部分域名都在本地进行解析,只有少数域名需要在互联网上进行解析
互联网域名结构
- 层次树状结构的命名方式
- 任何连接在互联网上的主机或路由器都有一个唯一的层次结构的名字,即域名
- 域 :是名字空间中一个可以被管理的划分;域可以划分为子域,子域又可划分为子域,故有顶级域,二级域,三级域…
- 每个域名都由标号序列组成,而各标号之间用点隔开,如 mail.cctv.com(com 顶级域名,cctv 二级域名,mail 三级域名)
- 每一个标号不超过63个字符;标号不区分大小写;完整的域名不超过255个字符;
- 顶级域名分类:
国家顶级域名nTLD
通用顶级域名gTLD —— 企业或博物馆等
基础结构域名 —— 只有一个,arpa,用于反向域名解析,又称为反向域名 - 二级域名分类:
类别域名 —— 教育,金融,科研,政府等
行政区域名 —— 各省和直辖市
域名服务器
- 一个服务器能管辖的范围称为区
- DNS的管辖范围是按区划分的,而不是按域
- 区 的范围小于等于 域,绝不能大于域
- 若某个DNS服务器不能进行域名到IP地址的解析,则会在网上找到别的域名服务器来解析
- 每个域名服务器只对域名体系中的一部分进行管辖;
- 四种类型:
根域名服务器:最高层次,最重要的域名服务器 —— 知道所有顶级域名服务器的域名和IP地址;只要某个域名服务器无法解析,就会求助于根域名服务器;采用任播(anycast)技术,当客户机提出请求时,将寻找最近的根域名服务器响应;其并不是直接告诉客户端IP地址,而是给出下一步应当查找哪个顶级域名服务器来查询;
顶级域名服务器(TLD):负责管理在该顶级域名下的所有二级域名;可能给出最后结果,也可能给出下一步要查找的域名服务器的IP地址
权限域名服务器:负责一个区的域名服务器;
本地域名服务器:不属于图6.3的结构,其距离用户较近,只有几个路由器的距离;当用户查询到域名和主机属于同一本地ISP时,将直接返回IP地址; - 提高可靠性: 主域名服务器和辅助域名服务器
- 查询方式
递归查询:主机向本地域名服务器的查询一般使用递归查询;若本地域名服务器不知道所要查询域名的IP地址,则其向根域名服务器查询,而不是返回主机,让主机向根域名服务器查询;
迭代查询:本地域名服务器向根域名服务器查询一般使用迭代查询;根域名服务器返回下一步要查询的顶级域名服务器的IP地址,本地域名服务器将查询该顶级域名服务器,而不是用根域名服务器直接查询顶级域名服务器;
二者差别如图:
同时,为了提高查询效率,减少查询时的网络开销,在每级域名服务器中都采用的高速缓存来存储经常或最近被查询的到的域名对应的IP地址
文件传送协议FTP
基于TCP的FTP协议和基于UDP的TFTP协议,都属于文件共享协议的一类,即复制整个文件;
特点在于: 若要存取一个文件,就必须先得到该文件的副本。若要修改文件,则在文件副本修改再将修改后的副本传回原文件;
基于TCP的FTP协议
- 主要功能:减少或消除在不同操作系统下处理文件的不兼容性,(包括文件的控制方式,命名方式等)
- 基本原理:
使用客户服务启方式;服务器中分为两大进程:主进程用来接收请求消息;接收到文件传送消息之后启动若干从属进程处理消息;主进程仍然处于等待状态;
主进程和从属进程并发进行的;
在数据传送过程中,启动两个从属进程:控制进程和数据传送进程;其中控制进程用来传送数据传送过程中产生的控制信息;数据传送进程传送数据;同时建立两条连接:控制连接(21号端口)和数据传送连接(20号端口); - 特点:属于文件共享协议;联机访问;
- 其访问是 复制整个文件,若对远程大文件添加极少的内容,需要将大文件副本传到本地,修改,再传回 —— 开销大且不必要
- 解决方案: 使用网络文件系统NFS(允许应用进程打开某个远程文件,并对该远程文件某个部分开始读写) —— 只复制大型文件中的小部分内容
简单文件传送协议TFTP
- 基于UDP实现
- 只传送,不交互
- 发送完一个文件块后就等待对方的确认,确认时应指明所确认的块编号
远程终端协议TELNET
- 作用:提供远程终端控制与访问操作;即通过互联网对远程终端进行访问控制;能够适应许多计算机和操作系统的差异;
- 将不同计算机操作系统上产生的控制信息转化成统一的格式网络上进行传送,然后转化成本地计算机需的格式
万维网WWW
- 万维网是一个大规模的信息存储所;
- 使用的统一资源定位符URL来唯一的标识万维网中的各种文档位置
- 万维网是一个分布式的超媒体系统;(是超文本系统的扩展)
- 万维网使用连接的方法进行站点之间的访问
- 万维网以客户服务器的方式工作:客户向服务器发出访问请求,然后服务器将万维网文档发送给客户端;客户端即运行在主机中的浏览器
- 在一个客户程序主窗口中显示的万维网文档称为页面
- 万维网使用超文本传送协议HTTP进行文档传输工作
- 万维网使用超文本标记语言HTML描述万维网页面
统一资源定位符URL
- 格式:<协议>://<主机>:<端口>/<路径>
- 协议一般为http,有时也是用ftp
- 主机指的时域名;
- 端口和路径有时可省略
- 使用http的URL
HTTP默认端口为80,第三项省略;若路径也省了,则指向某个主页;
加上路径,则指向主页下的其它页面;
超文本传送协议HTTP
- HTTP是面向事务的应用层协议,规定了浏览器怎样向万维网服务器请求万维网文档;以及服务器怎样将文档传送给浏览器
- HTTP协议使用面向连接的TCP协议作为运输层协议保证了传输的可靠性
- 代理服务器:又称为万维网高速缓存;将最近的一些请求及其响应存储在代理服务器的本地磁盘中,避免了近期有相同请求时再次访问网络;将很大一部分同信活动局限在局域网内部
- 如下所示:
- HTTP报文结构:
~~~ 两类报文:
~~~ 1)请求报文:客户向服务器发送请求
~~~ 2)响应报文:服务器响应客户
- 请求行:只有三个内容,即方法,请求资源的URL,HTTP版本
方法:其实就是一些命令 - 状态行:HTTP版本,状态码以及解释状态码的简单短语
万维网文档
- 超文本标记语言HTML:不是一种协议,只是万维网浏览器使用的一种语言
- 动态万维网文档:
前述的都是静态万维网文档,一旦写成后不再变化,每次访问都得到同样的内容;
动态万维网文档:每次访问得到的内容取决于当前应用进程所给出的结果,比如股市查询;故而需要编程人员来编写;
二者差别在于:文档内容的生成方式不同 - 活动文档:用于满足浏览器屏幕显示的连续更新
万维网搜索引擎
- 分类:全文检索和分类目录搜索引擎
动态主机配置协议DHCP
参考资料
-
https://blog.csdn.net/qq_34337272/article/details/79778645