linux协议栈
- Linux网络编程面试题--tcp和udp的区别
-
(1)TCP是基于连接的,UDP是基于无连接的.(2)TCP的数据是可靠的,UDP的数据是不可靠的.(3)TCP的数据是有序的,UDP的数据是无序的.(4)TCP不保存用户边界,UDP保存用户边界.(5)TCP速度较慢,UDP速度较快.(6)TCP是重量级的开销,UDP是轻量级的.(7)TCP比UD...
- 从网卡到应用层nginx,一个数据包经历了什么?
-
推荐视频:手把手带你实现一个nginx模块,更加深入了解nginx(搭建好环境)16w行的nginx源码,如何分拆模块阅读,让你明白轮子如何造c/c++linux服务器开发学习地址:C/C++Linux服务器开发/后台架构师【零声教育】-学习视频教程-腾讯课堂数据包从网卡到nginx本文将研究一个...
- 实战录 | mTCP用户态协议栈浅析
-
《实战录》导语云端卫士的新栏目《实战录》将会定期分享一些我们的工程师伙伴们在产品研发的过程中总结的实践经验,希望对于热爱技术且关注安全领域的受众有所裨益。本期分享人为云端卫士安全运营工程师陶涛。1关于用户态协议栈一直以来,网络协议栈都和内核密切相关,内核作为操作系统的控制者,也是负责网络资源分配的最...
- 详解linux内核网络数据包发送在UDP协议层的处理与监控
-
udp_sendmsg这个函数定义在net/ipv4/udp.c,函数很长,分段来看。UDP插入UDPudp_sendmsgcorking是一项优化技术,允许内核将多个数据累积成一体的数据报发送。在用户程序中有两种方法可以启用此选项:使用setsockopt系统调用设置socket的...
- 「linux」Socket缓存是如何影响TCP性能的?
-
一直以来我们都知道socket的缓存会对tcp性能产生影响,也有无数文章告诉我们应该调大socke缓存。但是究竟调多大?什么时候调?有哪些手段调?具体影响究竟如何?这些问题似乎也没有人真正说明白。下面我们就构建起一个简单的实验环境,在两台虚拟机之间探究一下Socket缓存究竟如何影响TCP的性能?对...
- 嵌入式实验:ARM指令集与汇编语言程序设计
-
一、实验目的1.了解并掌握ARM汇编指令集2.应用ARM指令集编写一个程序操控开发板上的LED灯二、实验要求应用ARM汇编指令集编写程序,实现正常状态下开发板上的LED灯不亮,按下一个按键之后开发板上的LED灯进入流水灯模式。三、实验原理四个LED灯的电路如下图所示:更多Linux内核视频教程文档资...
- 某大厂的C++协程框架(Kiev)技术内幕
-
Kiev框架简介kiev是该大厂推送平台目前使用的Linux-C++后台开发框架。先后由多位资深架构师、资深C++工程师倾力打造,已经在推送平台这个千万用户级的大型分布式系统上经历了近多年的考验。如今Kiev在该大厂推送平台中,每天为上百个服务完成数百亿次RPC调用。kiev作为一套完整的开发框架,...
- TCP协议-长连接和短连接详解
-
一前言TCP在真正开始进行数据传输之前,Server和Client之间必须建立一个连接。当数据传输完成后,双方不再需要这个连接时,就可以释放这个连接。TCP连接的建立是通过三次握手,而连接的释放是通过四次挥手。所以说,每个TCP连接的建立和释放都是需要消耗资源和时间成本的。二TCP短连接模...
- 《TCP/IP协议栈最全对比!一文搞懂TCP/UDP/IP/ICMP/ARP》
-
一、为什么需要理解TCP/IP协议栈?当你在浏览器输入www.baidu.com后,发生了什么?你的电脑通过ARP找到网关的MAC地址通过IP协议确定目标服务器的地址通过TCP/UDP建立连接传输数据通过ICMP处理网络诊断TCP/IP协议栈就是互联网的"交通规则"...
- 提高 Linux 上 socket 性能
-
在开发socket应用程序时,首要任务通常是确保可靠性并满足一些特定的需求。利用本文中给出的4个提示,您就可以从头开始为实现最佳性能来设计并开发socket程序。本文内容包括对于SocketsAPI的使用、两个可以提高性能的socket选项以及GNU/Linux优化。为了能...