Linux網路通訊 TCP IP協議

2021-07-24 11:12:31 字數 1829 閱讀 9954

一、網路通訊

網路是通過物理鏈路將各個孤立的工作站或主機相連在一起,組成資料鏈路,從而達到資源共享和通訊的目的,通過資訊交換實現人與人、人與計算機、計算機與計算機之間的通訊。

1. 網路通訊要遵守網路協議,區域網中最常用的有三個網路協議:microsoft的netbeui、novell的ipx/spx和tcp/ip協議。

a> netbeui - 網路基本輸入輸出系統擴充套件使用者介面。netbeui是為ibm開發的非路由協議,用於攜帶netbios通訊。netbeui缺乏路由和網路層定址功能,既是其最大的優點,也是其最大的缺點。

b> ipx/spx - 互連網包交換/順序包交換。ipx是novell用於netware客戶端/伺服器的協議群組,具有完全的路由能力,但是可擴充套件性受到其高層廣播通訊和高開銷的限制。

c> tcp/ip允許與internet完全的連線,這是其它協議不具備的。同時具備了可擴充套件性和可靠性的需求,但是不犧牲了速度和效率。

二、tcp/ip協議

1. 參考模型

國際標準化組織(iso)定義了網路協議的基本框架,被稱為osi模型。osi模型包括應用層、表示層、會話層、傳輸層、網路層、資料鏈路層及物理層。這個7層的協議模型雖然規定得非常細緻和完善,但在實際中卻得不到廣泛的應用,其重要的原因之一就在於它過於複雜,但它仍是此後很多協議模型的基礎。與此相區別的tcp/ip協議模型將osi的7層協議模型簡化為4層,從而更有利於實現和使用。tcp/ip協議模型包括應用層、傳輸層、網路層、網路介面層。

2. tcp/ip協議的4層協議

tcp/ip協議是網路中使用的基本通訊協議。

網路介面層:網路介面層是tcp/ip的最底層,負責將二進位制流轉換成資料幀,並進行資料幀的傳送和接收。資料幀是網路傳輸的基本單元。

網路層:網路層負責在主機之間的通訊中選擇資料報的傳輸路徑,即 路由。當網路收到傳輸層的請求後,使用路由演算法來確定是直接交付資料報,還是把它傳遞給路由器,最後把資料報交給適當的網路介面進行傳輸。

傳輸層:負責實現應用程式之間的通訊服務,又稱為端到端通訊,傳輸層要提供可靠的傳輸服務,以確保資料到達無差錯、無亂序。為了達到這個目的,傳輸層協議軟體要進行協商。傳輸層協議軟體要把傳輸的資料流分為分組。

應用層:應用層是分層模型的最高層。應用程式使用相應的應用層協議,把封裝好的資料交給傳輸層或是傳輸層接收資料並處理。

3. 分層模型圖

4. tcp與udp的概念

tcp(傳輸控制協議):為應用程式提供可靠的通訊連線,適合一次傳輸大批資料的情況,並適應要求得到相應的應用程式。

udp(使用者資料報協議):提供無連線通訊,且不對傳送包進行可靠的保證,適合一次傳輸少量資料。

三、tcp協議

tcp是tcp/ip體系中面向連線的傳輸層協議,提供全雙工和可靠交付的服務,採用許多機制來確保資料的可靠性。

首先,tcp為傳送的資料加上序列號,來保證資料能被接收方接收,且只能被正確接收一次。其次,tcp採用具有重傳功能的確認技術作為可靠資料流傳輸服務的基礎。由於傳送方接收到資料之後會返回乙個ack訊號,所以傳送方檢測ack訊號來判斷是否接收成功。如果接收失敗,就會重新傳送剛才的資料。最後,tcp採用可變長的滑動視窗協議進行流量控制,防止傳送方與接收方資料不匹配造成資料丟失。採用可變長的滑動視窗,可以對接收/傳送的資料進行動態調節,靈活性更強。

四、udp協議

udp也是tcp/ip體系中面向連線的傳輸層協議,是一種無連線協議,因此不需要三次握手來建立連線。udp協議比tcp協議更為高效,解決了實時性的問題。

TCP IP 網路通訊基礎

通過tcp ip讓兩台真機進行通訊,選定一台真機做伺服器,一台做客戶端,客戶端需要知道伺服器端的ip,通過adb命令可以檢視到連線到wifi的平板的ip,如圖,可以檢視到ip為192.168.1.79 注意一點 android3.0版本以後的網路通訊不能在主線程實現,而必須要新建執行緒去實現,這一點...

Linux下使用TCP IP實現網路通訊

建立socket,呼叫socket函式,建立乙個套接字lfd 繫結bind 用bind函式,講lfd與位址號和埠號進行繫結 監聽listen 使用listen函式講套接字設為監聽模式,等待客戶端連線 接受accept accept接受到客戶端連線,返回乙個新的套接字cfd,然後lfd繼續監聽 併發的...

Linux命令 網路通訊

命令名稱 write 命令所在路徑 usr bin write 執行許可權 所有使用者 功能描述 向另一使用者傳送資訊,ctrl d結束,另一使用者必須登入 語法 write 使用者名稱 命令名稱 wall 命令所在路徑 usr bin wall 執行許可權 所有使用者 功能描述 向所有使用者傳送資...