1.TCP
答:是一種面向連接的机蔗、可靠的背传、基于字節(jié)流的傳輸層通信協(xié)議,由IETF的RFC 793定義谷婆。
2.UDP
答:UDP(User Data Protocol慨蛙,用戶數(shù)據(jù)報協(xié)議)是與TCP相對應的協(xié)議。它是面向非連接的協(xié)議纪挎,它不與對方建立連接期贫,而是直接就把數(shù)據(jù)包發(fā)送過去!
3.HTTP异袄? get和post通砍?
答:
1.HTTP協(xié)議即超文本傳送協(xié)議(Hypertext Transfer Protocol ),是Web聯(lián)網(wǎng)的基礎烤蜕,也是手機聯(lián)網(wǎng)常用的協(xié)議之一封孙,HTTP協(xié)議是建立在TCP協(xié)議之上的一種應用。
2. get是從服務器上獲取數(shù)據(jù)讽营,post是向服務器傳送數(shù)據(jù)虎忌。
? get安全性非常低,post安全性較高橱鹏。但是執(zhí)行效率卻比Post方法好膜蠢。
? get傳送的數(shù)據(jù)量較小,post傳輸?shù)臄?shù)據(jù)量較大,一般被默認為不受限制
4.Socket
答:套接字 網(wǎng)絡上的兩個程序通過一個雙向的通信連接實現(xiàn)數(shù)據(jù)的交換莉兰,這個連接的一端稱為一個socket挑围。
5.長連接
答:
1.所謂長連接,指在一個TCP連接上可以連續(xù)發(fā)送多個數(shù)據(jù)包糖荒,在TCP連接保持期間贪惹,如果沒有數(shù)據(jù)包發(fā)送,需要雙方發(fā)檢測包以維持此連接寂嘉,一般需要自己做在線維持
6.短連接
答:
1.短連接是指通信雙方有數(shù)據(jù)交互時,就建立一個TCP連接枫绅,數(shù)據(jù)發(fā)送完成后泉孩,則斷開此TCP連接,一般銀行都使用短連接
7.強聯(lián)網(wǎng)
答:我們通常說的強聯(lián)網(wǎng)其實就是用Socket(套接字)連接并淋,也叫強連接寓搬,長連接。
特點:Socket通信具有實時性县耽、長連接的特點句喷。
應用:根據(jù)Socket通信的特點镣典,我們很容易想到那些實時對戰(zhàn),多人在線的游戲都是用強聯(lián)網(wǎng)唾琼。
8.弱聯(lián)網(wǎng)
答:弱聯(lián)網(wǎng)是HTTP協(xié)議(超文本傳輸協(xié)議 )兄春,是互聯(lián)網(wǎng)上應用最為廣泛的一種網(wǎng)絡協(xié)議。
特點:每次連接只處理一個請求锡溯,當服務器處理完客戶端的請求即端開連接赶舆,節(jié)省傳輸時間。
應用:實現(xiàn)登錄祭饭、注冊芜茵、選服功能,游戲角色信息倡蝙,商城等窗口信息的獲取九串,服務器與數(shù)據(jù)庫通信等。
9.半包和粘包原因和解決方案寺鸥?
答:
原因:之所以出現(xiàn)粘包和半包現(xiàn)象,是因為TCP當中,只有流的概念,沒有包的概念.
解決方案:就是利用封包猪钮、拆包原理解決Socket粘包、半包問題析既。
10.封包協(xié)議
答:所謂的封包,就是把各個類型的數(shù)據(jù)轉(zhuǎn)換成字節(jié)數(shù)組, 反之拆包就是把對應的字節(jié)數(shù)組轉(zhuǎn)換為字符串,integer,short,double類型.具體的定義要參考協(xié)議包的定義.
11.心跳
答:跳包之所以叫心跳包是因為:它像心跳一樣每隔固定時間發(fā)一次躬贡,以此來告訴服務器,這個客戶端還活著眼坏。事實上這是為了保持長連接拂玻,至于這個包的內(nèi)容,是沒有什么特別規(guī)定的宰译,不過一般都是很小的包檐蚜,或者只包含包頭的一個空包。
總的來說沿侈,心跳包主要也就是用于長連接的贝车冢活和斷線處理。一般的應用下缀拭,判定時間在30-40秒比較不錯咳短。如果實在要求高,那就在6-9秒蛛淋。
機制:方法1:應用層自己實現(xiàn)的心跳包 方法2:TCP的KeepAlive绷茫活機制
步驟:客戶端每隔一個時間間隔發(fā)生一個探測包給服務器
? ? 2客戶端發(fā)包時啟動一個超時定時器
? ? 3服務器端接收到檢測包,應該回應一個包
? ? 4如果客戶機收到服務器的應答包褐荷,則說明服務器正常勾效,刪除超時定時器
? ? 5如果客戶端的超時定時器超時,依然沒有收到應答包,則說明服務器掛了
12.json层宫,xml和protobuf區(qū)別杨伙?
答:1.Json和Xml共同點:可讀可編輯,不需要schema就可以解析,不用擔心工具問題萌腿;Protobuf二進制格式限匣,所以沒有可讀性;解析需要schema;
? ? 2.Xml一目了然;Josn較長;Protobud速度異常的快;僅支持c++,java,python
13.p2p和c/s架構(gòu)區(qū)別哮奇?
答:P2P:對等網(wǎng)絡中的計算機之間可以互相通信和共享資源膛腐,
? ? C/S:客戶機/服務器結(jié)構(gòu)的網(wǎng)絡中可共享資源放在一臺專用計算機-服務器上,工作站之間不互相直接共享資源鼎俘。
? ? P2P網(wǎng)絡比較靈活哲身,適用于工作組級的小型網(wǎng)絡,當網(wǎng)絡規(guī)模較大時贸伐,其管理和安全性都變得比較困難勘天,此時宜采用客戶機/服務器結(jié)構(gòu)。