SOCket和UDP和TCP的區別

2021-07-10 03:30:13 字數 1201 閱讀 8413

1. udp

udp是一種不可靠的網路協議。(qq用的是這個協議)

udp 是user datagram protocol的簡稱, 中文名是使用者資料報協議,是 osi 參考模型中一種無連線的傳輸層協議,提供面向事務的簡單不可靠資訊傳送服務,ietf rfc 768是udp的正式規範。

udp是osi參考模型中一種無連線的傳輸層協議,提供面向事務的簡單不可靠資訊傳送服務。udp 協議基本上是ip協議與上層協議的介面。

udp協議的全稱是使用者資料報協議,在網路中它與tcp協議一樣用於處理

與所熟知的tcp(傳輸控制協議)協議一樣,udp協議直接位於ip(網際協議)協議的頂層。根據osi(開放系統互連)參考模型,udp和tcp都屬於傳輸層協議。

udp協議的主要作用是將網路資料流量壓縮成資料報的形式。乙個典型的資料報就是乙個二進位制資料的傳輸單位。每乙個資料報的前8個位元組用來包含報頭資訊,剩餘位元組則用來包含具體的傳輸資料。(詳見:

)2.tcp

tcp:transmission control protocol 傳輸控制協議tcp是一種面向連線(連線導向)的、可靠的、基於位元組流的運輸層(transport layer)通訊協議,由ietf的rfc 793說明(specified)。在簡化的計算機網路osi模型中,它完成第四層傳輸層所指定的功能,udp是同一層內另乙個重要的傳輸協議。

應用層向tcp層傳送用於網間傳輸的、用8位位元組表示的資料流,然後tcp把資料流分割成適當長度的報文段(通常受該計算機連線的網路的資料鏈路層的最大傳送單元(mtu)的限制)。之後tcp把結果包傳給ip層,由它來通過網路將包傳送給接收端實體的tcp層。tcp為了保證不發生丟包,就給每個位元組乙個序號,同時序號也保證了傳送到接收端實體的包的按序接收。然後接收端實體對已成功收到的位元組發回乙個相應的確認(ack);如果傳送端實體在合理的往返時延(rtt)內未收到確認,那麼對應的資料(假設丟失了)將會被重傳。tcp用乙個校驗和函式來檢驗資料是否有錯誤;在傳送和接收時都要計算和校驗。 (詳見:

)3.socket

socket的英文原義是「孔」或「插座」

客戶軟體將插頭插到不同編號的插座,就可以得到不同的服務。

常用的socket型別

有兩種:流式socket(sock_stream)和資料報式socket(sock_dgram)。流式是一種面向連線的socket,針對於面向連線的tcp服務應用;資料報式socket是一種無連線的socket,對應於無連線的udp服務應用。(詳見:

Socket 程式設計 TCP 和UDP

三次握手過程 1.建立連線時,客戶端傳送syn包到伺服器,並進入syn sent狀態,等待伺服器確認。2.伺服器收到syn包,反饋乙個syn ack包,進入syn recv狀態。3.客戶端接到伺服器的syn ack包,向伺服器傳送確認包ack,同時進入established狀態,三次握手完成。伺服器...

基於tcp和udp的socket通訊

做個小遊戲的project用到了socket程式設計,於是,就在網上查閱了一下資料,下面簡單總結一下。1.什麼是socket socket是在應用層與傳輸層之間的乙個抽象層,它把tcp ip層複雜的操作抽象為幾個介面 用層的程序實現網路通訊,使得不同主機的相關程序之間交換資料。2.什麼是tcp和ud...

基於Socket的UDP和TCP協議

一 概述 tcp 傳輸控制協議 和udp 使用者資料報協議 是網路體系結構tcp ip模型中傳輸層一層中的兩個不同的通訊協議。tcp 傳輸控制協議,一種面向連線的協議,給使用者程序提供可靠的全雙工的位元組流,tcp套介面是位元組流套介面 stream socket 的一種。udp 使用者資料報協議。...