網路程式設計part2

2022-08-18 04:45:11 字數 1060 閱讀 2871

五層協議

計算機1:

計算機2:

​應用層

應用層​

socket

socket

​傳輸層

段傳輸層

網路層包

網路層資料鏈路層

幀資料鏈路層

物理層<**********=互動機**********=>

物理層​

​客戶端軟體send

服務端軟體recv

作業系統

作業系統

計算機硬體

<====物理介質*****>

計算機硬體

客戶端軟體send

服務端軟體recv

作業系統

作業系統

計算機硬體

<====物理介質*****>

計算機硬體​​

​ethernet頭

+ip頭

+tcp頭

+應用層的頭

+應用層資料

一、傳輸層 tcp/udp協議——基於埠

埠的範圍是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...