listen函式把乙個由socket函式建立的套接字轉換成乙個被動套接字,指示核心接受指向該套接字的連線請求。
該套接字也由closed狀態轉換到listen狀態。
函式原型:
#include
int listen(int sockfd, int backlog);
成功返回0,失敗返回-1。
listen之後核心為給定的監聽套接字維護兩個佇列:未完成連線佇列,已完成連線佇列。
未完成連線佇列:已接受客戶端的syn分節,而且已經傳送了第二個syn分節和第乙個syn分節的ack。
已完成連線佇列:在未連線基礎上接受到了客戶端的ack響應,tcp3路握手完成(此時accept並沒有參與),
等待accept從該佇列頭返回。
backlog引數就是指已完成連線佇列的個數,已完成連線佇列的實際數目往往比backlog稍大;比如linux是比
backlog大3。如果不想讓客戶端連線到你的伺服器上,
千萬不要把backlog指定為0,一定要把這個
套接字關閉
。既然已完成連線佇列的數目是有backlog指定的,那麼未完成佇列的數目又是多少?berkeley給出了乙個模 糊因子,
backlog乘以1.5得到兩個佇列數目之和。假如backlog=10,那麼未完成連線佇列數目就是5。
當佇列已滿時,乙個客戶syn到達時,伺服器的tcp就忽略該分節(一般不向客戶端傳送rst),讓對端 的tcp
重傳機制來處理。
如果有黑客編寫了乙個以高速率給受害主機傳送syn的程式,就會導致正常的客戶syn排不上隊,這就是 syn
flooding攻擊。主流的解決方法是從防火牆那裡入手,確保到達伺服器的tcp連線都是正常。
電感引數理解
1.電感的q值 電感的q值,也叫做電感的品質因素,是衡量電感器件的主要引數。指電感器在某一頻率的交流電壓工作下,所呈現的感抗與其等效損耗電阻之比。電感器的q值越高,損耗越小,效率越高。電感的q值與線圈導線的直流電阻 線圈骨架的介質損耗及鐵心 遮蔽罩等引起的損耗等有關。2.電感q值的換算 1 q 2p...
Python引數理解
def power x x 必選引數 return x 2def power x,n 2 n 預設引數 return x n即傳入的引數個數是可變的 def calc numbers numbers 可變引數 print numbers sum 0 for n in numbers sum sum ...
Gabor函式引數理解
摘自 下面就以上面這個gabor函式為題進行其引數的討論。不用多說 由於gabor濾波器的方向性,x y 是旋轉之後的座標,而 角便是gabor濾波器的方向,和 則是濾波器的中心位置,在求gabor核的時候都會預設為原點位置,即 0,0 1 是gabor的中心頻率,而 是gabor的相位,除了上面的...