一、可以說‘幀界定’是串口通信最基本的形式了,因為沒有幀界定,基本單位就變成單個比特(一個時序脈沖),頂多表示兩種狀態(tài),要么1和2,要么A和B,連26個字母都表示不全,這樣的通信當然沒什么意義,比特流就像流水賬,沒章沒節(jié),自然形不成有效的語義。所以說‘幀界定’是串行通信最基本的特征,而‘幀通信’則是所有通信方式之必須,不論并行還是串行。
.......并行通信則不同,一個時序脈沖可以有8位、16位、32位或64位等,足以表示256個以上的字符,自然不需要幀界定。即便在并行通信里加入異步或同步的傳輸模式,也不需要幀界定,需要關注的只是同步的問題,因為并行的比特位數就是自然的幀了。
二、在串口RS-232轉TCP/IP協(xié)議的問題上,如果串口轉換器做成外置的,那么轉換器與主機的連接方式我看非以太網莫屬了,至少目前看不到最好的方式。幀中繼?ATM? 這些同樣具有交換功能的協(xié)議不比以太網來得優(yōu)越。是SLIP? PPP? 這些協(xié)議本身就是跑在串口上的,即便轉換器固化了SLIP、PPP協(xié)議,PC機或路由器卻只有標準的串口,這些串口只具有最簡單的RS-232數據格式(即基本的幀界定格式,相當于ASCII碼而已),要達成通信,還得在這些標準串口上封裝SLIP、PPP協(xié)議,這對一般用戶很不方便。而以太網就不同了,這主要不是因為以太網卡固化了現成的以太網協(xié)議,最重要的是以太網組網上的簡便、便宜和實用。
.......而如果轉換器做成內置PCI槽的,那么連接方式也就省了,但還得有串口數據轉TCP/IP數據的問題,也就是串口之上同樣必須封裝TCP/IP協(xié)議棧,只是這個協(xié)議??梢攒浖螒B(tài)做成一個Soket編程接口控件,也可以固化在串口轉換卡上。
......(總結性補充:因為TCP/IP不是專門為串口RS-232設計的,所以我們自然就很清楚為什么不應該有‘TCP/IP為什么不能直接運行在串口上?’的疑問了。這是因為TCP/IP的宗旨是‘互聯互通’,所以決定它不能為具體的某種接口來設計,它必須被抽象成第三層(網絡層或稱互聯層,第一層即為可以任意類型的物理接口層,如RS-232),這同時也決定了在具體的物理接口層和網絡層之間必須有一個中間層,從中進行上下層數據的匹配,實現承上啟下的橋梁作用,即對上跟網絡層實現對IP數據包的裝配,對下為物理層的不可靠數據進行檢測、糾錯和重發(fā)等工作。匹配物理層和IP網絡層的鏈路協(xié)議主要有SLIP和PPP等(當然還有固化的以太網卡),它們都是為IP網設計的,可看作TCP/IP協(xié)議簇的一部分??梢婃溌穼拥牡谝蛔饔檬?font color=#990000>對網絡層數據進行適配包裝(參見J163郵箱之‘第三章 計算機網絡基礎’之‘3.3.3節(jié)’之‘它是TCP/IP賴以存在的各種通信網和TCP/IP之間的接口’),其次才是對物理層的可靠性作用。(進一步解析:盡管物理層的RS-232等串口傳輸數據也有‘異步/同步/幀界定’的類似數據鏈路層的通信過程(姑且稱之‘物理鏈路層’),但是旨在通用化的TCP/IP網絡層不會專為某種具體的物理協(xié)議設計的,因此物理芯片級的數據傳輸協(xié)議層不會取代數據鏈路層的,因為TCP/IP就是希望通過數據鏈路層來抽象物理層的)。
.......當然你要是執(zhí)意要TCP/IP協(xié)議直接運行在RS-232串口上也是可以的,這時你必須設計自己的TCP/IP軟件,并且把匹配網絡層和RS-232的類似SLIP、PPP的鏈路協(xié)議也一并設計進去。不過這同時也決定了你的TCP/IP軟件只能運行在RS-232接口上,而不能運行在以太網卡等其他設備上。
.......從此也可看出,如果兩個通信主體之間不想走IP道路,只希望進行簡單的物理口之間的通信,那么它們也可以不需要鏈路層。也就是說如果不考慮物理層的可靠性,兩個通信主體(通信軟件)完全可以把它們的通信模塊直接設計在RS-232等物理通信口上。就這么回事。不過你要是想通過以太網卡通信,則注定是要走IP道路的,因為以太網是專為Internet設計的。
.......小結語:總之,只要涉及TCP/IP協(xié)議的,就必需數據鏈路層,因為TCP/IP協(xié)議需要各實體網絡的數據鏈路協(xié)議對IP包進行裝配。---20091212)
.......〖特注:參閱‘SLIP(隱含PPP)認知三步曲’,那有原始思考。〗
三、除非你只需要自己編程直接在裸露的串口或以太網卡之間通信(這樣或許起碼理論上不需要你用到第三層的互聯層(TCP/IP),只需要最基本的鏈路通信規(guī)程RS-232、SLIP、PPP和以太網協(xié)議等),否則我們都不得不將我們的通信接口(串口或網卡等)變成一個路由器(在其上封裝TCP/IP協(xié)議棧),如果你需要在互聯網上暢游或者想讓自己的網絡組網簡便并具有擴展性的話。破:無論在何種接口上,只要封裝了TCP/IP協(xié)議,就是一個路由器,只是輕重緩急不同而已,有用于中轉的核心路由器,有用于末端家庭共享的邊緣路由器(如帶路由的寬帶貓),用戶端的PC、手機、網絡攝像頭、串口服務器等,只要是跑IP的,本質也是路由器,盡管它是最簡單的。小結:任何設備想跑IP,都必須在設備的某個環(huán)節(jié)封裝TCP/IP協(xié)議,通俗點說,就是都必須自帶路由器。
四、雖然技術上,以太網和TCP/IP是兩種獨立的技術,但以太網確實也是沖著迎合TCP/IP的目的來到網絡世界的,一個明顯證據是,以太網幀的數據區(qū)容量大于IP包最大容量。而且無巧不成書,剛好TCP/IP很成功,以太網也很成功,因此兩大標準搭配使用就成為當今最流行的技術。問題是,TCP/IP可以沒有以太網,但以太網卻不能沒有TCP/IP,雖然沒有人強迫它們倆的這種關系,但相信至今沒有人發(fā)現以太網卡可以獨立于TCP/IP協(xié)議棧的,這是以太網的一大特色,也是最需要引起關注和思考的地方。TCP/IP和以太網是通過ARP結合起來的,而ARP得以成立的技術基礎是網卡的廣播功能,這才是關鍵所在,也是當今因特網和以太網大流其行的原始動力源(參見《整理一下關于軟和硬的關系問題》之三末段)。
.......實例解析:對于模式“串口啞終端----RS-232轉以太網轉換器(串口服務器)----以太網”,原以為串口服務器可以直接中轉以太網幀,但實際不會,因為如果后臺應用是基于TCP/IP協(xié)議棧,串口服務器就必須也具備TCP/IP協(xié)議棧,否則就會因為缺少IP地址信息而無法定位到串口服務器。這種情況除非是一個純粹基于以太網幀的網絡,應用也是基于以太網幀開發(fā),不過這樣的做法似乎世界上還沒見過。所以說哪里有以太網,哪里就有TCP/IP,就是這個道理。這也是一個原始思考源,值得備忘。
五、總結性比較:
.......CPU是以并行總線形式與周邊設備通信(基于空序,面性),通信接口是以串行雙絞線形式與異地設備通信(基于時序,線性)。
.......諸多網絡適配器(以太、ATM等網卡)當作是復雜化的串行通信接口,串行通信接口當作簡單化的網卡。以太網幀好比復雜化的RS-232幀,只是附加上了交換地址信息;而RS-232幀則好比去除了地址信息的以太網幀。重要補充:任何以串行方式傳輸信息的方式都離不開類似RS-232的異步/同步傳輸模式,雖然不一定嚴格符合RS-232的物理和鏈路協(xié)議標準,但是異步/同步以及幀界定的串行傳輸模式卻是任何串行傳輸技術的基礎模式(也適用于并行技術),并非屬于哪個串行通信技術(比如RS-232)的專利,USB、1394、以太網卡、ATM網卡等都是以串行方式傳輸的,自然離不開‘異步/同步以及幀界定’的基礎模式,所不同的是以太網和ATM接口是在類似RS-232數據的基礎上增加了用以交換的地址信息,形成所謂的以太網和ATM鏈路數據幀。如此而已。
.......可以直接在串口上封裝TCP/IP協(xié)議(糾正:這句話原意是錯誤的,因為它是指不包含SLIP、PPP協(xié)議的情況。緣由參見本文第二節(jié)的‘總結性補充’),這是從可以直接在網卡上封裝TCP/IP協(xié)議這個事實推出來的(注:如果依照本文第二節(jié)‘總結性補充’之說,網卡可是固化了‘以太網幀’這一數據鏈路層的)。
.......因網卡設備設計相對復雜,主板廠家往往把這部件留給第三方廠家生產(不過現在生產的主板不集成網卡反而會成為特大怪事);相反地,因RS-232等串口相對簡單,主板廠家較熱衷集成到主板上(不過第三方廠家也比較熱衷生產插在擴展槽上的串口卡,比如PCI卡)。
.......似乎可以這么看,從擴展槽等基于CPU/總線的原始數據轉換為某種網絡數據的設備稱作網絡適配器,比如以太網卡(注:照本文第二節(jié)‘總結性補充’之說,SLIP、PPP等鏈路協(xié)議都可以看作網絡適配器的,而鏈路層似乎稱之‘網絡適配層’更合適。因以太網卡、SLIP、PPP等都是沖著互聯網設計的,所以它們都可統(tǒng)稱為‘Internet數據匹配層設備’);而從某種網絡數據轉向另一種網絡數據的設備稱作協(xié)議轉換器,比如G703。
六、總感覺將第三層的TCP/IP網絡層稱作‘互聯層’要來得貼切;而第二層的數據鏈路層稱之‘網絡適配層’更合適;而第一層的物理層則可叫作‘物理鏈路層’,主要是突出該層‘物理’與第二層‘數據’的對應性,因為物理層也有它的連接呼應過程(即感應連接的能力),比如通信介質線路貫通時,通信接口之間會第一時間感知到線路的貫通(因為此時線路帶電),并接著進行必要的檢測,比如相互交換檢測數據,若發(fā)現線路有效(有些線路雖然帶電,但質量不好會影響正常數據的交換),則才會向上觸發(fā)數據鏈路層進行下一輪的通信動作,相反,若線路斷電,則通信接口會第一時間感知到線路沒有電壓,自然無法向上觸發(fā)數據鏈路層,通信斷鏈。
七、很多人都以為‘互聯網’就是‘國際計算機互聯網’的簡稱,這其實是不準確的。國際計算機互聯網是一個貫通全世界的廣域網絡,這顯然是一個互聯網,但是我們平常用以太網組建的局域網顯然也是一個互聯網的,因為它們都有一個共同的特征:基于TCP/IP協(xié)議。所不同的是,一個是廣域互聯網,一個是局域互聯網,如此而已??傊?,不管什么網,只要它上層借用了TCP/IP的,它就是互聯網,就這么簡單。
八、以太網接口這東西,對用戶來說相當于“RS-232+SLIP或PPP”的簡化服務;對通信來說則相當于“RS-232+SLIP或PPP”的集成服務。以太網卡簡單理解就是一種把物理層的RS-232和鏈路層的PPP捆綁設計在一起的這么一個東西,只是將RS-232進行了優(yōu)化,提高了串行通信的速度,將PPP的尋址變成有效。(補充:參見本空間相冊“Internet網絡連接圖解”或《廣域網》(第7版)P175,對照‘服務器協(xié)議棧’和‘客戶端協(xié)議棧’,你會發(fā)現鏈路層PPP是對應以太網的,但RS-232對應的是雙絞線,這是對的。當然如果利用本項的觀點,更合理的描述應該是:PPP對應以太網的鏈路層,RS-232對應以太網的物理層。而一種更簡捷形象的說法是:PPP對應以太網的PPP,RS-232對應以太網的RS-232。以太網的RS-232屬于物理層,連接的是雙絞線,因此我們也常簡單稱之‘雙絞線’,也就是說今后看到的‘雙絞線’就要知道是指以太網的物理層的。--20100602)
.......語錄:“孝忠”與“尊嚴”,記住,這是為人之最基本元素,也讓我從另一面看到了人性的光輝。---觀韓劇《李算》有感!展示尚宮們之孝忠,大妃娘娘最后之尊嚴,才是該劇之靈魂所在,我以為。
.......語錄:維系國家與族群進步之法寶,要么好的制度體系,要么好的信仰體系。否則國民乃至人性之純真將被混跡于品質缺失和良心幻滅之沼地,無從彰顯‘尊貴’與‘卑劣’,其乃國之大悲也。