「Liunx」- 将网络接口连接到串行线路

当时在整理slattach(1)命令,不明白其含义,因此到网上查了一下。作为一名Web开发,看到这些东西还是很新奇的。

串行接口简称串口,也称“串行通信接口”或“串行通讯接口”(通常指“COM接口”),是采用串行通信方式的扩展接口。

不过,现在基本没有COM口设备了,串口已经很少见了。COM口通信速度慢,以前COM口主要是用来接鼠标或调制解调器,不过那种设备早淘汰了,笔记本减轻重量,没必要加COM了。而USB比它快得多,又通用,还支持热插拔,而且也是串行通信的。

以下内容完全是复制过来的。

如何使用串口建立网络连接

SLIP, 即Serial Line IP(串行线路IP), 是一个数据链路层协议,用于在串行线路上传输IP数据报。

本文讲述如何在两台用串口线(RS232)连接的Linux机器之间配置SLIP链路。

设两台机器为A, B。首先,将两台机器用串口线连接好,然后在A机器上依次运行如下指令:

slattach /dev/ttyS0 -p slip -s 9600 -m -d &

ifconfig sl0 192.168.1.1 pointopoint 192.168.1.2 up

route add default gw 192.168.1.2

其中,/dev/ttyS0是第1上串口设备,如果有多个串口,则依次是/dev/ttyS1, /dev/ttyS2…,要视情况而定。

slattach的-p选项指定要使用的数据链路层协议,可以是slip, cslip, ppp等; -s指定传输速率,可以是9600,115200等;

-m告诉串口设备不要工作在RAW data模式,而是要工作在协议驱动模式;-d输出调试信息。

ifconfig用于配置串行接口的ip信息等。sl0代表第一个串行接口,如果有更多,依次是sl1, sl2…。

route将对方ip添加为默认网关。

然后在B机器上依次运行以下指令:

slattach /dev/ttyS0 -p slip -s 9600 -m -d &

ifconfig sl0 192.168.1.2 pointopoint 192.168.1.1 up

route add default gw 192.168.1.1

指令和A一样,要注意的是ip地址要设对。还有就是两边所用的协议、传输速率也要一样。

好了,如果没有出错,连接就建立成功了。

可以用在A或B上运行“ping 对方地址”来测试连接是否畅通。

建立好SLIP链路后,我们就可以使用互联网套接字(Internet socket)编程来进行2者之间的通信了,而不必关心底层是串行线路还是以太网线。

如果不配置此链路,则串口设备工作在RAW data模式,收、发的数据都是原始数据,不走协议栈,不进行IP等封装。

以上配置在Redhat Linux Enterprise及CentOS 5上测试成功。

参考文献

在两台Linux机器之间配置一条SLIP链路,以便使用互联网socket进行通信
笔记本上为什么没有串口
什么叫做串口线?