
计算机网络
文章平均质量分 94
主要介绍Linux网络部分的内容
Ricky_0528
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【事件驱动编程】事件驱动编程的基础理论
同步编程模式同步编程是最传统和直观的编程方式。在这种模式下,程序的执行流程是线性的,即每一个操作或函数调用都按顺序执行,而且每个操作必须完成后才能开始下一个操作。这种方式易于理解和调试,因为代码的执行顺序与其在源文件中的顺序相符。特点线性执行流程:程序按照代码的顺序执行,每个步骤依次进行。阻塞性质:如果当前的操作没有完成,程序就会在那里停顿,不会执行后续的代码。简单性和直观性:对于编程新手来说,同步编程更容易理解和实现。原创 2024-01-03 00:34:06 · 1929 阅读 · 0 评论 -
【网络进阶】Posix API与网络协议栈(五)
本博客主要介绍了Posix API和网络协议栈,详细解析了ARP协议、ICMP协议、IP协议、TCP协议及用户态网络协议栈的原理和实现。我们探讨了每个协议的基本功能、工作方式以及在TCP/IP网络协议栈中的位置。特别针对TCP协议,我们展示了它的握手和挥手过程,并阐述了如何使用Posix API实现TCP协议通信。最后,我们解析了TCP协议栈的实现细节。此博客旨在提供全面深入的网络协议栈知识,帮助开发者更好地理解网络编程。原创 2023-07-05 12:30:48 · 1052 阅读 · 0 评论 -
【网络进阶】Posix API与网络协议栈(四)
本文主要介绍了UDP协议以及其在网络协议栈中的作用和传输过程。我们首先探讨了UDP数据帧的结构和其在各网络层次中的变化。然后,深入讨论了以太网协议头和IP协议的详细信息。接着,详细阐述了UDP协议的设计和实现,最后通过一个C语言的UDP通信程序示例,展示了UDP协议的实际应用。全文旨在深化对UDP协议和网络协议栈的理解。原创 2023-07-02 23:09:22 · 780 阅读 · 0 评论 -
【网络进阶】Posix API与网络协议栈(三)
本文深入探讨了网络攻击(如DDoS和ARP欺骗)与网络协议栈的关系,强调了POSIX API在网络通信中的重要作用。通过详解TCP报文结构,我们理解了其如何保障数据的正确和顺序传输。我们深入研究了send缓冲区的作用和工作原理,明白其如何在应用程序和网络之间提供数据传输的中介服务。最后,我们通过send和recv函数的示例,展示了它们在网络通信中的关键作用。原创 2023-06-30 09:00:00 · 685 阅读 · 0 评论 -
【网络进阶】Posix API与网络协议栈(二)
本文详细探讨了TCP协议的首部长度和各字段含义,讨论了TCP监听时的backlog参数的重要性以及其在网络编程中的应用。文章还详细解释了TCP三次握手的过程,包括accept函数发生的时机。同时,我们也分析了TCP三次握手中存在的潜在安全问题,并给出了解决方案。最后,我们对比了TCP和UDP两种协议的区别,并结合C/C++代码给出了实际应用的示例。无论你是学习网络编程,还是对TCP协议的理解有困惑,本文都能为你提供深入的理解和指导。原创 2023-06-28 22:17:21 · 336 阅读 · 0 评论 -
【网络进阶】Posix API与网络协议栈(一)
在本篇博客中,我们深入讨论了TCP协议中的重要特性,包括三次握手、四次挥手、TIME_WAIT状态、超时重传和快速重传等。其中,我们解释了三次握手用于建立连接,四次挥手则负责断开连接。TIME_WAIT状态能确保TCP连接可靠地关闭,同时防止旧数据包的影响。最后,我们通过实例介绍了超时重传和快速重传的原理,以及如何在C语言中编写网络编程代码。希望本文能为读者理解TCP协议提供帮助。原创 2023-06-28 20:59:09 · 451 阅读 · 0 评论 -
【网络进阶】redis、memcached、nginx网络组件(三)
在这篇博客中,我们详细探讨了Nginx的环境、多线程处理和Reactor模式。首先,Nginx作为反向代理服务器,隐藏了服务器信息,增强了安全性。同时,Nginx通过多进程处理业务,提高并发处理能力。其次,我们解析了Nginx为何采用多线程,这源于其需处理的业务类型复杂,且多进程模型能避免加锁操作,提升处理效率。最后,Nginx的Reactor模式解决了"惊群问题",并实现了在用户层处理连接的负载均衡。当处理连接数达到阈值,它将自动调整负载,保证了处理性能。原创 2023-06-26 15:00:00 · 460 阅读 · 0 评论 -
【网络进阶】redis、memcached、nginx网络组件(二)
在本文中,我们详细探讨了Reactor模式在Redis和网络服务器中的运用。我们首先介绍了IO多路复用的主要类型:select、poll和epoll,以及非阻塞IO的重要性。然后,我们分析了为什么Reactor模式搭配非阻塞IO在多线程环境和边缘触发下的效率和可靠性。然后,我们转向Redis,解释了Redis为何选择单线程和单Reactor模式,以及它如何处理并优化Reactor。在每个部分,我们都提供了具体的代码示例以帮助读者更好理解。原创 2023-06-26 09:00:00 · 221 阅读 · 0 评论 -
【网络进阶】redis、memcached、nginx网络组件(一)
本文深入探讨了网络编程和IO操作的基础知识。首先,我们介绍了网络连接的建立和断开,以及消息的发送和接收过程,进一步明确了非阻塞IO处理方式对连接建立、断开、到达及消息发送的影响。其次,我们详细讨论了阻塞和非阻塞IO的定义及区别,分析了非阻塞IO设计的复杂性和阻塞IO可能引发的效率问题。最后,我们详述了IO检测的重要性,并用C++代码实例展示了如何利用Linux的epoll API进行IO检测。通过这篇文章,读者可以深入理解网络编程的核心概念,提高编程实践效能。原创 2023-06-25 09:00:00 · 204 阅读 · 0 评论 -
【网络进阶】WebSocket协议
WebSocket协议是一种实现在单个TCP连接上进行全双工通信的网络协议。本篇博客详细介绍了WebSocket协议的原理、工作流程以及与传统HTTP协议的区别。WebSocket协议旨在解决Web应用中实时通信的需求,减少网络延迟,提高数据传输效率。博客中通过详细的示例,演示了如何使用HTML5、JavaScript实现客户端的WebSocket通信,以及使用C++和Boost库搭建WebSocket服务器。原创 2023-05-06 09:00:00 · 2649 阅读 · 0 评论 -
【网络进阶】HTTP服务器(二)
本文详细介绍了HTTP状态码的概念和分类,并以表格形式列举了所有的状态码及其英文描述和中文解释。HTTP状态码是服务器对客户端请求的响应结果,它包含了3位数字和相应的描述,以便开发者和维护者了解请求的处理结果。状态码分为五大类:1xx(信息响应),2xx(成功响应),3xx(重定向),4xx(客户端错误),5xx(服务器错误)。通过详细阅读本文,您将对HTTP状态码有更深入的了解,从而更好地诊断和解决网站问题,提高网站稳定性和用户体验。原创 2023-05-05 09:00:00 · 560 阅读 · 0 评论 -
【网络进阶】HTTP服务器(一)
本文主要讨论了HTTP服务器的相关知识,首先介绍了HTTP的概念,阐述了其基于客户端/服务器架构的工作原理。接着,文章分析了在使用HTTP过程中需要注意的事项,以及HTTP消息的结构,包括客户端请求消息和服务器响应消息。文章还通过一个具体的GET方法示例,详细说明了如何在HTTP中传递数据。此外,文章列举了常见的HTTP请求方法以及它们的作用,以表格形式展示了各种HTTP响应头信息及其含义。通过阅读本文,您将对HTTP服务器有一个全面的了解,为日常工作和学习中的应用提供参考。原创 2023-05-04 09:00:00 · 3022 阅读 · 0 评论 -
【网络进阶】服务器模型Reactor与Proactor
在本博客中我们详细介绍了两种广泛使用的服务器模型:Reactor和Proactor。Reactor模型主要通过使用非阻塞I/O和事件驱动机制来处理并发客户端请求,优点在于可以处理大量并发连接,同时降低线程和内存的开销。然而,Reactor模型的缺点在于编程复杂度较高,容易出现回调地狱问题。相对地,Proactor模型采用了异步I/O和线程池技术来实现高并发处理。Proactor模型将I/O操作和业务逻辑解耦,降低了编程难度,但相应地,需要更多的线程资源。通过比较这两种模型的优缺点,读者可以根据自身需求选择。原创 2023-04-30 12:33:52 · 1320 阅读 · 0 评论 -
【网络进阶】五种IO网络模型(二)
在这篇博客中,我们详细讨论了多路复用IO、异步IO和信号驱动IO这三种不同的IO模型。多路复用IO通过单个线程处理多个IO操作,有效地解决了阻塞IO中线程资源浪费的问题。异步IO则允许应用程序继续执行其他任务,直到IO操作完成,从而提高了系统的整体效率。信号驱动IO则依赖于操作系统发送信号通知应用程序IO操作何时可用。原创 2023-04-26 09:00:00 · 539 阅读 · 0 评论 -
【网络进阶】五种IO网络模型(一)
本文主要介绍了五种IO网络模型中的两个:阻塞IO和非阻塞IO。阻塞IO是指在执行IO操作时,进程会等待数据传输完成后才继续进行。这可能导致进程在等待数据传输过程中无法执行其他任务,降低了系统的整体效率。与阻塞IO相对的是非阻塞IO,其允许进程在数据传输过程中执行其他任务。非阻塞IO通过异步方式实现,可以提高系统的并发性和响应速度。两种IO模式在不同场景下有各自的优势和适用性,开发者需根据实际需求选择合适的IO模式以提高程序性能。原创 2023-04-25 09:00:00 · 575 阅读 · 0 评论