计算机网络
文章平均质量分 59
kebi2009
这个作者很懒,什么都没留下…
展开
-
mqtt抓包
数据包抓包截图原创 2022-06-22 10:09:32 · 958 阅读 · 0 评论 -
ovs + docker+kvm+vxlan
环境 : 两台host, host1 安装docker+ovs, host2 安装kvm+ovs。具体安装过程略。host1(docker 容器) 收包流程:首先,ens38口收包__netif_receive_skb_core()->ip_rcv()->ip_rcv_finish()->dst_input->ip_local_deliver->ip_local_deliver_finish->udp_rcv->__udp4_lib_rc...原创 2021-10-28 10:31:38 · 214 阅读 · 0 评论 -
kernel使用skb打印ip地址和tcp端口号
if(printk_ratelimit()){#define NIPQUAD(addr) \((unsigned char *)&addr)[0],\ ((unsigned char *)&addr)[1],\ ((unsigned char *)&addr)[2],\ ((unsigned char *)&addr)[3] if((skb ->protocol) == htons(ETH_P_IP )) { ...原创 2021-04-16 16:10:56 · 1725 阅读 · 0 评论 -
open vswitch + veth 实验
虚拟化网络配置原创 2023-10-02 09:07:21 · 250 阅读 · 1 评论 -
IPV6 DHCPV6 和 无状态 分配地址
1DHCPv6简介1.1 DHCPv6概述DHCPv6(Dynamic Host Configuration Protocol for IPv6,支持IPv6的动态主机配置协议)是针对IPv6编址方案设计的,为主机分配IPv6前缀、IPv6地址和其他网络配置参数的协议。与其他IPv6地址分配方式(手工配置、通过路由器公告消息中的网络前缀无状态自动配置等)相比,DHCPv6具有以下优点:l更好地控制地址的分配。通过DHCPv6不仅可以记录为主机分配的地址,还可...转载 2020-08-21 10:13:20 · 11359 阅读 · 1 评论 -
linux内核之内存管理图解(值得看)
谢谢,作者的分享。前言 本文主要针对想从事linux内核开发的初级人员,由于内存管理是在从事内核开发时的基础知识,因此本文将从宏观原理方面阐述linux内核的内存管理机制。内核空间页页(page)是内核的内存管理基本单位。(linux/mm_types.h)struct page { page_flags_t flags; 页标志符 ...转载 2020-02-06 08:59:10 · 1529 阅读 · 0 评论 -
linux内核igb发包流程
packagecloud:blogSubscribe to our RSS feedback to topback to postsMonitoring and Tuning the Linux Networking Stack: Sending DataFeb 6, 2017 • packagecloudTags:linuxTL;DRThis blog ...转载 2019-12-05 14:42:37 · 833 阅读 · 0 评论 -
anycast技术
转载别人的,不好意思啊浅析AnyCast网络技术什么是BGP AnyCast?BGP anycast就是利用一个(多个) as号码在不同的地区广播相同的一个ip段。利用bgp的寻路原则,短的as path 会选成最优路径(bgp寻路原则之n),从而优化了访问速度。其实bgp anycast是不同服务器用了相同的ip地址。阿里的DNS 就是使用了BGP An...转载 2019-09-27 17:30:57 · 9228 阅读 · 4 评论 -
ipv6 判断地址是否在同一个子网
代码应该可以调试通,源码是在github上找的,做了些修改。#include <stdio.h>#include <stdlib.h>#include <netinet/in.h>#include <sys/socket.h> #include <arpa/inet.h> #include <st...原创 2019-06-16 17:26:18 · 6903 阅读 · 1 评论 -
Linux-4.20.8内核桥收包源码解析(三)----------网卡驱动收包
转制https://blog.csdn.net/Sophisticated_/article/details/87295513每次一个以太网帧到达时,都使用一个IRQ来通知内核。这里暗含着“快”和“慢”的概念。 对低速设备来说,在下一个分组到达之前, IRQ的处理通常已经结束。由于下一个分组也通过IRQ通知,如果前一个分组的IRQ尚未处理完成,则会导致问题,高速设备通常就是这样。现代以太...转载 2019-05-31 13:19:15 · 465 阅读 · 0 评论 -
tcp/ip帧格式
TCP/IP协议栈中的数据收发2014-12-02本文将对TCP/IP的数据收发做一个粗略总结~1、TCP/IP基本特点TCP/IP总的设计目的就是保证数据的快速有序的传输,且无丢失,基本特点如下:面向连接:两端组成一个连接,每端以五元组为标识 双工字节流: 采用字节流进行双工数据通信 有序发送:利用序列号保证发送的有序性 可靠性:利用ACK保证数据的可靠性 流控:接收...转载 2018-12-06 10:17:33 · 1754 阅读 · 0 评论 -
linux select函数详解(转载)
linux select函数详解在Linux中,我们可以使用select函数实现I/O端口的复用,传递给 select函数的参数会告诉内核: •我们所关心的文件描述符 •对每个描述符,我们所关心的状态。(我们是要想从一个文件描述符中读或者写,还是关注一个描述符中是否出现异常) •我们要等待多长时间。(我们可以等待无限长的时间,等待固定的一段时间,或者根...转载 2018-12-03 09:06:27 · 291 阅读 · 0 评论 -
dns + 重定向
其实这个文章叫大型网站用户定位技术,其实今天要讲的不是智能 DNS ,今天是要讲的智能 DNS 的问题,和一些网站对这个的处理,下面要讲的这个技术主要是针对比较大的文件,比如下载和视频之类。为什么要讲这个,主要是我的群中一些朋友吵着想了解一下。我答应了非常非常久了。直到现在才有时间给大家分享一下。我们知道,现在很多网站的 GLSB 都是基于 DNS 来做。DNS 的解析流程如下。我们来看。...转载 2018-09-10 17:22:00 · 8471 阅读 · 0 评论 -
网卡的零拷贝理解
转自:http://blog.csdn.net/freas_1990/article/details/9173713 Jack:最近听说了网络处理的“零拷贝”技术,觉得非常神奇,在网上查阅了很多资料。不过,并不是太明白——知其然,而不知其所以然。你能通俗地解释一下吗?我:这是一个相对比较复杂的话题,说起来话就多了。本质上来说,其实就是80386的分页管理变异而已。Jack:分...转载 2018-08-14 11:18:22 · 2501 阅读 · 1 评论 -
tcp_ack
注意 tcp_ack 是来处理接收到的ACK的,那么到底怎么去做呢?看下面: 先还上把tcp_sock的结构放在这里,下面一些数据的分析需要用到: [cpp] view plaincopyprint?struct tcp_sock { /* inet_connection_sock has to be the first member of tcp_so...转载 2018-07-25 15:12:21 · 1845 阅读 · 0 评论 -
从源代码包安装BIND9
从源代码包安装BIND9Posted on 2004年10月3日 16:56ISC BIND 是 DNS 在 Unix 和 Linux 下的具体实现,BIND 9 更是重新编写大部分 BIND 结构代码的新一代版本,BIND 9 的主要特点有:DNS安全 DNSSEC (signed zones) TSIG (signed DNS requests)I转载 2017-08-22 10:15:50 · 1070 阅读 · 0 评论 -
bind源码解析(一)
Bind是一款开放源码的DNS服务器软件,Bind由美国加州大学Berkeley分校研发和维护的,全名为Berkeley Internet Name Domain他是目前世界上使用最为广泛的DNS服务器软件,支持各种unix平台和windows平台。官方网站:http://www.bind.com/下面介绍一下Bind软件的主要的socket处理模块:Bind业务处理主要要关注一个转载 2017-08-22 10:19:05 · 934 阅读 · 0 评论 -
bind源码解析(二)
bind9运行主要是两个线程和一个do while循环,这三部分构成了bind的核心代码。do { result = isc_app_run(); if (result == ISC_R_RELOAD) { ns_server_reloadwanted(ns_g_server);转载 2017-08-22 10:19:57 · 737 阅读 · 0 评论 -
BIND9源码分析之UDP数据处理
本文简要介绍一下BIND9中的UDP数据处理,包括如何创建socket、设置什么socket参数、多线程环境中如何让多个线程读取53端口的数据等等。 BIND9的架构采用event-driven和task-based。对于像TCP这样的事件采用event-driven来等待读写时间,而在多线程方面,采用task-based的方式,服务器启动时由task_manager创建一系列干活转载 2017-08-22 10:21:08 · 788 阅读 · 0 评论 -
BIND9源码学习笔记1---gdb调试篇
学习bind9源码之前,首先要知道如何用gdb来调试bind。BIND9的源码我是先看代码弄懂它的架构,像什么event-drive,epoll等,再去看它的业务流程。看业务流程的时候要追踪它的数据流和处理过程,所以用gdb比较好,当然自己加日志再结合BIND9自有的日志也不是不行,只是觉得这样更清晰。 编译bind的时候加的有-g和-O2选项,前者不用说了,后者很坑爹的转载 2017-08-24 09:34:54 · 444 阅读 · 0 评论 -
BIND9的架构与机制笔记1
BIND9采用的是事件驱动的机制来工作,而事件的源头则是IO,IO在linux使用的EPOLL的边缘触发模式。 本篇说的是epoll,BIND9如果创建了watcher线程(宏USE_WATCHER_THREAD控制),这里就讨论有线程的情况,实际上即使不创建线程干的也都是一样的活。在lib/isc/socket.c中setup_watcher函数:(所有的代码都是截取的epol转载 2017-08-24 09:44:48 · 1033 阅读 · 0 评论 -
dpdk-ixgbe 详解
关于dpdk启动,ixgeb启动 初始,收发包原理,目前我看过最详细的文章转载 2017-11-03 12:27:17 · 4822 阅读 · 0 评论 -
在Linux 上,编写一个每秒接收 100万UDP数据包的程序究竟有多难?
在Linux 上,编写一个每秒接收 100万UDP数据包的程序究竟有多难?写的不错,转载一下1. UDP概念 用户数据报协议(英语:User Datagram Protocol,缩写为 UDP),又称使用者资料包协定,是一个简单的面向数据报的传输层协议,正式规范为RFC 768 在TCP/IP模型中,UDP为网络层以上和应用层以下提供了一个简单的转载 2018-01-15 15:02:06 · 1515 阅读 · 0 评论 -
JSON学习
JSON学习-使用cJSON解析 使用cJSON解析JSON字符串 一、为何选择cJSON 我们在使用JSON格式时,如果只是处理简单的协议,可以依据JSON格式,通过对字符串的操作来进行解析与创建。然而随着协议逐渐复杂起来,经常会遇到一些未考虑周全的地方,需要进一步的完善解析方法,此时,使用比较完善的JSON解析库的需求就提出来了。 基于方便引用的考虑,我们希...转载 2018-04-04 09:34:07 · 199 阅读 · 0 评论 -
网卡调优绑定
numa架构,万兆网卡两个,挂载不同numa[root@localhost ~]# lscpuArchitecture: x86_64CPU op-mode(s): 32-bit, 64-bitByte Order: Little EndianCPU(s): 88On-line CPU(s) list: 0-8...原创 2018-04-13 11:57:06 · 2096 阅读 · 0 评论 -
tcp 队列
【转】高性能网络编程3----TCP消息的接收这篇文章将试图说明应用程序如何接收网络上发送过来的TCP消息流,由于篇幅所限,暂时忽略ACK报文的回复和接收窗口的滑动。为了快速掌握本文所要表达的思想,我们可以带着以下问题阅读:1、应用程序调用read、recv等方法时,socket套接字可以设置为阻塞或者非阻塞,这两种方式是如何工作的?2、若socket为默认的阻塞套接字,此时recv方法传入的le...转载 2018-06-27 16:11:57 · 1776 阅读 · 0 评论 -
dnssec 命令
config 1: dnssec-keygen -f KSK -a RSASHA1 -b 512 -n ZONE edu.com.dnssec-keygen -a RSASHA1 -b 512 -n ZONE edu.com.dnssec-signzone -o edu.com. db.edu.comsystemctl restart nameddnssec-s原创 2016-08-05 09:50:14 · 401 阅读 · 0 评论