快手2020校園招聘秋招筆試--工程B試卷

  1. 攻擊者使用無效IP地址,利用TCP連接的三次握手過程,連續發送會話請求,使受害主機處於開放會話的請求之中,直至連接超時,最終因耗盡資源而停止響應。這種攻擊被稱爲

A. DNS欺騙攻擊
B. DDoS攻擊
C. SYN Flooding攻擊
D. 重放攻擊

  • DNS欺騙攻擊:DNS(Domin Name Sever)是域名服務器,作用是把某一臺主機發過來地址解析成目標地址的IP地址,再發回給主機,主機拿着這個IP地址去訪問。而DNS解析的過程如下:1.拿到地址,去訪問權威服務器,拿到com域名權威服務器IP地址,比如A;2.然後向com域名權威服務器詢問XXX.com子域DNS服務器的地址,比如B;3.最後向XXX.com子域服務器詢問www.XXX.com的IP地址,比如C,把此時的IP地址C返回給主機,主機拿着C去訪問。DNS欺騙攻擊就是在第三步的時候冒充子域DNS服務器給了一個假的IP地址,如D,最後主機拿着D去訪問了。
  • DDoS攻擊:Dos攻擊叫拒絕服務攻擊,如向一臺服務器發送大量的IP數據報,使服務器要花很多時間處理所接收到的數據報,導致合法用戶被拒絕服務。
  • SYN Flooding攻擊:和TCP的三次握手過程有關。三次握手過程大概是:一、客戶端發送SYN給服務器,此時服務器內部會建立請求控制塊;二、服務器響應SYN/ACK給客戶端;三、客戶端收到SYN-ACK之後向服務器發送ACK,服務器收到最後一個握手ACK報文後,控制塊會轉換成爲正式的連接控制塊。如果遲遲未收到最後的那個ACK報文,服務器會通過定時器重發SYN-ACK,直至超時,銷燬請求控制塊;SYN Flooding攻擊是通過僞造的IP地址,大量的向服務器發送SYN報文,服務器不斷的申請資源建立控制塊,從而大量佔用資源直至資源耗盡,使正常請求服務變慢,或者完全停止服務。
  • 重放攻擊:重複的會話請求就是重放攻擊,可能是因爲用戶重複發起請求,也可能是因爲請求被攻擊者獲取,然後重新發給服務器。
  1. A,B兩臺機器都正常工作,B機器未監聽任何端口.如果A機器向B機器80端口發送SYN包,會收到何種類型的回包?

A. RST包
B. ACK包
C. FIN包
D. 無迴應

RST包用來強制關閉TCP鏈接。
什麼時候發送RST包:

  1. 建立連接的SYN到達某端口,但是該端口上沒有正在監聽的服務。
  2. TCP收到了一個根本不存在的連接上的分節。
  3. 請求超時。 使用setsockopt的SO_RCVTIMEO選項設置recv的超時時間,接收數據超時時,會發送RST包。
  1. awk裏的內置變量NF指的是

A. 以指定分隔符號作爲分隔的列數
B. AWK處理文件的個數
C. 單個輸入文件記錄的行數
D. 所有輸入文件記錄的行數

考點:Linux
awk是行處理器,通常用來格式化文本信息,在處理龐大文件時不會出現內存溢出或是處理緩慢的問題,
awk處理過程: 依次對每一行進行處理,然後輸出
awk 的內置變量 NF、NR、FNR、FS、OFS、RS、ORS

  • NF 字段個數,(讀取的列數)
  • NR 記錄數(行號),從1開始,新的文件延續上面的計數,新文件不從1開始
  • FS 輸入字段分隔符,默認是空格
  • FNR 讀取文件的記錄數(行號),從1開始,新的文件重新從1開始計數
  • OFS 輸出字段分隔符 默認也是空格
  • RS 輸入行分隔符,默認爲換行符
  • ORS 輸出行分隔符,默認爲換行符
  1. 堆排序的額外空間複雜度是()

A. O(n)
B. O(logn)
C. O(1)
D. 視情況而定

堆排序構建堆的時間複雜度是O(n);
重建堆的時間複雜度是O(nlogn);
最好,最壞,平均時間複雜度是O(nlogn);
空間複雜度是:O(1),僅用一個用來交換的暫存單元,屬於原地排序。

  1. 給定 <div id="a" style="float:left;"><div style="width: 100px"></div></div> <div id="b"><div style="width: 100px"></div></div>div#adiv#b 的寬度分別是【100%即其父容器寬度】

A. 100%, 100%
B. 100px, 100%
C. 100%, 100px
D. 100px, 100px

  1. 以下代碼的輸出結果是
// counter.js
let counter = 10;
export default counter;

// index.js
import myCounter from "./counter";
myCounter += 1;
console.log(myCounter);

A. 10
B. 11
C. Error
D. NaN

引入的模塊是 只讀 的: 不能修改引入的模塊。只有導出他們的模塊才能修改其值。

  1. 對字符串HI_KWAI中的字符進行二進制編碼,使得字符串的編碼長度儘可能短,最短長度爲

A. 7
B. 14
C. 18
D. 22

  1. 統計字符出現個數
    H 1
    I 2
    _ 1
    K 1
    W 1
    A 1
  2. 構造哈夫曼樹
    每個人的結果可能不一樣,左標0,右標1
    在這裏插入圖片描述
  3. 得到每個字符對應編碼
    H 000
    I 10
    _ 001
    K 010
    W 011
    A 11
  4. 得到原字符串編碼
    HI_KWAI:000100010100111110
    共18位
  1. 無向圖G有20條邊,有4個度爲4的頂點,6個度爲3的頂點,其餘頂點度小於3,則G最多有多少個頂點

A. 14
B. 16
C. 18
D. 20

總度數=邊數乘以2=20乘2=40
剩餘的度數=總度數-4乘4-6乘3=6
想要頂點最多,應該是一度就分配給一個頂點吧。所以是4+6+6=16頂點

  1. 3的方冪及不相等的3的方冪的和排列成遞增序列{1,3,4,9,10,12,13…},則數列第100項是

A. 975
B. 976
C. 981
D. 982

第1位,1的二進制爲001,第1位數爲3的0次方(1)
第2位,2的二進制爲010,第2位數爲3的1次方(3)
第3位,3的二進制爲011,第3位數爲 3的0次方+3的1次方(4)

第100位,100的二進制爲1100100,第100位爲 3的6次方+3的5次方+3的平方(981)

  1. 最長遞增子序列(LIS)問題是指,在一個給定的數值序列中,找到一個子序列,使得這個子序列元素的數值依次遞增,並且這個子序列的長度儘可能地大。
    比如{2,1,4,2,3,7,4,7,19} 的LIS是 {1,2,3,4,7,19},長度是6。
    考慮大小爲N的數組,獲取其LIS的最小時間和空間複雜度分別爲:

A. N2,N2
B. NlogN,N2
C. NlogN,NlogN
D. NlogN,N

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章