天天看點

計算機網絡協定第一章,網絡協定基礎知識序網絡協定基礎小結參考修訂

   我計劃開發一個系列專欄,将自己在網絡方面的積累完善成一個系列知識,讓讀者的監督和拍磚督促自己并提高自己。如果在讀本人的系列文章得到些許收獲,那對我來說是更大的收獲。    本系列的閱讀應該不分先後,找自己感興趣的話題閱讀即可。我盡量加入實際案例,并結合網絡知識進行闡述,希望能夠更加易于閱讀。本系列的核心工作是講述TCP/IP四層協定,是以重中之重是闡述TCP協定。

網絡協定基礎

    如果大學開設《計算機網絡》課程的同學,一定聽說過OSI 7層網絡模型。底層協定為上層協定提供基礎服務,底層協定封裝醜陋的細節,以優雅的接口展示出來。 這就是典型的程式設計思路,抽象。也是協定需要分層次的主要目的之一,我想另一個目的是降低實作的複雜度,讓每一層隻關心該層次的問題。如果一個簡單1+1算法恐怕無需勞師動衆,可想而知,網絡通訊需要設計OSI 7層模型,一定是複雜無比的工程。    首先必須認識到網絡的複雜,其次應該懷有一定目的了解網絡協定,是以在戰略上藐視對方,戰術上重視對方,可以說我們需要打赢一場局部戰争。讓你了解的知識為你所用即可。

OSI七層網絡模型

   OSI(Open System Interconnection)全稱開放式系統互聯參考模型。    ISO(International Organization for Standardization)全稱國際标準化組織    也有人說ISO七層次網絡模型,都是說一回事,了解為ISO這個組織制定了OSI這樣的七層網絡模型。

      OSI七層模型從下至上依次為:實體層、資料鍊路層、網絡層、傳輸層、會話層、表示層、應用層。

計算機網絡協定第一章,網絡協定基礎知識序網絡協定基礎小結參考修訂

   OSI是标準委員會推選的網絡模型,但是由于層次過于複雜目前卻未被實作,典型的作業系統BSD實作了TCP/IP四層網絡模型。之後越來越多的作業系統廠商都是以TCP/IP四層網絡模型為藍本進行實作,是以工業界的标準就是TCP/IP四層網絡模型。

TCP/IP四層網絡模型

   TCP/IP模型并不是自立門戶,推翻OSI的七層網絡模型另起鍋竈,而是将OSI的七層模型進行簡化至四層。我們看下兩種模型的對照圖。

   TCP/IP模型從下至上依次為:鍊路層、網絡層、傳輸層、應用層。

計算機網絡協定第一章,網絡協定基礎知識序網絡協定基礎小結參考修訂

   簡單描述兩者的差別,OSI模型的網絡層、傳輸層和TCP/IP模型一緻。OSI模型的實體層、鍊路層對應TCP/IP模型的鍊路層。OSI模型的會話層、表示層、應用層對應TCP/IP模型的應用層。

   可以說TCP/IP簡化的實體層和應用層,譬如HTTP協定屬于應用層協定,但是HTTP協定裡定義了會話的概念,是以是TCP/IP協定應用層有實作OSI定義的會話層。而作業系統提供者無需實作應用層,是以作業系統網絡協定棧隻需要關心鍊路層、網絡層、傳輸層的實作即可。如此TCP/IP協定大大降低作業系統協定棧的實作複雜度。是以也受到各個作業系統廠家的認同。

      至此,後續我們所描述的各個層次和各種協定都是基于TCP/IP四層模型,因為它是實際工業标準,也在真實發揮着作用。

TCP/IP協定族

鍊路層

資料機關: Frame (幀) 典型協定: 以太網協定(RFC 894) 這個不用說,大家天天在用的以太網的協定。

ARP/RARP (Address Resolution Protocol)/ (Reverse Address Resolution Protocol) 位址解析協定與逆位址解析協定。

SLIP協定(Serial Line Internet Protocol)

串行線路國家标準。

PPP協定 (Port to Port Protocol) 點對點協定,常用PPPoe(PPP over Ethernet),撥号上網使用者會用到。

LO(Loopback Interface) 環回接口,支援一台實體機上的程序通過Socket通信。常用程序通信方式。

PPTP/L2TP協定 (Point to Point Tunneling Protocol)/ (Layer 2 Tunneling Protocol)

使用VPN時候會經常用到。

不常見的協定: X.25,LAP-B,IEEE 802(RFC 1042)

重要概念: MTU(最大傳輸單元) 可以認為每個Frame的最大Bit資料,協定邏輯限制而非實體限制,限制是為了提高傳輸效率。

網絡層

資料機關:Packet (包) 典型協定: IP協定(Internet Protocol) 網際協定/網際網路協定。基礎協定。

ICMP協定 (Internet Control Message Protocol) Internet控制封包協定。常用的ping,traceroute指令就是基于該協定。

IGMP協定 (Internet Group Management Protocol) Internet組管理協定。多點傳播場景會使用到。

重要概念: 子網:網絡組網的基礎,路由的基礎。 IP路由:網絡傳輸的路由機制。 NAT: 區域網路基礎。

傳輸層

資料機關: Segment (段) 典型協定: UDP (User Datagram Protocol) 使用者資料報協定。基礎協定。

TCP(Transmission Control Protocol ) 傳輸控制協定。基礎協定。

SCTP(Stream Control Transmission Protocol)

流控制傳輸協定。

應用層

資料機關: Data(資料)

典型協定:

HTTP、FTP、DNS、SMTP、TELNET、NTP等等。

我所接觸的其他協定:

SIP、RTP、RTCP、RTSP、DDNS、UPNP等等。

小結

   計算機網絡是一個生态系統,不僅需要硬體和軟體的結合,還需要各種配套。如果從程式員角度來看,需要硬體工程師設計網絡硬體,驅動工程師開發網絡驅動,作業系統工程師開發網絡協定棧、上層軟體工程師開發出應用層服務。    我本着知識為我所有的态度,盡可能的将自己的些許了解闡述出來。以計算機網絡協定為半徑,直指網絡核心TCP/IP圓心,并不涉獵整個計算機網絡體系,而側重計算機網絡協定。

參考

《TCP/IP詳解-協定》卷一     W.Richard Stevens    

修訂

     初稿                                       2014-10-12                Simon      

繼續閱讀