網路程式設計心得

2021-10-01 21:20:21 字數 2202 閱讀 6523

在網路程式設計中我們要學習很多知識:

在網路的大世界裡,我們雖然知道我們能互相傳送訊息,互相通話,但是網路是如何這麼準確的幫你找到你心心念念的她呢,接下來我們來**一下神秘的網路如何幫我們來準確的互相發訊息。

我們都應該聽過一句老話,無規矩不成方圓,所以要想在和平安定的生活,就必須堅守法律規矩,所以呢網路世界也一樣,要想和平相處不亂套,就需要遵守一些規則,所以就有了網路協議。資料才能安穩在網路世界裡穿梭。

接下來我們來了解一些重要得協議,tcp和ip協議,通常我們叫它tcp/ip協議,根據協議的功能的不同抽象成了4層。

接下來我們理解一下資料傳送的路上的經歷:

資料傳輸的時候先將資料從應用層傳遞到傳輸層,然後再從傳輸層傳遞到網路層,然後再傳 遞到鏈路層,最後在通過物理傳輸介質(網線)傳遞資料。

詳細如下:

『你好』(應用層)\ ==>傳輸層選擇通訊協議,tcp/udp協議==>網路層加上ip協議==>資料鏈路層(mac位址)==>物理層(網線,網絡卡)

接下來接收:

物理層==>資料鏈路層==>網路層==>傳輸層==>傳輸層==>應用層

然後,就是兩台計算機在進行資料交換時候的歷程(我給你傳送訊息,網路如何建立乙個安全可靠的連線,並且進行資料傳輸):

首先來理解tcp協議,要建立乙個安全可靠的連線就需要tcp協議的支援,

tcp協議特點:資料安全,速度略低。分為客戶端和服務端。 使用tcp的應用:web瀏覽器;電子郵件等程式。 tcp的三次握手和4次揮手

那什麼是三次握手呢,就是兩台計算機之間首先進行三次互相交流,看能不能意見統一,互相達成一致,進行交流。主要就是確保兩台計算機能進行準備。

第一次握手:是客戶端讓伺服器準備好資源。

第二次握手:服務端資源準備好了並且服務端問客戶端資源有沒有準備好。

第三次握手:客戶端資源也準備好了。接下來才真正的發生資料。

tcp是網際網路中的傳輸層協議,使用三次握手協議建立連線。當主動方發出syn連線請求後, 等待對方回答syn+ack[1],並最終對對方的 syn 執行 ack 確認。這種建立連線的方法可以 防止產生錯誤的連線。[1] tcp三次握手的過程如下: 客戶端傳送syn(seq=x)報文給伺服器端,進入syn_send狀態。 伺服器端收到syn報文,回應乙個syn (seq=y)ack(ack=x+1)報文,進入syn_recv狀態。 客戶端收到伺服器端的syn報文,回應乙個ack(ack=y+1)報文,進入established狀態。 三次握手完成,tcp客戶端和伺服器端成功地建立連線,可以開始傳輸資料了。

所以這樣是比較可靠的連線。

還有四次揮手告別(斷開連線),這個形象理解就是經過兩輪的確認才互相離開。

第一次,客戶端告訴服務端我不會給你發資料了,第二次服務端告訴客戶端我收到你發生的 資訊了,第三次服務端給客戶端發生資料說我也不給你發了,第四次客戶端給服務端說我知 道了。

(1) 某個應用程序首先呼叫close,稱該端執行「主動關閉」(active close)。該端的tcp 於是傳送乙個fin分節,表示資料傳送完畢。

(2) 接收到這個fin的對端執行 「被動關閉」(passive close),這個fin由tcp確認。 注意:fin的接收也作為乙個檔案結束符(end-of-file)傳遞給接收端應用程序,放在已排 隊等候該應用程序接收的任何其他資料之後,因為,fin的接收意味著接收端應用程序在相 應連線上再無額外資料可接收。

(3) 一段時間後,接收到這個檔案結束符的應用程序將呼叫close關閉它的套接字。這導致 它的tcp也傳送乙個fin。

(4) 接收這個最終fin的原傳送端tcp(即執行主動關閉的那一端)確認這個fin。[1]

網路程式設計學習心得

unix struct in addr 32為的位址結構,是網路位元組序 struct sockaddr in s un b struct s un w u long s addr s un in addr,pin addr,far lpin addr union的作用是將大括號裡所有的東西的記憶體...

IME程式設計心得

二 imm ime結構的基本工作過程及特點 使用者鍵盤訊息 系統通過imm傳遞給與當前執行緒對應的ime ime根據輸入的訊息和輸入上下文中記錄的資料,將使用者的鍵盤動作轉換成結果串 以字串訊息的形式返回給imm 放到應用程式視窗的訊息佇列中。三 ime的構成 1.ime轉換介面 ime conve...

C 程式設計心得

寫c 時一定要記得對變數的初始化。當然vector會自動初始化為0.c 不允許將陣列作為行參或者,返回值,當然可以用指標代替。makefile 各行的相對順序可以忽略 在構造方法中,若用冒號加括號對變數進行初始化,且該建構函式有形參時,在括號中被初始化的變數不能賦值為形參,此種初始化方法是在建構函式...