下面這個是我對計算機網路的一點理解,問題其實在最下面:
個人理解:
其實計算機網路就是為了兩個主機間的行程的通信,其實就是為了看到一個公共的資源,但是但是由于網路的復雜就有了協議來作為約束,來規范化這個程序
一、協議從頂向下的來講:(我使用的書上的5層模型)
1、應用層:其實就是為了完成終極的目的,行程間看到同一個資源
舉一個簡單的例子:(1)就像是打電話的時候,規定是你先說我完,我才可以說,還是可以插話,
(2)共享記憶體中,呼叫shmctl,實作交流的操作,而shmat其實是下面的協議的事情
這一層的協議:主要規范的是交流方式的問題,而建立交流是下面的事情
2、傳輸層:為了建立兩個行程間的交流的鏈接(找到兩個行程并建立連接,帶上沒有具體的通信)
協議規定的是:如何找到兩個主機間的行程,這個時候才有
3、網路層:為了建立兩個主機間的交流(找到兩個主機并建立連接,但是沒有具體的通信)
協議:所以IP協議來找到網路,而ARP協議通過IP地址來找到對應的主機
設備:路由:在轉發找到目標的網路
4、鏈路層:是為了讓二進制(位元流)成為幀
協議:就是位元成為資料幀的一種規范
設備:交換機:來增加介面的數量,來擴大一個內網,內網也就是局域網
5、物理層:這就是硬體
協議:為了傳輸位元流的一種規范而已,怎么進行傳輸位元流
設備:集線器:為了擴大位元的信號
其實進行整個傳輸的程序中,僅僅有網線、集線器、交換機、路由器這幾個硬體而已
網路協議在上三層,就是怎么加報頭,怎么處理這個報頭,處理完了有往哪里發
二、協議是怎么選擇的
可是每一層的協議是多種多樣的,怎么來選擇協議?
(1)對于鏈路層根據硬體來選擇協議
(2)對于上三層,根據實際的需求來選擇協議
下面就是我的問題:
1、
(1)其實資料包怎么封裝和剝離,怎么轉發是協議的核心
(2)其實協議的理解就是對于對于某一層任務的宏觀上任務規范,怎么完成,具體的程序是什么,
(3 但是還是實際的軟體來完成的,軟體來完成實際的封裝,剝離
我不知道這個理解對不對,是不是軟體來完成的,怎么書上僅僅講了集線器。交換機,路由器這些硬體,沒有講實際的軟體,
這些硬體也是協議的一部分嗎?
2、接收方:其實每一層的接收方是不知道發送方是使用什么協議的,僅僅是根據報頭資訊來提取資訊和剝離資料包,不知道對不對
3、發送方:其實是根據自身的硬體條件和需求來完成資料報的封裝
那么是不是完成這個封裝任務的行程里面僅僅是保存了幾種封裝的方案,根據需要做出選擇,不知道對不對
4、可不可以看一下我上面的理解有沒有偏差的地方,分數有點少

uj5u.com熱心網友回復:
這個的系統的看一下TCPip方面的書uj5u.com熱心網友回復:
1.完整報文的外圍部分一般是由系統封裝(在你呼叫相應方法的時候),但也可以是裸包。2.報文就是位元組流,以太網的報文從外到里是以太頭、IP(或PPP)頭、TCP、應用協議頭、流量內容。但應用協議可能嵌套。
3.不管是誰發,整個報文從外到里一直是TLV嵌套。T是型別,L是長度,V是Value。這里說的TLV不是指先T后L然后V,且固定的長度,而是根據協議來的。外圍的以太頭是已知和默認,往里面就要靠決議了。
你下一個wireshark,隨便抓個包,應該有http包,對照報文看下我說的。
uj5u.com熱心網友回復:
無論是有線通信還是無線通信,首先肯定要有承載資訊的載體。這些載體來傳遞資訊。比如無線通信,用波的振幅等方式的變化序列組合來表示一組資訊,有線通過交流電的電平變化等方式的組合等來表示一些資訊。如何將我們一些聲音圖片文字在這里載體上傳輸呢?行程的通信,機器的通信,人機的通信,人人的交流,人與自然的交流無非就是編碼解碼的程序。探索大自然,就是在理解大自然的編碼。轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/126497.html
標籤:網絡通信
上一篇:一篇文章帶你使用 Python搞定對 Excel 表的讀寫和處理(xlsx檔案的處理)
下一篇:一個在網路編程中關于埠號的問題
