隨筆 網路是怎樣連線的 第二章

2021-10-25 07:22:41 字數 3416 閱讀 5703

建立套接字 -->	連線套接字管道	-->	 傳送資料	-->	 斷開連線
協議棧內部有一塊用於存放控制資訊的記憶體空間,記錄了控制通訊操作的控制資訊(如:ip 埠	通訊操作的狀態);

協議棧是根據套接字中的資訊來進行工作的;

協議棧開闢乙個記憶體空間用於存放套接字,在套接字的記憶體空間中寫入初始狀態的控制資訊;

連線實際上是通訊雙方交換控制資訊;

當資料執行收發操作時,需要一塊臨時存放要收發資料的記憶體空間,該記憶體空間稱為'緩衝區';是在連線過程中分配的;

控制資訊大體上可分為2類:

1.客戶端和伺服器相互聯絡時交換的控制資訊;

2.儲存在套接字中,用來控制協議棧操作的資訊;

通訊操作中使用的的控制資訊分為兩類:

1.頭部中記錄的資訊

2.套接字(協議棧中的記憶體空間)中記錄的資訊

協議棧接收到訊息會先將資料存放在內部的緩衝區中,並等待下一段資料;

若一收到資料就馬上傳送出去,就可能會傳送大量的小包,導致網路效率下降;

資料積累到多大量時進行傳送,有2個要素進行判斷:

1.網路包能容納的資料長度;

mtu(網路包的最大長度,乙太網中一般為1500位元組)

mss(除去頭部之後,乙個網路包所能容納的 tcp 資料的最大長度)

當資料長度超過或接近mss時再傳送

2.時間;

協議棧內部有乙個計時器,當經過一定時間,就會傳送資料報。

應用程式在傳送資料時也可以指定選項。

3.3 使用 ack 號確認網路包已收到

當資料沒有傳送成功時,會進行重發。

tcp頭部的ack號傳送給對方。(確認響應)

'序號'是乙個隨機值,由syn設定為1,並傳送。由此告知對方,序號的初始值。

在資料傳送得到確認前,傳送過的包都儲存在傳送緩衝區中。

通過「序號」和「ack 號」可以確認接收方是否收到了網路包。

3.4 根據網路包平均往返時間調整 ack 號等待時間

tcp採用了動態調整等待時間的方法,根據ack號返回的所需時間來判斷。

3.5 使用視窗有效管理 ack 號

滑動視窗方式:

問題:ack號連續傳送,可能出現傳送包的頻率超過接收方處理能力的情況。

解決:tcp收到包後,會將資料放在接收緩衝區中。還會將能接收的資料量告知傳送方。

能接收的最大資料量稱為視窗大小。

3.6 ack與視窗的合併

可以在乙個包裡,將資料傳送。比如:ack號可以只傳送最後乙個資料的ack號,將中間的省略。

3.7 接收http響應訊息

協議棧將收到的資料複製到應用程式制定的記憶體位址中,然後將控制流程交回應用程式。將資料交給應用程式之後,

協議棧還需要合適的時機向傳送方傳送視窗更新。

4.1	資料傳送完畢之後斷開連線

4.2 刪除套接字

4.3 資料收發操作小結

伺服器一方的應用程式在啟動時就建立好套接字並進入等待階段。

客戶端則是在需要訪問時建立套接字。

5.1 包的基本知識

ip模組將資料封裝成包傳送給通訊物件。

包是由頭部和資料組成。

頭部包含目的位址等資訊。(相當於快遞面單)

客戶端 --> 集線器 --> 路由器r1 --> 路由器rn --> 伺服器

ip表 乙太網表 ip表 ip表 ip表

5.2 包收發操作概覽

ip頭部負責新增如下兩個頭部:

1.mac頭部:乙太網用頭部,包含mac位址

2.ip頭部:ip用的頭部,包含ip位址

無論收發的是控制包還是資料報,ip對各種型別的包的收發操作都是相同的。

5.3 生成包含接收方ip位址的ip頭部

ip位址實際上不是分配給計算機的,而是分配給網絡卡的。

ip頭部的"接收方ip位址"填寫通訊物件的ip位址。

傳送方ip位址需要判斷傳送所使用的網絡卡,並填寫該網絡卡的ip位址。

5.4 生成乙太網用的mac頭部

mac頭部字段:

接收方mac位址(48b):使用這一位址傳輸網路包

傳送方mac位址(48b):接收方通過它來判斷是誰傳送了包

以太型別(16b):0800(ip協議)、0806(arp協議)

ip模組根據路由表的gateway欄內容判斷把包發給誰。

5.5 通過arp(address resolution protocol 位址解析協議)查詢目標路由器的mac位址

arp快取的記憶體空間。

arp換成中的值經過一段時間就會刪除。一般在幾分鐘左右。

查詢mac位址需要arp。

5.6 乙太網的基本知識

1.主幹網線

2.中繼式集線器:訊號會傳送給所有裝置

3.交換式集線器(交換機):訊號只會流到根據mac位址指定的裝置

3個性質:

將包傳送到mac頭部的接收方mac位址代表目的地,用傳送方mac位址識別傳送方,用以太型別識別包的內容。

可以認為具備這3個性質的網路就是乙太網。

5.7 將ip包轉換成電訊號或光訊號傳送出去

網絡卡的rom中儲存著世界唯一的mac位址,這是在生產網絡卡時寫入的。

網絡卡中儲存的mac位址會由網絡卡驅動程式讀取並分配給mac模組。

5.8 給網路包再加3個控制資料

起始幀分解符是乙個用來表示包起始位置的標記。

fcs(幀校驗序列)用來檢查包傳輸過程中因雜訊導致的波形紊亂、資料錯誤。(會對接收方fcs和傳送方fcs進行比對,進行判斷資料有沒有出錯)

5.9 向集線器傳送網路包

傳送和接收同時進行的方式叫'全雙工'。

某一時刻,傳送和接收其中一種的叫'半雙工'。

網絡卡的mac模組生成通用訊號,然後由phy模組轉換成可在網線中傳輸的格式,並通過網線傳送出去。

'半全工'模式下,可能發生訊號碰撞,當訊號碰撞時,會停止所有的傳送操作。等待一段時間後,重新傳送訊號。

5.10 接收返回包

phy將訊號轉換成通用格式並傳送給mac模組,mac模組再從頭開始將訊號轉換成數字資訊,並放入緩衝區。

5.11 將伺服器的響應包從ip傳遞給tcp

1.檢查ip頭部,確認格式

2.檢視接收方ip位址與客戶端網絡卡位址是否一致。

3.檢查後接收包。

分片的包會在ip頭部的標誌欄位中進行標記。

同乙個包的所有分片具有相同id。

分片偏移量:表示當前分片在整個包中所處的位置。

分片重組:所有分片收到之後,將它們還原成原始的包。

6.1	不需要重發的資料用udp傳送更高效

6.2 控制用的短資料

根據ip查詢mac位址的機制叫做'arp(位址解析協議)

軟體構造第二章隨筆

1.瀑布模型 要求 設計 實現 驗證 維護 2.增量模型 以增量的方式實施瀑布模型 通常首先實現優先順序最高的需求 當某增量開發完成,則對應的需求被凍結 3.v模型 強調了瀑布模型的測試環節 4原型法 先實現乙個系統原型,模擬最終的幾個方面,甚至完全不同,細節問題可以忽略。在專案早期可以獲得使用者的...

第二章 網路應用

第二章 網路應用 1.網路應用體系結構 識記網路應用特性結構與分類 客戶 伺服器 c s 結構 純p2p結構 混合結構 領會c s網路應用 p2p網路應用以及混合網路應用的特點 區別與聯絡 c s最主要的特徵是通訊只在客戶與伺服器之間進行,客戶與客戶之間不進行直接通訊 p2p結構可以動態地直接與其他...

第二章 系統網路管理

第二章 系統網路管理 etc hosts 網路對映檔案 root gechong gechong more etc hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 1 localho...