五層協議
計算機1:計算機2:
應用層
應用層
socket
socket
傳輸層
段傳輸層
網路層包
網路層資料鏈路層
幀資料鏈路層
物理層<**********=互動機**********=>
物理層
客戶端軟體send
服務端軟體recv
作業系統
作業系統
計算機硬體
<====物理介質*****>
計算機硬體
客戶端軟體send一、傳輸層 tcp/udp協議——基於埠服務端軟體recv
作業系統
作業系統
計算機硬體
<====物理介質*****>
計算機硬體
ethernet頭
+ip頭
+tcp頭
+應用層的頭
+應用層資料
埠的範圍是0-65535,其中0-1023是系統占用的埠
所以ip加上port可以標識到世界範圍的任意乙個基於網路通訊的應用程式
基於ctp協議通訊時——必須先建立乙個雙向通訊的鏈結
建立鏈結是為了傳資料做準備的,三次握手即可
四次揮手斷開鏈結
斷開鏈結時,由於鏈結內有資料傳輸,所以必須分四次斷開
tcp協議是可靠傳輸的,傳送資料必須等到對方確認後才算完成,才會將自己記憶體中的資料清理掉,否則重傳。
udp協議是不可靠傳輸的(不需要確認,所以速度相對快)
tcp協議的半連線池:
backlog
[請求1,請求2,請求3...]
面對洪水攻擊時,理論上的可以擴充backlog應對...
二、應用層
可以自定義協議——頭部+資料
注意點:
1.頭部:放對於資料的描述資訊(接收方,資料型別,資料長度)
資料:資料部分
2.頭部長度是固定的(通過頭部來獲取接收資料的屬性)
程式設計練習 part2
一.題目 對於乙個給定的井字棋棋盤,請設計乙個高效演算法判斷當前玩家是否獲勝。給定乙個二維陣列board,代表當前棋盤,其中元素為1的代表是當前玩家的棋子,為0表示沒有棋子,為 1代表是對方玩家的棋子。測試樣例 1,0,1 1,1,1 1,1,0 返回 true 思路 對於井字棋的獲勝方式,有下面幾...
計算機網路 part2
udp提供不可靠的服務,無連線 不存在建立連線的時延 首部開銷相對tcp小,沒有擁塞控制,提供最大努力交付,面向報文 無論多長的報文udp也只加乙個頭部就往下發 tcp面向位元組流 通常用於允許一些資料丟失,但不允許交較大時延 傳輸少量資料 dns references osi參考模型 網路層 ip...
C 記憶體管理 part2
allocating class instances using new new operator 也可以用於對class instance分配動態記憶體。如下例 include using namespace std class point private int x int y int main...