網路通訊的基本過程

2021-10-10 20:04:02 字數 3648 閱讀 4446

介紹:

網路通訊呢是乙個非常複雜的過程。對於這種比較負責的問題,我們通常採用分層來解決,每一層負責自己的工作,以及定義後相互使用的介面。採用這種方式,將乙個大的問題細分為小的、目標更加確定的小問題。這種思想,在其他一些地方,都是非常有用的。我舉個例子吧,mvc框架,將乙個籠統的大問題進行了細分,前端介面層、控制層、業務邏輯層、dao層、資料庫層,這樣進行分解,將問題細分,有利於開發大型軟體,同時分工更加明確。有興趣可以去深入研究。

下面我們一點一點來分析通訊的過程,當然這也僅僅時大體的過程,想要有更深入的理解,需要每一部分都去深入思考。

大體過程:

1.通道部分

想要和其他計算機通訊,最不能缺少的就是傳輸的通道了吧。這個肯定要有,全球網際網路能夠實現,是在通訊通道領域發展到達了一定程度的結果。

通道劃分一下:1.有線傳輸。2.無線傳輸。 相信這一點大家都是清楚的。 有一點,我們需要注意,網路通訊中傳輸的都是電磁波。而電磁波的傳播速度呢,都是接近或等於光速。可以說傳播的速度非常的快。

現在有線傳輸光纖佔了很大一部分。無線傳輸呢,我個人認為是以後的發展的趨勢。

傳輸中還有一些像頻分復用,時分復用,碼分復用等。有興趣的話,可以去自己了解。

2.通道傳輸介面,內容等的標準

有了能夠通訊的基礎還是不夠啊。這麼多種傳輸的通道,傳輸的載體都不一定相同。因此,我們要制定標準來使這些不同的通道都能夠進行通訊。這其實也就是一種分層。通過指定統一的介面,像rj-45水晶頭。通道怎麼發展,用什麼傳輸都無所謂,只有遵循這個介面標準,就能通訊。

3.區域網的建立

有了下層介面的通訊,我們可以將目標放於如何構建計算機之間的連線了。

有線傳輸的話,如果每台計算機之間都有連一條網線,這工程量,怕是…,太大,而且也不實際。因此,提出了星型結構(還有許多其他的結構)。這裡我們就要提出區域網的重要支撐部件----交換機。通過將所有計算機連線到區域網上。先不討論是怎麼實現的,單說這種介面相對於每台計算機之間都有連線節省了很多。

既然所有主機都連線在交換機上,那麼我們主機要傳送到資料首先會傳到交換機,然後經交換機傳給目標主機。問題就在於交換機怎麼知道我們要傳送給誰。為了能夠區分不同的主機,硬體廠商們生產網絡卡的時候,會在網絡卡的bios晶元內寫入全球唯一的一組數——mac位址,用以區分不同的主機。這樣的話,源主機傳送資料的時候寫上對方的mac位址,交換機能夠進行識別,並且能夠傳送給目的主機就可以了。

原理是這麼個原理,但還是有許多問題要實現。比如,交換機識別出了mac位址,但是目的主機在**呢,怎麼發給他呢。所以,交換機不光要有能夠識別mac位址的能力,還要有學習的能力,知道相應的mac位址,通過那個埠傳送。這就是,交換機的自學習能力。

當我們傳送給同乙個區域網內另外一台主機傳送資訊的時候,我們假設交換機裡面是空的。資料到達交換機,識別出mac位址,就會記錄下來,將mac位址與交換機上的接接收資料的埠號建立關係,儲存在**表上。交換機上有很多埠,用來插水晶頭的。以後傳送時,識別出目的mac位址是這個,就會從這個埠傳送出去。接著上面說的,接受到了資料報,識別出了包中的mac位址,但是**表中沒有對應關係啊,。這時,交換機就會以廣播的方式,給區域網內所有的連線到交換機的主機傳送資訊(當然不包括傳送過資料來的主機),進行詢問,這個mac位址是誰的,如果對應的主機在區域網內,就會回應,交換機接受後將資訊存入**表中。如果目的主機不在區域網內,我們後面再說。

現在社會呢,講究萬物互聯,這些上面的這種小網路之間也是需要相互聯絡的啊。下面,我們介紹是如何聯絡的。

4.構建網際網路的思考

這一部分算是最複雜的了。

有了上面區域網的通訊方法。我們是不是也可以這樣構建網際網路呢,將乙個上面的區域網算作乙個主機,每個這種網路都有乙個像mac位址一樣唯一標識的符號。然後通過像交換機這種**的硬體工具進行識別**呢。這樣就能夠傳送到相應的區域網了。

到了區域網,再通過mac位址就可以傳送到目的主機了呢。

上面的這種方法,原理上講的通哈。那麼我們就按照這種方式來進行實現試試。

這裡呢,我們給每個網路乙個網路號,全球統一。**的工具呢,在網路中叫做路由器router,識別網路號,並進行**。

這樣好像可以哈。但是,要想這樣通訊的話,就要像上面區域網的連線方式一樣,所有的區域網都連線到router上,全球那麼多的這種網路,怎麼可能全部連線到這乙個路由器上呢。又有人說了,我們也可以按照這種方式,將所有連線到路由器上的這些區域網當作乙個整體,給他分配乙個統一的符號,然後再有個**的工具不就可以了嗎?嗯,理論上可以的。但是實際的網際網路結構不是這樣的,但大體也是差不多的,確實是按照這種思想來的。那麼我們考慮一下,為什麼這種方式沒有實踐成功呢?

1.第四部分構建網際網路的開頭,我們說通過網路號傳送到區域網內,然後通過mac位址,找到目的主機。但是呢,在構建區域網的部分,沒有獲得其他區域網內主機mac位址的方法啊,所以行不通。

2,區域網內需要mac位址區分主機,區域網通過網路號區分不同的區域網,繼續分的話會有更多的標識。每次傳輸乙個資料的時候包含這麼多的資訊。先不說怎麼包含的,就這麼多的資訊要佔資料報的多少空間,太過於複雜,不切實際。

因此呢,這種方法行不通過。

5.實際網際網路的構建

第二個問題的解決方法呢:層數過多的話,每層都需要乙個標識,解決辦法是把這些標識整合在一起唄。

通過一串32位的標識,來表示不同的區域網,以及不同區域網構成的更大的網路的標識,都用此來標識。

這中32位的標識被稱為ip位址。

舉個例子:10.40.225.12 這個標識,32位表示 00001010 00101000 11100001 00001100,我們可以通過劃分多少位來表示區域網。 劃出後面2位 這樣的話,這四個區域網的標識位 1。00001010 00101000 11100001 00001100 2。 00001010 00101000 11100001 00001101 3。 00001010 00101000 11100001 00001110 4。 00001010 00101000 11100001 00001111,然後用去掉後兩位的00001010 00101000 11100001 000011 來表示這四個區域網構成的更大的網路。

這樣的話,每個區域網都有唯一的表示了,並且不同區域網構成的更大網路也有標識了。

接下來就是像交換機一樣作用的**工具了 ---------路由器。

功能和交換機類似,但比交換機功能更加高階。

也擁有學習的能力,並且相鄰路由器之間還可以進行相互交換學習。

路由器裡面會用相應資料結構記錄下網路中所有區域網,也就是本網路的拓撲結構。

如果網羅變大了怎麼辦呢,所以我們會將網路劃分,劃分成乙個乙個的區域,讓路由器僅記錄乙個區域裡面的區域網。

只要多了,我們就劃分唄。這樣的話,最後整個地球的區域網全部就聯通起來了。多麼巨集偉的計畫以及實現啊。

當然裡面還有非常的細節。有興趣可以花時間區詳細了解。

5.網際網路構成的目的

我們費勁千辛萬苦構建成功的網路肯定是有用的,什麼作用的,傳輸資料唄。

資料傳給誰呢,電腦啊,電腦裡面的什麼呢?程序啊!!這才是最終的目的,將資料傳輸給相應的程序。

當時乙個電腦中執行著這麼多的程序,給哪乙個,怎麼給,這都是問題啊。

這還不好辦啊。既然網絡卡、區域網都有唯一的標識,我們給每個程序也乙個唯一的標識不久行了嗎?對,就是這樣,這個叫做埠號,用乙個和ip位址一樣長的標識來儲存。這樣,我們就可以送到相應的程序了哦。程序呢,通過socket函式在記憶體中建立了一塊記憶體空間,然後所有通過網路傳送給他的資料全部放到這裡面,然後自己取走使用即可。這種方式也是程序間通訊的方式之一。

嗯,這樣的話,網路通訊完成了,網路通訊的最終目的也就達到了,最終實現了,全球互聯的程度!!!

網路通訊過程

1 網路通訊過程 3 客戶端以tcp的方式傳送http協議的請求資料給伺服器 4 伺服器以tcp的方式回應http協議的應答資料給瀏覽器。5 預設閘道器 當需要傳送的資料報的目的ip不在本網段內時,就會傳送給預設的一台電腦,成為閘道器 6 集線器 已過時,用來連線多型電腦,缺點 每次收發資料都進行廣...

Python 網路通訊過程

2.使用集線器組成乙個網路 3.使用交換機組成乙個網路 4.使用路由器連線多個網路 5.通訊過程 複雜 開放式系統互聯參考模型 埠說明如果兩台電腦之間通過網線連線是可以直接通訊的,但是需要提前設定好ip位址以及網路掩碼 並且ip位址需要控制在同一網段內,例如 一台為192.168.1.1另一台為19...

網路通訊過程(11)

1.2臺電腦的網路 2.使用集線器組成乙個網路 3.使用交換機組成乙個網路 說明 4.使用路由器連線多個網路 5.通訊過程 複雜 較為複雜的通訊過程如 訪問 www.itheima.com 以tcp的方式傳送http協議的請求資料 給 伺服器 伺服器tcp的方式回應http協議的應答資料 給瀏覽器 ...