深入理解Linux網路技術內幕-關鍵資料結構(一)

 Linux網路子系統中存在一些很重要的資料結構,貫穿整個子系統,主要有以下兩個:    struct sk_buff:資料封包結構。所有的網路分層都會使用這個結構來儲存其前序、有關使用者資料,以及協調其他工作的其他內部資訊。    struct net_device:在Linux核心中,每種網路裝置都用這個資料結構表示,包括軟硬體的配置資訊。一、通訊端緩衝區:sk_buff結構    這可能是Linux網路代碼中最重要的資料結構,表示資料報文。這個結構定義在<include/linux/

深入理解Linux網路技術內幕-網路裝置初始化(三)

虛擬設備虛擬設備是建立在一個或多個真實裝置之上的抽象,虛擬設備與真實裝置之間的對應關係可以是一對一、一對多、多對一的,有可能在其他虛擬設備之上建立虛擬設備。但並非所有組合都有意義,也並非所有組合都有核心支援。虛擬設備的使用情形有如下幾種:綁定(Bonding):一組真實裝置虛擬為一個虛擬設備,使其如同單一裝置來提高效能;802.1Q:這是一種VLAN標準,用VLAN前序擴充802.3/Ethernet幀頭,建立VLAN;橋接(Bridding):橋接介面就是橋接器的虛擬設備別名介面(aliasi

linux socket 綁定機制的研究

linux socket 綁定機制的研究   1.    概述:在多 link 環境中,如何保證資料在正確的 link 上傳輸是一個棘手的問題。 本文主要分析 linux socket 綁定機制的實現,從而協助開發人員更好的瞭解 socket 綁定的本質。2.    linux kernel 提供給 user space 的介面linux 提供一個新的 setsockopt() 選項 SO_BINDTODEVICE 作為 user space

Linux 網路系統學習: Neighboring Subsystem

文章目錄 2.2 資料結構關係: 5.3 一個實際的 case Linux 網路系統學習: Neighboring Subsystem1. 概述在資料包的發送過程中,通過路由獲得下一跳的 L3 地址,下一步是獲得此 L3 地址所對應的 L2 地址,這個過程稱為 neighbor discovery。IPv4對應的是 ARP 協議,IPv6 對應的是Neighbor Discovery 協議。Linux 中,用於處理neighbor

Linux 內建的 watchdog 的簡介

Linux 內建了一個 watchdog 的實現,用於監視系統的運行,包括一個核心 watchdog module 和一個使用者空間的 watchdog 程式核心 watchdog 模組:核心 watchdog 模組通過 /dev/watchdog 這個字元裝置與使用者空間通訊。使用者空間程式一旦開啟 /dev/watchdog 裝置,就會導致在核心中啟動一個 1分鐘的定時器,此後,使用者空間程式需要保證在 1分鐘之內向這個裝置寫入資料,每次寫操作會導致重新設定定時器。如果使用者空間程式在

Linux 下查看 IPC 使用方式的方法

1. SYS-V 方法可以通過 ipcs 命令來查看 SYS-V 相關的 IPC 使用方式 2. POSIX 方法 1). message queueLinux 提供了 mqueue 的檔案系統類型,可以通過它來觀察到 POSIX 訊息佇列的使用方式 $ mkdir /dev/mqueue $ mount -t mqueue none /dev/mqueue $ ls -l /dev/mqueue -r-------- 1 root root 80 2008-06-18 11:46

深入理解Linux網路技術內幕-通用編程模式和技巧(二)

一、向量定義    在某些情況下,資料結構的末端定義一個可選的區塊,增加其靈活性:    struct abc{           int age;           char *name[20];           ……           char placeholder[0];     }   

深入理解Linux網路技術內幕-組件初始化的核心基礎架構(一)

引導期間的核心選項Linux運行使用者將核心配置選項傳遞給引導記錄,引導記錄再把選項傳給核心,進而通過引導配置參數微調核心。在系統引導期間,將調用parse_args兩次解析引導期間輸入的配置參數。parse_args函數解析的輸入字串參數是"變數名稱=值"的形式,根據解析出的關鍵字並啟用適當的處理函數。載入模組時,也會用到parse_args解析命令列參數。註冊關鍵字核心組件利用定義在include/linux/init.h中的__setup宏註冊關鍵字和相關聯的處理函數:__setup(st

深入理解Linux網路技術內幕-關鍵資料結構(四)

緩衝區的複製和拷貝當一個緩衝區需要被特別處理時,可能需要修改sk_buff描述符的內容,但核心不需要完全拷貝sk_buff結構和相關聯的資料緩衝區。為了提高效率,核心可以只複製原始值,也就是拷貝sk_buff結構,然後增加資料緩衝區的引用計數,防止被釋放。    當一個資料包需要被傳輸給多個接受者,如協議處理常式或多個網路分流器時,就需要使用資料包複製技術。    sk_buff的複製沒有連結到任何錶,而且也沒有引用通訊端的擁有者。skb->cloned欄位在複製的和原來的結構豬都設定為1

linux下的oracle9i啟動和停止服務

linux下的oracle9i啟動和停止服務   ## 停止服務流程Sql代碼 su - oracle  sqlplus /nolog  conn /as sysdba  shutdown immediate  su - oraclesqlplus /nologconn /as sysdbashutdown immediate ## 啟動服務流程Sql代碼 su - oracle  sqlplus /nolog  conn /as sysdba  startup  su -

linux 介紹的挺好

  檔案系統是linux的一個十分基礎的知識,同時也是學習linux的必備知識。    本文將站在一個較高的視圖來瞭解linux的檔案系統,主要包括了linux磁碟分割和目錄、掛載基本原理、檔案儲存體結構、軟連結永久連結、和常見目錄的介紹。相信有了這些知識對於深入的學習linux會有一定的協助。文章例子主要是基於ubuntu發行版。   

Linux下釋放記憶體的方法

釋放緩衝原因:有些單位自動檢測記憶體,當記憶體使用量率在90%以上時,會警示;               當記憶體被緩衝佔滿時,當處理一些新資訊時就會使用Swap,影響效能。 Linux的緩衝機制:Linux會針對dentry(用於VFS,加速檔案路徑名到inode的轉換)、Buffer Cache(針對磁碟塊的讀寫)和Page Cache(針對檔案inode的讀寫)進行快取作業。 操作步驟:1、查詢當前記憶體使用量情況和釋放緩衝的參數#free -m#cat

linux sudo 配置 不用密碼的配置

[tom@Agilysys:etc]$vi /etc/sudoers## Adding HOME to env_keep may enable a user to run unrestricted# commands via sudo.## Defaults   env_keep += "HOME"Defaults    secure_path = /sbin:/bin:/usr/sbin:/usr/bin## Next comes the main part: which users can

linux 配置 登陸顯示的介面

[tom@Agilysys:~]$vi .bashrc  1 # .bashrc  2 export PS1="[\u@Agilysys:\W]\$"  3 /home/tom/welcome.sh  4 # Source global definitions  5 if [ -f /etc/bashrc ]; then  6         . /etc/bashrc  7 fi

Linux中變數$#,$@,$0,$1,$2,$*,$$,$?的含義

我們先寫一個簡單的指令碼,執行以後再解釋各個變數的意義 # touch variable# vi variable 指令碼內容如下: #!/bin/shecho "number:$#"echo "scname:$0"echo "first :$1"echo "second:$2"echo "argume:$@"echo "show parm list:$*"echo "show process id:$$"echo "show precomm stat: $?"儲存退出 賦予指令碼執行許可權 #

Linux 中的alias address

Linux 中的alias address 作者: 小馬哥 rstevens  (rstevens2008@hotmail.com)歡迎轉載,未經允許,請勿用於商業目的Linux 允許一個網路介面擁有多個 IPv4 地址,除了第一個地址外,其它的稱為 alias 地址 通過 ‘ifconfig’ 可以添加一個 alias 地址。例如以下命令,為 eth0 添加一個新的地址 192.168.2.2, # ifconfig eth0:0 192.168.2.2 用 ‘ifconfig’

linux靜態動態連結程式庫備忘

$ gcc -c src1.csrc2.c src3.c   產生src1.o、src2.o、src3.o靜態連結庫:ar cqs libsrc.a src1.o src2.o src3.o動態連結程式庫$ gcc -shared -Wall -fPIC src1.o src2.o src3.o -o libsrc.so  

linux ftp命令

%ftp 主機名稱/IP  /*登入ftp伺服器,會提示輸入使用者名稱和密碼*/匿名登入:使用者名稱輸入:anonymous  密碼輸入:一個郵箱格式的任一字元串FTP>ascii: 設定以ASCII方式傳送檔案(預設值) FTP>bell: 每完成一次檔案傳送,警示提示. FTP>binary: 設定以二進位方式傳送檔案. FTP>bye: 終止主機FTP進程,並退出FTP管理方式. FTP>case:

原創:糾正國人對Linux的誤解和錯誤認識

錯誤印象和認識羅列如下,一一解釋:1。linux下的軟體太少回答:linux 下的軟體一點也不少。windows還在娘肚子裡的時候,Unix已經如日中天了。要知道微軟公司開發的第一個作業系統是什麼嗎?是一個叫做Xenix的東西,是Unix的一個分支,後來才去搞DOS的。有人又問了,Unix不是Linux阿,要知道,Linux完全重新的實現了Unix,是一個完整的類Unix系統,幾乎所有的Unix下的軟體要移植到Linux下不費吹灰之力,甚至把二進位代碼拷貝過來就能用(前提是硬體平台相同)。另外,

又一次被linux的工具震驚了

    前一篇部落格還寫了自己寫的連接埠轉寄工具,今天偶然在網上看到講具名管道和netcat配合的用法,被徹底雷倒了。    原來以為netcat做不到,原來是自己想不到,而不是netcat做不到……    方法如下:    $ mknod backpipe p    建立一個具名管道.    listener-to-client 轉寄:    $ nc -l -p [localport] 0< backpipe |         nc [target ip] [port] |     

總頁數: 4065 1 .... 279 280 281 282 283 .... 4065 Go to: 前往
Tags Index:

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。