【网络工程师教程】六、网络互联与互联网
多个网络互相连接组成范围更大的网络叫作互联网(Internet)。
网络互联技术就是要在不改变原来的网络体系结构的前提下,把一些异构型的网络互相连接构成统一的通信系统,实现更大范围的资源共享。
6.1 网络互联设备
网络互联设备可以根据它们工作的协议层进行分类:
- 中继器(Repeater)工作于物理层;
- 网桥(Bridge)和交换机(Switch)工作于数据链路层;
- 路由器(Router)工作于网络层;
- 网关(Gateway)工作于网络以上的协议层。
在实际的网络互联产品中可以是几种功能的组合,从而提供更复杂的网络互连服务。
6.1.1 中继器(Repeater)
由于传输线路噪音的影响,承载信息的数字信号或模拟信号只能传输有限的距离,那中继器连接两个网段可以延长信号的传输距离。中继器的功能是对接受信号进行再生和发送。中继器不解释也不改变接收到的数字信息,它只是从接收信号中分离出数字数据,存储,然后重新构造它并转发出去。再生的信号与接收信号完全相同,并可以沿着另外的网段传输到远端。
理论上说,可以用中继器把网络延长到任意长的传输距离,然而很多网络上都限制了在一对工作站之间加入中继器的数据。(例如,在以太网中限制最多使用4中继器,及最多由5个网段组成。)
集线器的工作原理基本上于中继器相同,简单地说,集线器就是一个多端口的中继器,把一个端口上收到的数据广播发送到其他所有端口上。
6.1.2 网桥(Bridge)
网桥也用于连接两个局域网段,但它工作于数据链路层。网桥要分析帧地址字段,以决定是否把收到的帧转发到另外一个网段上。
网桥会检查帧的源地址和目标地址,如果目标地址和源地址不在同一个网段上,就把帧转发到另外一个网段上;若两个地址在同一个网段上,则不转发。网桥可以起到过滤帧的作用。
网桥工作于MAC子层,只要两个网络MAC子层以上的协议相同,都可以用网桥互连。
6.1.3 路由器(Router)
路由器工作于网络层。通常把网络层的地址叫作逻辑地址(IP地址),把数据链路层的地址叫作物理地址(MAC地址)。物理地址通常是由硬件制造商制定的48位站地址。这种地址由IEEE管理,任何两个网卡不会有相同的物理地址。逻辑地址由网络管理员在组网配置时制定,可以按照网络的组织结构以及每个工作站的用途灵活设置,而且可以根据需要改变。
路由器根据网络逻辑地址在互连的子网之间传递分组,它工作在网络层,处理的信息量要比网桥多,因此传力速度会比网桥慢,但路由器的互连能力要更强,可以执行复杂的路由选择算法。
6.1.4 网关(Gateway)
网关是最复杂的网络互连设备,它用于连接网络层之上执行不同协议的子网,组成异构型的英特网。网关能对互不兼容的高层协议(传输层、会话层、表示层和应用层)进行转换。
由于工作复杂,因而用网关因特网络时效率比较低,而且透明性不好,往往用于针对某种特殊用途的专用连接。
6.2 广域网互连
广域网的互连一般采用在网络层进行协议转换的办法实现。这里使用的互连设备叫作网关(更确切的说是路由器)。
6.2.1 OSI网络层内部结构
为了实现类型不同的子网互连,OSI把网络层划分为了3个子层:
- 子网无关子层:提供标准的OSI网络服务,利用子网相关于层提供的功能;
- 子网相关子层:用于增强实际网络的服务,使其接近于OSI的网络层服务;
- 子网访问子层:对应实际网络的第三层,可能符合也可能不符合OSI的网络层标准;
6.2.2 面向连接的网际互连
实现面向连接的网络互连的前提是子网提供面向连接的服务,这样可以用路由器连接两个或多个子网,路由器是每个子网中的DTE。当子网中的DTE要进行通信时,就通过路由器建立一条跨网络的虚电路。这种网际虚电路时通过路由器把两个子网中的虚电路级连起来实现的。
6.2.3 无连接的国际互连
IP协议是Internet中的网络层协议,是提供无连接服务的典型例子。
6.3 IP协议
Internet是今天使用最广泛的网络。因特网中的主要协议是TCP和IP,所以,Internet协议也叫作TCP/IP协议簇。这些协议可以划分4个层次:
与OSI/RM分层的原则不同,TCP/IP协议簇允许同层的协议实体间互相调用,从而完成复杂的控制功能,还允许上层过程直接调用不相邻的下层过程,甚至在有些高层协议中控制信息和数据分别传输,而不是共享同一个协议数据单元。
6.3.1 IP地址
IP网络地址采用“网络•主机”的形式,其中网络部分是网络的地址编码,主机部分是网络中一个主机的地址编码。
- 全0表示本地地址,即本地网络或本地主机;
- 全1表示广播地址,任何网站都能接收;
- A类地址分配给规模特别大的网络使用;
- B类地址分配给一般的中型网络;
- C类地址分配给小型网络,如一般的局域网和校园网;
- D类地址称为组播地址;
- E类地址保留给将来使用;
IP地址通常用十进制表示,即把整个地址划分为4个字节,每个字节用一个十进制数表示,中间用圆点分隔。根据IP地址的第一个字节,就可以判断它是A类、B类还是C类地址。
(IP地址由美国Internet信息中心(InterNIC)管理。如果想加入Internet,就必须向InterNIC或当地的NIC(如CNNIC)申请IP地址。)
一种更灵活的寻址方案引入了子网的概念,即把主机地址部分再划分为子网地址和主机地址,形成了三级寻址结构。这种三级寻址方式需要子网掩码的支持。
子网地址对网络外部是透明的。当IP分组到达目标网络后,网络边界路由器把32位的IP地址与子网掩码进行与运算,从而得到子网地址,并据此转发到适当的子网中。
可变长子网掩码(Variable Length Subnetwork Mask,VLSM):在IP地址后面加上“/位数”来表示子网掩码中“1”的个数,从而充分利用地址资源,避免任何可能的地址浪费。
在点对点通信(unicast)中使用A、B和C类地址。这类地址都指向某个网络中的一个主机。D类地址为组播(multicast)地址,与广播(boardcast)目标是所有主机不同,组播的目标是一组主机。E类地址保留作为研究之用,以后的IPv6地址就是在此基础上扩展的。
6.3.2 IP协议的操作
- 数据报生存期:为避免数据报在网路传输时形成回路,不能到达目的地并浪费大量的网络资源,采用计数器或计时的方式,在超过限制后丢弃数据报;
- 分段和重装配:每个网络可能规定了不同的最大分组长度。在进入最大分组长度较小的网络时需要对分组进行分段,在中间路由器或目的地需要进行再装配;
- 差错控制和流控:无连接的网络操作不保证数据报的成功提交,路由器或接收站可以采用某种流控机制限制发送速率,降低数据传输出错的概率。
6.3.3 IP协议数据单元
6.4 ICMP协议
ICMP(Internet Control Message Protocol)与IP协议同属于网络层,用于传输有关通信问题的消息。
ICMP报文封装在IP数据报中传送,因而不保证可靠的提交。ICMP报文有11种之多,报文格式如下:
6.5 TCP和UDP协议
在TCP/IP簇中有两个传输协议,即面向连接的传输控制协议(Transmission Control Protocol,TCP)和无连接的用户数据报协议(User Datagram Protocol,UDP)。
6.5.1 TCP服务
TCP协议提供面向连接的、可靠的传输服务。适用于各种可靠的或不可靠的网络。
TCP用户送来的是字节流形式的数据,这些数据缓存在TCP实体的发送缓存区中。一般情况由TCP实体自主决定将这些数据流如何分段组成TPDU发送出去。接收端TCP实体同样自主决定如何将积累在接收缓冲区的字节流提交给用户。(分段的大小和提交的额度是由具体的实现根据性能何开销权衡决定的,TCP规范未定义。)
TCP也允许用户将字节流分成报文,用推进(PUSH)命令指出报文的界限。发送端TCP实体把PUSH标志之前的所有未发送数据组成TPDU立即发送出去,接收端TCP实体同样根据PUSH标志决定提交的界限。
6.5.2 TCP协议
TCP只有一种类型的PDU,叫作TCP段,端头格式如下:
6.5.3 TCP拥塞控制
TCP的拥塞控制涉及重传计数器管理和窗口管理,其目的是与流控机制配合,缓解互联网中的通信紧张状况。
- 重传计数器管理:TCP实体管理着多种定时器(重传定时器、放弃定时器等),用于确定网络传输时延和监视网络拥堵情况。
- 慢启动和拥塞控制:TCP实体使用的发送窗口越大,在得到确认之前发送的报文数就越多,这样就可能造成网络的拥塞,特别在TCP刚连接建立发送时对网络通信的影响更大。
6.5.4 UDP协议
UDP也为常用的传输层协议,它对应用层提供无连接的传输服务。这种服务时不可靠的、不保证顺序的提交,但由于协议开销小而在很多场合相当实用,比如网络管理方面。
UDP运行在IP协议层之上,由于它不提供连接,所以只是在IP协议之上加上了端口寻址的功能。
6.6 域名和地址
Internet地址分为3级,可表示为“网络地址*主机地址*端口地址”的形式。其中网络和主机地址即IP地址;端口地址就是TCP或UDP地址,用于表示上层进程的服务访问点。
TCP/IP网络中的大多数公共应用进程都由专用的端口号,这些端口号是由IANA制定,其值小于1024,而用户进程的端口一般大于1024。
6.6.1 域名系统(DNS)
网络用户希望用名字来标识主机。有意义的名字可以表示主机的账号、工作性质、所属地域或组织等,从而便于记忆和使用。Internet的域名系统(Domain Name System,DNS)就是为这种需要而开发的。
域名到IP地址的变换由DNS服务器实现。一般子网中都有一个域名服务器,该服务器管理本地子网所连接的主机,也为外来的访问提供DNS服务。
6.6.2 地址分解协议(ARP&RARP)
IP地址是分配给主机的逻辑地址;子网建立时一次性制定的,甚至与网络硬件相关的唯一地址叫作主机的物理地址或硬件地址。
在Internet中时用地址分解协议(Address Resolution Protocol,ARP)来实现逻辑地址到物理地址的映像,RARP(Reverse Address Resolution Protocol)是反向ARP协议,即由硬件地址查找逻辑地址。ARP&RARP分组的格式如下:
6.7 网关协议
Internet中的路由器叫作IP网关。网关执行复杂的路由算法,需要大量且及时的路由信息。网关协议就是用于网关之间交换路由信息的协议。
6.7.1 自治系统
自治系统是由同构型的网关连接的因特网,这样的系统往往是由一个网络管理中心控制的。自治系统内部的网关之间执行内部网关协议(Interior Gateway Protocol,IGP),互相交换路由信息。
一个因特网也可能由不同的自治系统互连而成,在不同自治系统之间用外部网关协议(Exterior Gateway Protocol,EGP)交换路由信息。
6.7.2 外部网关协议
早期有一个外部网关协议叫EGP(Exterior Gateway Protocol),最新的外部网关协议叫作BGP(Boarder Gateway Protocol)。现在BGP4已经广泛应用于不同ISP的网络之间,成为事实上的Internet外部路由协议标准。
6.7.3 内部网关协议
网关协议也叫作路由协议(Routing Protocol),是路由器之间实现路由信息共享的一种机制,它允许路由器之间通过交换路由信息维护各自的路由表。IP协议是根据路由表进行分组转发的协议,也被叫作被路由的协议(Routed Protocol)。
常用内部路由协议包括:
- 路由信息协议(Routing Information Protocol, RIP)
- 开放最短路径优先协议(Open Shortest Path First,OSPF)
- 中间系统到中间系统的协议(Intermediate System to Intermediate System,IS-IS)
- 内部网关路由协议(Interior Gateway Routing Protocol,IGRP)
- 增强的IGRP协议(Enhanced IGTRP,EIGRP)
6.7.4 核心网关协议
Internet中有一个主干网,所有的自治系统都连接在主干网上。主干网中的网关叫核心网关。核心网关之间交换路由信息时使用核心网关协议(Gateway to Gateway Protocol, GGP)。
6.8 路由器技术
6.8.1 NAT技术
NAT技术主要解决IP地址短缺问题,最初提出的建议是在子网内部使用局部地址,而在子网外部使用少量的全局地址,通过路由器进行内部和外部地址的转换。
6.8.2 CIDR技术
CIDR技术可以解决路由缩放问题:将若干个C类网络分配给一个用户,并在路由表中可以只占一行。
6.8.3 第三层交换技术
所谓第三层交换,是指利用第二层交换的高带宽和低延迟的优势尽快地传送网络层分组的技术,交换与路由不同:前者用硬件实现,速度快;后者由软件实现,速度慢。三层交换机的工作原理可以概述为:一次路由,多次交换(当三层交换机第一次收到一个数据包时,必须通过路由功能寻找转发端口,同时记住目标MAC地址和源MAC地址,以及其他有关信息。当再次收到目标地址和源地址相同的帧时就直接进行交换,不再调用路由功能)。
6.9 IP组播技术
由一个源向一组主机发送信息的传输方式成为组播(Multicast)。
6.9.1 组播模型概述
利用组播技术可以提高网络传输的效率,减少主干网拥塞的可能性。实现IP组播的前提是组播元和组成员之间的下层网络必须支持组播,包括:
- 主机的TCP/IP实现支持IP组播;
- 主机的网络接口支持组播;
- 需要一个组管理协议,使得主机能够自由地加入或理开组播组;
- IP地址分配策略能够将第三层组播地址映射到第二层MAC地址;
- 主机中的应用软件应支持IP组播功能;
- 所有介于组播源和组成员之间中间节点都支持组播路由协议。
6.9.2 组播地址
1、IP组播地址(IPv4的D类地址)
- 224.0.0.0 ~ 224.0.0.255:保留地址,用于路由协议或其他下层拓扑发现协议以及维护管理协议等;
- 224.0.1.0 ~ 238.255.255.255:用于全球范围的组播地址分配,可以把这个范围的D类地址动态地分配给一个组播组;
- 239.0.0.0 ~ 239.255.255.255:在管理权限范围内使用的组播地址,限制了组播的范围,可以在本地子网中作为组播地址使用。
2.以太网组播地址
IP组播地址在互联网中标识一个组,把IP组播数据报封装到以太网帧中时要把IP组播地址映射到以太网的MAC地址,其映像方式是把IP地址的低23位复制到MAC地址的低23位。
为了避免使用ARP协议进行地址分解,IANA保留了一个以太网地址块0x0100.5E00.0000用于映像IP组播地址,其中第一个字节的最低位是I/G(Individual/Group),应设置为“1”,以表示以太网组播,所以MAC组播地址的范围是0x0100.5E00.0000 ~ 0x0100.5E7F.FFFF。
6.9.3 因特网组管理协议(IGMP)
IGMP(Internet Group Management Protocol)是在IPv4环境中提供组管理的协议,参加组播的主机和路由器利用IGMP交换组播成员资格信息,以支持主机加入或离开组播组。在IPv6环境中,组管理协议已经合并到ICMPv6协议中,不再需要单独的组管理协议。
6.9.4 组播路由协议
6.10 IP QoS技术
因特网提供尽力而为(Best-Effort)的服务。但是由于因特网对服务质量不做任何承诺,所以对各种多媒体应用不能提供必要的支持,这些新业务要求IP网络提供新的服务方式。
因此IETF成立了专门的工作组,一直从事IP QoS标准的开发。
- 集成服务(Integrated Service Architecture,ISA)(RFC 1633)
- 区分服务(Differentiated Service,DiffServ)(RFC 2475)
- 流量工程(Traffic Engineering,TE)
6.11 Internet应用
- 远程登录协议(Telnet)
- 文件传输协议(File Transfer Protocol,FTP)
- 简单邮件传输协议(Simple Mail Transfer Protocol,SMTP)
- 超文件传输协议(Hyper Text Transfer Protocol,HTTP)
- P2P应用(Peer-to-Peer)