时区英文诗歌:有关串口之点滴思考备忘录

来源:百度文库 编辑:偶看新闻 时间:2024/05/06 01:09:16
有关串口之点滴思考备忘录(搜索词:RS-232+SLIP或PPP 以太网 串行 通信)2009年11月27日 星期五 01:44

一、可以说‘帧界定’是串口通信最基本的形式了,因为没有帧界定,基本单位就变成单个比特(一个时序脉冲),顶多表示两种状态,要么1和2,要么A和B,连26个字母都表示不全,这样的通信当然没什么意义,比特流就像流水账,没章没节,自然形不成有效的语义。所以说‘帧界定’是串行通信最基本的特征,而‘帧通信’则是所有通信方式之必须,不论并行还是串行。
.......并行通信则不同,一个时序脉冲可以有8位、16位、32位或64位等,足以表示256个以上的字符,自然不需要帧界定。即便在并行通信里加入异步或同步的传输模式,也不需要帧界定,需要关注的只是同步的问题,因为并行的比特位数就是自然的帧了。

二、在串口RS-232转TCP/IP协议的问题上,如果串口转换器做成外置的,那么转换器与主机的连接方式我看非以太网莫属了,至少目前看不到最好的方式。帧中继?ATM? 这些同样具有交换功能的协议不比以太网来得优越。是SLIP? PPP? 这些协议本身就是跑在串口上的,即便转换器固化了SLIP、PPP协议,PC机或路由器却只有标准的串口,这些串口只具有最简单的RS-232数据格式(即基本的帧界定格式,相当于ASCII码而已),要达成通信,还得在这些标准串口上封装SLIP、PPP协议,这对一般用户很不方便。而以太网就不同了,这主要不是因为以太网卡固化了现成的以太网协议,最重要的是以太网组网上的简便、便宜和实用。
.......而如果转换器做成内置PCI槽的,那么连接方式也就省了,但还得有串口数据转TCP/IP数据的问题,也就是串口之上同样必须封装TCP/IP协议栈,只是这个协议栈可以软件形态做成一个Soket编程接口控件,也可以固化在串口转换卡上。
......总结性补充:因为TCP/IP不是专门为串口RS-232设计的,所以我们自然就很清楚为什么不应该有‘TCP/IP为什么不能直接运行在串口上?’的疑问了。这是因为TCP/IP的宗旨是‘互联互通’,所以决定它不能为具体的某种接口来设计,它必须被抽象成第三层(网络层或称互联层,第一层即为可以任意类型的物理接口层,如RS-232),这同时也决定了在具体的物理接口层和网络层之间必须有一个中间层,从中进行上下层数据的匹配,实现承上启下的桥梁作用,即对上跟网络层实现对IP数据包的装配,对下为物理层的不可靠数据进行检测、纠错和重发等工作。匹配物理层和IP网络层的链路协议主要有SLIP和PPP等(当然还有固化的以太网卡),它们都是为IP网设计的,可看作TCP/IP协议簇的一部分。可见链路层的第一作用是对网络层数据进行适配包装(参见J163邮箱之‘第三章 计算机网络基础’之‘3.3.3节’之‘它是TCP/IP赖以存在的各种通信网和TCP/IP之间的接口’),其次才是对物理层的可靠性作用。(进一步解析:尽管物理层的RS-232等串口传输数据也有‘异步/同步/帧界定’的类似数据链路层的通信过程(姑且称之‘物理链路层’),但是旨在通用化的TCP/IP网络层不会专为某种具体的物理协议设计的,因此物理芯片级的数据传输协议层不会取代数据链路层的,因为TCP/IP就是希望通过数据链路层来抽象物理层的)。
.......当然你要是执意要TCP/IP协议直接运行在RS-232串口上也是可以的,这时你必须设计自己的TCP/IP软件,并且把匹配网络层和RS-232的类似SLIP、PPP的链路协议也一并设计进去。不过这同时也决定了你的TCP/IP软件只能运行在RS-232接口上,而不能运行在以太网卡等其他设备上。
.......从此也可看出,如果两个通信主体之间不想走IP道路,只希望进行简单的物理口之间的通信,那么它们也可以不需要链路层。也就是说如果不考虑物理层的可靠性,两个通信主体(通信软件)完全可以把它们的通信模块直接设计在RS-232等物理通信口上。就这么回事。不过你要是想通过以太网卡通信,则注定是要走IP道路的,因为以太网是专为Internet设计的。
.......小结语:总之,只要涉及TCP/IP协议的,就必需数据链路层,因为TCP/IP协议需要各实体网络的数据链路协议对IP包进行装配。---20091212)
.......特注:参阅SLIP(隐含PPP)认知三步曲’,那有原始思考。

三、除非你只需要自己编程直接在裸露的串口或以太网卡之间通信(这样或许起码理论上不需要你用到第三层的互联层(TCP/IP),只需要最基本的链路通信规程RS-232、SLIP、PPP和以太网协议等),否则我们都不得不将我们的通信接口(串口或网卡等)变成一个路由器(在其上封装TCP/IP协议栈),如果你需要在互联网上畅游或者想让自己的网络组网简便并具有扩展性的话。破:无论在何种接口上,只要封装了TCP/IP协议,就是一个路由器,只是轻重缓急不同而已,有用于中转的核心路由器,有用于末端家庭共享的边缘路由器(如带路由的宽带猫),用户端的PC、手机、网络摄像头、串口服务器等,只要是跑IP的,本质也是路由器,尽管它是最简单的。小结:任何设备想跑IP,都必须在设备的某个环节封装TCP/IP协议,通俗点说,就是都必须自带路由器。

四、虽然技术上,以太网和TCP/IP是两种独立的技术,但以太网确实也是冲着迎合TCP/IP的目的来到网络世界的,一个明显证据是,以太网帧的数据区容量大于IP包最大容量。而且无巧不成书,刚好TCP/IP很成功,以太网也很成功,因此两大标准搭配使用就成为当今最流行的技术。问题是,TCP/IP可以没有以太网,但以太网却不能没有TCP/IP,虽然没有人强迫它们俩的这种关系,但相信至今没有人发现以太网卡可以独立于TCP/IP协议栈的,这是以太网的一大特色,也是最需要引起关注和思考的地方。TCP/IP和以太网是通过ARP结合起来的,而ARP得以成立的技术基础是网卡的广播功能,这才是关键所在,也是当今因特网和以太网大流其行的原始动力源(参见《整理一下关于软和硬的关系问题》之三末段)。
.......实例解析:对于模式“串口哑终端----RS-232转以太网转换器(串口服务器)----以太网”,原以为串口服务器可以直接中转以太网帧,但实际不会,因为如果后台应用是基于TCP/IP协议栈,串口服务器就必须也具备TCP/IP协议栈,否则就会因为缺少IP地址信息而无法定位到串口服务器。这种情况除非是一个纯粹基于以太网帧的网络,应用也是基于以太网帧开发,不过这样的做法似乎世界上还没见过。所以说哪里有以太网,哪里就有TCP/IP,就是这个道理。这也是一个原始思考源,值得备忘。

五、总结性比较:
.......CPU是以并行总线形式与周边设备通信(基于空序,面性),通信接口是以串行双绞线形式与异地设备通信(基于时序,线性)。
.......诸多网络适配器(以太、ATM等网卡)当作是复杂化的串行通信接口,串行通信接口当作简单化的网卡。以太网帧好比复杂化的RS-232帧,只是附加上了交换地址信息;而RS-232帧则好比去除了地址信息的以太网帧。重要补充:任何以串行方式传输信息的方式都离不开类似RS-232的异步/同步传输模式,虽然不一定严格符合RS-232的物理和链路协议标准,但是异步/同步以及帧界定的串行传输模式却是任何串行传输技术的基础模式(也适用于并行技术),并非属于哪个串行通信技术(比如RS-232)的专利,USB、1394、以太网卡、ATM网卡等都是以串行方式传输的,自然离不开‘异步/同步以及帧界定’的基础模式,所不同的是以太网和ATM接口是在类似RS-232数据的基础上增加了用以交换的地址信息,形成所谓的以太网和ATM链路数据帧。如此而已。
.......可以直接在串口上封装TCP/IP协议(纠正:这句话原意是错误的,因为它是指不包含SLIP、PPP协议的情况。缘由参见本文第二节的‘总结性补充’),这是从可以直接在网卡上封装TCP/IP协议这个事实推出来的(注:如果依照本文第二节‘总结性补充’之说,网卡可是固化了‘以太网帧’这一数据链路层的)。
.......因网卡设备设计相对复杂,主板厂家往往把这部件留给第三方厂家生产(不过现在生产的主板不集成网卡反而会成为特大怪事);相反地,因RS-232等串口相对简单,主板厂家较热衷集成到主板上(不过第三方厂家也比较热衷生产插在扩展槽上的串口卡,比如PCI卡)。
.......似乎可以这么看,从扩展槽等基于CPU/总线的原始数据转换为某种网络数据的设备称作网络适配器,比如以太网卡(注:照本文第二节‘总结性补充’之说,SLIP、PPP等链路协议都可以看作网络适配器的,而链路层似乎称之‘网络适配层’更合适。因以太网卡、SLIP、PPP等都是冲着互联网设计的,所以它们都可统称为‘Internet数据匹配层设备’);而从某种网络数据转向另一种网络数据的设备称作协议转换器,比如G703。

六、总感觉将第三层的TCP/IP网络层称作‘互联层’要来得贴切;而第二层的数据链路层称之‘网络适配层’更合适;而第一层的物理层则可叫作‘物理链路层’,主要是突出该层‘物理’与第二层‘数据’的对应性,因为物理层也有它的连接呼应过程(即感应连接的能力),比如通信介质线路贯通时,通信接口之间会第一时间感知到线路的贯通(因为此时线路带电),并接着进行必要的检测,比如相互交换检测数据,若发现线路有效(有些线路虽然带电,但质量不好会影响正常数据的交换),则才会向上触发数据链路层进行下一轮的通信动作,相反,若线路断电,则通信接口会第一时间感知到线路没有电压,自然无法向上触发数据链路层,通信断链。

七、很多人都以为‘互联网’就是‘国际计算机互联网’的简称,这其实是不准确的。国际计算机互联网是一个贯通全世界的广域网络,这显然是一个互联网,但是我们平常用以太网组建的局域网显然也是一个互联网的,因为它们都有一个共同的特征:基于TCP/IP协议。所不同的是,一个是广域互联网,一个是局域互联网,如此而已。总之,不管什么网,只要它上层借用了TCP/IP的,它就是互联网,就这么简单。

八、以太网接口这东西,对用户来说相当于“RS-232+SLIPPPP”的简化服务;对通信来说则相当于“RS-232+SLIPPPP”的集成服务。以太网卡简单理解就是一种把物理层的RS-232和链路层的PPP捆绑设计在一起的这么一个东西,只是将RS-232进行了优化,提高了串行通信的速度,将PPP的寻址变成有效。(补充:参见本空间相册“Internet网络连接图解”或《广域网》(第7版)P175,对照‘服务器协议栈’和‘客户端协议栈’,你会发现链路层PPP是对应以太网的,但RS-232对应的是双绞线,这是对的。当然如果利用本项的观点,更合理的描述应该是:PPP对应以太网的链路层,RS-232对应以太网的物理层。而一种更简捷形象的说法是:PPP对应以太网的PPP,RS-232对应以太网的RS-232。以太网的RS-232属于物理层,连接的是双绞线,因此我们也常简单称之‘双绞线’,也就是说今后看到的‘双绞线’就要知道是指以太网的物理层的。--20100602)

.......录:“孝忠”与“尊严”,记住,这是为人之最基本元素,也让我从另一面看到了人性的光辉。---观韩剧《李算》有感!展示尚宫们之孝忠,大妃娘娘最后之尊严,才是该剧之灵魂所在,我以为。
.......录:维系国家与族群进步之法宝,要么好的制度体系,要么好的信仰体系。否则国民乃至人性之纯真将被混迹于品质缺失和良心幻灭之沼地,无从彰显‘尊贵’与‘卑劣’,其乃国之大悲也。