linux 內核 丟棄分片包,LINUX內核關于IP分片重組問題請教

最近研究學習IP分片重組,也拜讀了不少dx的閱讀理解。可還是有疑問,請教xdm。

源代碼:linux-2.4.26\linux-2.4.26\net\ipv4\ip_fragment.c

IP分片的重組大概經過以下幾個函數:

0/ ip_defrag

1/ ip_find-->ip_frag_create-->ip_frag_intern

2/ ip_frag_queue

3/ ip_frag_reasm

這里定義了一個結構,包括幾個重組狀態宏

-------------------------------------

/* Describe an entry in the "incomplete datagrams" queue. */

struct ipq {

struct ipq *next;? /* linked list pointers?? */

struct list_head lru_list; /* lru list member??? */

u32? saddr;

u32? daddr;

u16? id;

u8? protocol;

u8? last_in;

#define COMPLETE? 4

#define FIRST_IN? 2

#define LAST_IN?? 1

struct sk_buff *fragments; /* linked list of received fragments */

int? len;? /* total length of original datagram */

int? meat;

spinlock_t lock;

atomic_t refcnt;

struct timer_list timer; /* when will this queue expire?? */

struct ipq **pprev;

int? iif;

struct timeval stamp;

};

---------------------------

在處理過程當中有一個狀態為COMPLETE(last_in),此狀態下如果再來后續分片都被認為無效數據丟棄。可我就是沒有看懂什么條件下設置last_in狀態為COMPLETE呢?FIRST_IN/LAST_IN都容易理解的。通篇只在函數static struct ipq *ip_frag_intern(unsigned int hash, struct ipq *qp_in)

看到了對last_in != COMPLETE的賦值。

請研讀過的xd明示。謝謝了!

我只是看到幾處對last_in是否等于COMPLETE的判斷,而沒有看到什么地方確定所有分片已經到齊而設置 last_in |= COMPLETE,不知道我是哪里出了問題,請各位朋友指點

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/532250.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/532250.shtml
英文地址,請注明出處:http://en.pswp.cn/news/532250.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

spark算子_十、Spark之詳解Action類算子

常用Action類算子列表reduce(func): 通過func函數來對RDD中所有元素進行聚合運算,先運算分區內數據,再運算分區間數據。scala> val rdd1 sc.makeRDD(1 to 100)rdd1: org.apache.spark.rdd.RDD[Int] ParallelCollectionRDD[4] at makeRDD at :24# 對…

linux 庫函數 劫持,Linux hook技術之-Ring3下動態鏈接庫.so函數劫持

劫持普通函數當然沒有什么意思了!我們要劫持的是系統函數!我們知道,Unix操作系統中對于GCC而言,默認情況下,所編譯的程序中對標準C函數(fopen、printf、execv家族等等函數)的鏈接,都是通過動態鏈接方式來鏈…

await原理 js_「速圍」Node.js V14.3.0 發布支持頂級 Await 和 REPL 增強功能

本周,Nodejs v14.3.0 發布。這個版本包括添加頂級 Await、REPL 增強等功能。REPL 增強通過自動補全改進對 REPL 的預覽支持,例如,下圖中當輸入 process.ver 之后,不需要輸入剩下的實際內容,它幫我們生成了自動補全的輸…

在linux安裝requests庫命令,在Linux--Ubuntu18.04環境下安裝requests庫

之前在服務器上裝過requests庫,但是記憶中花了好大的力氣才成功,現在因為一次意外,服務器重裝系統,現在這些亂七八糟的庫又要重裝一遍,與上次不同的是,這次我裝一遍就成功了。現在分享一下成功的經歷。Pyth…

linux輸入ls后不顯示_零基礎學習之Linux基礎命令小結

安裝完重啟后,沒有像sery所說在圖形界面崩潰了,由于我沒有安裝X-WINDOWS而是直接進入了文本界面。如果你想做linux管理的話,最好在文本界面下工作,這樣會適應如下圖:第一行顯示的是我們所安裝的linux是Red Hat 企業4第二行顯示的是…

redhat enterprise linux 哪個版本好,Red Hat Enterprise Linux 版本顯示中(Santiago)是啥意思?...

樓主的邏輯還有問題。1、linux跟windows都是一種操作系統,但是它用的分區格式是ext3的,ntfs和fat都不合適。安裝過程中你可以自己選擇刪除現有分區創建新分區,但如果你不了解,很可能把所有的分區都清了。2、redhat分區多大合適看你…

.gitignore文件_【第1739期】為Git倉庫里的.idea文件夾正名

前言.idea該不該提交到代碼倉庫中呢?你的意見呢?今日早讀文章由《Flask Web開發》作者李輝分享。正文從這開始~~在網絡上,我曾多次看到人們對于Git倉庫中的.idea文件夾的偏見。最近的一次是在某個博客中技術專家對于志…

監控linux時間不對,shell 計算故障時間 配合web監控

#!/bin/bash#checkfail.log 為SHELL監控網站時間存放的日志文件 https://blog.51cto.com/junhai/2437965fail_time(){starttimetail -n 1000 checkfail.log |grep "$url"|grep "第1次"|tail -n 3|head -n 1|awk {print $1, $2} #取網站掛掉的時間endtimet…

linux redis清空數據恢復,Redis數據恢復--誤刪數據后一次嚇尿的經歷

1、起因,一個flushdb命令因為誤操作,輸入了一個flushdb命令,導到redis里0號庫里的數據全部清空,OMG,這里有不少重要信息,如果被領導知道,必開除2、appendonly留有生機仔細想想,當時數…

c語言 枚舉類型 uint32_淺談C語言枚舉類型 | 附自創用法分享

經濟學家說過,路邊是不會有100元的;但如果有,你還是要撿起來。同理,在貌似萬物免費的網絡時代,你是很難找到有針對性的好資料;但是如果有,希望你能認真學習吸收。比如筆者今天寫的這一篇一今天這…

linux在bin下加入ssh,移植?ssh?到開發板

2》編譯/home/arm下新建目錄sshwork,并且將源碼復制到該目錄下mkdir /home/arm/sshworkcp zlib-1.2.3.tar.gz openssl-0.9.8d.tar.gz openssh-4.6p1.tar.gz/home/arm/sshwork/home/arm/sshwork下新建目錄lib,用來保存生成的庫文件。mkdir /home/arm/sshw…

java pdf增刪改查_如何利用Java代碼操作索引庫?

今天是劉小愛自學Java的第161天。感謝你的觀看,謝謝你。學習計劃安排如下:學了幾天的Elasticserch,但都是它本身的知識點,如何通過Java語言去操作它呢?這就好比以前學數據庫,在數據庫工具中通過sql語句也能…

linux shell 第幾行,Linux shell 獲得字符串所在行數及位置

shell 獲得字符串所在行數及位置01 獲取字符串所在的行數方式一:用grep -n[rootroot]# cat testapplebitcreatedelectexeflowgood[rootroot]# cat test | grep -n exe5:exe[rootroot]# cat test | grep -n exe | awk -F ":" {print $1}5方式二&#xff1a…

sublime text3 怎么配置、運行python_SublimeText3按ctrl+b執行python無反應

最后更新時間:2017-09-14 現象: 在Sublime中打開.py文件,按”ctrlb”執行時無反應。點擊工具->編譯系統中已經有且識別到Python,但執行”run(ctrlshiftb)”時無反應,Sublime左下角提示”No B…

linux 火鍋平臺,“定制版火鍋”來襲,持續創新才能永葆活力

原標題:“定制版火鍋”來襲,持續創新才能永葆活力5月1日,重慶涪陵紅酒小鎮的一家轉轉火鍋店,推出“五一”定制版火鍋免費請游客品嘗。廣西的螺螄粉、貴州的折耳根、湖南臭豆腐、福建烏龍茶、重慶榨菜、河南胡辣湯、陜西老陳醋、海…

internetreadfile讀取數據長度為0_YOLOV3的TensorFlow2.0實現,支持在自己的數據集上訓練...

GitHub鏈接:calmisential/YOLOv3_TensorFlow2?github.com我主要參考了yolov3的一個keras實現版本:qqwweee/keras-yolo3?github.com目前支持在PASCAL VOC 2012數據集上訓練和自定義數據集上訓練,具體的訓練過程可參考項目倉庫中的README文檔…

c語言用鏈表對學生成績排序,學生成績排序和平均分計算利用c語言鏈表的創建插入刪除.doc...

#define NULL 0#define LEN sizeof(struct student)struct student{long num;float score;struct student *next;};int n;struct student *creat(void)//創建鏈表{struct student *head;struct student *p1,*p2;n0;p1p2(struct student*)malloc(LEN);scanf("%ld,%f",…

深井軟巖巷道群支護技術與應用_深井軟巖巷道深淺孔帷幕注漿技術

一、成果內容1.基本原理對失修巷道進行刷擴、支護,滿足使用斷面后進行幫頂噴漿、底板整平,先底板注漿,然后幫、頂注漿。錨架充支護巷道直接底板整平后,先底板后幫、頂注漿。通過全斷面深淺孔聯合注水泥漿進行巷道加固,…

店鋪咨詢系統c語言,課內資源

1 題目介紹1.1 問題描述出于不同目的的旅客對交通工具和交通路徑有不同的要求。例如,因公出差的旅客希望在旅途中的時間盡可能短,出門旅游的游客則期望旅費盡可能省,而老年旅客則要求中轉次數最少。編制一個交通咨詢系統程序,為旅客提供最優決策的交通咨詢。1.2 需求分析提供對…

f分布表完整圖_【教育統計答疑】如何理解正態分布、均值分布、^2分布、t分布和F分布...

許多教育統計的初學者都表示這幾個分布感到學起來非常吃力,結合最近上課的體會以及答疑的情況,覺得很有必要在這里簡單地對這部分內容進行澄清和梳理,以助理解。首先,“為什么要學習這幾個分布”可能是許多人糾結的問題&#xff0…