标签 sk 下的文章

  • 📂图解linux netlink教程

    原文:https://www.dazhuanlan.com/2019/10/18/5da897a5b6ff1/概述netlink协议簇netlink初始化socket系统调用bind系统调用sendmsg系统调用recvmsg系统调用通用netlink协议初始化收发消息netlink用户空间程序netlink套接字库libnlnetlink消息报头和数据结构通用netlink报头和数据结构总...

  • 📂Linux网络收包总览教程

    因为要对百万、千万、甚至是过亿的用户提供各种网络服务,所以在一线互联网企业里面试和晋升后端开发同学的其中一个重点要求就是要能支撑高并发,要理解性能开销,会进行性能优化。而很多时候,如果你对Linux底层的理解不深的话,遇到很多线上性能瓶颈你会觉得狗拿刺猬,无从下手。我们今天用图解的方式,来深度理解一下在Linux下网络包的接收过程。还是按照惯例来借用一段最简单的代码开始思考。为了简单起见,我...

  • 📂linux 网络实现的数据结构-数据包结构教程

    基本数据结构数据包结构1:msghdr{}数据结构struct msghdr {//bsd socket 层中的数据结构 void * msg_name; int msg_namelen; ...

  • 📂TCP/IP协议栈在Linux内核中的运行时序分析【万字长文】教程

    1 Linux概述1.1 Linux操作系统架构简介Linux操作系统总体上由Linux内核和GNU系统构成,具体来讲由4个主要部分构成,即Linux内核、Shell、文件系统和应用程序。内核、Shell和文件系统构成了操作系统的基本结构,使得用户可以运行程序、管理文件并使用系统。内核是操作系统的核心,具有很多最基本功能,如虚拟内存、多任务、共享库、需求加载、可执行程序和TCP/IP网络功能...

  • 📂「linux」epoll和shutdown使用不当可能导致死循环教程

    首先来看段代码:#include <arpa/inet.h> #include <assert.h> #include <errno.h> #include <stdio.h> #include <stdlib.h> #include <strings.h> #include <sys/epoll.h> #i...

  • 📂Linux 网卡驱动sk_buff内核源码随笔教程

    这几天在调试有关网卡驱动的东西,有很多地方不清楚。有关网卡驱动部分主要有两个很重要的结构体:struct net\_device 和struct sk\_buff。 驱动大部分都是围绕这两个东西进行操作的,包括加协议头尾,去头去尾等。为了搞清楚协议栈如何处理数据包,周末闲来无事就看看内核代码去了解下这部分东西,并做了简要记录:<pre class="has">...

  • 📂从Linux源码看Socket(TCP)的listen及连接队列教程

    从Linux源码看Socket(TCP)的listen及连接队列前言笔者一直觉得如果能知道从应用到框架再到操作系统的每一处代码,是一件Exciting的事情。 今天笔者就来从Linux源码的角度看下Server端的Socket在进行listen的时候到底做了哪些事情(基于Linux 3.10内核),当然由于listen的backlog参数和半连接hash表以及全连接队列都相关,在这一篇博客里...

  • 📂从Linux源码看Socket(TCP)的bind教程

    从Linux源码看Socket(TCP)的bind前言笔者一直觉得如果能知道从应用到框架再到操作系统的每一处代码,是一件Exciting的事情。 今天笔者就来从Linux源码的角度看下Server端的Socket在进行bind的时候到底做了哪些事情(基于Linux 3.10内核)。一个最简单的Server端例子众所周知,一个Server端Socket的建立,需要socket、bind、lis...

  • 📂从Linux源码看Socket(TCP)的accept教程

    从Linux源码看Socket(TCP)的accept前言笔者一直觉得如果能知道从应用到框架再到操作系统的每一处代码,是一件Exciting的事情。 今天笔者就从Linux源码的角度看下Server端的Socket在进行Accept的时候到底做了哪些事情(基于Linux 3.10内核)。一个最简单的Server端例子众所周知,一个Server端Socket的建立,需要socket、bind、...

  • 📂TCP/IP 协议栈在 Linux 内核中的运行时序分析教程

    目录- 1、基础概念简介1.1、Linux操作系统架构简介1.2、网络分层模型1.3、Linux网络协议栈结构1.4、Linux内核任务调度机制1.5、Socket套接字2、send过程分析2.1、应用层2.2、传输层2.3、网络层2.4、链路层和物理层3、recv过程分析3.1、链路层和物理层3.2、网络层3.3、传输层3.4、应用层4、时序图1、基础概念简介1.1、Linux操作系统架构...

  • 📂TCP/IP 协议栈在 Linux 内核中的运行时序分析-付世荣-SA20225160教程

    调研要求 =========================1.在深入理解Linux内核任务调度(中断处理、softirg、tasklet、wq、内核线程等)机制的基础上,分析梳理send和recv过程中TCP/IP协议栈相关的运行任务实体及相互协作的时序分析。2.编译、部署、运行、测评、原理、源代码分析、跟踪调试等。3.应该包括时序图。1.Linux概述1.1 Linux操作系统架构简介...

  • 📂IP协议栈在Linux内核中的运行时序分析教程

    TCP/IP协议栈在Linux内核中的运行时序分析在深入理解Linux内核任务调度(中断处理、softirg、tasklet、wq、内核线程等)机制的基础上,分析梳理send和recv过程中TCP/IP协议栈相关的运行任务实体及相互协作的时序分析。编译、部署、运行、测评、原理、源代码分析、跟踪调试等应该包括时序图========================================...

  • 📂TCP/IP协议栈在Linux内核中的运行时序分析教程

    1 概述 =========================​ 该博客主要描述Tcp/ip协议栈的发送和接收流程,linux内核版本为2.6.26​ 全文直接从发送端和接收端两侧分别展开,然后跟踪数据发送和接收流程2 send发送过程2.1 应用层==================================================================​ 首先通过...

  • 📂Linux TCP Client会出现自己连接自己现象详解教程

    因在工作中主要从事后台服务网络基础设施模块,特将遇到的tcp坑,做了深入的研究,并做了整理,纯自己研究手打,转载请标明出处!一.现象:tcp在创建连接时,如果被连接的Server(socket)不存在,有几率会连接上自己。二.验证:输入命令:strace nc 127.0.0.1 10000 -p 10000 使用nc命令创建tcp client连接目标端口10000,并通过-p参数绑定cl...

  • 📂不为人知的网络编程(十):深入操作系统,从内核理解网络包的接收过程(Linux篇)教程

    本文作者张彦飞,原题“图解Linux网络包接收过程”,内容有少许改动。1、引言因为要对百万、千万、甚至是过亿的用户提供各种网络服务,所以在一线互联网企业里面试和晋升后端开发同学的其中一个重点要求就是要能支撑高并发,要理解性能开销,会进行性能优化。而很多时候,如果你对网络底层的理解不深的话,遇到很多线上性能瓶颈你会觉得狗拿刺猬,无从下手。这篇文章将用图解的方式,从操作系统这一层来深度理解一下网...

  • 📂从linux源码看socket的阻塞和非阻塞教程

    从linux源码看socket的阻塞和非阻塞 ===========================================笔者一直觉得如果能知道从应用到框架再到操作系统的每一处代码,是一件Exciting的事情。 大部分高性能网络框架采用的是非阻塞模式。笔者这次就从linux源码的角度来阐述socket阻塞(block)和非阻塞(non\_block)的区别。 本文源码均来自采...

  • 📂linux网络设备驱动2教程

    网络上对于网络层协议的介绍一般都是七层的 OSI(Open Systems Interconnection)模型,但是其实在linux网络应用开发中,对 Linux 中基本网络栈的介绍可以分为 四层的 Internet 模型linux内核网络协议简介核心网络架构系统调用接口协议无关接口网络协议设备无关接口设备驱动程序linux内核网络协议简介=========================...

  • 📂pool 进程池实现 socket 并发连接教程

    服务端:# ### 进程池实现socket连接服务器 from multiprocessing import Pool import socket,os sk = socket.socket() sk.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR,1) sk.bind(("127.0.0.1",8080)) s...

  • 📂Hive SQL查询效率提升之Analyze方案的实施教程

    0.简介Analyze,分析表(也称为计算统计信息)是一种内置的Hive操作,可以执行该操作来收集表上的元数据信息。这可以极大的改善表上的查询时间,因为它收集构成表中数据的行计数,文件计数和文件大小(字节),并在执行之前将其提供给查询计划程序。1.如何分析表?基础分析语句<pre class="sql">``` ANALYZE TABLE my_databas...

  • 📂socketserver 多进程、多线程应用实例教程

    1、线程池,ThreadingTCPServer#coding=utf-8 ''' 可并发,客户端互不影响,可以保持长连接,客户端发送消息 也不要求加 \r\n ''' #线程池(windows 可运行) from socketserver import * import threading class MyTCPHandler(BaseRequestHandler): de...

  • 📂进程间通信的几种方式教程

    进程间通信的方法:共享内存:Win32Api允许多个进程访问同一个映射对象,获取该映射对象的指针进行操作,这样就实现了不同进程间数据共享首先创建内存映射文件,使用CreateFile()创建用于共享内存的文件创建内存映射对象,利用CreateFile生成的句柄,调用CreateFileMapping函数,创建内存映射对象,用于获取映射内存的操作句柄,进程建通讯时,需要创建有名映射对象建立映射...