TCP/UDP 協(xié)議胀滚,和 HTTP、FTP稼虎、SMTP,區(qū)別及應(yīng)用場景
一招刨、OSI 模型
OSI 模型主要作為一個通用模型來做理論分析霎俩,而TCP/IP 協(xié)議模型是互聯(lián)網(wǎng)的實際通訊協(xié)議,兩者一般做映射分析沉眶,以下不做嚴格區(qū)分和聲明(好吧打却,比較懶);OSI 整個模型層次大致可以分為3個主要層面來看|.............主機...............| 操作系統(tǒng)和軟件等 應(yīng)用谎倔、表示柳击、會話|.............網(wǎng)絡(luò)...............| 互聯(lián)網(wǎng)絡(luò)和相關(guān)協(xié)議 傳輸、網(wǎng)絡(luò) (TCP/IP)|.............介質(zhì)...............| 物理介質(zhì)相關(guān) 數(shù)據(jù)鏈路片习、物理下圖模型為OSI
二懦趋、TCP與HTTP的區(qū)別
TCP/IP協(xié)議是傳輸層協(xié)議,主要解決數(shù)據(jù)如何在網(wǎng)絡(luò)中傳輸疹味,而HTTP是應(yīng)用層協(xié)議仅叫,主要解決如何包裝數(shù)據(jù)。關(guān)于TCP/IP和HTTP協(xié)議的關(guān)系糙捺,網(wǎng)絡(luò)有一段比較容易理解的介紹:“我們在傳輸數(shù)據(jù)時诫咱,可以只使用(傳輸層)TCP/IP協(xié)議,但是那樣的話洪灯,如果沒有應(yīng)用層坎缭,便無法識別數(shù)據(jù)內(nèi)容,如果想要使傳輸?shù)臄?shù)據(jù)有意義签钩,則必須使用到應(yīng)用層協(xié)議掏呼,應(yīng)用層協(xié)議有很多,比如HTTP铅檩、FTP憎夷、TELNET等,也可以自己定義應(yīng)用層協(xié)議昧旨。WEB使用HTTP協(xié)議作應(yīng)用層協(xié)議拾给,以封裝HTTP 文本信息祥得,然后使用TCP/IP做傳輸層協(xié)議將它發(fā)到網(wǎng)絡(luò)上〗茫”
術(shù)語TCP/IP代表傳輸控制協(xié)議/網(wǎng)際協(xié)議级及,指的是一系列協(xié)議《钛茫“IP”代表網(wǎng)際協(xié)議饮焦,TCP和UDP使用該協(xié)議從一個網(wǎng)絡(luò)傳送數(shù)據(jù)包到另一個網(wǎng)絡(luò)。把IP想像成一種高速公路窍侧,它允許其它協(xié)議在上面行駛并找到到其它電腦的出口县踢。TCP和UDP是高速公路上的“卡車”,它們攜帶的貨物就是像HTTP疏之,文件傳輸協(xié)議FTP這樣的協(xié)議等。
你應(yīng)該能理解暇咆,TCP和UDP是FTP锋爪,HTTP和SMTP之類使用的傳輸層協(xié)議。雖然TCP和UDP都是用來傳輸其他協(xié)議的爸业,它們卻有一個顯著的不同:TCP提供有保證的數(shù)據(jù)傳輸其骄,而UDP不提供。這意味著TCP有一個特殊的機制來確保數(shù)據(jù)安全的不出錯的從一個端點傳到另一個端點扯旷,而UDP不提供任何這樣的保證拯爽。
HTTP(超文本傳輸協(xié)議)是利用TCP在兩臺電腦(通常是Web服務(wù)器和客戶端)之間傳輸信息的協(xié)議【觯客戶端使用Web瀏覽器發(fā)起HTTP請求給Web服務(wù)器毯炮,Web服務(wù)器發(fā)送被請求的信息給客戶端。
下面的圖表試圖顯示不同的TCP/IP和其他的協(xié)議在最初OSI模型中的位置:
7
應(yīng)用層
例如HTTP耸黑、SMTP桃煎、SNMP、FTP大刊、Telnet为迈、SIP、SSH缺菌、NFS葫辐、RTSP、XMPP伴郁、Whois耿战、ENRP
6
表示層
例如XDR、ASN.1焊傅、SMB昆箕、AFP鸦列、NCP
5
會話層
例如ASAP、TLS鹏倘、SSH薯嗤、ISO 8327 / CCITT X.225、RPC纤泵、NetBIOS骆姐、ASP、Winsock捏题、BSD sockets
4
傳輸層
例如TCP玻褪、UDP、RTP公荧、SCTP带射、SPX、ATP循狰、IL
3
網(wǎng)絡(luò)層
例如IP窟社、ICMP、IGMP绪钥、IPX灿里、BGP、OSPF程腹、RIP匣吊、IGRP、EIGRP寸潦、ARP色鸳、RARP、 X.25
2
數(shù)據(jù)鏈路層
例如以太網(wǎng)见转、令牌環(huán)缕碎、HDLC、幀中繼池户、ISDN咏雌、ATM、IEEE 802.11校焦、FDDI赊抖、PPP
三、TCP,UDP,HTTP應(yīng)用場景
Socket實現(xiàn)服務(wù)器與客戶端之間的物理連接耸成,并進行數(shù)據(jù)傳輸报亩。主要有TCP/UDP兩個協(xié)議浴鸿。Socket處于網(wǎng)絡(luò)協(xié)議的傳輸層。
TCP:傳輸控制協(xié)議弦追,面向連接的的協(xié)議岳链,穩(wěn)定可靠。當(dāng)客戶和服務(wù)器彼此交換數(shù)據(jù)前劲件,必須先在雙方之間建立一個TCP連接掸哑,之后才能傳輸數(shù)據(jù)。UDP:廣播式數(shù)據(jù)傳輸零远,UDP不提供可靠性苗分,它只是把應(yīng)用程序傳給IP層的數(shù)據(jù)報發(fā)送出去,但是并不能保證它們能到達目的地牵辣。由于UDP在傳輸數(shù)據(jù)報前不用在客戶和服務(wù)器之間建立一個連接摔癣,且沒有超時重發(fā)等機制,故而傳輸速度很快纬向。優(yōu)點:1.傳輸數(shù)據(jù)為字節(jié)級择浊,傳輸數(shù)據(jù)可自定義,數(shù)據(jù)量小罢猪。相應(yīng)的移動端開發(fā)近她,手機費用低
2.傳輸數(shù)據(jù)時間短叉瘩,性能高
3.適合C/S之間信息實時交互
4.可以加密膳帕,數(shù)據(jù)安全性高
缺點: 1.需要對傳輸?shù)臄?shù)據(jù)進行解析,轉(zhuǎn)化為應(yīng)用級的數(shù)據(jù)
2.對開發(fā)人員的開發(fā)水平要求高
3.相對于Http協(xié)議傳輸薇缅,增加了開發(fā)量
Http請求主要有http協(xié)議危彩,基于http協(xié)議的soap協(xié)議,常見的http數(shù)據(jù)請求方式有g(shù)et和post泳桦,web服務(wù)
優(yōu)點:1.基于應(yīng)用級的接口使用方便
2.要求的開發(fā)水平不高汤徽,容錯性強
缺點: 1.傳輸速度慢,數(shù)據(jù)包大灸撰。
2.如實現(xiàn)實時交互谒府,服務(wù)器性能壓力大
3.數(shù)據(jù)傳輸安全性差