更新時間:2019-11-18 15:47:01 來源:動力節(jié)點 瀏覽3179次
1.TCP/UDP區(qū)別,TCP三次握手,SYN攻擊
TCP是面向連接的可靠傳輸,需要三次握手,保證可靠通信;有重傳機制;
UDP是無連接的不可靠傳輸,但是速度快,適用于視頻和電話會議等實時應(yīng)用場景;
TCP三次握手是:SYN=x(SYN_SEND)、ACK=x+1,SYN=y(SYN_RECV)、ACK=y+1(ESTABLISHED);
SYN攻擊是:SYN攻擊屬于DOS攻擊的一種,它利用TCP協(xié)議缺陷,通過發(fā)送大量的半連接請求,耗費CPU和內(nèi)存資源。
檢測SYN攻擊非常的方便,當(dāng)你在服務(wù)器上看到大量的半連接狀態(tài)時,特別是源IP地址是隨機的,基本上可以斷定這是一次SYN攻擊。
一類是通過防火墻、路由器等過濾網(wǎng)關(guān)防護,另一類是通過加固TCP/IP協(xié)議棧防范。過濾網(wǎng)關(guān)防護主要包括超時設(shè)置,SYN網(wǎng)關(guān)和SYN代理三種。調(diào)整tcp/ip協(xié)議棧,修改tcp協(xié)議實現(xiàn)。主要方法有SynAttackProtect保護機制、SYNcookies技術(shù)、增加最大半連接和縮短超時時間等。
但一般服務(wù)器所能承受的連接數(shù)量比半連接數(shù)量大得多
2.SHA,MD5
SHA(安全哈希算法):該算法的思想是接收一段明文,然后以一種不可逆的方式將它轉(zhuǎn)換成一段(通常更小)密文,也可以簡單的理解為取一串輸入碼(稱為預(yù)映射或信息),并把它們轉(zhuǎn)化為長度較短、位數(shù)固定的輸出序列即散列值(也稱為信息摘要或信息認(rèn)證代碼)的過程。可以對任意長度的數(shù)據(jù)運算生成一個160位的數(shù)值。SHA將輸入流按照每塊512位(64個字節(jié))進行分塊,并產(chǎn)生20個字節(jié)的被稱為信息認(rèn)證代碼或信息摘要的輸出。SHA-1是不可逆的、防沖突,并具有良好的雪崩效應(yīng)。
MD5(信息-摘要算法5):MD5將任意長度的“字節(jié)串”映射為一個128bit的大整數(shù)。MD5以512位分組來處理輸入的信息,且每一分組又被劃分為16個32位子分組,經(jīng)過了一系列的處理后,算法的輸出由四個32位分組組成,將這四個32位分組級聯(lián)后將生成一個128位散列值。
兩者比較:
(1)對強行攻擊的安全性:最顯著和最重要的區(qū)別是SHA-1摘要比MD5摘要長32位。使用強行技術(shù),產(chǎn)生任何一個報文使其摘要等于給定報摘要的難度對MD5是2^128數(shù)量級的操作,而對SHA-1則是2^160數(shù)量級的操作。這樣,SHA-1對強行攻擊有更大的強度。
(2)對密碼分析的安全性:由于MD5的設(shè)計,易受密碼分析的攻擊,SHA-1顯得不易受這樣的攻擊。
(3)速度:在相同的硬件上,SHA-1的運行速度比MD5慢。
3.了解的網(wǎng)絡(luò)攻擊手段,可以怎么預(yù)防
拒絕服務(wù)攻擊:
(1)SYN拒絕服務(wù)攻擊:目標(biāo)計算機如果接收到大量的TCPSYN報文,而沒有收到發(fā)起者的第三次ACK回應(yīng),會一直等待,處于這樣尷尬狀態(tài)的半連接如果很多,則會把目標(biāo)計算機的資源(TCB控制結(jié)構(gòu),TCB,一般情況下是有限的)耗盡,而不能響應(yīng)正常的TCP連接請求。
(2)ICMP洪水:。這樣如果攻擊者向目標(biāo)計算機發(fā)送大量的ICMPECHO報文(產(chǎn)生ICMP洪水),則目標(biāo)計算機會忙于處理這些ECHO報文,而無法繼續(xù)處理其它的網(wǎng)絡(luò)數(shù)據(jù)報文,這也是一種拒絕服務(wù)攻擊(DOS)。
(3)UDP洪水;
(4)死亡之PING:TCP/IP規(guī)范要求IP報文的長度在一定范圍內(nèi)(比如,0-64K),但有的攻擊計算機可能向目標(biāo)計算機發(fā)出大于64K長度的PING報文,導(dǎo)致目標(biāo)計算機IP協(xié)議棧崩潰。
(5)IP地址欺騙:如果一個攻擊者向一臺目標(biāo)計算機發(fā)出一個報文,而把報文的源地址填寫為第三方的一個IP地址,這樣這個報文在到達目標(biāo)計算機后,目標(biāo)計算機便可能向毫無知覺的第三方計算機回應(yīng)。這便是所謂的IP地址欺騙攻擊。
4.10億條短信,找出前一萬條重復(fù)率高的
(1)首先將文本導(dǎo)入數(shù)據(jù)庫,再利用select語句某些方法得出前10條短信。(索引)但是這個時間效率很低;
(2)使用hash計算并存儲次數(shù),然后遍歷一次找出top10;
5.有1億個浮點數(shù),如果找出期中最大的10000個?
用快速排序的方法,將數(shù)據(jù)分為2堆,如果大的那堆個數(shù)N大于10000個,繼續(xù)對大堆快速排序一次分成2堆,如果大的那堆個數(shù)N大于10000個,繼續(xù)對大堆快速排序一次分成2堆,如果大堆個數(shù)N小于10000個,就在小的那堆里面快速排序一次,找第10000-n大的數(shù)字;遞歸以上過程,就可以找到相關(guān)結(jié)果了。
6.對一萬條數(shù)據(jù)排序,你認(rèn)為最好的方式是什么
申請長度為一千萬位的位向量bit[10000000],所有位設(shè)置為0,順序讀取待排序文件,每讀入一個數(shù)i,便將bit[i]置為1。當(dāng)所有數(shù)據(jù)讀入完成,便對bit做從頭到尾的遍歷,如果bit[i]=1,則輸出i到文件,當(dāng)遍歷完成,文件則已排好序。本機運行耗時9秒49毫秒。
(這種方法要求數(shù)組中的數(shù)據(jù)沒有重復(fù),且都不超過最大值)
1、10w行數(shù)據(jù),每行一個單詞,統(tǒng)計出現(xiàn)次數(shù)出現(xiàn)最多的前100個。
(1)可以使用小根堆;
(2)在linux中實現(xiàn):catwords.txt|sort|uniq-c|sort-k1,1nr|head-10
uniq-c:顯示唯一的行,并在每行行首加上本行在文件中出現(xiàn)的次數(shù)
sort-k1,1nr:按照第一個字段,數(shù)值排序,且為逆序
2、一個文本文件,給你一個單詞,判斷單詞是否出現(xiàn)。
grep-wq"fail"123.txt&&echo"no"||echo"yes"
3、兩個線程如何同時監(jiān)聽一個端口。
多個線程可以監(jiān)聽同一個端口,但我們通常不這樣做。
多個進程也可以同時監(jiān)聽一個端口,比如nginx。
以上就是動力節(jié)點java培訓(xùn)機構(gòu)小編介紹的“騰訊校招Java面試題總結(jié)及答案”的內(nèi)容,希望對大家有幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為你服務(wù)。
相關(guān)推薦
相關(guān)閱讀