訂閱
糾錯(cuò)
加入自媒體

Session和cookie應(yīng)該如何去選擇適用場景?

44、DDos 攻擊了解嗎?

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

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

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

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

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通知對端在每個(gè)分節(jié)中能發(fā)送的最大TCP數(shù)據(jù)。MSS值為MTU值減去IPv4 Header(20 Byte)和TCP header(20 Byte)得到。

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

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

max-age 指令出現(xiàn)在響應(yīng)報(bào)文,表示緩存資源在緩存服務(wù)器中保存的時(shí)間。

Cache-Control: max-age=31536000

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

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

確認(rèn)號(32bit):接收方對發(fā)送方TCP報(bào)文段的響應(yīng),其值是收到的序號值 + 1。

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

標(biāo)志位(6bit):

URG:標(biāo)志緊急指針是否有效。

ACK:標(biāo)志確認(rèn)號是否有效(確認(rèn)報(bào)文段)。用于解決丟包問題。

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

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

SYN:表示請求建立一個(gè)連接(連接報(bào)文段)。

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

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

校驗(yàn)和(16bit):接收端用CRC檢驗(yàn)整個(gè)報(bào)文段有無損壞。

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

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

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

50、TCP是什么?

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

51、TCP頭部報(bào)文字段介紹幾個(gè)?各自的功能?

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

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

再來一個(gè)很官方的:

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

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

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

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

TCP Flag

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

當(dāng)然只介紹三個(gè):

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

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

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

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

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

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

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

發(fā)表評論

0條評論,0人參與

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

請輸入評論/評論長度6~500個(gè)字

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

  • 看不清,點(diǎn)擊換一張  刷新

暫無評論

暫無評論

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

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