什么是HTTP
超文本傳輸協(xié)議(HTTP突雪,HyperText Transfer Protocol)是互聯(lián)網(wǎng)上應(yīng)用最為廣泛的一種網(wǎng)絡(luò)協(xié)議驰贷。所有的WWW文件都必須遵守這個標(biāo)準(zhǔn)颠区。設(shè)計HTTP最初的目的是為了提供一種發(fā)布和接收HTML頁面的方法荠割。(百度百科)
什么是TCP
傳輸控制協(xié)議TCP(Transmisson Control Protocol)–提供面向連接的棵帽,可靠的數(shù)據(jù)傳輸服務(wù)熄求。 TCP是TCP/IP協(xié)議組(4層結(jié)構(gòu))傳輸層的協(xié)議。
TCP特點:
1.TCP是面向連接的逗概。(就好像打電話一樣弟晚,通話前需要先撥號建立連接,通話結(jié)束后要掛機釋放連接)逾苫;
2.每一條TCP連接只能有兩個端點卿城,每一條TCP連接只能是點對點的(一對一);
3.TCP提供可靠交付的服務(wù)铅搓。通過TCP連接傳送的數(shù)據(jù)瑟押,無差錯、不丟失狸吞、不重復(fù)勉耀、并且按序到達(dá);
4.TCP提供全雙工通信蹋偏。TCP允許通信雙方的應(yīng)用進程在任何時候都能發(fā)送數(shù)據(jù)便斥。TCP連接的兩端都設(shè)有發(fā)送緩存和接收緩存,用來臨時存放雙方通信的數(shù)據(jù)威始;
5.面向字節(jié)流枢纠。TCP中的“流”(stream)指的是流入進程或從進程流出的字節(jié)序列±杼模“面向字節(jié)流”的含義是:雖然應(yīng)用程序和TCP的交互是一次一個數(shù)據(jù)塊(大小不等)晋渺,但TCP把應(yīng)用程序交下來的數(shù)據(jù)僅僅看成是一連串的無結(jié)構(gòu)的字節(jié)流。
什么是UDP
用戶數(shù)據(jù)協(xié)議UDP(User Datagram Protocol)–提供無連接的脓斩,盡最大努力的數(shù)據(jù)傳輸服務(wù)(不保證數(shù)據(jù)傳輸?shù)目煽啃裕┠疚鳌CP是TCP/IP協(xié)議組(4層結(jié)構(gòu))傳輸層的協(xié)議。
UDP特點:
1.UDP是無連接的随静;
2.UDP使用盡最大努力交付八千,即不保證可靠交付,因此主機不需要維持復(fù)雜的鏈接狀態(tài)(這里面有許多參數(shù))燎猛;
3.UDP是面向報文的恋捆;
4.UDP沒有擁塞控制,因此網(wǎng)絡(luò)出現(xiàn)擁塞不會使源主機的發(fā)送速率降低(對實時應(yīng)用很有用重绷,如IP電話沸停,實時視頻會議等);
5.UDP支持一對一昭卓、一對多愤钾、多對一和多對多的交互通信;
6.UDP的首部開銷小候醒,只有8個字節(jié)绰垂,比TCP的20個字節(jié)的首部要短。
什么是socket
應(yīng)用在使用 TCP 或 UDP 時火焰,會用到操作系統(tǒng)提供的類庫劲装。這種類庫一般被稱為 API(Application Programming Interface,應(yīng)用編程接口)昌简。 使用 TCP 或 UDP 通訊時占业,優(yōu)惠廣泛使用到套接字(Socket)的 API。套接字原本是由 BSD UNIX 開發(fā)的纯赎,但是后被移植到了 Windows 的 Winsock 以及嵌入式操作系統(tǒng)中谦疾。 應(yīng)用程序利用套接字,可以設(shè)置對端的 IP 地址犬金,端口號念恍,并實現(xiàn)數(shù)據(jù)的發(fā)送與接收六剥。 網(wǎng)絡(luò)上的兩個程序通過一個雙向的通信連接實現(xiàn)數(shù)據(jù)的交換,這個連接的一端稱為一個 Socket峰伙。 建立網(wǎng)絡(luò)通信連接至少要一對端口號(Socket)疗疟。Socket 本質(zhì)是編程接口(API),對 TCP/IP 的封裝瞳氓,TCP/IP 也要提供可供程序員做網(wǎng)絡(luò)開發(fā)所用的接口策彤,這就是 Socket 編程接口。