A. ppp協議的工作原理
PPP(Point-to-Point Protocol點到點協議)是為在同等單元之間傳輸數據包這樣的簡單鏈路設計的鏈路層協議。這種鏈路提供全雙工操作,並按照順序傳遞數據包。設計目的主要是用來通過撥號或專線方式建立點對點連接發送數據,使其成為各種主機、網橋和路由器之間簡單連接的一種共通的解決方案。
參考:
http://www.mdtu.com/bbs/dispbbs.asp?boardid=18&id=780HDLC/PPP的幀結構
在網路通信中,「包」(Packet)和 「幀」(Frame)的概念相同,均指通信中的一個數據塊。對於具體某種通信網路,一般使用術語「幀」。一種網路的幀格式可能與另一種網路不同,通常使用術語「包」來指一般意義的幀。串列通信的數據格式有面向字元型的數據格式,如單同步、雙同步、外同步;也有面向比特型的數據格式,這以幀為單位傳輸,每幀由六個部分組成,分別是標志區、地址區、控制區、信息區、幀校驗區和標志區。
串列通信協議屬於ISO國際參考標準的第三層,數據鏈路層。數據鏈路層必須使用物理層提供給它的服務。物理層所做的工作是接收個一個原始的比特流,並准備把它交給目的地。不能保證這個比特流無差錯。所接收的比特的數量也許少於,也許等於或多於所傳遞的比特的數量,它們具有不同的值。一直要上到數據鏈路層才能進行檢測,如果需要的話,糾正錯誤。對於數據層,通常的方法是把比特流分成離散的幀,並對每一幀計算出校驗和……。當一幀到達目的地後重新計算校驗和時,如果新算出的校驗和不同於幀中所包括的值,數據鏈路層就知道出現差錯了,從而會採取措施處理差錯(即,丟棄壞幀,並發回一個差錯報告)。
數據鏈路層的任務是在兩個相鄰接點間的線路上無差錯地傳送以幀為單位的數據。每一幀包括數據和必要的控制信息。人們發現,對於經常產生誤碼的實際鏈路,只要加上合適的控制規程,就可以使通信變為比較可靠的。如IBM公司推出了著名的體系結構SNA,在SNA的數據鏈路規程採用了面向比特的規程SDLC,後來ISO把它修改後稱為HDLC,譯為高級數據鏈路控制。在INTERNET中,用戶與ISP(INTERNET服務提供者)之間的鏈路上使用得最多的協議就是SLIP和PPP。
B. ppp工作原理是什麼
PPP的工作原理:
為了建立點對點鏈路上的通信連接,發送端PPP首先發送LCP幀,以配置和測試數據鏈路。在LCP建立好數據鏈路並協調好所選設備之後,發送端PPP發送NCP幀,以選擇和配置一個或多個網路層協議。
當所選的網路層協議配置好後,便可以將各網路層協議的數據包發送到數據鏈路上。配置好後的鏈路一直保持通信狀態,直到LCP幀或NCP幀明確提示關閉鏈路,或者有其它的外部事件發生。
PPP(Public-Private Partnership),又稱PPP模式,即政府和社會資本合作,是公共基礎設施中的一種項目運作模式。在該模式下,鼓勵私營企業、民營資本與政府進行合作,參與公共基礎設施的建設。
PPP模式優點
近年來,在全球各個地區,通過多種多樣的PPP方式,私營部門在基礎設施領域的投資總體上持續快速增加。
結合全球范圍內的PPP項目實踐,PPP模式的優點主要體現:更高的經濟效率[物有所值(Value for Money)]、更高的時間效率、增加基礎設施項目的投資、提高公共部門和私營機構的財務穩健性、基礎設施/公共服務的品質得到改善、實現長遠規劃、樹立公共部門的新形象、私營機構得到穩定發展等。
C. 電腦怎樣通過互聯網傳輸數據
網路中數據傳輸過程
我們每天都在使用互聯網,我們電腦上的數據是怎麼樣通過互聯網傳輸到到另外的一台電腦上的呢?
我們知道現在的互聯網中使用的TCP/IP協議是基於,OSI(開放系統互聯)的七層參考模型的,(雖然不是完全符合)從上到下分別為 應用層 表示層 會話層 傳輸層 網路層 數據鏈路層和物理層。其中數據鏈路層又可是分為兩個子層分別為邏輯鏈路控制層(Logic Link Control,LLC )和介質訪問控制層((Media Access Control,MAC )也就是平常說的MAC層。LLC對兩個節點中的鏈路進行初始化,防止連接中斷,保持可靠的通信。MAC層用來檢驗包含在每個楨中的地址信息。在下面會分析到。還要明白一點路由器是在網路層的,而網卡在數據鏈路層。
我們知道,ARP(Address Resolution Protocol,地址轉換協議)被當作底層協議,用於IP地址到物理地址的轉換。在乙太網中,所有對IP的訪問最終都轉化為對網卡MAC地址的訪問。如果主機A的ARP列表中,到主機B的IP地址與MAC地址對應不正確,由A發往B數據包就會發向錯誤的MAC地址,當然無法順利到達B,結 果是A與B根本不能進行通信。
首先我們分析一下在同一個網段的情況。假設有兩台電腦分別命名為A和B,A需要相B發送數據的話,A主機首先把目標設備B的IP地址與自己的子網掩碼進行「與」操作,以判斷目標設備與自己是否位於同一網段內。如果目標設備在同一網段內,並且A沒有獲得與目標設備B的IP地址相對應的MAC地址信息,則源設備(A)以第二層廣播的形式(目標MAC地址為全1)發送ARP請求報文,在ARP請求報文中包含了源設備(A)與目標設備(B)的IP地址。同一網段中的所有其他設備都可以收到並分析這個ARP請求報文,如果某設備發現報文中的目標IP地址與自己的IP地址相同,則它向源設備發回ARP響應報文,通過該報文使源設備獲得目標設備的MAC地址信息。為了減少廣播量,網路設備通過ARP表在緩存中保存IP與MAC地址的映射信息。在一次 ARP的請求與響應過程中,通信雙方都把對方的MAC地址與IP地址的對應關系保存在各自的ARP表中,以在後續的通信中使用。ARP表使用老化機制,刪除在一段時間內沒有使用過的IP與MAC地址的映射關系。一個最基本的網路拓撲結構:
PC-A並不需要獲取遠程主機(PC-C)的MAC地址,而是把IP分組發向預設網關,由網關IP分組的完成轉發過程。如果源主機(PC-A)沒有預設網關MAC地址的緩存記錄,則它會通過ARP協議獲取網關的MAC地址,因此在A的ARP表中只觀察到網關的MAC地址記錄,而觀察不到遠程主機的 MAC地址。在乙太網(Ethernet)中,一個網路設備要和另一個網路設備進行直接通信,
除了知道目標設備的網路層邏輯地址(如IP地址)外,還要知道目標設備的第二層物理地址(MAC地址)。ARP協議的基本功能就是通過目標設備的IP地址,查詢目標設備的MAC地址,以保證通信的順利進行。 數據包在網路中的發送是一個及其復雜的過程,上圖只是一種很簡單的情況,中間沒有過多的中間節點,其實現實中只會比這個更復雜,但是大致的原理是一致的。
(1)PC-A要發送數據包到PC-C的話,如果PC-A沒有PC-C的IP地址,則PC-A首先要發出一個dns的請求,路由器A或者dns解析伺服器會給PC-A回應PC-C的ip地址,這樣PC-A關於數據包第三層的IP地址信息就全了:源IP地址:PC-A,目的ip地址:PC-C。
(2)接下來PC-A要知道如何到達PC-C,然後,PC-A會發送一個arp的地址解析請求,發送這個地址解析請求,不是為了獲得目標主機PC-C的MAC地址,而是把請求發送到了路由器A中,然後路由器A中的MAC地址會發送給源主機PC-A,這樣PC-A的數據包的第二層信息也全了,源MAC地址:PC-A的MAC地址,目的MAC地址:路由器A的MAC地址,
(3)然後數據會到達交換機A,交換機A看到數據包的第二層目的MAC地址,是去往路由器A的,就把數據包發送到路由器A,路由器A收到數據包,首先查看數據包的第三層ip目的地址,如果在自己的路由表中有去往PC-C的路由,說明這是一個可路由的數據包。 (4)然後路由器進行IP重組和分組的過程。首先更換此數據包的第二層包頭信息,路由器PC-A到達PC—C要經過一個廣域網,在這里會封裝很多廣域網相關的協議。其作用也是為了找下一階段的信息。同時對第二層和第三層的數據包重校驗。把數據經過Internet發送出去。最後經過很多的節點發送到目標主機PC_C中。
現在我們想一個問題,PC-A和PC-C的MAC地址如果是相同的話,會不會影響正常的通訊呢!答案是不會影響的,因為這兩個主機所處的區域網被廣域網分隔開了,通過對發包過程的分析可以看出來,不會有任何的問題。而如果在同一個區域網中的話,那麼就會產生通訊的混亂。當數據發送到交換機是,這是的埠信息會有兩個相同的MAC地址,而這時數據會發送到兩個主機上,這樣信息就會混亂。因此這也是保證MAC地址唯一性的一個理由。
我暫且按我的理解說說吧。
先看一下計算機網路OSI模型的七個層次:
┌—————┐
│ 應用層 │←第七層
├—————┤
│ 表示層 │
├—————┤
│ 會話層 │
├—————┤
│ 傳輸層 │
├—————┤
│ 網路層 │
├—————┤
│數據鏈路層│
├—————┤
│ 物理層 │←第一層
└—————┘
而我們現在用的網路通信協議TCP/IP協議者只劃分了四成:
┌—————┐
│ 應用層 │ ←包括OSI的上三層
├—————┤
│ 傳輸層 │
├—————┤
│ 網路層 │
├—————┤
│網路介面層 │←包括OSI模型的下兩層,也就是各種不同區域網。
└—————┘
兩台計算機通信所必須需要的東西:IP地址(網路層)+埠號(傳送層)。
兩台計算機通信(TCP/IP協議)的最精簡模型大致如下:
主機A---->路由器(零個或多個)---->主機B
舉個例子:主機A上的應用程序a想要和主機B上面的應用程序b通信,大致如下
程序a將要通信的數據發到傳送層,在傳送層上加上與該應用程序對應的通信埠號(主機A上不同的應用程序有不同的埠號),如果是用的TCP的話就加上TCP頭部,UDP就加上UDP頭部。
在傳送成加上頭部之後繼續嚮往下傳到網路層,然後加上IP頭部(標識主機地址以及一些其他的數據,這里就不詳細說了)。
然後傳給下層到數據鏈路層封裝成幀,最後到物理層變成二進制數據經過編碼之後向外傳輸。
在這個過程中可能會經過許多各種各樣的區域網,舉個例子:
主機A--->(區域網1--->路由器--->區域網2)--->主機B
這個模型比上面一個稍微詳細點,其中括弧裡面的可以沒有也可能有一個或多個,這個取決於你和誰通信,也就是主機B的位置。
主機A的數據已經到了具體的物理介質了,然後經過區域網1到了路由器,路由器接受主機A來的數據先經過解碼,還原成數據幀,然後變成網路層數據,這個過程也就是主機A的數據經過網路層、數據鏈路層、物理層在路由器上面的一個反過程。
然後路由器分析主機A來的數據的IP頭部(也就是在主機A的網路層加上的數據),並且修改頭部中的一些內容之後繼續把數據傳送出去。
一直到主機B收到數據為止,主機B就按照主機A處理數據的反過程處理數據,直到把數據交付給主機B的應用程序b。完成主機A到主機B的單方向通信。
這里的主機A、B只是為了書寫方便而已,可能通信的雙方不一定就是個人PC,伺服器與主機,主機與主機,伺服器與伺服器之間的通信大致都是這樣的。
再舉個例子,我們開網頁上網路:
就是我們的主機瀏覽器的這個應用程序和網路的伺服器之間的通信。應用成所用的協議就是HTTP,而伺服器的埠號就是熟知埠號80.
大致過程就是上面所說,其中的細節很復雜,任何一個細節都可以寫成一本書,對於非專業人員也沒有必要深究。
D. 有關PPP(點對點協議)的參考資料
點對點協議(PPP)為在點對點連接上傳輸多協議數據包提供了一個標准方法。PPP 最初設計是為兩個對等節點之間的 IP 流量傳輸提供一種封裝協議。在 TCP-IP 協議集中它是一種用來同步調制連接的數據鏈路層協議(OSI 模式中的第二層),替代了原來非標準的第二層協議,即 SLIP。除了 IP 以外 PPP 還可以攜帶其它協議,包括 DECnet 和 Novell 的 Internet 網包交換(IPX)。
PPP 主要由以下幾部分組成:
封裝:一種封裝多協議數據報的方法。PPP 封裝提供了不同網路層協議同時在同一鏈路傳輸的多路復用技術。PPP 封裝精心設計,能保持對大多數常用硬體的兼容性。
鏈路控制協議:PPP 提供的 LCP 功能全面,適用於大多數環境。LCP 用於就封裝格式選項自動達成一致,處理數據包大小限制,探測環路鏈路和其他普通的配置錯誤,以及終止鏈路。LCP 提供的其他可選功能有:認證鏈路中對等單元的身份,決定鏈路功能正常或鏈路失敗情況。
網路控制協議:一種擴展鏈路控制協議,用於建立、配置、測試和管理數據鏈路連接。
配置:使用鏈路控制協議的簡單和自製機制。該機制也應用於其它控制協議,例如:網路控制協議(NCP)。
為了建立點對點鏈路通信,PPP 鏈路的每一端,必須首先發送 LCP 包以便設定和測試數據鏈路。在鏈路建立,LCP 所需的可選功能被選定之後,PPP 必須發送 NCP 包以便選擇和設定一個或更多的網路層協議。一旦每個被選擇的網路層協議都被設定好了,來自每個網路層協議的數據報就能在鏈路上發送了。
鏈路將保持通信設定不變,直到有 LCP 和 NCP 數據包關閉鏈路,或者是發生一些外部事件的時候(如,休止狀態的定時器期滿或者網路管理員干涉)。
協議結構
8 16 24 40 bits Variable… 16-32 bits
Flag Address Control Protocol Information FCS
Flag ― 表示幀的起始或結束,由二進制序列01111110構成。
Address ― 包括二進制序列11111111,標准廣播地址(注意:PPP 不分配個人站地址)
Control ― 二進制序列00000011,要求用戶數據傳輸採用無序幀。
Protocol ― 識別幀的 Information 欄位封裝的協議。
Information ― 0或更多八位位元組,包含 Protocol 欄位中指定的協議數據報。
FCS ― 幀校驗序列(FCS)欄位,通常為16位。PPP 的執行可以通過預先協議採用32位 FCS 來提高差錯檢測效果。