原创 udhcp源碼剖析(三)——DHCP服務器的初始化和配置

udhcpd_main的初始化和配置 udhcpd_main是DHCP服務器的入口,也是其主循環,在該函數中可以瞭解到DHCP服務的基本所有功能和流程。 開啓LOG,初始化server_config 打開名爲udhcpd的log文

原创 udhcp源碼剖析(四)——DHCP服務器的superloop

udhcpd_main的Super loop 到這一步,DHCP服務器開始提供具體的服務,super loop主要包括建立socket監聽及信號處理、獲取並提取報文、根據state和報文內容做出響應。 建立Socket監聽和sig

原创 python基礎學習(一)---數據結構和流程

Python數據結構 1 整數和浮點數 2 字符串和編碼 3 list和tuple list列表 tuple元組 4 dict字典 5 set集 Python語句 1 條件判斷語句 2 循環語句 1. Pyth

原创 udhcp源碼剖析(一)——DHCP服務器和客戶端的工作流程

DHCP服務器的工作流程 udhcpd,即dhcp服務器,在路由器等網關設備中,DHCP服務器啓動後用於給LAN側和無線終端分配IP、租約和其他網絡配置。根據RFC2131文檔規範,一個標準的DHCP服務器和客戶端的交互時序如下,

原创 udhcp源碼剖析(五)——DHCP客戶端重要的數據結構和初始化配置

數據結構 和服務器類似,客戶端也維護着一個全局的數據結構client_config,用於所有的DHCP服務。 struct client_config_t client_config = { /* Default opti

原创 DHCP協議

DHCP協議——RFC2131 1 Introduction DHCP協議,即Dynamic Host Configuration Protocol,動態主機配置協議,主要是爲了解決動態主機 配置問題,DHCP提供了一個在TCP/IP網絡

原创 TC流量控制

概述 Linux操作系統中的流量控制器TC(Traffic Control)用於Linux內核的流量控制,它利用隊列規定(qdisc)建立處理數據包的隊列,並定義隊列中的數據包被髮送的方式, 從而實現對流量的控制。TC模塊實現流量控制功能

原创 python基礎學習(三)---生成和迭代

列表生成式 生成器 迭代 迭代器 列表生成式 在C語音中,列表的生成一般使用for循環來實現,但在Python中生成一個列表式十分簡單的,簡單的順序列表可以通過range函數生成, >>> list(range(1,10)) [1

原创 python基礎學習(四)---面向對象編程

面向對象編程 數據封裝 繼承和多態 動態語言特性 property 多重繼承 定製類 枚舉類 元類 面向對象編程 面向對象編程的三個基礎概念是數據封裝(類)、繼承和多態,在這三個記住概念的基礎上,進一步擴展出更加高級的多重繼承

原创 udhcp源碼剖析(六)——DHCP客戶端的superloop

在client中,通過一個無限的for循環進入super loop,super loop中代碼流程也和服務器的類似,先是建立socket監聽,然後通過select+ FD_SET設置,同時對socket和pipe信號進行超時監聽,隨後根據