TCP UDP及HTTP,常用協議的詳細介紹

2021-08-31 11:50:07 字數 2364 閱讀 7631

先來乙個講tcp、udp和http關係的

1、tcp/ip是個協議組,可分為三個層次:網路層、傳輸層和應用層。

在網路層有ip協議、icmp協議、arp協議、rarp協議和bootp協議。

在傳輸層中有tcp協議與udp協議。

在應用層有ftp、http、telnet、smtp、dns等協議。

因此,http本身就是乙個協議,是從web伺服器傳輸超文字到本地瀏覽器的傳送協議。

tcp 是基於 tcp 協議實現的網路文字協議,屬於傳輸層。

udp 是和tcp 對等的,屬於傳輸層,udp 和 tcp 有重要的區別。

2、http協議是建立在請求/響應模型上的。首先由客戶建立一條與伺服器的tcp鏈結,並傳送乙個請求到伺服器,請求中包含請求方法、uri、協議版本以及相關的mime樣式的訊息。伺服器響應乙個狀態行,包含訊息的協議版本、乙個成功和失敗碼以及相關的mime式樣的訊息。

http/1.0為每一次http的請求/響應建立一條新的tcp鏈結,因此乙個包含html內容和的頁面將需要建立多次的短期的tcp鏈結。一次tcp鏈結的建立將需要3次握手。

另外,為了獲得適當的傳輸速度,則需要tcp花費額外的迴路鏈結時間(rtt)。每一次鏈結的建立需要這種經常性的開銷,而其並不帶有實際有用的資料,只是保證鏈結的可靠性,因此http/1.1提出了可持續鏈結的實現方法。http/1.1將只建立一次tcp的鏈結而重複地使用它傳輸一系列的請求/響應訊息,因此減少了鏈結建立的次數和經常性的鏈結開銷。

這裡有必要再講一下三次握手的過程:

第一次握手:建立連線時,客戶端傳送syn包(syn=j)到伺服器,並進入syn_sent狀態,等待伺服器確認;syn:同步序列編號(synchronize sequence numbers)。

第二次握手:伺服器收到syn包,必須確認客戶的syn(ack=j+1),同時自己也傳送乙個syn包(syn=k),即syn+ack包,此時伺服器進入syn_recv狀態;ack:確認字元(acknowledgement)

第三次握手:客戶端收到伺服器的syn+ack包,向伺服器傳送確認包ack(ack=k+1),此包傳送完畢,客戶端和伺服器進入established(tcp連線成功)狀態,完成三次握手。

3、結論:雖然http本身是乙個協議,但其最終還是基於tcp的。不過,目前,有人正在研究基於tcp+udp混合的http協議。

socket是什麼呢?

socket是應用層與tcp/ip協議族通訊的中間軟體抽象層,它是一組介面。在設計模式中,socket其實就是乙個門面模式,它把複雜的tcp/ip協議族隱藏在socket介面後面,對使用者來說,一組簡單的介面就是全部,讓socket去組織資料,以符合指定的協議。

tcp(transmission control protocol,傳輸控制協議)是基於連線的協議,也就是說,在正式收發資料前,必須和對方建立可靠的連線。乙個tcp連線必須要經過三次「對話」才能建立起來,其中的過程非常複雜,我們這裡只做簡單、形象的介紹,你只要做到能夠理解這個過程即可。我們來看看這三次對話的簡單過程:主機a向主機b發出連線請求資料報:「我想給你發資料,可以嗎?」,這是第一次對話;主機b向主機a傳送同意連線和要求同步(同步就是兩台主機乙個在傳送,乙個在接收,協調工作)的資料報:「可以,你什麼時候發?」,這是第二次對話;主機a再發出乙個資料報確認主機b的要求同步:「我現在就發,你接著吧!」,這是第三次對話。三次「對話」的目的是使資料報的傳送和接收同步,經過三次「對話」之後,主機a才向主機b正式傳送資料。 

udp(user data protocol,使用者資料報協議)是與tcp相對應的協議。它是面向非連線的協議,它不與對方建立連線,而是直接就把資料報傳送過去!

udp適用於一次只傳送少量資料、對可靠性要求不高的應用環境。比如,我們經常使用「ping」命令來測試兩台主機之間tcp/ip通訊是否正常,其實「ping」命令的原理就是向對方主機傳送udp資料報,然後對方主機確認收到資料報,如果資料報是否到達的訊息及時反饋回來,那麼網路就是通的。例如,在預設狀態下,一次「ping」操作傳送4個資料報(如圖2所示)。大家可以看到,傳送的資料報數量是4包,收到的也是4包(因為對方主機收到後會發回乙個確認收到的資料報)。這充分說明了udp協議是面向非連線的協議,沒有建立連線的過程。正因為udp協議沒有連線的過程,所以它的通訊效果高;但也正因為如此,它的可靠性不如tcp協議高。qq就使用udp發訊息,因此有時會出現收不到訊息的情況。 

tcp協議和udp協議的差別

tcp       udp

是否連線     面向連線   面向非連線

傳輸可靠性     可靠      不可靠

應用場合    傳輸大量資料  少量資料

速度          慢          快

TCP UDP 協議 HTTP協議

http 是用於www瀏覽的乙個協議。tcp 是機器之間建立連線用的到的乙個協議。http是超文字傳輸協議,是客戶端瀏覽器或其他程式與web伺服器之間的應用層通訊協議。在internet上的web伺服器上存放的都是超文字資訊,客戶機需要通過http協議傳輸所要訪問的超文字資訊。http包含命令和傳輸...

TCP UDP 協議 HTTP協議

2010 02 08 16 33 3166人閱讀收藏 舉報tcp 網路web服務 internet 手機windows 1.tcp udp 面向連線的tcp 面向連線 就是在正式通訊前必須要與對方建立起連線。比如你給別人打 必須等線路接通了 對方拿起話筒才能相互通話。圖1 tcp transmiss...

HTTP協議,TCP UDP協議

http主要內容分為三部分,超文字,傳輸,協議。上面這些概念可以統稱為資料,傳輸就是資料需要經過一系列的物理介質從乙個端系統傳送到另外乙個端系統的過程。通常我們把傳輸資料報的一方稱為請求方,把接到二進位制資料報的一方稱為應答方。而協議指的就是是網路中 包括網際網路 傳遞 管理資訊的一些規範。如同人與...