訂閱
糾錯
加入自媒體

Session和cookie應該如何去選擇適用場景?

44、DDos 攻擊了解嗎?

客戶端向服務端發(fā)送請求鏈接數(shù)據(jù)包,服務端向客戶端發(fā)送確認數(shù)據(jù)包,客戶端不向服務端發(fā)送確認數(shù)據(jù)包,服務器一直等待來自客戶端的確認沒有徹底根治的辦法,除非不使用TCPDDos 預防:

1)限制同時打開SYN半鏈接的數(shù)目

2)縮短SYN半鏈接的Time out 時間

3)關(guān)閉不必要的服務

45、MTU和MSS分別是什么?

MTU:maximum transmission unit,最大傳輸單元,由硬件規(guī)定,如以太網(wǎng)的MTU為1500字節(jié)。

MSS:maximum segment size,最大分節(jié)大小,為TCP數(shù)據(jù)包每次傳輸?shù)淖畲髷?shù)據(jù)分段大小,一般由發(fā)送端向?qū)Χ薚CP通知對端在每個分節(jié)中能發(fā)送的最大TCP數(shù)據(jù)。MSS值為MTU值減去IPv4 Header(20 Byte)和TCP header(20 Byte)得到。

46、HTTP中有個緩存機制,但如何保證緩存是最新的呢?(緩存過期機制)

max-age 指令出現(xiàn)在請求報文,并且緩存資源的緩存時間小于該指令指定的時間,那么就能接受該緩存。

max-age 指令出現(xiàn)在響應報文,表示緩存資源在緩存服務器中保存的時間。

Cache-Control: max-age=31536000

Expires 首部字段也可以用于告知緩存服務器該資源什么時候會過期。

Expires: Wed, 04 Jul 2012 08:26:05 GMT
在 HTTP/1.1 中,會優(yōu)先處理 max-age 指令;在 HTTP/1.0 中,max-age 指令會被忽略掉。

47、TCP頭部中有哪些信息?

序號(32bit):傳輸方向上字節(jié)流的字節(jié)編號。初始時序號會被設(shè)置一個隨機的初始值(ISN),之后每次發(fā)送數(shù)據(jù)時,序號值 = ISN + 數(shù)據(jù)在整個字節(jié)流中的偏移。假設(shè)A -> B且ISN = 1024,第一段數(shù)據(jù)512字節(jié)已經(jīng)到 B,則第二段數(shù)據(jù)發(fā)送時序號為1024 + 512,用于解決網(wǎng)絡(luò)包亂序問題。

確認號(32bit):接收方對發(fā)送方TCP報文段的響應,其值是收到的序號值 + 1。

首部長(4bit):標識首部有多少個4字節(jié) * 首部長,最大為15,即60字節(jié)。

標志位(6bit):

URG:標志緊急指針是否有效。

ACK:標志確認號是否有效(確認報文段)。用于解決丟包問題。

PSH:提示接收端立即從緩沖讀走數(shù)據(jù)。

RST:表示要求對方重新建立連接(復位報文段)。

SYN:表示請求建立一個連接(連接報文段)。

FIN:表示關(guān)閉連接(斷開報文段)。

窗口(16bit):接收窗口。用于告知對方(發(fā)送方)本方的緩沖還能接收多少字節(jié)數(shù)據(jù)。用于解決流控。

校驗和(16bit):接收端用CRC檢驗整個報文段有無損壞。

48、常見TCP的連接狀態(tài)有哪些?

CLOSED:初始狀態(tài)。LISTEN:服務器處于監(jiān)聽狀態(tài)。SYN_SEND:客戶端socket執(zhí)行CONNECT連接,發(fā)送SYN包,進入此狀態(tài)。SYN_RECV:服務端收到SYN包并發(fā)送服務端SYN包,進入此狀態(tài)。ESTABLISH:表示連接建立。客戶端發(fā)送了最后一個ACK包后進入此狀態(tài),服務端接收到ACK包后進入此狀態(tài)。FIN_WAIT_1:終止連接的一方(通常是客戶機)發(fā)送了FIN報文后進入。等待對方FIN。CLOSE_WAIT:(假設(shè)服務器)接收到客戶機FIN包之后等待關(guān)閉的階段。在接收到對方的FIN包之后,自然是需要立即回復ACK包的,表示已經(jīng)知道斷開請求。但是本方是否立即斷開連接(發(fā)送FIN包)取決于是否還有數(shù)據(jù)需要發(fā)送給客戶端,若有,則在發(fā)送FIN包之前均為此狀態(tài)。FIN_WAIT_2:此時是半連接狀態(tài),即有一方要求關(guān)閉連接,等待另一方關(guān)閉?蛻舳私邮盏椒⻊掌鞯腁CK包,但并沒有立即接收到服務端的FIN包,進入FIN_WAIT_2狀態(tài)。LAST_ACK:服務端發(fā)動最后的FIN包,等待最后的客戶端ACK響應,進入此狀態(tài)。TIME_WAIT:客戶端收到服務端的FIN包,并立即發(fā)出ACK包做最后的確認,在此之后的2MSL時間稱為TIME_WAIT狀態(tài)。

49、網(wǎng)絡(luò)的七層/五層模型主要的協(xié)議有哪些?

50、TCP是什么?

TCP(Transmission Control Protocol 傳輸控制協(xié)議)是一種面向連接的、可靠的、基于字節(jié)流的傳輸層通信協(xié)議。

51、TCP頭部報文字段介紹幾個?各自的功能?

source port 和 destination port兩者分別為「源端口號」和「目的端口號」。源端口號就是指本地端口,目的端口就是遠程端口。

可以這么理解,我們有很多軟件,每個軟件都對應一個端口,假如,你想和我數(shù)據(jù)交互,咱們得互相知道你我的端口號。

再來一個很官方的:

擴展:應用程序的端口號和應用程序所在主機的 IP 地址統(tǒng)稱為 socket(套接字),IP:端口號, 在互聯(lián)網(wǎng)上 socket 唯一標識每一個應用程序,源端口+源IP+目的端口+目的IP稱為”套接字對“,一對套接字就是一個連接,一個客戶端與服務器之間的連接。

Sequence Number稱為「序列號」。用于 TCP 通信過程中某一傳輸方向上字節(jié)流的每個字節(jié)的編號,為了確保數(shù)據(jù)通信的有序性,避免網(wǎng)絡(luò)中亂序的問題。接收端根據(jù)這個編號進行確認,保證分割的數(shù)據(jù)段在原始數(shù)據(jù)包的位置。初始序列號由自己定,而后緒的序列號由對端的 ACK 決定:SN_x = ACK_y (x 的序列號 = y 發(fā)給 x 的 ACK)。

說白了,類似于身份證一樣,而且還得發(fā)送此時此刻的所在的位置,就相當于身份證上的地址一樣。

Acknowledge Number稱為「確認序列號」。確認序列號是接收確認端所期望收到的下一序列號。確認序號應當是上次已成功收到數(shù)據(jù)字節(jié)序號加1,只有當標志位中的 ACK 標志為 1 時該確認序列號的字段才有效。主要用來解決不丟包的問題。

TCP Flag

TCP 首部中有 6 個標志比特,它們中的多個可同時被設(shè)置為 1,主要是用于操控 TCP 的狀態(tài)機的,依次為URG,ACK,PSH,RST,SYN,F(xiàn)IN。

當然只介紹三個:

ACK:這個標識可以理解為發(fā)送端發(fā)送數(shù)據(jù)到接收端,發(fā)送的時候 ACK 為 0,標識接收端還未應答,一旦接收端接收數(shù)據(jù)之后,就將 ACK 置為 1,發(fā)送端接收到之后,就知道了接收端已經(jīng)接收了數(shù)據(jù)。SYN:表示「同步序列號」,是 TCP 握手的發(fā)送的第一個數(shù)據(jù)包。用來建立 TCP 的連接。SYN 標志位和 ACK 標志位搭配使用,當連接請求的時候,SYN=1,ACK=0連接被響應的時候,SYN=1,ACK=1;這個標志的數(shù)據(jù)包經(jīng)常被用來進行端口掃描。掃描者發(fā)送一個只有 SYN 的數(shù)據(jù)包,如果對方主機響應了一個數(shù)據(jù)包回來 ,就表明這臺主機存在這個端口。FIN:表示發(fā)送端已經(jīng)達到數(shù)據(jù)末尾,也就是說雙方的數(shù)據(jù)傳送完成,沒有數(shù)據(jù)可以傳送了,發(fā)送FIN標志位的 TCP 數(shù)據(jù)包后,連接將被斷開。這個標志的數(shù)據(jù)包也經(jīng)常被用于進行端口掃描。發(fā)送端只剩最后的一段數(shù)據(jù)了,同時要告訴接收端后邊沒有數(shù)據(jù)可以接受了,所以用FIN標識一下,接收端看到這個FIN之后,哦!這是接受的最后的數(shù)據(jù),接受完就關(guān)閉了;TCP四次分手必然問。

Window size稱為滑動窗口大小。所說的滑動窗口,用來進行流量控制。

52、OSI 的七層模型的主要功能?

物理層:利用傳輸介質(zhì)為數(shù)據(jù)鏈路層提供物理連接,實現(xiàn)比特流的透明傳輸。數(shù)據(jù)鏈路層:接收來自物理層的位流形式的數(shù)據(jù),并封裝成幀,傳送到上一層網(wǎng)絡(luò)層:將網(wǎng)絡(luò)地址翻譯成對應的物理地址,并通過路由選擇算法為分組通過通信子網(wǎng)選擇最適當?shù)穆窂。傳輸層:在源端與目的端之間提供可靠的透明數(shù)據(jù)傳輸會話層:負責在網(wǎng)絡(luò)中的兩節(jié)點之間建立、維持和終止通信表示層:處理用戶信息的表示問題,數(shù)據(jù)的編碼,壓縮和解壓縮,數(shù)據(jù)的加密和解密應用層:為用戶的應用進程提供網(wǎng)絡(luò)通信服務

53、應用層常見協(xié)議知道多少?了解幾個?

協(xié)議名稱默認端口底層協(xié)議HTTP超文本傳輸協(xié)議80TCPHTTPS超文本傳輸安全協(xié)議443TCPTelnet遠程登錄服務的標準協(xié)議23TCPFTP文件傳輸協(xié)議20傳輸和21連接TCPTFTP簡單文件傳輸協(xié)議21UDPSMTP簡單郵件傳輸協(xié)議(發(fā)送用)25TCPPOP郵局協(xié)議(接收用)110TCPDNS域名解析服務53服務器間進行域傳輸?shù)臅r候用TCP
客戶端查詢DNS服務器時用 UDP

<上一頁  1  2  3  下一頁>  
聲明: 本文由入駐維科號的作者撰寫,觀點僅代表作者本人,不代表OFweek立場。如有侵權(quán)或其他問題,請聯(lián)系舉報。

發(fā)表評論

0條評論,0人參與

請輸入評論內(nèi)容...

請輸入評論/評論長度6~500個字

您提交的評論過于頻繁,請輸入驗證碼繼續(xù)

暫無評論

暫無評論

人工智能 獵頭職位 更多
掃碼關(guān)注公眾號
OFweek人工智能網(wǎng)
獲取更多精彩內(nèi)容
文章糾錯
x
*文字標題:
*糾錯內(nèi)容:
聯(lián)系郵箱:
*驗 證 碼:

粵公網(wǎng)安備 44030502002758號