2.2 远程控制与通信链路的建立
与Internet连接的数据链路方式主要有Ethernet方式和串行通信方式。Ethernet连接方式是一种局域网的连接方式,广泛应用于本地计算机的连接。通过Modem进行拨号连接的串行通信方式,可以实现远距离的数据通信,下面详细介绍串行通信接口协议方式。
串行通信协议有SLIP、CSLIP以及PPP通信协议。SLIP和CSLIP提供一种简单的通过串行通信实现IP数据报封装方式,通过RS232串行接口和调试解调器接入Internet。但是这种简单的连接方式有很多缺陷,如每一端无法知道对方IP地址;数据帧中没有类型字段,也就是1条串行线路用于SLIP就不能同时使用其它协议;SLIP没有在数据帧中加上检验和,当SLIP传输的报文被线路噪声影响发生错误时,无法在数据链路层检测出来,只能通过上层协议发现。
PPP(Point to Point Protocal,点对点协议)修改了SLIP协议中的缺陷。PPP中包含3个部分:在串行链路上封装IP数据报的方法;建立、配置及测试数据链路的链路控制协议(LCP);不同网络层协议的网络控制协议(NCP)。PPP相对于SLIP来说具有很多优势;支持循环冗余检测、支持通信双方进行IP地址动态协商、对TCP和IP报文进行压缩、认证协议支持(CHAP和PAP)等。图4为PPP数据帧的格式。
PPP的实现可以通过2个后台任务来完成。协议控制任务和写任务。协议控制任务控制各种PPP的控制协议,包括LCP、NCP、CHAP和PAP。它用来处理连接的建立、连接方式的协商、连接用户的认证以及连接中止。写任务用来控制PPP设备的数据发送。数据报的发送过程,就是通过写任务往串行接口设备写数据的过程,当有数据报准备就绪,PPP驱动通过信号灯激活写任务,使之完成对串行接口设备的数据发送过程。PPP接收端程序通过在串行通信设备驱动中加入“hook”程序来实现。在串行通信设备接收到1个数据之后,中行设备的中断服务程序(ISR)调用PPP的ISR。当1个正确的PPP数据帧接收之后,PPP的ISR通过调度程序调用PPP输入程序,然后PPP输入程序从串行设备的数据缓存中将整个PPP数据帧读出,根据PPP的数据帧规则进行处理,也就是分别放入IP输入队列或者协议控制任务的输入队列。
PPP现在已经广泛为各种ISP(Internet Sever Provider)接受,而Linux操作系统下完全支持PPP协议。在Linux下网络配置过程中,通过1个Modem建立与ISP的物理上的连接,然后在控制面板(Control Panel)里面选择Netowrks Configuration。在接口(Interface)里面加入PPP设备,填入ISP电话号码、用户以及密码,同时将本地IP和远端IP设置为0.0.0.0,修改/ETC/PPP/OPTION,加上DEFAULTROUE,由ISP提供缺省路由,这样就完成了设备的PPP数据链路设置过程,可以通过Internet实现远程控制。