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