計算機網路stage1

2021-10-21 13:54:04 字數 4611 閱讀 7986

前面介紹的這個負責搬運數字資訊的機制,再加上瀏覽器和 web 伺服器這些網路應用程式,這兩部分就組成了網路。也就是說,這兩部分組合起來,就是網路的全貌

名詞:協議棧、網絡卡、集線器、快取伺服器、負載均衡器

先查出 web 伺服器的 ip 位址

查詢到 ip 位址之後,瀏覽器就可以將訊息委託給作業系統傳送給 web 伺服器了

www 只是 web 伺服器上的一種命名、是 web 的提出者最早開發的瀏覽器兼 html 編輯器的名字

以 www 開頭的,但這並不是一定之規,只是因為最早設計 web 的時候,很多 web 伺服器都採用了 www 這樣的命名,後來就形成了乙個慣例而已

在網域名稱中,越靠右的位置表示其層級越高,比如 www.lab.glasscom.com 這個網域名稱如果按照公司裡的組織結構來說,大概就是「com 事業集團 glasscom 部 lab 科的 www」這樣。其中,相當於乙個層級的部分稱為域。因此,com 域的下一層是 glasscom 域,再下一層是 lab 域,再下面才是 www 這個名字。

例如在訪問 web 伺服器和 ftp 伺服器時,url 中會包含伺服器的網域名稱 [⑤] 和要訪問的檔案的路徑名等

url:uniform resource locator

ftp:file transfer protoco

埠號:這裡請大家理解為乙個用來識別要連線的伺服器程式的編號

目錄(directory)這個詞的意思相當於 windows 中的資料夾(folder)

: 我們會在伺服器上事先設定好檔名省略時要訪問的預設檔名

:當沒有路徑名時,就代表訪問根目錄下事先設定的預設檔案 [②],也就是 /index.html 或者 /default.htm 這些檔案,這樣就不會發生混亂了。

uniform resource identifier,uri

所以url是uri的子集。url是以描述人的位置來唯一確定乙個人的。

而url就是用定位的方式實現的uri。

表單:網頁中的文字框、核取方塊等能夠輸入資料的部分。

pragma

當網頁中包含時,會在網頁中的相應位置嵌入表示檔案的標籤 [①] 的控制資訊。瀏覽器會在顯示文字時搜尋相應的標籤,當遇到相關的標籤時,會在螢幕上留出用來顯示的空間,然後再次訪問 web 伺服器,按照標籤中指定的檔名向 web 伺服器請求獲取相應的並顯示在預留的空間中。這個步驟和獲取網頁檔案時一樣,只要在 uri 部分寫上的檔名並生成和傳送請求訊息就可以了。

這一系列工作的整體指揮也是瀏覽器的任務之一,而 web 伺服器卻毫不知情

get 獲取 post 傳送

實際的 ip 位址是一串 32 位元的數字,按照 8 位元(1 位元組)為一組分成 4 組,分別用十進位制表示然後再用圓點隔開

加資訊來表示 ip 位址的內部結構。

哪部分是網路號,哪部分是主機號

是一串與 ip 位址長度相同的 32 位元數字,其左邊一半都是 1,右邊一半都是 0。其中,子網掩碼為 1 的部分表示網路號,子網掩碼為 0 的部分表示主機號

子網掩碼表示網路號與主機號之間的邊界

ip 位址的主機號

全 0:表示整個子網

全 1:表示向子網上所有裝置傳送包,即「廣播」

讓路由器來使用 ip 位址。為了填補兩者之間的障礙,需要有乙個機制能夠通過名稱來查詢 ip 位址,或者通過 ip 位址來查詢名稱 – dns

domain name system

首先,將負責管理下級域的 dns 伺服器的 ip 位址註冊到它們的上級 dns 伺服器中,然後上級 dns 伺服器的 ip 位址再註冊到更上一級的 dns 伺服器中

所以我們可以從根域開始一路往下順藤摸瓜找到任意乙個域的 dns 伺服器。

根域的 dns 伺服器資訊儲存在網際網路中所有的 dns 伺服器中

作業系統的 socket 庫

socket又稱"套接字"

執行解析(resolution)這一操作的就叫解析器(resolver)了。

庫就是一堆通用程式元件的集合,其他的應用程式都需要使用其中的元件。庫有很多好處。首先,使用現成的元件搭建應用程式可以節省程式設計工作量;其次,多個程式使用相同的元件可以實現程式的標準化。

解析器就是這個庫中的其中一種程式元件

公共閘道器介面(cgi)

socket,又稱套接字,是linux跨程序通訊(ipc,inter process communication,詳情參考:linux程序間通訊方式總結)方式的一種。相比於其他ipc方式,socket更牛的地方在於,它不僅僅可以做到同一臺主機內跨程序通訊,它還可以做到不同主機間的跨程序通訊。根據通訊域的不同可以劃分成2種:unix domain socket 和 internet domain socket。

「ip+埠+協議」的組合就可以唯一標識網路中一台主機上的乙個程序。這也是生成socket的主要引數。

[協議,本地位址,本地埠,遠端位址,遠端埠]** 組成的乙個5維陣列

從tcp連線視角看待上述過程可以總結如圖,可以看到tcp的三次握手代表著socket連線建立的過程,建立完連線後就可以通過read,wirte相互傳輸資料,最後四次揮手斷開連線刪除socket。

tcp*(transmission control protocol,傳輸控制協議)*

tcp的**三次握手***以及tcp的*四次揮手***!三次握手*: 建立乙個tcp連線時,需要客戶端和服務端總共傳送3個包以確認連線的建立, 在socket程式設計中,這一過程由客戶端執行connect來觸發,具體流程圖如下:

首先,伺服器一方先建立套接字,然後等待客戶端向該套接字連線管道 [③]。當伺服器進入等待狀態時,客戶端就可以連線管道了。具體來說,客戶端也會先建立乙個套接字,然後從該套接字延伸出管道,最後管道連線到伺服器端的套接字上。當雙方的套接字連線起來之後,通訊準備就完成了。接下來,就像我們剛剛講過的一樣,只要將資料送入套接字就可以收發資料了。

當資料全部傳送完畢之後,連線的管道將會被斷開。管道在連線時是由客戶端發起的,但在斷開時可以由客戶端或伺服器任意一方發起 [④]。其中一方斷開後,另一方也會隨之斷開,當管道斷開後,套接字也會被刪除。到此為止,通訊操作就結束了。

前面這 4 個操作都是由作業系統中的協議棧來執行的,瀏覽器等應用程式並不會自己去做連線管道、放入資料這些工作,而是委託協議棧來代勞。

伺服器程式一般會在啟動後就建立好套接字並等待客戶端連線管道。

小寫的 socket 表示程式元件的名稱,大寫字母開頭的 socket 表示庫,而漢字的「套接字」則表示管道兩端的介面。

在socket中 connect 時,需要指定描述符、伺服器 ip 位址和埠號這 3 個引數

如果說描述符是用來在一台計算機內部識別套接字的機制,那麼埠號就是用來讓通訊的另一方能夠識別出套接字的機制

伺服器上所使用的埠號是根據應用的種類事先規定好的

客戶端在建立套接字時,協議棧會為這個套接字隨便分配乙個埠號 [⑦]。接下來,當協議棧執行連線操作時,會將這個隨便分配的埠號通知給伺服器。

準確地說,ip 位址不是分配給每一台裝置的,而是分配給裝置中安裝的網路硬體的。因此,如果一台裝置中安裝了多個網路硬體,那麼就會有多個 ip 位址。

write

接收訊息的操作是通過 socket 庫中的 read 程式元件委託協議棧來完成的

呼叫 read 時需要指定用於存放接收到的響應訊息的記憶體位址,這一記憶體位址稱為接收緩衝區

當瀏覽器收到資料之後,收發資料的過程就結束了。接下來,我們需要呼叫 socket 庫的 close 程式元件進入斷開階段

對於同一臺伺服器來說,重複連線和斷開顯然是效率很低的,因此後來人們又設計出了能夠在一次連線中收發多個請求和響應的方法

在網際網路上傳送資料時,資料會被切分成乙個乙個的網路包 [①],而將網路包傳送給通訊物件的操作就是由 ip 來負責的。此外,ip 中還包括 icmp [②] 協議和 arp

套接字中記錄了用於控制通訊操作的各種控制資訊

在 windows 中可以用 netstat 命令顯示套接字內容

udp 中不繫結對方位址和埠

計算機網路stage2

繼計算機網路stage1 socket 庫向協議棧發出委託的一系列操作 所以只要通過描述符確定了相應的套接字,協議棧就能夠獲取所有的相關資訊,這樣一來,應用程式就不需要每次都告訴協議棧應該和誰進行通訊了。作業系統中有乙個 記憶體管理 模組 連線實際上是通訊雙方交換控制資訊,在套接字中記錄這些必要資訊...

計算機網路 一 1 計算機網路簡介

1.2.網際網路發展 1.3.網際網路標準化 1.1.網路,網際網路,網際網路 先講一下計算機網路 network 就是將一台以上的計算機互連起來,互連的計算機之間可以實現通訊,實現資訊共享,這就是網路。那麼,什麼是網際網路,網際網路的英文是 internet,它的意思是 網路的網路 是乙個通用名詞...

計算機網路 1

最近在籌畫寫乙個聊天室,所有就了解了一些計算機網路方面的知識,就想著輸出一下 這兩天看到網路的很好的定義 用物理裝置將各個 區域網 相連組成更大的 區域網 資料鏈路層 最底層是資料鏈路層,它由裝置驅動和到底層物理媒介的硬體介面。資料鏈路層在物理鏈結上傳輸幀並處理來自接受者的確認。這一層可能會進行物理...