乙個主機如何將資料傳送到另一主機上
一. 鏈路層(定義mac位址)
二. 網路層(定義ip位址)
1. ip協議
mac位址只與廠商有關,與所處網路無關,ip位址就是能夠區分兩台主機是否屬於同一網路
子網掩碼,在同子網內的兩台主機,ip位址和子網掩碼通過」按位與」運算後就可以得到網路位址
2. arp協議
在同一子網內,根據ip位址獲取mac位址
arp請求資料報-乙太網資料報-自網內所有主機-主機對比ip位址若相同則返回mac位址
3. 路由協議
通過ip協議判斷是否在同一子網中(若兩個ip位址在同子網內,則網路位址相同),
若在,則用arp協議獲取mac位址,
若不在,乙太網會將資料報傳送給閘道器進行路由,閘道器是網際網路上子網與子網之間的橋梁,經多次**到目標ip所在的子網中,在通過arp獲取目標機的mac位址
路由器為網路中的橋梁,根據通道情況,選擇並設定路由,以最佳路徑**資料報
4. ip資料報
ip資料報,即在網路層被包裝的資料報
首部,目標ip位址,源ip位址
三. 傳輸層(確定接受資料報的應用程式)
1. udp協議
udp協議定義了每個應用程式唯一的埠號,規定網路中傳輸的資料報必須加上埠資訊
2. udp資料報
首部,源埠和目標埠
udp協議比較簡單,無法確認對方是否收到資料報,為解決這一問題,tcp協議就誕生了
3. tcp協議(傳輸控制協議,即有控制機制的udp協議)
每傳送乙個資料報都要求確認,若未收到確認,傳送方必須重發這個資料報
tcp協議傳輸資料有三次對話機制,穩定,但消耗資源多,傳輸速度慢
4. tcp資料報
首部,源埠和目標埠
資料,無限長,但通常不會超過ip資料報的長度,以確保tcp資料報不被切割
四. 應用層
定義協議來規範資料格式,http,ftp,smtp
也就是定義資料格式,按照對應的合適解析資料
鏈路層:定義資料幀,確認目標mac位址,傳資料
網路層:(ip,arp,路由)定義ip位址,確認兩主機的位置,通過ip,arp協議進行mac定址,對外網主機進行路由協議定址,路由**資料報
傳輸層:(udp,tcp)定義應用程式埠,將對應的資料報傳輸給對應的資料程式
應用層:定義資料格式,按照格式解析資料
tcp ip 學習筆記
最近學習網路程式設計,看了周立發老師的blog 也模仿寫了乙個檔案管理併發伺服器。選擇多程序併發伺服器 技術難點 建立tcp 伺服器 fork 產生新的處理程序 使用getopt 函式使伺服器配置引數化,使用同一的linux風格 設定埠復用,瀏覽檔案系統,思路 1 首先建立乙個被動套接字 設定套接字...
Tcp ip學習筆記
分層 網路協議通常分不同層次進行開發,每一層分別負責不同的通訊功能。乙個協議族,比如t c p i p,是一組不同層次上的多個協議的組合。t c p i p通常被認為是乙個四層協議系統,如圖1 1所示。每一層負責不同的功能 1 鏈路層,有時也稱作資料鏈路層或網路介面層,通常包括作業系統中的裝置驅動程...
TCP IP 學習筆記
1 擁塞避免演算法 名稱解釋 報文段 tcp一次傳輸所傳送的一定長度的位元組段。tcp的滑動視窗機制,作為接收方管理傳送方傳送資料量的手段,以防止接收方的接收緩衝區因為滿而溢位。擁塞視窗 cwnd 接收端通知視窗 rwnd 慢啟動閥值 ssthresh 慢啟動的特徵 1 cwnd被初始化為乙個資料報...