Linux高级网络开发奇妙之旅

一、基础理论篇

01、网络协议入门

02、LAN、WAN、WLAN、VLAN 和 VPN 的区别

03、IP 地址介绍

04、广播地址介绍

05、无连接和面向连接协议的区别

06、因特网的IP协议是不可靠无连接的,那为何当初不直接把它设计为可靠?

07、C/S和B/S架构的区别

二、初级实践篇

08、编程准备:字节序、地址转换

09、套接字的介绍

10、UDP编程

11、绑定( bind )端口需要注意的问题

12、UDP广播

13、UDP多播

14、TCP编程

15、TCP中connect()、listen()和accept()三者的关系

16、浅谈
TCP 三次握手和四次挥手

17、并发服务器的三种实现模型

三、进阶高级篇

18、原始套接字能干什么?

19、原始套接字编程

20、原始套接字实例:MAC 头部报文分析

21、原始套接字实例:MAC 地址扫描器

22、IP 数据报格式详解

23、TCP 和 UDP 数据报格式详解

24、原始套接字实例:发送 UDP 数据包

25、libpcap详解

26、libnet使用指南

四、拓展知识篇

27、杀毒软件和防火墙的区别

28、iptables使用说明

29、内网和外网之间的通信

时间: 2024-11-15 15:10:15

Linux高级网络开发奇妙之旅的相关文章

Hasen的linux设备驱动开发学习之旅--异步通知

/** * Author:hasen * 参考 :<linux设备驱动开发详解> * 简介:android小菜鸟的linux * 设备驱动开发学习之旅 * 主题:异步通知 * Date:2014-11-05 */ 一.异步通知的概念和作用 阻塞和非阻塞访问.poll()函数提供了较好地解决设备访问的机制,但是如果有了异步通知整套机制就更 加完整了. 异步通知的意思是:一旦设备就绪,则主动通知应用程序,这样应用程序根本就不需要查询设备状态,这 一点非常类似于硬件上"中断"的概

Hasen的linux设备驱动开发学习之旅--时钟

/** * Author:hasen * 参考 :<linux设备驱动开发详解> * 简介:android小菜鸟的linux * 设备驱动开发学习之旅 * 主题:时钟 * Date:2014-11-15 */ 一.内核定时器 1.内核定时器编程 软件意义上的定时器最终依赖硬件定时器来是实现,内核在时钟中断发生后执行检测各定时器是否到期, 到期后的定时器处理函数将作为软中断在底半部执行.实质上,时钟中断处理程序会唤起TIMER_SOFTIRQ 软中断,运行当前处理器上到期的所有定时器. Linu

Hasen的linux设备驱动开发学习之旅--异步I/O

/** * Author:hasen * 参考 :<linux设备驱动开发详解> * 简介:android小菜鸟的linux * 设备驱动开发学习之旅 * 主题:异步I/O * Date:2014-11-11 */ linux中最常用的输入/输出(I/O)模型是同步I/O.在这个模型中,请求发出后,应用就会阻塞,知道请求满足 为止.但是在某些情况下,I/O请求可能需要与其他的进程进行交叠.可移植操作系统接口(POSIX)异步I/O(AIO) 应用程序接口(API)就提供了这种功能. AIO基本

Hasen的linux设备驱动开发学习之旅--中断

/** * Author:hasen * 参考 :<linux设备驱动开发详解> * 简介:android小菜鸟的linux * 设备驱动开发学习之旅 * 主题:中断 * Date:2014-11-13 */ 一.中断和定时器 所谓中断是指CPU在执行程序的过程中,出现了某些突发事件急待处理,CPU必须暂停执行当前的程序, 转而去处理突发事件,处理完毕后CPU又返回原程序被中断的位置并继续执行. 下图是中断的分类 嵌入式系统以及X86 PC中大多包含可编程中断控制器(PIC),许多MCU内部就

Hasen的linux设备驱动开发学习之旅--linux设备驱动中的并发与竞态

/** * Author:hasen * 参考 :<linux设备驱动开发详解> * 简介:android小菜鸟的linux * 设备驱动开发学习之旅 * 主题:linux设备驱动中的并发与竞态 * Date:2014-11-04 */ 1.并发与竞态 并发(concurrency)指的是多个执行单元同时.并行被执行,而并发的执行单元对共享资源(软件上的全 局变量,静态变量等)的访问则很容易导致竞态(race conditions). 主要的竞态发生在以下几种情况: (1)对称多处理(SMP)

Hasen的linux设备驱动开发学习之旅--阻塞与非阻塞I/O

/** * Author:hasen * 参考 :<linux设备驱动开发详解> * 简介:android小菜鸟的linux * 设备驱动开发学习之旅 * 主题:阻塞与非阻塞I/O * Date:2014-11-05 */ 阻塞操作是指在执行设备操作时,若不能获得资源,则挂起进程直到满足可操作的条件后再进行操作.被 挂起的进程进入休眠状态,被从调度器的运行队列移走,直到等待的条件被满足.而非阻塞操作的进程在不能 进行设备操作时,并不挂起,它或者放弃,或者不停地查询,直到条件满足以进行操作为止.

Hasen的linux设备驱动开发学习之旅--支持轮询操作的设备驱动

/** * Author:hasen * 参考 :<linux设备驱动开发详解> * 简介:android小菜鸟的linux * 设备驱动开发学习之旅 * 主题:支持轮询操作的设备驱动 * Date:2014-11-07 */ 在globalfifo的poll()函数中,首先将设备结构体中的r_wait和w_wait等待队列头添加到等待列表, 然后通过判断dev->current_len是否等于0来获取设备的可读状态,通过判断dev->current_len是否等于 GLOBALF

Linux高级网络编程系列教程

一.网络应用层编程 1.Linux网络编程01--网络协议入门 2.Linux网络编程02--无连接和面向连接的区别 3.Linux网络编程03--字节序和地址转换 4.Linux网络编程04--套接字 5.Linux网络编程05--C/S与B/S架构的区别 6.Linux网络编程06--UDP协议编程 7.Linux网络编程07--广播(即将更新) 8.Linux网络编程08--多播 9.Linux网络编程09--TCP编程(即将更新) 10.Linux网络编程10--并发服务器(即将更新)

linux 高级网络编程

sqlserver 数据迁移到mysql 注意事项: 部分字段类型有区别,迁移过程中需要进行转换 唯一索引不同,sqlserver 中唯一索引列只能有一个null ,而mysql中却可以有多个null 存储过程语法有较大区别,迁移完成后需要进行逐个改写 sql查询语法也有区别,需要在应用中修改 这里我们先用使用navicat 进行从sqlserver 到mysql的一个迁移工作,步骤如下: 步骤1:在mysql中创建对应想要导入的数据库名,这里我们创建yhtest 步骤2:选中新创建的yhtes