【网络基础】数据包生命

前言 本笔记通过记录 数据包 在网络中的生命履历来引出一些网络基础知识,如: MAC、ARP、IP、子网掩码、网关、集线器、交换机、路由器这些概念都是在链路层和网络层。 (这些都不做严谨的说明,只是为了更好的了解而表达的个人描述) 参考: 写得通俗易懂:如果让你来设计网络 数据包简要生命周期 浏览本 ... »

【网络编程】TCPIP-小笔记集合

前言 主要记录TCPIP一些小笔记 说明: demo 基于 Linux。 TCP/IP 网络编程笔记散集 快速入门: I/O 缓冲: I/O 缓冲在每个 TCP 套接字中单独存在。 I/O 缓冲在创建套接字时自动生成。 即使关闭套接字也会继续传递输出缓冲中遗留的数据。 关闭套接字将丢失输入缓冲中的数 ... »

【网络编程】TCPIP-7-域名与网络地址

前言 说明: demo 基于 Linux。 7. 域名与网络地址 本节主要记录三个名词:DNS、域名及IP。 7.1 IP IP地址:网络层的主机地址。老生常谈啦。 目前分为IPV4和IPV6。 如百度的地址之一:202.108.22.5 7.2 域名 域名就是IP的别名吧,因为人类对数字的记忆较难 ... »

【网络编程】TCPIP-5-UDP

前言 说明: demo 基于 Linux。 5. UDP 网络编程 UDP 是无连接的,不需要建立连接。 5.1 UDP 的工作原理 参考图: 主机B的数据包中包含目的主机的IP+端口号。 其中IP是把数据的目的主机地址,端口号是目的主机对用的程序。 路由器小知识: IP:主机地址。如目的IP,每个 ... »

【网络编程】HTTP简介&URL

前言 1. http 简介 1.1 概念 HTTP协议是 Hyper Text Transfer Protocol(超文本传输协议)的缩写。 用于从万维网(WWW:World Wide Web)服务器传输超文本到本地浏览器的传送协议。 1.2 原理 原理: HTTP是一个基于 TCP/IP通信协议 ... »

【TCP/IP】TCP服务器并发处理&源码

前言 本笔记记录的是 单个服务端并发式处理多个客户端。 下次有空在发个 单线程多个服务端并发式处理多种客户端。其实就是本笔记的一个改良版,用到select() / poll() / epoll()。 原文:https://www.cnblogs.com/lizhuming/p/14943969.ht ... »

【linux】驱动-15-定时器

前言 15. 定时器 本章内容为驱动基石之一。 驱动只提供功能,不提供策略。 原文:https://www.cnblogs.com/lizhuming/p/14922233.html 参考源码路径:includelinux imer.h 参考例子就明白如何使用了。 15.1 内核函数汇总 KER ... »

【linux】驱动-14-异步通知

前言 14. 异步通知 本章内容为驱动基石之一。 驱动只提供功能,不提供策略。 阻塞与非阻塞是 APP 询问 驱动设备。 异步通知是 驱动设备 主动通知 APP。 原文:https://www.cnblogs.com/lizhuming/p/14918049.html 14.1 异步通知的一些概念 ... »

【TCP/IP】TCP详解笔记

前言 本笔记记录 TCP/IP 中的 TCP 理论。包括三次握手、四次挥手、状态变迁、慢启动、快重传等等。 《TCP/IP详解》一共三卷,其中卷二、卷三更多偏重于编程细节,而卷一更多偏重于基础原理。 后面再发布个支持处理多线程并发及客户端数量限制的TCP服务端+TCP客户端例程。 原文:https: ... »

【linux】驱动-13-阻塞与非阻塞

前言 13. 阻塞与非阻塞 本章内容为驱动基石之一。 驱动只提供功能,不提供策略。 阻塞与非阻塞 都是应用程序主动访问的。从应用角度去解读阻塞与非阻塞。 原文:https://www.cnblogs.com/lizhuming/p/14912496.html 13.1 阻塞与非阻塞 阻塞: 指在执行 ... »

【linux】驱动-12-并发与竞态

前言 内核驱动的并发&竟态很容易理解,其解决方法也不能,看看例程就可以了。 对于API,看看内核源码和内核文档即可。 原文链接:https://www.cnblogs.com/lizhuming/p/14907262.html 12. 并发&竞态 本章内容为驱动基石之一。 驱动只提供功能,不提供策略 ... »

【linux】命令-网络相关

前言 1. ifconfig Linux ifconfig 命令用于显示或设置网络设备。 1.1 语法 ifconfig [网络设备][down up -allmulti -arp -promisc][add<地址>][del<地址>][<hw<网络设备类型><硬件地址>][io_addr<I/O地 ... »

【linux】驱动-7-平台设备驱动

前言 区分设备驱动模型和平台设备驱动模型。 设备驱动模型 可以理解为 总线、设备、驱动。 平台设备驱动模型 就是那些 Linux 内核管理没有物理总线(即是不需要特殊时序控制的设备)(也是Linux内核没有自动创建相应驱动总线的设备类型)的设备的一套 Linux 平台总线、平台模型、平台驱动的模型。 ... »

【linux】驱动-6-总线-设备-驱动

前言 6. 总线-设备-驱动 总线-设备-驱动 又称为 设备驱动模型。 6.1 概念 总线(bus):负责管理挂载对应总线的设备以及驱动; 设备(device):挂载在某个总线的物理设备; 驱动(driver):与特定设备相关的软件,负责初始化该设备以及提供一些操作该设备的操作方式; 类(class ... »

【linux】驱动-5-驱动框架分层分离&实战

前言 5. 分离分层 本章节记录实现LED驱动的大概步骤,且编程框架实现分离分层。 分离分层: 上层:系统 相关。如模块注册于注销。 下层:硬件操作。如提供 file_operations 。分离: 设备。提供板卡信息,如使用哪一个引脚。 驱动。引脚的具体操作。 以下以 LED 为例。 5.1 回顾 ... »