面向報文的傳輸方式:
??應(yīng)用層交給UDP多長的報文算柳,UDP就照樣發(fā)送,即一次發(fā)送一個報文
面向字節(jié)流:
??TCP有一個緩沖 谴蔑,當(dāng)應(yīng)用程序傳送的數(shù)據(jù)塊太長荠诬,TCP可以把他劃分短一些再傳送,如果應(yīng)用程序一次只發(fā)送一個字節(jié)焙蹭,TCP也可以等待積累夠多的字節(jié)后再構(gòu)成報文段發(fā)送出去晒杈。
面向連接
??例:打電話
無連接:
??例:寫信
TCP無邊界
??客戶端分多次發(fā)送數(shù)據(jù)給服務(wù)器,若服務(wù)器的緩沖區(qū)夠大孔厉,那么服務(wù)器端會在客戶端發(fā)送完之后一次性接收過來拯钻,所以是無邊界的;
UDP有邊界
??客戶端每發(fā)送一次撰豺,服務(wù)器端就會接收一次说庭,也就是說發(fā)送多少次就會接收多少次,因此是有邊界的郑趁。
TCP于UDP區(qū)別
??1.TCP面向連接,面向字節(jié)流姿搜,可靠寡润,速度慢,傳輸效率慢
有流量控制舅柜,有擁塞機(jī)制
??2.UDP不可靠 無連接 面向報文 傳輸效率高 速度快
TCP保證數(shù)據(jù)接收的順序性
??TCP每個報文都是有序號的梭纹,確認(rèn)應(yīng)答信號ACK=接收到的SEQ+1
利用Socket建立網(wǎng)絡(luò)連接的步驟
??建立Socket連接至少需要一對套接字,其中一個運行于客戶端致份,稱為ClientSocket 变抽,另一個運行于服務(wù)器端,稱為ServerSocket 氮块∩茉兀 套接字之間的連接過程分為三個步驟:服務(wù)器監(jiān)聽,客戶端請求滔蝉,連接確認(rèn)击儡。
1蝠引、服務(wù)器監(jiān)聽:服務(wù)器端套接字并不定位具體的客戶端套接字阳谍,而是處于等待連接的狀態(tài),實時監(jiān)控網(wǎng)絡(luò)狀態(tài)螃概,等待客戶端的連接請求矫夯。
2、客戶端請求:指客戶端的套接字提出連接請求吊洼,要連接的目標(biāo)是服務(wù)器端的套接字训貌。 為此融蹂,客戶端的套接字必須首先描述它要連接的服務(wù)器的套接字旺订,指出服務(wù)器端套接字的地址和端口號弄企,然后就向服務(wù)器端套接字提出連接請求。
3区拳、連接確認(rèn):當(dāng)服務(wù)器端套接字監(jiān)聽到或者說接收到客戶端套接字的連接請求時拘领,就響應(yīng)客戶端套接字的請求,建立一個新的線程樱调,把服務(wù)器端套接字的描述發(fā)給客戶端约素,一旦客戶端確認(rèn)了此描述,雙方就正式建立連接笆凌∈チ裕 而服務(wù)器端套接字繼續(xù)處于監(jiān)聽狀態(tài),繼續(xù)接收其他客戶端套接字的連接請求
鏈接:https://www.zhihu.com/question/39541968/answer/81841947
Http協(xié)議的主要特點
支持客戶/服務(wù)器模式
簡單快速:客戶向服務(wù)端請求服務(wù)時乞而,只需傳送請求方式和路徑送悔。
靈活:允許傳輸任意類型的數(shù)據(jù)對象。由Content-Type加以標(biāo)記爪模。
無連接:每次響應(yīng)一個請求欠啤,響應(yīng)完成以后就斷開連接。
無狀態(tài):服務(wù)器不保存瀏覽器的任何信息屋灌。每次提交的請求之間沒有關(guān)聯(lián)
鏈接:
https://github.com/GeniusVJR/LearningNotes/blob/master/Part4/Network/Http%E5%8D%8F%E8%AE%AE.md
https
SSL+HTTP協(xié)議構(gòu)成的可進(jìn)行加密傳輸洁段,身份認(rèn)證的網(wǎng)絡(luò)協(xié)議
- https://juejin.im/entry/596d7b9f5188254b5c360f04/detail (一個故事講完https)