建立套接字 --> 連線套接字管道 --> 傳送資料 --> 斷開連線
協議棧內部有一塊用於存放控制資訊的記憶體空間,記錄了控制通訊操作的控制資訊(如: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...