伺服器如何傳輸網路技術
㈠ 一台電腦向伺服器上傳輸數據的方法
最簡單的就是直接伺服器開個小窗口,從本地電腦直接拉進去。另外的話就是可以在本地和伺服器個上一個QQ,互相對傳文件,這些都是文件比較小的時候,
如果文件比較大的話,就是用FPT吧 專業的伺服器傳輸數據工具
㈡ 計算機是如何進行網路通信的
網路通信的實現
在發送端(即一個發送終端,其實也是一台計算機)首先要把傳送的信息(如話音,圖像)變成電信號,然後調制到激光器發出的激光束上,使光的強度隨電信號的幅度(頻率)變化而變化;轉換成數字信號(數字信號:二位制010101010),然後通過調制送入光纖,並通過光纖發送出去到接收端(另一台計算機),先解調,然後DA轉換,最後信號放大在接收端,檢測器收到光信號後把它變換成電信號,經解調後恢復原信息。其傳導送度解決了多信號數字傳輸在一根細光纖下完成。
光速傳輸,其傳輸容量非常之大,是金屬導體無法相比的,在光纖的兩端分別都裝有「光貓」進行信號轉換。 其特點是傳輸容量大,傳輸質量好,損耗小,互不幹擾,中繼距離長等。光纖傳輸使用的是波分復用,即是把小區里的多個用戶的數據分別調製成不同波長的光信號在一根光纖里傳輸。
我們看到的接到電腦上的細銅線是接收端變為電信號後的末端介面傳輸,已經不是光纖部分了。
我們常聽說到「伺服器」,伺服器是一個能夠存儲大量信息的中轉裝置,其實也是一台功能強大的計算機,(區域網用小型伺服器和我們台式機的主機箱外觀它基本一樣,是通過路由器分線接入的)。把連接到上面的計算機所發送到出的信號(文本、音訊、圖像等)按照一定的地址存儲起來,當某個計算機要找某個內容的文件時,識別系統(瀏覽器)就可以根據關鍵詞找到地址並鏈接打開。所有客戶終端都要經過伺服器來調取和存入信息,並由伺服器歸類分裝分發。
計算機處理的信號都是數字,即 0 和 1 .舉個簡單的例子 漢字「網」在計算機里只是一組數字假如是:1000110010100110.這樣一組代碼,當你用鍵盤輸入「網」字時,計算機是按照一組數字處理並傳送的,另一台計算機收到這組數字後,經轉換顯示還原為「網」(人可以識別的記號)就可以通訊了。其它如音訊、圖像也是一樣的。另外一些發達國家已經開通數字電視的傳送,由於數字不受干擾,傳送信息不會丟失,電視圖像逼真。
㈢ 一個數據在TCP/IP協議中從信源到信宿是怎樣傳輸的
1:計算機網路是一種地理上分散、具有獨立功能的多台計算機通過軟、硬體設備互連,以實現資源共享和信息交換的系統。計算機網路必須有以下三個要素:
兩台或兩台以上獨立的計算機互連接起來才能構成網路,達到資源共享目的。
計算機之間要用通信設備和傳輸介質連接起來。
計算機之間要交換信息,彼此就需要一個統一的規則,這個規則成為「網路協議」(Protocol TCP/IP)。網路中的計算機必須有網路協議。
2:金橋工程、金關工程和金卡工程
3:計算機網路的功能主要體現在三個方面:信息交換、資源共享、分布式處理。
⑴信息交換
這是計算機網路最基本的功能,主要完成計算機網路中各個節點之間的系統通信。用戶可以在網上傳送電子郵件、發布新聞消息、進行電子購物、電子貿易、遠程電子教育等。
⑵資源共享
所謂的資源是指構成系統的所有要素,包括軟、硬體資源,如:計算處理能力、大容量磁碟、高速列印機、繪圖儀、通信線路、資料庫、文件和其他計算機上的有關信息。由於受經濟和其他因素的制約,這些資源並非(也不可能)所有用戶都能獨立擁有,所以網路上的計算機不僅可以使用自身的資源,也可以共享網路上的資源。因而增強了網路上計算機的處理能力,提高了計算機軟硬體的利用率。
⑶分布式處理
一項復雜的任務可以劃分成許多部分,由網路內各計算機分別協作並行完成有關部分,使整個系統的性能大為增強。
4:包括軟、硬體資源,如:計算處理能力、大容量磁碟、高速列印機、繪圖儀、通信線路、資料庫、文件和其他計算機上的有關信息。由於受經濟和其他因素的制約,這些資源並非(也不可能)所有用戶都能獨立擁有,所以網路上的計算機不僅可以使用自身的資源,也可以共享網路上的資源。因而增強了網路上計算機的處理能力,提高了計算機軟硬體的利用率
5:
通信是指信息的傳輸,通信具有三個基本要素:
信源:信息的發送者;信宿:信息的接收者;載體:信息的傳輸媒體。
通信系統基本組成部分見下圖:
信源:
發送各種信息(語言、文字、圖像、數據)的信息源,如人、機器、計算機等。
信道:
信號的傳輸載體。從形式上看,主要有有線信道和無線信道兩類;從傳輸方式上看,信道又可分為模擬信道和數字信道兩類。
信宿:
信息的接收者,可以是人、機器、計算機等;
變換器:
將信源發出的信息變換成適合在信道上傳輸的信號。對應不同的信源和信道,變換器有著不同的組成和變換功能。如計算機通信中的數據機就是一種變換器。
反變換器
提供與變換器相反的功能,將從信道上接收的電(或光)信號變換成信宿可以接收的信息。
雜訊源:
通信系統中不能忽略雜訊的影響,通信系統的雜訊可能來自於各個部分,包括發送或接收信息的周圍環境、各種設備的電子器件,信道外部的電磁場干擾等。
6:非同步傳輸:數據以字元為傳輸單位,字元發送時間是非同步的,即後一字元的發送時間與前一字元的發送時間無關。時序或同步僅在每個字元的范圍內是必須的,接收機可以在每個新字元開始是抓住再同步的機會。同步傳輸:以比
特塊為單位進行傳輸,發送器與接收機之間通過專門的時鍾線路或把同步信號嵌入數字信號進行同步。非同步傳輸需要至少20%以上的開銷,同步傳輸效率遠遠比非同步傳輸高。
7:數據傳輸速率是描述數據傳輸系統的重要技術指標之一。數據傳輸速率在數值上等於每秒種傳輸構成數據代碼的二進制比特數,單位為比特/秒(bit/second),記作bps。對於二進制數據,數據傳輸速率為:
S=1/T(bps)
其中,T為發送每一比特所需要的時間。例如,如果在通信信道上發送一比特0、1信號所需要的時間是0.001ms,那麼信道的數據傳輸速率為1 000 000bps。
在實際應用中,常用的數據傳輸速率單位有:kbps、Mbps和Gbps。其中:
1kbps=103bps 1Mbps=106kbps 1Gbps=109bps
帶寬與數據傳輸速率
在現代網路技術中,人們總是以「帶寬」來表示信道的數據傳輸速率,「帶寬」與「速率」幾乎成了同義詞。信道帶寬與數據傳輸速率的關系可以奈奎斯特(Nyquist)准則與香農(Shanon)定律描述。
奈奎斯特准則指出:如果間隔為π/ω(ω=2πf),通過理想通信信道傳輸窄脈沖信號,則前後碼元之間不產生相互竄擾。因此,對於二進制數據信號的最大數據傳輸速率Rmax與通信信道帶寬B(B=f,單位Hz)的關系可以寫為:
Rmax=2.f(bps)
對於二進制數據若信道帶寬B=f=3000Hz,則最大數據傳輸速率為6000bps。
奈奎斯特定理描述了有限帶寬、無雜訊信道的最大數據傳輸速率與信道帶寬的關系。香農定理則描述了有限帶寬、有隨機熱雜訊信道的最大傳輸速率與信道帶寬、信噪比之間的關系。
香農定理指出:在有隨機熱雜訊的信道上傳輸數據信號時,數據傳輸速率Rmax與信道帶寬B、信噪比S/N的關系為:
Rmax=B.log2(1+S/N)
式中,Rmax單位為bps,帶寬B單位為Hz,信噪比S/N通常以dB(分貝)數表示。若S/N=30(dB),那麼信噪比根據公式:
S/N(dB)=10.lg(S/N)
可得,S/N=1000。若帶寬B=3000Hz,則Rmax≈30kbps。香農定律給出了一個有限帶寬、有熱雜訊信道的最大數據傳輸速率的極限值。它表示對於帶寬只有3000Hz的通信信道,信噪比在30db時,無論數據採用二進制或更多的離散電平值表示,都不能用越過0kbps的速率傳輸數據。
因此通信信道最大傳輸速率與信道帶寬之間存在著明確的關系,所以人們可以用「帶寬」去取代「速率」。例如,人們常把網路的「高數據傳輸速率」用網路的「高帶寬」去表述。因此「帶寬」與「速率」在網路技術的討論中幾乎成了同義詞。
帶寬:信號傳輸頻率的最大值和最小值之差(Hz)。信道容量:單位時間內傳輸的最大碼元數(Baud),或單位時間內傳輸的最大二進制數(b/s)。數據傳輸速率:每秒鍾傳輸的二進制數(b/s)。
帶寬 :信道可以不失真地傳輸信號的頻率范圍。為不同應用而設計的傳輸媒體具有不同的信道質量,所支持的帶寬有所不同。
信道容量:信道在單位時間內可以傳輸的最大信號量,表示信道的傳輸能力。信道容量有時也表示為單位時間內可傳輸的二進制位的位數(稱信道的數據傳輸速率,位速率),以位/秒(b/s)形式予以表示,簡記為bps。
數據傳輸率:信道在單位時間內可以傳輸的最大比特數。信道容量和信道帶寬具有正比的關系:帶寬越大,容量越大。(這句話是說,信道容量只是在受信噪比影響的情況下的信息傳輸速率
8:6000bps*30
9: 基帶傳輸又叫數字傳輸,是指把要傳輸的數據轉換為數字信號,使用固定的頻率在信道上傳輸。例如計算機網路中的信號就是基帶傳輸的。 和基帶相對的是頻帶傳輸,又叫模擬傳輸,是指信號在電話線等這樣的普通線路上,以正弦波形式傳播的方式。我們現有的電話、模擬電視信號等,都是屬於頻帶傳輸
在數字傳輸系統中,其傳輸對象通常是二進制數字信息,它可能來自計算機、網路或其它數字設備的各種數字代碼。也可能來自數字電話終端的脈沖編碼信號,設計數字傳輸系統的基本考慮是選擇一組有限的離散的波形來表示數字信息。這些離散波形可以是未經調制的不同電平信號,也可以是調制後的信號形式。由於未經調制的脈沖電信號所佔據的頻帶通常從直流和低頻開始。因而稱為數字基帶信號。在某些有線信道中,特別是傳輸距離不大遠的情況下,數字基帶信號可以直接傳送,我們稱之為數字信號的基帶傳輸
上面的傳輸方式適用於一個單位內部的區域網傳輸,但除了市內的線路之外,長途線路是無法傳送近似於0的分量的,也就是說,在計算機的遠程通信中,是不能直接傳輸原始的電脈沖信號的(也就是基帶信號了)。因此就需要利用頻帶傳輸,就是用基帶脈沖對載波波形的某些參量進行控制,使這些參量隨基帶脈沖變化,這就是調制。經過調制的信號稱為已調信號。已調信號通過線路傳輸到接收端,然後經過解調恢復為原始基帶脈沖。這種頻帶傳輸不僅克服了目前許多長途電話線路不能直接傳輸基帶信號的缺點,而且能實現多路復用的目的,從而提高了通信線路的利用率。不過頻帶傳輸在發送端和接收端都要設置數據機
10.
0 1 0 1 1 0 1 0
1 1 1 0 0 0 0(1)
0 0 0(0)1 1 0 0
1 0(0)1 1 1 0 1
0 0 0 0(1)0 1(0)
11. 優點:1.促進標准化工作,允許各供應商進行開發。2.各層相互獨立,把 網路操作分成低復雜性單元。3.靈活性好,某一層的變化不會影響到別層,設計者可專心設計和開發模塊功能。4.各層間通過一個介面在相鄰層上下通信
原則:計算機網路體系結構的分層思想主要遵循以下幾點原則:
1.功能分工的原則:即每一層的劃分都應有它自己明確的與其他層不同的基本功能。
2.隔離穩定的原則:即層與層的結構要相對獨立和相互隔離,從而使某一層內容或結構的變化對其他層的影響小,各層的功能、結構相對穩定。
3.分支擴張的原則:即公共部分與可分支部分劃分在不同層,這樣有利於分支部分的靈活擴充和公共部分的相對穩定,減少結構上的重復。
4.方便實現的原則:即方便標准化的技術實現。
12:七層參考模型 第1層:物理層 第2層:數據鏈路層 第3層:網路層
第4層:傳輸層 第5層:會話層 第6層:表示層 第7層:應用層
13: MAC(Media Access Control, 介質訪問控制)MAC地址是燒錄在Network Interface Card(網卡,NIC)里的.MAC地址,也叫硬體地址,是由48比特長(6位元組),16進制的數字組成.0-23位是由廠家自己分配.24-47位,叫做組織唯一標志符(organizationally unique ,是識別LAN(區域網)節點的標識
IP是 OSI參考模型中的3層設備使用的 全球唯一的32位 點分10進制地址. 分A B C D E 5類. A B C是用於互聯網的. D是廣播地址. E是實驗室預留的地址. IP地址相當於個人ID,是標識的作用
通過tcp/ip協議
14:「面向連接」就是在正式通信前必須要與對方建立起連接。比如你給別人打電話,必須等線路接通了、對方拿起話筒才能相互通話。
TCP(Transmission Control Protocol,傳輸控制協議)是基於連接的協議,也就是說,在正式收發數據前,必須和對方建立可靠的連接。一個TCP連接必須要經過三次「對話」才能建立起來,其中的過程非常復雜,我們這里只做簡單、形象的介紹,你只要做到能夠理解這個過程即可。我們來看看這三次對話的簡單過程:主機A向主機B發出連接請求數據包:「我想給你發數據,可以嗎?」,這是第一次對話;主機B向主機A發送同意連接和要求同步(同步就是兩台主機一個在發送,一個在接收,協調工作)的數據包:「可以,你什麼時候發?」,這是第二次對話;主機A再發出一個數據包確認主機B的要求同步:「我現在就發,你接著吧!」,這是第三次對話。三次「對話」的目的是使數據包的發送和接收同步,經過三次「對話」之後,主機A才向主機B正式發送數據。
TCP協議能為應用程序提供可靠的通信連接,使一台計算機發出的位元組流無差錯地發往網路上的其他計算機,對可靠性要求高的數據通信系統往往使用TCP協議傳輸數據。
面向非連接的UDP協議
「面向非連接」就是在正式通信前不必與對方先建立連接,不管對方狀態就直接發送。這與現在風行的手機簡訊非常相似:你在發簡訊的時候,只需要輸入對方手機號就OK了。
UDP(User Data Protocol,用戶數據報協議)是與TCP相對應的協議。它是面向非連接的協議,它不與對方建立連接,而是直接就把數據包發送過去!
UDP適用於一次只傳送少量數據、對可靠性要求不高的應用環境。比如,我們經常使用「ping」命令來測試兩台主機之間TCP/IP通信是否正常,其實「ping」命令的原理就是向對方主機發送UDP數據包,然後對方主機確認收到數據包,如果數據包是否到達的消息及時反饋回來,那麼網路就是通的。例如,在默認狀態下,一次「ping」操作發送4個數據包(如圖2所示)。大家可以看到,發送的數據包數量是4包,收到的也是4包(因為對方主機收到後會發回一個確認收到的數據包)。這充分說明了UDP協議是面向非連接的協議,沒有建立連接的過程。正因為UDP協議沒有連接的過程,所以它的通信效果高;但也正因為如此,它的可靠性不如TCP協議高。QQ就使用UDP發消息,因此有時會出現收不到消息的情況。
TCP協議和UDP協議各有所長、各有所短,適用於不同要求的通信環境。
15:物理層:物理層(Physical layer)是參考模型的最低層。該層是網路通信的數據傳輸介質,由連接不同結點的電纜與設備共同構成。主要功能是:利用傳輸介質為數據鏈路層提供物理連接,負責處理數據傳輸並監控數據出錯率,以便數據流的透明傳輸。
數據鏈路層:數據鏈路層(Data link layer)是參考模型的第2層。 主要功能是:在物理層提供的服務基礎上,在通信的實體間建立數據鏈路連接,傳輸以「幀」為單位的數據包,並採用差錯控制與流量控制方法,使有差錯的物理線路變成無差錯的數據鏈路。
網路層:網路層(Network layer)是參考模型的第3層。主要功能是:為數據在結點之間傳輸創建邏輯鏈路,通過路由選擇演算法為分組通過通信子網選擇最適當的路徑,以及實現擁塞控制、網路互聯等功能。
傳輸層:傳輸層(Transport layer)是參考模型的第4層。主要功能是向用戶提供可靠的端到端(End-to-End)服務,處理數據包錯誤、數據包次序,以及其他一些關鍵傳輸問題。傳輸層向高層屏蔽了下層數據通信的細節,因此,它是計算機通信體系結構中關鍵的一層。
會話層:會話層(Session layer)是參考模型的第5層。主要功能是:負責維擴兩個結點之間的傳輸鏈接,以便確保點到點傳輸不中斷,以及管理數據交換等功能。
表示層:表示層(Presentation layer)是參考模型的第6層。主要功能是:用於處理在兩個通信系統中交換信息的表示方式,主要包括數據格式變換、數據加密與解密、數據壓縮與恢復等功能。
應用層:應用層(Application layer)是參考模型的最高層。主要功能是:為應用軟體提供了很多服務,例如文件伺服器、資料庫服務、電子郵件與其他網路軟體服務。
16。CSMA/CD(Carrier Sense Multiple Access/Collision Detection)帶沖突檢測的載波監聽多路訪問協議。分為非堅持型監聽演算法、1-堅持型監聽演算法和P-堅持型監聽演算法。
在區域網上,經常是在一條傳輸介質上連有多台計算機,如匯流排型和環型區域網,大家共享使用一條傳輸介質,而一條傳輸介質在某一時間內只能被一台計算機所使用,那麼在某一時刻到底誰能使用或訪問傳輸介質呢?這就需要有一個共同遵守的方法或原則來控制、協調各計算機對傳輸介質的同時訪問,這種方法,這種方法就是協議或稱為介質訪問控制方法。目前,在區域網中常用的傳輸介質訪問方法有:以太(Ethernet)方法、令牌(Token Ring)、FDDE方法、非同步傳輸模式(ATM)方法等,因此可以把區域網分為乙太網(Ethernet)、令牌網(Token Ring)、FDDE網、ATM網等
17:區域網的拓撲(Topology)結構是指網路中各節點的互連構型,也就是區域網的布線方式。常見的拓撲結構有星型、匯流排型及環型等。
18:共享式的話,通過匯流排這一共享介質使PC全部連通.
交換式區域網是用機與機之間,通過VLAN(虛擬區域網)劃分不同的網段.
從而使同一網段的PC可以通信,
最後有三點不同,
.數據轉發給哪個埠,交換機基於MAC地址作出決定,集線器根本不做決定,而是將數據轉發給所有埠.數據在交換機內部可以採用獨立路徑,在集線器中所有的數據都可以在所有的路徑上流動.
2.集線器所有埠共享一個帶寬,交換即每個埠有自己獨立的帶寬,互不影響.
3.集線器所有埠均是同一個沖突域,而交換機每個埠下是一 個獨立的沖突域
19:5-4-3規則,是指任意兩台計算機間最多不能超過5段線(既包括集線器到集線器的連接線纜,也包括集線器到計算機間的連接線纜)、4台集線器,並且只能有3台集線器直接與計算機等網路設備連接。
20:CSMA/CD(Carrier Sense Multiple Access/Collision Derect),即載波監聽多路訪問/沖突檢測方法是一種爭用型的介質訪問控制協議。它起源於美國夏威夷大學開發的ALOHA網所採用的爭用型協議,並進行了改進,使之具有比ALOHA協議更高的介質利用率。
CSMA/CD是一種分布式介質訪問控制協議,網中的各個站(節點)都能獨立地決定數據幀的發送與接收。每個站在發送數據幀之前,首先要進行載波監聽,只有介質空閑時,才允許發送幀。這時,如果兩個以上的站同時監聽到介質空閑並發送幀,則會產生沖突現象,這使發送的幀都成為無效幀,發送隨即宣告失敗。每個站必須有能力隨時檢測沖突是否發生,一旦發生沖突,則應停止發送,以免介質帶寬因傳送無效幀而被白白浪費,然後隨機延時一段時間後,再重新爭用介質,重發送幀。CSMA/CD協議簡單、可靠,其網路系統(如Ethernet)被廣泛使用
21:只需給出一個判斷,若是獨立IP,則返回TRUE,若不是,則返回FALSE……
22:1.基本地址格式
現在的IP網路使用32位地址,以點分十進製表示,如172.16.0.0。地址格式為:IP地址=網路地址+主機地址 或 IP地址=主機地址+子網地址+主機地址。
網路地址是由Internet權力機構(InterNIC)統一分配的,目的是為了保證網路地址的全球唯一性。主機地址是由各個網路的系統管理員分配。因此,網路地址的唯一性與網路內主機地址的唯一性確保了IP地址的全球唯一性。
2.保留地址的分配
根據用途和安全性級別的不同,IP地址還可以大致分為兩類:公共地址和私有地址。公用地址在Internet中使用,可以在Internet中隨意訪問。私有地址只能在內部網路中使用,只有通過代理伺服器才能與Internet通信。
公用IP地址被分為基本三類。
Class A 1.0.0.0-126.255.255.255
Class B 128.0.0.0-191.255.255.255
Class C 192.0.0.0 -255.255.255.255
這三個基本類決定了你可以擁有多少的次網路(subnets) 和連接多少的用戶(devices)(伺服器,網關,列印機,電腦等)
Class A 擁有3個host.
Class B 擁有2個host.
Class C 擁有1個host.
Class A 可以適用於超級大公司或者政府機關
Class B 可以適用於普通的集團公司或者學校
Class C 可以適用於一般公司
一個機構或網路要連入Internet,必須申請公用IP地址。但是考慮到網路安全和內部實驗等特殊情況,在IP地址中專門保留了三個區域作為私有地址,其地址范圍如下:
10.0.0.0/8:10.0.0.0~10.255.255.255
172.16.0.0/12:172.16.0.0~172.31.255.255
192.168.0.0/16:192.168.0.0~192.168.255.255
使用保留地址的網路只能在內部進行通信,而不能與其他網路互連。因為本網路中的保留地址同樣也可能被其他網路使用,如果進行網路互連,那麼尋找路由時就會因為地址的不唯一而出現問題。但是這些使用保留地址的網路可以通過將本網路內的保留地址翻譯轉換成公共地址的方式實現與外部網路的互連。這也是保證網路安全的重要方法之一。
23:
平常使用的IP地址,基本上是A、B、C三類,這三類地址都有各自的默認子網掩碼,如果更改默認的子網掩碼,使IP地址中原來應該是用來表示主機的位現在用於表示網路號,這些「借用」的主機位就是子網位,可用於表示不同的子網號,從而就是在原來的網路中生成了不同的「子」網。原本劃分子網的目的是充分利用IP地址資源,不過現在也用於其他更多的目的。這樣的劃分子網是純邏輯層面的,在第三層(網路層)實施的分隔手段,只與使用TCP/IP協議進行通信的應用有關,也即是說,即使兩台機器不在同一子網,仍可使用其他協議(如IPX)通信,而且各機器如果有權力修改IP地址的話,隨時可以改變自己的IP,使自己位於不同子網中,而虛擬區域網(VLAN)是在第二層(數據鏈路層)實施的分隔,與協議無關,不同VLAN中的機器,如果沒有到達其他VLAN的路由,無論如何更改協議地址,都仍然無法與其他VLAN中的機器通信。
子網掩碼是一個32位地址,用於屏蔽IP地址的一部分以區別網路標識和主機標識,並說明該IP地址是在區域網上,還是在遠程網上
24:域名是Internet網路上的一個伺服器或一個網路系統的名字,在全世界,沒有重復的域名域名具有唯一性。從技術上講,域名只是一個Internet中用於解決地址對應問題的一種方法。可以說只是一個技術名詞。但是,由於Internet已經成為了全世界人的Internet,域名也自然地成為了一個社會科學名詞
㈣ 計算機網路數據傳輸如何實現,有哪些硬體設施
你是來找老師布置的作業的吧 o(∩_∩)o...
物理網路上的數據傳輸的實現:
我們可以認為是這樣的:
數據被分成一個一個的包(Packet)
發送端:
1) 包的數據頭(或數據尾)被第一層協議(比如TFTP協議) 加上第一層應用層協議數據;
2) 然後整個包(包括內部加入的TFTP 信息頭)被下層協議再次包裝(比如UDP),
3) 再這之後數據包會再次被下層協議包裝(比如IP 協議),
4) 最後是被最底層的硬體層(物理層)包裝上最後一層信息(Ethernet 信息頭)。
當接受端的計算機接收到這個包後,
1) 硬體首先剝去數據包中的Ethernet 信息頭,
2) 然後內核在剝去IP 和UDP 信息頭,
3) 最後把數據包提交給TFTP 應用程序,由TFTP 剝去TFTP信息頭,最後得到了原始數據
硬體設施:
計算機網路的硬體系統通常由五部分組成:文件伺服器、工作站(包括終端)、傳輸介質、網路連接硬體和外部設備。文件伺服器一般要求是配備了高性能CPU系統的微機,它充當網路的核心。除了管理整個網路上的事務外,它還必須提供各種資源和服務。而工作站可以說是一種智能型終端,它從文件伺服器取出程序和數據後,能在本站進行處理,一般有有盤和無盤之分。接下來談談傳輸介質,它是通信網路中發送方和接受方之間的物理通路,在區域網中就是用來連接伺服器和工作站的電纜線.目前常用的網路傳輸介質有雙絞線(多用於區域網)、同軸電纜和光纜等.常用的網路連接硬體有網路介面卡(NIC)、集線器(HUB)、中繼器(Repeater)以及數據機(Modem)等。而列印機、掃描儀、繪圖儀以及其它任何可為工作站共享的設備都能被稱為外部設備。
㈤ 將一個網路數據傳輸到伺服器並在瀏覽器端顯示出來需要如何去做,這個伺服器是怎麼做出來的,是一個編程後
很簡單,如果你會任何一種伺服器語言就會覺得很簡單。實際上只需要使用表單或者ajax技術就行。
表單技術,使用html的<form>標簽,指定action,例如我使用的是php語言,指定action為result.php,表單裡面的內容就會發送到result.php這個腳本,直接進行處理輸出就行了。
ajax技術,使用html加上javascript,利用XMLHttpRequest(),send()就行了
使用jquery的ajax技術,篇幅有限,不講這個
二者區別在於是否非同步,也就是是否需要打開新頁面。
推薦使用第一種。
㈥ 兩台作為伺服器的設備,如何實現數據傳輸
用一個交換機就可以的
或者用一根網線連接成內網就可以傳輸的
希望可以幫上您
㈦ 如何通過WebSocket連接伺服器進行數據傳輸
WebSocket是HTML5開始提供的一種瀏覽器與伺服器間進行全雙工通訊的網路技術。在WebSocket API中,瀏覽器和伺服器只需要做一個握手的動作,然後,瀏覽器和伺服器之間就形成了一條快速通道。兩者之間就直接可以數據互相傳送。
Cocos2d-x引擎集成libwebsockets,並在libwebsockets的客戶端API基礎上封裝了一層易用的介面,使得引擎在C++, JS, Lua層都能方便的使用WebSocket來進行游戲網路通訊。
引擎支持最新的WebSocket Version 13。
在C++中使用
詳細代碼可參考引擎目錄下的/samples/Cpp/TestCpp/Classes/ExtensionsTest/NetworkTest/WebSocketTest.cpp文件。
頭文件中的准備工作
首先需要include WebSocket的頭文件。
#include "network/WebSocket.h"
cocos2d::network::WebSocket::Delegate定義了使用WebScocket需要監聽的回調通知介面。使用WebSocket的類,需要public繼承這個Delegate。
class WebSocketTestLayer : public cocos2d::Layer, public cocos2d::network::WebSocket::Delegate
並Override下面的4個介面:
virtual void onOpen(cocos2d::network::WebSocket* ws);
virtual void onMessage(cocos2d::network::WebSocket* ws, const cocos2d::network::WebSocket::Data& data);
virtual void onClose(cocos2d::network::WebSocket* ws);
virtual void onError(cocos2d::network::WebSocket* ws, const cocos2d::network::WebSocket::ErrorCode& error);
後面我們再詳細介紹每個回調介面的含義。
新建WebSocket並初始化
WebSocket.org 提供了一個專門用來測試WebSocket的伺服器"ws://echo.websocket.org"。 測試代碼以鏈接這個伺服器為例,展示如何在Cocos2d-x中使用WebSocket。
新建一個WebSocket:
cocos2d::network::WebSocket* _wsiSendText = new network::WebSocket();
init第一個參數是delegate,設置為this,第二個參數是伺服器地址。 URL中的"ws://"標識是WebSocket協議,加密的WebSocket為"wss://".
_wsiSendText->init(*this, "ws://echo.websocket.org")
WebSocket消息監聽
在調用send發送消息之前,先來看下4個消息回調。
onOpen
init會觸發WebSocket鏈接伺服器,如果成功,WebSocket就會調用onOpen,告訴調用者,客戶端到伺服器的通訊鏈路已經成功建立,可以收發消息了。
void WebSocketTestLayer::onOpen(network::WebSocket* ws)
{
if (ws == _wsiSendText)
{
_sendTextStatus->setString("Send Text WS was opened.");
}
}
onMessage
network::WebSocket::Data對象存儲客戶端接收到的數據, isBinary屬性用來判斷數據是二進制還是文本,len說明數據長度,bytes指向數據。
void WebSocketTestLayer::onMessage(network::WebSocket* ws, const network::WebSocket::Data& data)
{
if (!data.isBinary)
{
_sendTextTimes++;
char times[100] = {0};
sprintf(times, "%d", _sendTextTimes);
std::string textStr = std::string("response text msg: ")+data.bytes+", "+times;
log("%s", textStr.c_str());
_sendTextStatus->setString(textStr.c_str());
}
}
onClose
不管是伺服器主動還是被動關閉了WebSocket,客戶端將收到這個請求後,需要釋放WebSocket內存,並養成良好的習慣:置空指針。
void WebSocketTestLayer::onClose(network::WebSocket* ws)
{
if (ws == _wsiSendText)
{
_wsiSendText = NULL;
}
CC_SAFE_DELETE(ws);
}
onError
客戶端發送的請求,如果發生錯誤,就會收到onError消息,游戲針對不同的錯誤碼,做出相應的處理。
void WebSocketTestLayer::onError(network::WebSocket* ws, const network::WebSocket::ErrorCode& error)
{
log("Error was fired, error code: %d", error);
if (ws == _wsiSendText)
{
char buf[100] = {0};
sprintf(buf, "an error was fired, code: %d", error);
_sendTextStatus->setString(buf);
}
}
send消息到伺服器
在init之後,我們就可以調用send介面,往伺服器發送數據請求。send有文本和二進制兩中模式。
發送文本
_wsiSendText->send("Hello WebSocket, I'm a text message.");
發送二進制數據(多了一個len參數)
_wsiSendBinary->send((unsigned char*)buf, sizeof(buf));
主動關閉WebSocket
這是讓整個流程變得完整的關鍵步驟, 當某個WebSocket的通訊不再使用的時候,我們必須手動關閉這個WebSocket與伺服器的連接。close會觸發onClose消息,而後onClose裡面,我們釋放內存。
_wsiSendText->close();
在Lua中使用
詳細代碼可參考引擎目錄下的/samples/Lua/TestLua/Resources/luaScript/ExtensionTest/WebProxyTest.lua文件。
創建WebSocket對象
腳本介面相對C++要簡單很多,沒有頭文件,創建WebSocket對象使用下面的一行代碼搞定。 參數是伺服器地址。
wsSendText = WebSocket:create("ws://echo.websocket.org")
定義並注冊消息回調函數
回調函數是普通的Lua function,4個消息回調和c++的用途一致,參考上面的說明。
local function wsSendTextOpen(strData)
sendTextStatus:setString("Send Text WS was opened.")
end
local function wsSendTextMessage(strData)
receiveTextTimes= receiveTextTimes + 1
local strInfo= "response text msg: "..strData..", "..receiveTextTimes
sendTextStatus:setString(strInfo)
end
local function wsSendTextClose(strData)
print("_wsiSendText websocket instance closed.")
sendTextStatus = nil
wsSendText = nil
end
local function wsSendTextError(strData)
print("sendText Error was fired")
end
Lua的消息注冊不同於C++的繼承 & Override,有單獨的介面registerScriptHandler。 registerScriptHandler第一個參數是回調函數名,第二個參數是回調類型。 每一個WebSocket實例都需要綁定一次。
if nil ~= wsSendText then
wsSendText:registerScriptHandler(wsSendTextOpen,cc.WEBSOCKET_OPEN)
wsSendText:registerScriptHandler(wsSendTextMessage,cc.WEBSOCKET_MESSAGE)
wsSendText:registerScriptHandler(wsSendTextClose,cc.WEBSOCKET_CLOSE)
wsSendText:registerScriptHandler(wsSendTextError,cc.WEBSOCKET_ERROR)
end
send消息
Lua中發送不區分文本或二進制模式,均使用下面的介面。
wsSendText:sendString("Hello WebSocket中文, I'm a text message.")
主動關閉WebSocket
當某個WebSocket的通訊不再使用的時候,我們必須手動關閉這個WebSocket與伺服器的連接,以釋放伺服器和客戶端的資源。close會觸發cc.WEBSOCKET_CLOSE消息。
wsSendText:close()
在JSB中使用
詳細代碼可參考引擎目錄下的/samples/Javascript/Shared/tests/ExtensionsTest/NetworkTest/WebSocketTest.js文件。
創建WebSocket對象
腳本介面相對C++要簡單很多,沒有頭文件,創建WebSocket對象使用下面的一行代碼搞定。 參數是伺服器地址。
this._wsiSendText = new WebSocket("ws://echo.websocket.org");
設置消息回調函數
JSB中的回調函數是WebSocket實例的屬性,使用匿名函數直接賦值給對應屬性。可以看出JS語言的特性,讓綁定回調函數更加優美。四個回調的含義,參考上面c++的描述。
this._wsiSendText.onopen = function(evt) {
self._sendTextStatus.setString("Send Text WS was opened.");
};
this._wsiSendText.onmessage = function(evt) {
self._sendTextTimes++;
var textStr = "response text msg: "+evt.data+", "+self._sendTextTimes;
cc.log(textStr);
self._sendTextStatus.setString(textStr);
};
this._wsiSendText.onerror = function(evt) {
cc.log("sendText Error was fired");
};
this._wsiSendText.onclose = function(evt) {
cc.log("_wsiSendText websocket instance closed.");
self._wsiSendText = null;
};
send消息
發送文本,無需轉換,代碼如下:
this._wsiSendText.send("Hello WebSocket中文, I'm a text message.");
發送二進制,測試代碼中,使用_stringConvertToArray函數來轉換string為二進制數據,模擬二進制的發送。 new Uint16Array創建一個16位無符號整數值的類型化數組,內容將初始化為0。然後,循環讀取字元串的每一個字元的Unicode編碼,並存入Uint16Array,最終得到一個二進制對象。
_stringConvertToArray:function (strData) {
if (!strData)
returnnull;
var arrData = new Uint16Array(strData.length);
for (var i = 0; i < strData.length; i++) {
arrData[i] = strData.charCodeAt(i);
}
return arrData;
},
send二進制介面和send文本沒有區別,區別在於傳入的對象,JS內部自己知道對象是文本還是二進制數據,然後做不同的處理。
var buf = "Hello WebSocket中文,\0 I'm\0 a\0 binary\0 message\0.";
var binary = this._stringConvertToArray(buf);
this._wsiSendBinary.send(binary.buffer);
主動關閉WebSocket
當某個WebSocket的通訊不再使用的時候,我們必須手動關閉這個WebSocket與伺服器的連接,以釋放伺服器和客戶端的資源。close會觸發onclose消息。
onExit: function() {
if (this._wsiSendText)
㈧ 伺服器之間傳輸數據的方式有哪些
1.用Sock使用TCP/UDP傳輸
2.用共享目錄,通過文件傳輸
3.用web,通過Webbrowser下載HTML傳輸
4.用DCOM,遠程對象傳輸
5.用com口,modem傳輸或直傳
6.用inet控制項,通過Ftp,http協議傳輸
7.用imapi通過Email傳輸
==========================
用vb可以做的大致就這么多
㈨ 電腦怎樣通過互聯網傳輸數據
網路中數據傳輸過程
我們每天都在使用互聯網,我們電腦上的數據是怎麼樣通過互聯網傳輸到到另外的一台電腦上的呢?
我們知道現在的互聯網中使用的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.
大致過程就是上面所說,其中的細節很復雜,任何一個細節都可以寫成一本書,對於非專業人員也沒有必要深究。