目录
网络通信协议
- 不同的协议栈用于定义和管理不同的数据转发规则。
- 20世纪60年代以来,计算机网络得到了飞速发展。各大厂商和标准组织为了在数据通信网络领域占据主导地位,纷纷推出了各自的网络架构体系和标准,如IBM公司的SNA协议, Novell公司的IPX/SPX协议,以及广泛流行的OSI参考模型和TCP/IP协议。同时,各大厂商根据这些协议生产出了不同的硬件和软件。标准组织和厂商的共同努力促进了网络技术的快速发展和网络设备种类的迅速增长。
- 网络通信中,“协议”和“标准”这两个词汇常常可以混用。同时,协议或标准本身又堂常具有层次的特点。一般地,关注于逻辑数据关系的协议通常被称为上层协议,而关注于物理数据流的协议通常被称为底层协议。IEEE 802就是一套用来管理物理数据流在局域网中传输的标准,包括在局域网中传输物理数据的802.3以太网标准。除以太外,还有一些用来管理物理数据流在广域网中传输的标准,如PPP(Point-to-Point Protocol),高级数据链路控制HDLC(High-Level Data Link Control)。
OSI参考模型----OSI/RM
- 国际标准化组织ISO于1984年提出了OSI RM(Open System Interconnection
Reference Model,开放系统互连参考模型)。OSI参考模型很快成为了计算机网络通信的基础模型。 - OSI参考模型具有以下优点:简化了相关的网络操作;提供了不同厂商之间的兼容性;促进了标准化工作;结构上进行了分层;易于学习和操作。
- OSI参考模型各个层次的基本功能如下:
- 物理层:在设备之间传输比特流,规定了电平、速度和电缆针脚。
- 数据链路层:将比特组合成字节,再将字节组合成帧,使用链路层地址(以太网使用MAC地址)来访问介质,并进行差错检测。
- 网络层:提供逻辑地址,供路由器确定路径。
- 传输层:提供面向连接或非面向连接的数据传递以及进行重传前的差错检测。
- 会话层:负责建立、管理和终止表示层实体之间的通信会话。该层的通信由不同设备中的应用程序之间的服务请求和响应组成。
- 表示层:提供各种用干应用层数据的编码和转换功能,确保一个系统的应用层发送的数据能被另一个系统的应用层识别。
- 应用层:OSI参考模型中最靠近用户的一层,为应用程序提供网络服务。
分层模型-TCP/IP
- TCP/IP模型同样采用了分层结构,层与层相对独立但是相互之间也具备非常密切的协作关系。
- TCP/IP模型将网络分为四层。TCP/IP模型不关注底层物理介质,主要关注终端之间的逻辑数据流转发。TCP/IP模型的核心是网络层和传输层,网络层解决网络之间的逻辑转发问题,传输层保证源端到目的端之间的可靠传输。最上层的应用层通过各种协议向终端用户提供业务应用。
数据封装
- 应用数据需要经过TCP/IP每一层处理之后才能通过网络传输到目的端,每一层上都使用该层的协议数据单元PDU(Protocol Data Unit)彼此交换信息。不同层的PDU中包含有不同的信息,因此PDU在不同层被赋予了不同的名称。
- 如上层数据在传输层添加TCP报头后得到的PDU被称为Segment(数据段);
- 数据段被传递给网络层,网络层添加IP报头得到的PDU被称为Packet(数据包);
- 数据包被传递到数据链路层,封装数据链路层报头得到的PDU被称为Frame(数据帧);
- 最后,帧被转换为比特,通过网络介质传输。这种协议栈逐层向下传递数据,并添加报头和报尾的过程称为封装。
终端之间的通信
- 数据包在以太网物理介质上传播之前必须封装头部和尾部信息,封装后的数据包称为数据帧,数据帧中封装的信息决定了数据如何传输。以太网上传输的数据帧有两种格式,选择哪种格式由TCP/IP协议簇中的网络层决定。
IP地址
网络位 | 主机位 |
---|---|
192.168.1 | .1 |
11000000.10101000.00000001 | .00000001 |
-
IP地址分为网络部分和主机部分。
-
IP地址由32个二进制位组成,通常用点分十进制形式表示。
-
IPv4地址为32比特的二进制数,通常用点分十进制表示。IP地址用来标识网络中的设备,
具有IP地址的设备可以在同一网段内或跨网段通信。IP地址包括两部分,第一部分是网络
号,表示IP地址所属的网段,第二部分是主机号,用来唯一标识本网段上的某台网络设备。
网络地址
网络位 | 主机位 |
---|---|
192.168.1 | .0 |
11000000.10101000 | .00000000 |
广播地址
网络位 | 主机位 |
---|---|
192.168.1 | .255 |
11000000.10101000.00000001 | .11111111 |
- 每个网段上都有两个特殊地址不能分配给主机或网络设备。第一个是该网段的网络地址,
该IP地址的主机位为全0,表示一个网段。第二个地址是该网段中的广播地址,目的地址为
广播地址的报文会被该网段中的所有网络设备接收。广播地址的主机位为全1。除网络地址
和广播地址以外的其他IP地址都可以作为网络设备的IP地址。
TCP
- TCP位于TCP/IP模型的传输层,它是一种面向连接的端到端协议。TCP作为传输控制协议可以为主机提供可靠的数据传输。在本例中,两台主机在通信之前,需要TCP在它们之间建立可靠的传输通道。
TCP建立连接的过程
- TCP是一种可靠的,百向连接的全双工传输层协议。
- TCP连接的建立是一个三次握手的过程。如图所示:
- 主机A(通常也称为客户端)发送一个标识了SYN的数据段,表示期望与服务器A建立连接,此数据段的序列号(seq)为a。
- 服务器A回复标识了SYN+ACK的数据段,比数据段的序列号(seg)为b,确认序列号为主机A的序列号加1(a+1),以此作为对主机A的SYN报文的确认。
- 主机A发送一个标识了ACK的数据段,此数据段的序列号(seq)为a+1,确认序列号为服务器A的序列号加1(b+1),以此作为对服务器A的SYN报文的确认。
TCP关闭连接的过程
- TCP支持全双工模式传输数据,这意味着同一时刻两个方向都可以进行数据的传输。在传输数据之前,TCP通过三次握手建立的实际上是两个方向的连接,因此在传输完毕后,两个方向的连接必须都关闭。
- TCP连接的建立是一个三次握手的过程,而TCP连接的终止则要经过四次握手。
- 如图所示:
- 主机A想终止连接,于是发送一个标识了FIN,ACK的数据段,序列号为a,确认序列号为b。
- 服务器A回应一个标识了ACK的数据段,序列号为b,确认序号为a+1,作为对主机A的FIN报文的确认。
- 服务器A想终止连接,于是向主机A发送一个标识了FIN,ACK的数据段,序列号为b,确认序列号为a+1。
- 主机A回应一个标识了ACK的数据段,序列号为a+1,确认序号为b+1,作为对服务器A的 FIN报文的确认。
- 以上四次交互便完成了两个方向连接的关闭。
ARP协议—地址解析协议
DHCP应用场景
- 在大型企业网络中,一般会有大量的主机等终端设备。每个终端都需要配置IP地址等网络参数才能接入网络。在小型网络中,终端数量很少,可以手动配置IP地址。但是在大中型网络中,终端数量很多,手动配置IP地址工作量大,而且配置时容易导致IP地址冲突等错误。
- DHCP可以为网络终端动态分配IP地址,解决了手工配置IP地址时的各种问题。
DHCP基本原理
-
ARG3系列路由器和X7系列交换机都可以作为DHCP服务器,为主机等设备分配IP地址。
DHCP服务器的地址池是用来定义分配给主机的IP地址范围,有两种形式。 -
接口地址池为连接到同一网段的主机或终端分配IP地址。可以在服务器的接口下执行dhcp select
interface命令,配置DHCP服务器采用接口地址池的DHCP服务器模式为客户端分配IP地址。 -
全局地址池为所有连接到DHCP服务器的终端分配IP地址。可以在服务器的接口下执行 dhcp select
global命令,配置DHCP服务器采用全局地址池的DHCP服务器模式为客户端分配IP地址。 -
接口地址池的优先级比全局地址池高。配置了全局地址池后,如果又在接口上配置了地址
池,客户端将会从接口地址池中获取IP地址。在X7系列交换机上,只能在VLANIF逻辑接口上配置接口地址池。
- 为了获取IP地址等配置信息,DHCP客户端需要和DHCP服务器进行报文交互。
- 首先,DHCP客户端发送DHCP发现报文来发现DHCP服务器。DHCP服务器会选取一个未分配的IP地址,向DHCP客户端发送DHCP提供报文。此报文中包含分配给客户端的IP地址和其他配置信息。如果存在多个DHCP服务器,每个DHCP服务器都会响应。
- 如果有多个DHCP服务器向DHCP客户端发送DHCP提供报文,DHCP客户端将会选择收到的第一个DHCP提供报文,然后发送DHCP请求报文,报文中包含请求的IP地址。收到DHCP请求报文后,提供该IP地址的DHCP服务器会向DHCP客户端发送一个DHCP确认报文,包含提供的IP地址和其他配置信息。DHCP客户端收到DHCP确认报文后,会发送免费ARP报文,检查网络中是否有其他主机使用分配的IP地址。如果指定时间内没有收到ARP应答,DHCP客户端会使用这个IP地址。如果有主机使用该IP地址,DHCP客户端会向DHCP服务器发送DHCP拒绝报文,通知服务器该IP地址已被占用。然后DHCP客户端会向服务器重新申请一个
IP地址。
- 申请到IP地址后,DHCP客户端中会保存三个定时器,分别用来控制租期更新,租期重绑定和租期失效。DHCP服务器为DHCP客户端分配IP地址时会指定三个定时器的值。如果
DHCP服务器没有指定定时器的值,DHCP客户端会使用缺省值,缺省租期为1天。默认情况下,还剩下50%的租期时,DHCP客户端开始租约更新过程,DHCP客户端向分配IP地址的服务器发送DHCP请求报文来由请延长IP地址的租期。DHCP服务器向客户端发送DHCP确认报文,给予DHCP客户端一个新的租期。
- DHCP客户端发送DHCP请求报文续租时,如果DHCP客户端没有收到DHCP服务器的
DHCP应答报文。默认情况下,重绑定定时器在租期剩余12.5%的时候超时,超时后,DHCP客户端会认为原DHCP服务器不可用,开始重新发送DHCP请求报文。网络上任何一台DHCP服务器都可以应答DHCP确认或DHCP非确认报文。 - 如果收到DHCP确认报文,DHCP客户端重新进入绑定状态,复位租期更新定时器和重绑定定时器。如果收到DHCP非确认报文,DHCP客户端进入初始化状态。此时,DHCP客户端必须立刻停止使用现有IP地址,重新申请IP地址。
- 租期定时器是地址失效进程中的最后一个定时器,超时时间为IP地址的租期时间。如果DHCP客户端在租期失效定时器超时前没有收到服务器的任何回应,DHCP客户端必须立刻停止使用现有IP地址,发送DHCP Release报文,并进入初始化状态。然后,DHCP客户端重新发送DHCP发现报文,申请IP地址。
静态路由
静态路由应用场景
- 静态路由是指由管理员手动配置和维护的路由。静态路由配置简单,并且无需像动态路由那样占用路由器的CPU资源来计算和分析路由更新。
- 静态路由的缺点在于,当网络拓扑发生变化时,静态路由不会自动适应拓扑改变,而是需要管理员手动进行调整。
- 静态路由一般适用于结构简单的网络。在复杂网络环境中,一般会使用动态路由协议来生成动态路由。不过,即使是在复杂网络环境中,合理地配置一些静态路由也可以改进网络的性能。
静态路由配置
- ip route-static ip-address{ mask mask-length] interface-type interface-number [nexthop-address]命令用来配置静态路由。参数ip address指定了一个网络或者主机的目的地址,参数mask指定了一个子网掩码或者前缀长度。如果使用了广播接口如以太网接口作为出接口,则必须要指定下一跳地址;如果使用了,串口作为出接口,则可以通过参数 interface-type和interface-number(如Serial 1/0/0)来配置出接口,此时不必指定下一跳地址。
静态路由
- 静态路由可以应用在串行网络或以太网中,但静态路由在这两种网络中的配置有所不同。
- 在吕行网络中配置静态路由时,可以只指定下一跳地址或只指定出接口。华为ARG3系列路由器中,吕行接口默认封装PPP协议,对于这种类型的1接口,静态路由的下一跳地址就是与接口相连的对端接口的地址,所以在串行网络中配置是静态路由时可以只配置出接口。
- 以太网是广播类型网络,和串行网络情况不同。在以太网中配置静态路由,必须指定下一跳地址。
- 在广播型的接口上配置静态路由时,必须明确指定下一跳地址。以太网中同一网络可能连接了多台路由器,如果在配置静态路由时只指定了出接口,则路由器无法将报文转发到正确的下一跳。在本示例中,RTA需要将数据转发到192168.2.0/24网络,在配置静态路由时,需要明确指定下一跳地址为10.0.123.2,否则,RTA将无法将报文转发到RTB所连接的192.168.2.0/24网络,因为RTA不知道应该通过RTB还是RTC才能到达目的地。
负载均衡
- 当源网络和目的网络之间存在多条链路时,可以通过等价路由来实现流量负载分担。这些等价路由具有相同的目的双络和掩码、优先级和度量值。
- 本示例中RTA和RTB之间有两条链路相连,通过使用等价的静态路由来实现流量负载分担。
- 在RTB上配置了两条静态路由,它们具有相同的目的IP地址和子网掩码、优先级(都为
60)、路由开销(都为0),但下一跳不同。在RTB需要转发数据给RTA时,就会使用这两条等价静态路由将数据进行负载分担。 - 在RTA上也应该配置对应的两条等价的静态路由。
浮动静态路由
- 在配置多条静态路由时,可以修改静态路由的优先级, 使一条静态路由的优先级高于其他
静态路由,从而实现静态路由的备份,也叫浮动静态路由。在本示例中,RTB上配置了两条静态路由。正常情况下,这两条静态路由是等价的。
通过配置preference 100,使第二条静态路由的优先级要低于第一条(值越大优先级越低)。路由器只把优先级最高的静态路由加入到路由表中。当加入到路由表中的静态路由出现故障时,优先级低的静态路由才会加入到路由表并承担数据转发业务。
缺省路由
- 当路由表中没有与报文的目的地址几配的表项时,设备中可以选择缺省路由作为报文的转发 路径。在路由表中,缺省路由的目的网络地址为0.0.0.0掩码也为0.0.0.0。在本示例中,
RTA使用缺省路由转发到达未知目的地址的报文。缺省青争态路由的默认优先级也是60。在路由选择过程中,缺省路由会被最后匹配。