TCP
TCP(Transmission Control Protocol 傳輸控制協(xié)議)是一種面向連接的、可靠的、基于字節(jié)流的 傳輸層 通信協(xié)議子檀,由IETF的RFC 793定義。
應(yīng)用層向TCP層發(fā)送用于網(wǎng)間傳輸?shù)摹⒂?位字節(jié)表示的數(shù)據(jù)流含蓉,然后TCP把數(shù)據(jù)流分區(qū)成適當(dāng)長(zhǎng)度的報(bào)文段(通常受該計(jì)算機(jī)連接的網(wǎng)絡(luò)的數(shù)據(jù)鏈路層的最大傳輸單元(
MTU的限制)。之后TCP把結(jié)果包傳給IP層项郊,由它來通過網(wǎng)絡(luò)將包傳送給接收端實(shí)體
的TCP層馅扣。TCP為了保證不發(fā)生丟包,就給每個(gè)包一個(gè)序號(hào)着降,同時(shí)序號(hào)也保證了傳送到接收端實(shí)體的包的按序接收差油。然后接收端實(shí)體對(duì)已成功收到的包發(fā)回一個(gè)相應(yīng)的確認(rèn)(ACK);如果發(fā)送端實(shí)體在合理的往返時(shí)延(RTT)內(nèi)未收到確認(rèn)任洞,那么對(duì)應(yīng)的數(shù)據(jù)包就被假設(shè)為已丟失將會(huì)被進(jìn)行重傳蓄喇。
UDP
UDP 是User Datagram Protocol的簡(jiǎn)稱, 中文名是用戶數(shù)據(jù)報(bào)協(xié)議交掏,是OSI(Open System Interconnection妆偏,開放式系統(tǒng)互聯(lián)) 參考模型中一種無連接的傳輸層協(xié)議,提供面向事務(wù)的簡(jiǎn)單不可靠信息傳送服務(wù)盅弛,IETF RFC 768是UDP的正式規(guī)范钱骂。
UDP是OSI參考模型中一種無連接的傳輸層協(xié)議,它主要用于不要求分組順序到達(dá)的傳輸中挪鹏,分組傳輸順序的檢查與排序由應(yīng)用層完成见秽,提供面向事務(wù)的簡(jiǎn)單不可靠信息傳送服務(wù)。
UDP提供了無連接通信讨盒,且不對(duì)傳送數(shù)據(jù)包進(jìn)行可靠性保證解取,適合于一次傳輸少量數(shù)據(jù),UDP傳輸?shù)目煽啃杂蓱?yīng)用層負(fù)責(zé)返顺。
TCP和UDP的區(qū)別
HTTP
HTTPS
HTTPS是Hypertext Transfer Protocol over Secure Socket Layer的縮寫禀苦,即HTTP over SSL蔓肯,可理解為基于SSL的HTTP協(xié)議。HTTPS協(xié)議安全是由SSL協(xié)議(目前常用的伦忠,本文基于TLS 1.2進(jìn)行分析)實(shí)現(xiàn)的省核。
SSL協(xié)議是一種記錄協(xié)議,擴(kuò)展性良好昆码,可以很方便的添加子協(xié)議气忠,而握手協(xié)議便是SSL協(xié)議的一個(gè)子協(xié)議。
TLS協(xié)議是SSL協(xié)議的后續(xù)版本赋咽,本文中涉及的SSL協(xié)議默認(rèn)是TLS協(xié)議1.2版本旧噪。
HTTPS協(xié)議需要解決的問題
HTTPS作為安全協(xié)議而誕生,那么就不得不面對(duì)以下兩大安全問題:
- 身份驗(yàn)證
確保通信雙方身份的真實(shí)性脓匿。直白一些淘钟,A希望與B通信,A如何確認(rèn)B的身份不是由C偽造的陪毡。(由C偽造B的身份與A通信米母,稱為中間人攻擊) - 通信加密
通信的機(jī)密性、完整性依賴于算法與密鑰毡琉,通信雙方是如何選擇算法與密鑰的铁瞒。
能同時(shí)解決以上兩個(gè)問題,就能確保真實(shí)有效的通信雙方采取有效的算法與密鑰進(jìn)行通信桅滋,便完成了協(xié)議安全的初衷慧耍。