网络互连与互联网
1.网络互连设备
组成因特网的各个网络叫做子网,用于连接子网的设备叫做中间系统。它的主要作用是协调各个网络的工作,使得跨网络的通信得以实现。
网络互连设备可以根据它们工作的协议层进行分类:
- 中继器:工作于物理层
- 网桥和交换机:工作于数据链路层
- 路由器:工作于网络层
- 网关:工作于网络层以上的协议
1.1 中继器
用中继器连接两个网段可以延长信号的传输距离,中继器的功能是对接收信号进行再生和发送。在以太网中限制最多使用4个中继器。中继器工作于物理层,只是起到扩展传输距离的作用,对高层协议是透明的。中继器也能把不同传输介质的网络连接在一起。
集线器的工作原理与中继器相同,简单来说,集线器就是一个多端口中继器,它把一个端口上收到的数据广播发送到其他所有端口上。
1.2 网桥
网桥要分析帧地址字段,以决定是否把收到的帧转发到另一个网段上。网桥工作于MAC子层,只要两个网络MAC子层以上的协议相同,就可以通过网桥互连。例如可实现同轴电缆以太网与双绞线以太网之间的互连,或是以太网与令牌环网之间的互连。
1.3 路由器
路由器根据网络逻辑地址在互连的子网之间传递分组。路由器适合于连接复杂的大型网络,它工作于网络层,因而可以用于连接下面三层执行不同协议的网络,协议的转换由路由器完成。
1.4 网关
网关是最复杂的网络互连设备,它用于连接网络层之上执行不同协议的子网,组成异构型的因特网。网关能对互不兼容的高层协议进行转换。为了实现异构型设备之间的通信,网关要对不同的传输层、会话层、表示层和应用层协议进行翻译和变换。由于工作复杂,因而用网关因特网时效率比较低,而且透明性不好,往往用于针对某种特殊用途的专用连接。
2.广域网互连
广域网互连一般采用在网络层进行协议转换的方法实现,这里使用的互联设备是路由器。
2.1 OSI 网络层内部结构
OSI把网络层划分为3个子层:
-
子网访问子层:对应于实际的网络层,它可能符合也可能不符合OSI的网络层标准,如果两个实际网络的子网访问子层不同,则不能简单的互连
-
子网相关子层:增强实际网络的服务,使其接近于OSI的网络层服务
-
子网无关子层:提供标准的OSI网络服务。
2.2 面向连接的网际互连
X.75网关执行X.25协议,从而实现两个子网的互连。两个网络之间建立一条网际虚电路。
2.3 无连接的网际互连
因特网协议(IP)是为ARPAnet研制的网际数据报协议,后来ISO以此为蓝本开发了无连接的网络协议(CLNP)。在这里叙述IP协议,CLNP与IP是类似的。
3.IP协议
IP地址分为5类。在点对点通信中使用A、B、C类地址,D类地址是组播地址。E类地址保留作为研究之用,以后的IPv6地址就是在此基础上扩展的。
IP数据报:
4.ICMP
ICMP与IP协议同属网络层,用于传送有关通信问题的消息,例如数据报不能到达目标站,路由器没有足够的缓存空间,或者路由器向助级提供最短通路信息等。ICMP报文封装在IP数据报中传送,因此不保证可靠的提交。
5.TCP和UDP
在TCP/UDP协议簇中有两个传输协议,即传输控制协议(TCP)和用户数据报协议(UDP)。TCP是面向连接的,而UDP是无连接的。
5.1 TCP协议
端口编号用于标识TCP用户:
应用层协议 | 端口号 |
---|---|
FTP | 20(数据) + 21(控制) |
SSH 安全登录,文件传送和端口重定向 | 22 |
Telnet 远程登录协议,不安全的文本传送 | 23 |
SMTP 简单邮件传送协议 | 25 |
DNS | 53 |
HTTP | 80 |
POP3 邮局协议第3版 | 110 |
IMAP 网络邮件接入协议 | 143 |
HTTPS | 443 |
三次握手四次挥手:
5.2 TCP拥塞控制
计算平滑往返时间估值:
S
R
T
T
(
K
+
1
)
=
α
×
S
R
T
T
(
K
)
+
(
1
−
α
)
×
R
T
T
(
K
+
1
)
SRTT(K+1) = \alpha \times SRTT(K) + (1-\alpha ) \times RTT(K+1)
SRTT(K+1)=α×SRTT(K)+(1−α)×RTT(K+1)
重传计时器的设置:
R
T
O
(
K
+
1
)
=
m
i
n
(
U
P
B
O
U
N
D
,
m
a
x
(
L
O
W
B
O
U
N
D
,
β
×
S
R
T
T
(
K
+
1
)
)
)
RTO(K+1) = min(UPBOUND,max(LOWBOUND,\beta \times SRTT(K+1)))
RTO(K+1)=min(UPBOUND,max(LOWBOUND,β×SRTT(K+1)))
慢启动和拥塞控制:
TCP部分详细可参考自顶向下方法
5.3 UDP协议
UDP协议分为首部字段和数据字段,其中首部字段只占用8个字节,分别是个占用两个字节的源端口、目的端口、长度和检验和。
6.网关协议
6.1 自治系统
自治系统是由同构型的网关连接的因特网,自治系统内部的网关之间执行内部网关协议(IGP),互相交换路由信息。不同自治系统之间咏外部网关协议(EGP)交换路由信息。
6.2 外部网关协议
最新的外部网关协议叫BGP,现在BGP4已经广泛地应用于不同ISP的网络之间,成为事实上的Internet外部路由协议标准。BGP4是一种动态路由发现协议,支持CIDR。BGP的主要功能是控制路由策略,例如是否愿意转发过路的分组等。BGP基于TCP连接。
运行于同一AS内部的BGP称为iBGP,运行于不同AS之间的BGP称为eBGP。
BGP协议总结
BGP的四种报文:
报文类型 | 功能描述 |
---|---|
打开(open) | 建立邻居关系 |
更新(update) | 发送新的路由信息 |
保持活动状态(keep alive) | 对open的应答/周期性地确认邻居关系 |
通告(notification) | 报告检测到的错误 |
在BGP中可用上述4种报文实现3个功能过程:
- 建立邻居关系:open–keep alive
- 邻居可达性:周期性地相互发送keepalive
- 网络可达性:每个路由器维护一个数据库,记录着它可到达地所有子网。当情况有变化时用更新报文把最新信息及时地传送给其他BGP路由器。信息包括:
- 网络层可到达信息(NLRI)。发送路由器可到达的子网地址列表。
- 经过的自治系统(AS_path)。
- 下一跳(Next-Hop)
6.3 内部网关协议
常见内部路由协议包括路由信息协议(RIP)、开放最短路径优先协议(OSPF)、中间系统到中间系统的协议(IS-IS)、内部网关路由协议(IGRP)和增强的IGRP协议(EIGRP)等。最后两种是思科公司的专利协议。
RIP
采用Bellman-Ford的距离矢量路由算法,适用于小型网络,因为它允许的跳步数不超过15步。RIP以跳步技术来度量路由费用。
RIPv2报文封装在UDP数据报中发送,占用端口号520。
OSPF
是一种链路状态协议,用于在自治内部的路由器之间交换路由信息。OSPF从各个路由器收集链路信息,构造网络拓扑结构图,使用dijkstra的最短通路优先算法计算到达各个目标的最佳路由。OSPF采用TCP连接发送报文,每个报文都要求应答,通信更加可靠。
为了适应大型网络配置的需要,OSPF协议引入了“分层路由”的概念。
6.4核心网关协议
核心网关协议(GGP):主干网中的核心网关是由InterNOC直接控制的,GGP更具有专业性。当一个核心网关加入主干网时用GGP协议向邻机广播发送路由信息,各邻机更新路由表,并进一步传播新的路由信息。
7.路由器技术
7.1 NAT技术
主要解决IP地址短缺问题,NAPT还进行了端口号转化。
7.2 CIDR技术
CIDR的IP地址的表示与划分方法
7.3 第三层交换技术
IETF开发的多协议标记交换(MPLS)把第2层的链路状态集成到第三层的协议数据单元中,从而简化和改进了第3层分组交换的交换过程。当分组进入MPLS网络时,标记边缘路由器(LER)就为其加上一个标记,这种标记不仅包含了路由表项中的信息,而且还引用了IP头中的源地址字段、传输层端口号和服务质量等。这种分类一旦建立,分组就被指定到对应的标记交换通路(LSP)中,标记交换路由器(LSR)将根据标记来处置分组,不再经过第三层转发,从而加快了网络的传输速度。
8.IP组播技术
有人形容IP组播模型是:你在一端注入分组,网络正好可以把分组提交给任何需要的接收者。组播技术的有效性在于:在把一个组播分组提交给所有组播成员时,只有与该组相关的中间节点可以复制分组,在通往各个组成员的网络链路上只传送分组一个副本,所以利用组播技术可以提高网络传输的效率,减少主干网拥塞的可能性。实现IP组播的前提是组播源和组成员之间的下层网络必须支持组播。
8.1 因特网组管理协议
IGMP是在IPv4环境中提供组管理的协议,参加组播的主机和路由器利用IGMP交换组播成员资格信息,以支持主机加入或离开组播组。在IPv6环境中,组管理协议已经合并到ICMPv6协议中,不再需要单独的组管理协议。IGMP报文封装在IP数据报中传输。
成员资格询问报文由组播路由器发出,分为3种子类型:
- 通用询问:路由器用于了解在它连接的网络上有哪些组的成员
- 组专用询问:路由器用于了解在它连接的网络上一个具体的组是否有成员
- 组和源专用询问:路由器用于了解在它连接的主机是否愿意加入一个特定的组
为了维护一个当前活动的组播地址列表,组播路由器要周期性地发送IGMP通用询问报文,封装在以224.0.0.1(所有主机)为目标地址的IP数据报种。仍然希望保持一个或多个组成员身份的主机必须读取这种数据报,并且对其保持成员身份的组回答一个报告报文。
组播路由器无须知道组播组中每一个主机的地址,对于一个组播组,它只需要知道至少有一个组播成员处于活动状态就可以了。所以成员们可以等待别人发(
当主机要离开一个组时,它向所有路由器发送一个组离开报告,当路由器收到这样的报告时,它要确定该组是否还有其他成员存在,这时可以用组和源专用的询问报文。
8.2 组播路由协议
建立组播树是实现组播传输的关键技术。
- 密集模式路由协议:假定组播成员密集地分布在整个网络中,而且网络有足够的带宽,允许周期性地通过泛洪传播来建立和维护分布树。
- 稀疏模式路由协议:适用于带宽小、组播成员分布稀疏的互联网络。
9.IP QoS技术
Best-Effort服务模型:尽力而为
Best-Effort是最简单的QoS服务模型,用户可以在任何时候,发出任意数量的报文,而且不需要通知网络。提供Best-Effort服务时,网络尽最大的可能来发送报文,但对时延、丢包率等性能不提供任何保证。Best-Effort服务模型适用于对时延、丢包率等性能要求不高的业务,是现在Internet的缺省服务模型,它适用于绝大多数网络应用,如FTP、E-Mail等。
IntServ服务模型:预留资源
IntServ模型是指用户在发送报文前,需要通过信令(Signaling)向网络描述自己的流量参数,申请特定的QoS服务。网络根据流量参数,预留资源以承诺满足该请求。在收到确认信息,确定网络已经为这个应用程序的报文预留了资源后,用户才开始发送报文。用户发送的报文应该控制在流量参数描述的范围内。网络节点需要为每个流维护一个状态,并基于这个状态执行相应的QoS动作,来满足对用户的承诺。
IntServ模型使用了RSVP(Resource Reservation Protocol)协议作为信令,在一条已知路径的网络拓扑上预留带宽、优先级等资源,路径沿途的各网元必须为每个要求服务质量保证的数据流预留想要的资源,通过RSVP信息的预留,各网元可以判断是否有足够的资源可以使用。只有所有的网元都给RSVP提供了足够的资源,“路径”方可建立。
DiffServ服务模型:差分服务
DiffServ模型的基本原理是将网络中的流量分成多个类,每个类享受不同的处理,尤其是网络出现拥塞时不同的类会享受不同级别的处理,从而得到不同的丢包率、时延以及时延抖动。同一类的业务在网络中会被聚合起来统一发送,保证相同的时延、抖动、丢包率等QoS指标。
Diffserv模型中,业务流的分类和汇聚工作在网络边缘由边界节点完成。边界节点可以通过多种条件(比如报文的源地址和目的地址、ToS域中的优先级、协议类型等)灵活地对报文进行分类,对不同的报文设置不同的标记字段,而其他节点只需要简单地识别报文中的这些标记,即可进行资源分配和流量控制。
与Intserv模型相比,DiffServ模型不需要信令。在DiffServ模型中,应用程序发出报文前,不需要预先向网络提出资源申请,而是通过设置报文的QoS参数信息,来告知网络节点它的QoS需求。网络不需要为每个流维护状态,而是根据每个报文流指定的QoS参数信息来提供差分服务,即对报文的服务等级划分,有差别地进行流量控制和转发,提供端到端的QoS保证。DiffServ模型充分考虑了IP网络本身灵活性、可扩展性强的特点,将复杂的服务质量保证通过报文自身携带的信息转换为单跳行为,从而大大减少了信令的工作,是当前网络中的主流服务模型。