1. 程式人生 > >tcp/ip--面試中遇到幾個問題

tcp/ip--面試中遇到幾個問題

__u32 secure_tcp_sequence_number(__be32 saddr, __be32 daddr,
                 __be16 sport, __be16 dport)
{
    __u32 seq;
    __u32 hash[4];
    struct keydata *keyptr = get_keyptr();
    /*
     *  Pick a unique starting offset for each TCP connection endpoints
     *  (saddr, daddr, sport, dport).
     *  Note that the words are placed into the starting vector, which is
     *  then mixed with a partial MD4 over random data.
     */
    hash[0] = (__force u32)saddr;
    hash[1] = (__force u32)daddr;
    hash[2] = ((__force u16)sport << 16) + (__force u16)dport;
    hash[3] = keyptr->secret[11];
    seq = half_md4_transform(hash, keyptr->secret) & HASH_MASK;
    seq += keyptr->count;
    /*
     *    As close as possible to RFC 793, which
     *    suggests using a 250 kHz clock.
     *    Further reading shows this assumes 2 Mb/s networks.
     *    For 10 Mb/s Ethernet, a 1 MHz clock is appropriate.
     *    For 10 Gb/s Ethernet, a 1 GHz clock should be ok, but
     *    we also need to limit the resolution so that the u32 seq
     *    overlaps less than one time per MSL (2 minutes).
     *    Choosing a clock of 64 ns period is OK. (period of 274 s)
     */
    seq += ktime_to_ns(ktime_get_real()) >> 6;
    return seq;
}

相關推薦

tcp/ip--面試遇到問題

__u32 secure_tcp_sequence_number(__be32 saddr, __be32 daddr, __be16 sport, __be16 dport) { __u32 seq; __u32 hash[4]; struct ke

C++ string小陷阱,你掉進過嗎?

stl 試題 賦值 clu ror ati world mod iostream C++開發的項目難免會用到STL的string。使用管理都比char數組(指針)方便的多。但在得心應手的使用過程中也要警惕幾個小陷阱。避免我們項目出bug卻遲遲找不到原因。1. 結構體中的

elasticsearch概念總結

查詢 article ase con 總結 diff 返回 cse nan 1、Geo spatial search : 地理空間搜索,可以在搜索查詢中指定的某一距離內查找所要的內容。也可以返回以當前為圓心,逐漸添加圓的半徑。直到找到所匹配到的內容。

python筆記10-切片(從list或字符串元素)

-1 下標 功能 切片 name 字符 list python 筆記 name1 = ‘zcl,pyzyz‘names = [‘zcl‘,‘py‘,‘zyz‘]#切片的意思就是從list裏面或者字符串裏面取幾個元素#切片操作對字符串也是完全適用的# print(names[

SQLServer2PostgreSQL遷移過程問題

post content enter 文件 中一 postgres 能夠 lac ftw 1、PostgreSQL 跨平臺遷移工具Migration Toolkit的使用指南:http://www.enterprisedb.com/docs/en/8.4/mtkguide/

【轉載】Spark學習——spark概念的理解及參數配置

program submit man 聯眾 tail 進行 orb 數據源 work 首先是一張Spark的部署圖: 節點類型有: 1. master 節點: 常駐master進程,負責管理全部worker節點。2. worker 節點: 常駐worker進程,負責管理

數據庫基礎查詢語句細節

語句 nvl 備註 nav 數據庫 數據庫基礎 細節 字符串 rom 運算   select 姓名列,工資列,工資列*12 from 表名   計算年薪 字符串拼接   irst_name||‘是‘||start_date||‘入職的,工資是‘||salary||‘,職位是

mybatis註意的地方

suffix tle ive lis trim student clu 後綴 name 1、首先定義一個sql標簽,一定要定義唯一id<sql id="Base_Column_List" >name,age</sql>2、然後通過id引用<se

Servlet重要的對象(轉)

localhost http ttr 屬性 webapps source 指定路徑 開始 orm  講解四大類,ServletConfig對象,ServletContext對象、request對象,response對象 ServletConfig對象         獲取途

php學習筆記-PHP取整函數

4.5 一個 個數 等於 之間 gpo 容易 學習 函數 floor是向下取整,比如4.5,它是在4和5之間的一個數,那麽結果就是4。 ceil是向上取整,比如3.7,它是在3和4之間的一個數,那麽結果就是4。 round是對一個數四舍五入,小數部分如果小於5則直接舍去,如

js運算註意點

bsp nan 繼續 操作 邏輯或 style log class 判斷 1.除了字符串參與的加法外,非Number類型的值進行運算時,會將這些值轉換為Number然後再運算 var res = true + 100;console.log(res); // =101va

自制貪吃蛇遊戲“大坑”

是我 問題 時間 分享 為什麽 輸入 all min top   貪吃蛇遊戲已經告一段落了,在完成這個遊戲的過程中,我遭遇了許多“坎坷”和“挫折”,下面就幾個讓我印象深刻的“挫折”做一個具體的講解,以此來為這個貪吃蛇項目畫上一個完整句號。(包括打包這個遊戲時遇到的問題及解決

機器學習概念的關系

概念 clas ear into deep 大數據 多倫多 有監督 hmm 目前, 機器學習主要由以下三條主線進行發展: graph LR subgraph 三代神經網絡 A[1 線性分類器] ==> B[2 非線性分類器] B ==SVM==> C[3 深度學

[JavaScript]記錄完成輪播過程

計算 arm class 問題: 動作 hid 需要 asc scrip 記錄幾個坑 之前的輪播: 完整代碼:GitHub 效果預覽:GitHub 最近完成的輪播: 完整代碼:GitHub 效果預覽:GitHub 在完成輪播中解決兩個問題: 1.setInterval()會

xorm

專案中使用的是xorm,雖然用了很順手了,可是還是會遇到一些坑,這裡紀錄一些。 結構體自動忽略空欄位 在xorm中,結構體會自動忽略空欄位(或則說預設值,比如int 的0 ,string的""),這個時候,怎麼解決呢? 把結構體中的欄位,提到where語句的條件中,比如: orm.Get(&Us

學些 Python 知識點

之前只是簡單會用,現在重新按照官網的 Tutorial 來學 python 中一切變數都是引用(指標) 最簡單的例子: def func(ll): ll.append(42) ll = [1, 2] func(ll) print(str(ll)) #輸出 [1, 2, 42] 雖然函式傳參

QFileDialog關於選擇檔案對話方塊訊號的說明(currentChanged,directoryEntered,fileSelected,filterSelected)

QFileDialog關於選擇檔案對話方塊中的幾個訊號 例項: openFile::openFile(QWidget *parent) :QWidget(parent),ui(new Ui::openFile){ui->setupUi(this);fDialog = new QFileDialog(t

kafka常見問題

#kafka中的幾個常見問題 V1版 1,每個topic的分割槽中有多個segment,一個分割槽會被分成相同大小資料數量不等的segment,資料的生命週期就是指的是segment的生命週期 2,資料的儲存機制: 首先是Broker接受到資料,將資料放到作業系統的快取裡,(page

日常開發常用跨域處理方式

geo htm 網站 options https ss代理 write npm 服務端 設置express代理請求 在基於vue-cli的項目中,在開發環境配置(config/dev.env.js)中設置代理,能夠將所有/apidomain開頭的請求都通過npm run d

Java_56_57_StringBuilder與StringBuffer_StringBuider使用共有物件?_append_return.this(方法鏈)

1.StringBuider可變字串,執行緒不太安全,但效率高,推薦使用。 StringBuffer可變字串,執行緒安全,但效率低,不推薦使用。 String是不可變字串,根據實時情況使用,在迴圈當中不要使用,因為會產生好多沒用的字串。 2.String,StringBuilder要