網路是怎樣連線的(六)

2022-05-10 05:19:05 字數 2321 閱讀 4795

學習筆記

# 6.1 伺服器概覽

首先要大體弄懂伺服器是個啥

## 6.1.1客戶端與伺服器的區別

伺服器啟動之後,需要進行各種準備工作,弄懂包括這些準備工作在內的伺服器整體結構是很重要的。

話說回來,到底啥區別呢?

有何相同之處?

## 6.1.2 伺服器程式的結構

- 伺服器一般會有多個客戶端連線,為了把握每個客戶端的執行狀態,一般採用一對一的形式。

- 伺服器程式的結構分為兩個模組,等待連線模組和與客戶端通訊的模組

- 看懂下面的圖:

![一對一](

## 6.1.3 伺服器端的套接字和埠號

**我理解的流程:**

1. 協議棧呼叫socket建立套接字;

2. 呼叫bind寫入埠號,埠號根據伺服器的種類,根據規則確定,如web伺服器的埠號80;

3. 呼叫listen來寫入等待連線狀態;

4. 當包到達時,呼叫accept,複製套接字,將控制資訊寫入新的套接字中

![伺服器端的通訊操作](

![複製套接字](

![分配接受到的包](

注意事項:

為什麼使用描述符呢?

我的想法:1.為了提高效率,套接字可能會複製多個副本,由於還未連線,沒有客戶端ip和埠號資訊,而這些套接字的伺服器端口號又是相同的,為了區分它們,就使用描述符;2.使用描述符這一種資訊比較簡單

#6.2 伺服器的接受操作

主要是對包的操作

網絡卡→ip模組→tcp/udp模組

![包](

##6.2.1 網絡卡將接受到的訊號轉換成數字資訊

**1.把光訊號或者電訊號還原成數字資訊**

不同格式的訊號工作方式會有些許差異,10base-t工作方式如下

- 根據報頭的變化頻率同步時鐘訊號,再根據時鐘訊號把訊號還原為數字資訊;

- 校驗包末尾的fcs和mac頭部中的mac位址;

- 還原後的數字資訊被儲存在網絡卡的緩衝區中;

- 通過中斷通知cpu,讀取緩衝區的資料,根據mac頭部的以太型別字段判斷協議種類,並呼叫相應軟體;如字段值表示ip協議,就會呼叫tcp/ip協議棧

##6.2.2 ip模組接受操作

>協議棧的ip模組會檢查ip頭部,(1)判斷是不是發給自己的;(2)判斷網路包是否經過分片;(3)將包**給tcp或者udp模組

##6.2.3 tcp模組如何處理連線包

如何處理發起連線的包,即如何處理控制為syn為1的包

>tcp模組會(1)確認tcp頭部的控制位syn;(2)檢查接收方埠號;(3)未響應的等待連線套接字複製乙個新的副本;(4)記錄傳送方ip位址和埠號等資訊。

注意:如果相應埠沒有處於等待連線模組的套接字則會返回錯誤

## 6.2.4 tcp如何處理資料報

1. 根據四種資訊找到套接字

2. 校驗控制資訊,如包的序號是否可以銜接,判斷是否丟失

3. 拼合包,儲存在緩衝區

4. 向客戶端返回ack

##6.2.5 tcp模組的斷開操作

在http1.1 中 客戶端先發起fin, 伺服器返回ack,然後傳送fin,客戶端返回ack。一段時間後套接字被刪除。

#6.3 web伺服器程式解釋請求訊息並作出響應

##6.3.1 將請求的url轉換為實際的檔名

web伺服器公開的目錄不一定是磁碟上的真是目錄,需要經過一定的轉換

##6.3.2 執行cgi程式

- url不一定指向檔案,還可能指向程式,如果是指向程式,則執行相應程式

- 如果方法為get,則將url後面的引數傳遞給程式;如果方法為post,則將訊息體中的資料傳給程式

- 執行結果返回伺服器

![示例](

![流程](

##6.3.3 web伺服器的訪問控制

不能讓伺服器中的資料不加限制的完全暴露

三種方式:客戶端ip,客戶端網域名稱、使用者名稱和密碼

## 6.3.4 返回響應訊息

呼叫socket庫中的write,將訊息傳給協議棧,同時給出描述符。協議棧根據描述符對應套接字內控制資訊,進行傳送操作。

## 6.4 瀏覽器接受響應並顯示內容

先記住這些:

- 根據content-type判斷資料型別

- 瀏覽器對作業系統發出指令在螢幕上顯示資訊

完。

網路是怎樣連線的

presence prezns n.出席 存在 到場 接近 point of presence,pop 接入點 入網點 瀏覽器 dns伺服器 查詢網域名稱對應的ip位址 瀏覽器 作業系統 網路控制軟體 協議棧 網絡卡 交換機 路由器 接入網 接入點 入網點 各網路運營商路由器群 防火牆 快取伺服器 ...

網路是怎樣連線的(三)

在傳輸中包與包之間沒有關聯 網線越長,頻率越高,損失越大 損失會使波形變形,無法分辨0 1,造成錯誤 雙絞線抑制雜訊 兩種維護方式 收到包時,將傳送方的埠號與mac位址加入位址表 將一段時間不使用的過時記錄刪除 這是為了防止裝置移動而改變埠 若發生錯誤,重啟交換機即可 講了兩個 交換機發現包要返回源...

網路是怎樣連線的(三)

3.1 訊號在網線和集線器中傳輸 3.1.1 每個包都是獨立傳輸的 在傳輸中包與包之間沒有關聯 3.1.2 防止網線中的訊號衰減很重要 網線越長,頻率越高,損失越大 損失會使波形變形,無法分辨0 1,造成錯誤 3.1.3 雙絞 是為了抑制雜訊 雙絞線抑制雜訊 3.1.4集線器將訊號發往所有線路 乙太...