- 網絡的琴弦:玩轉IP看監控
- 周迪等
- 2052字
- 2019-01-04 14:22:30
互聯網與分層
孤獨的人生是可悲的,于是家庭誕生了;再大的家庭也就那么點人脈,于是社會誕生了:在龐大復雜的社會體系里,個人才能體現出多方面的價值。計算機也是一樣,20世紀80年代為了實現資源共享,人們決定將單體計算機組建成網絡;到了20世紀90年代,人們不再滿足于這樣的局域網,決定將網絡聯網組建成網絡的網絡,于是出現了因特網(Internet)。
由于局域網的技術紛繁多樣,除了現在占主流的以太網之外,歷史上還有各種其他網絡技術,相應地,硬件地址也不一定是MAC地址了。于是便產生了路由器,由路由器來負責連接這些網絡。這就意味著,每個局域網內部的信息傳輸有自己的鏈路層地址系統,且僅在該局域網內部有效,跨局域網的信息傳輸就需要制定一個更高層次的地址規范,來統一標記因特網中的個體設備,于是,網絡的地址就出現了“分層”的需求,需要分層的,還有相應的協議處理機制。
我們常用的TCP/IP協議棧定義了一個五層架構:應用層、傳輸層、網絡層、鏈路層和物理層,如圖1-6所示。其中協議部分只關注上面的四層。

圖1-6 TCP/IP協議棧定義的五層架構
說明
開放系統互連(Open System Interconnection, OSI)參考模型定義了七層模型:物理層、數據鏈路層、網絡層、傳輸層、會話層、表示層和應用層。其中會話層、表示層和應用層在TCP/IP協議棧中合并為應用層。
物理層指網線、光纖等物理傳輸媒介。
鏈路層主要包括操作系統中的設備驅動程序,包括網卡驅動,常與物理層傳輸媒介打交道。我們前面提到的以太幀和以太網交換機轉發即屬于本層范疇,而MAC地址就是鏈路層的硬件地址信息。
網絡層主要處理IP(Internet Protocol)報文在網絡之間的選路,這一層協議包括IP協議、Ping程序用到的ICMP協議等。
傳輸層主要為兩臺主機的應用程序通信提供傳輸通道的建立,常見的有傳輸控制協議(Transmission Control Protocol, TCP)和用戶數據報協議(User Datagram Protocol, UDP)兩種。TCP協議提供可靠的傳輸保障機制,而UDP協議則不保證可靠性,傳輸可靠性由應用程序負責保證。
應用層負責特定應用程序的細節處理,比如錄像回放的點播功能、Web服務等。由于同一臺機器會運行多個網絡應用程序,為了確保不同的應用程序正確的收發和處理屬于自己的報文,TCP和UDP提供了端口號,在TCP和UDP頭部分,有“源端口”和“目的端口”字段。不同的應用程序對應不同的端口號,例如Web服務通常對應80端口,RTSP點播服務對應554端口等。IP地址和端口號合在一起稱為“套接字(Socket)”,常用的有TCP Socket和UDP Socket。提供相應服務功能的主機會創建相應的Socket,例如提供Web服務的主機會創建TCP Socket 80:IP地址+TCP 80端口;提供RTSP點播服務的主機會創建UDP Socket 554:IP地址+UDP 554端口——RTSP也支持TCP Socket。
看到這里,老U疑慮重重,為什么弄得這么復雜?好吧,我們來看個形象的比喻。A、B兩家公司是分別位于杭州和舊金山的知名安防公司,他們準備進行戰略合作,兩家公司的CEO需要互通公函。在這個信息爆炸瞬息萬變的年代,CEO是絕不可能親自走路去送公函的,何況快遞業現在這么發達。公函需從杭州的A公司總部到達舊金山的B公司總部,什么交通工具可以一步到達呢?目前沒有,這中間需要經過杭州快遞員開車上門取貨,通過貨車送到杭州蕭山機場,然后通過飛機航空運送到舊金山國際機場,然后再通過貨車送到B公司。至于怎么協調兩地貨車和飛機以保證公函的送達,那是快遞公司的事情。由于公函的重要性,公司的行政部門必須跟蹤確認公函的及時到達,若中間出現丟失,他們必須重新發函并與快遞公司進行交涉。
過程非常完美,對不對?其實整個模型與TCP/IP的五層架構非常類似:公路和空中航線是物理層;兩地的貨車和飛機是鏈路層,貨車只知道且負責本地區域的陸路傳遞,飛機只知道且負責航空傳遞,每個角色均不知道也不必知道其他角色范疇內的傳輸機制;快遞公司負責協調公函從A公司送達B公司,這是網絡層;兩家公司的行政部門要確保公函的及時到達,這是傳輸層;兩家公司的CEO只管簽署公函即可,這就是應用層。協議其實就是現實社會的模型抽象,很有意思!
讓我們回到真實的TCP/IP世界,簡單瀏覽一下這里的運作機制。
當我們在NVR的人機界面上點播了一路前端IPC的實況視頻,IPC的視頻流處理程序(應用層)對視頻進行壓縮編碼,然后交付TCP發送程序;TCP發送程序(傳輸層)根據實際傳輸狀況控制報文段的大小和重傳的必要性,進行TCP封裝后交付給IP包發送程序;IP包發送程序(網絡層)收到TCP報文后再封裝成IP包,通過查找路由表找到網關的IP地址和出接口,然后交付給以太幀發送程序;以太幀發送程序(鏈路層)通過查找ARP表(ARP即Address Resolution Protocol,地址解析協議)后完成對IP包的以太幀封裝,從正確的網口發送出去。而NVR從鏈路層收到這個以太幀,會剝掉以太幀封裝,再通過IP包接收程序剝掉IP封裝,最后通過TCP接收程序剝掉TCP封裝,還原出最初的視頻包交給視頻解碼程序處理。
這個過程中,TCP協議對發送報文段的尺寸控制和重傳控制是為了保證業務數據的完整性,而IP包處理程序的目標是實現網絡之間的信息選路和傳遞,以太幀處理程序的作用是為了實現局域網內的報文傳輸。任何一層的協議處理機制都是必不可少的。
家園網友互動
Q:如如 發表于2015-8-13 18:05:39
我是監控“小白”,問個問題,路由協議屬于哪一層協議?
A:網語者 發表于2015-8-13 19:27:49
路由協議本身屬于應用層。
- Application Development with Qt Creator(Second Edition)
- 6G潛在關鍵技術(下冊)
- 光網絡評估及案例分析
- GPS/GNSS原理與應用(第3版)
- 數字烏托邦
- Force.com Development Blueprints
- 網絡基礎與網絡管理項目化教程
- Microservice Patterns and Best Practices
- Scala Design Patterns.
- 6G無線網絡空口關鍵技術
- 無線傳感器網絡定位技術
- Dart Cookbook
- Qt5 Python GUI Programming Cookbook
- SD-WAN 架構與技術
- Learn Node.js by Building 6 Projects.