原创 計算機網絡學習四:網絡層

1 基本概念   網絡層(Network Layer)是OSI模型的第三層,它是OSI參考模型中最複雜的一層,也是通信子網的最高一層。網絡層爲不同主機提供通信服務。它在下兩層的基礎上向資源子網提供服務。其主要任務是:通過路由選擇算法,爲報

原创 有的操作符重載函數只能是友元函數

1 基本概念   運算符重載爲成員函數,第一個參數必須是本類的對象。而<<和>>的第一個操作數一定是ostream類型,所以<<只能重載爲友元函數。   (1) 只能爲友元 >> ( 輸入流操作 ) <<

原创 ping請求錯誤分析

  1 請求錯誤分析   ping 的時候通常會返回不同的提示信息,這裏對不同提示進行分析原因。   (1) Request timed out (包從主機出去了) 主要是主機路由表中具有到達目標的路由,且arp廣播,最終有找到arp到達

原创 Linux進程間通信(IPC)編程實踐(三) 詳解System V消息隊列

  1 消息隊列簡介 消息隊列提供了一個從一個進程向另外一個進程發送一塊數據的方法(本機);每個數據塊都被認爲是有一個類型,接收者進程接收的數據塊可以有不同的類型值。消息隊列也有管道一樣的不足: (1)每個消息的最長字節數的上限(MSG

原创 DHCP的Decline分析

  1 Decline 概述   DHCP客戶端收到DHCP服務器ACK應答報文後,通過地址衝突檢測發現服務器分配的地址衝突或者由於其他原因導致不能使用,則會向DHCP服務器發送Decline請求報文,通知服務器所分配的IP地址不可用,以

原创 計算機網絡學習三:數據鏈路層

  1 基本概念   (1) 數據鏈路層(Data Link Layer)是OSI模型的第二層,負責建立和管理節點間的鏈路。   (2) 數據鏈路層的最基本的功能是向該層用戶提供透明的和可靠的數據傳送基本服務。透明性是指該層上傳輸的數據的

原创 linux中的路由表table和路由策略rule

    1 概述   (1)路由表,存放具體的路由條目。用於決定數據包從哪個網口發出,其主要判斷依據是目標IP地址。 (2)路由策略,根據策略綁定路由表。id越小,優先級越高。 (3)路由尋址過程中,按順序走路由策略,匹配路由策略後,在路

原创 C++編程產生指定範圍內的隨機數

這篇文章主要爲大家詳細介紹了C++編程產生指定範圍內的隨機數,具有一定的參考價值,感興趣的小夥伴們可以參考一下 C/C++編程產生指定範圍內的隨機數,直接上個小程序: #include <stdlib.h>

原创 getsockopt 和 setsockopt 函數

1 概念   1.1 功能描述   獲取或者設置與某個套接字關聯的選項。選項可能存在於多層協議中,它們總會出現在最上面的套接字層。當操作套接字選項時,選項位於的層和選項的名稱必須給出。爲了操作套接字層的選項,應該 將層的值指定爲SOL_S

原创 Socket 編程基本概念

1 概述 開始使用套接字編程之前,首先必須建立以下概念。         1.1 網間進程通信   進程通信的概念最初來源於單機系統。由於每個進程都在自己的地址範圍內運行,爲保證兩個相互通信的進程之間既互不干擾又協調一致工作,操作系統爲進

原创 Socket 讀寫函數和接收發送緩衝區

1 概要   一旦,我們建立好了tcp連接之後,我們就可以把得到的fd當作文件描述符來使用。   一般情況下,   (1) send、recv 函數在TCP協議下使用,當你對於數據報socket調用了connect()函數時,你也可以利用

原创 HLS 詳解

1 HLS概述   HTTP Live Streaming,也就是我們常說的HLS。HLS是蘋果公司提出的基於HTTP的流媒體網絡傳輸協議。類似於MPEG-DASH,但是HLS更加簡潔,它的基本原理也是服務端把文件或媒體流按照不同的碼率切

原创 Centos 搭建 PPPoE 服務器

  1 服務端   (1) 安裝pppoe,安裝完成後,會有pppoe-server命令 yum install rp-pppoe   安裝完成後,會在動在/etc/ppp目錄下生成pppoe-server-options文件。  

原创 PPP 協議詳解

1 PPP報文   PPP: Point-to-Point Protocol,鏈路層協議。用戶實現點對點的通訊。 PPP協議中提供了一整套方案來解決鏈路建立、維護、拆除、上層協議協商、認證等問題。具體包含這樣幾個部分:鏈路控制協議LCP(

原创 PPPOE 詳解

1 概述   (1) PPPoE( Point to Point Protocol over Ethernet ,基於以太網的點對點協議)的工作流程包含發現( Discovery) 和會話( Session) 兩個階段,發現階段是無狀態的