![](https://img-blog.csdnimg.cn/1e5748c079a84cdc996631013714eb6b.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
计算机网络
文章平均质量分 85
、
小明的笔记仓库
转载笔记来自互联网资料整理。
仅供个人学习用途。
展开
-
计算机网络优质资源
IO多路转接—select,并且实现select版本的TCP服务器_YAIMZA的博客-CSDN博客 IO多路转接—poll,并且实现poll版本的TCP服务器_YAIMZA的博客-CSDN博客 简单的TCP网络程序_YAIMZA的博客-CSDN博客_tcp程序原创 2021-12-18 22:20:42 · 1839 阅读 · 0 评论 -
linux的UDP通信编程
文章将对linux下udp socket编程重要知识点进行总结,无论是开发人员应知应会的,还是说udp socket的一些偏僻知识点,本文都会讲到。尽可能做到,读了一篇文章之后,大家对udp socket有一个比较全面的认识。本文分为两个专题,第一个是常用的upd socket框架,第二个是一些udp socket并不常用但又相当重要的知识点。一、基本的udp socket编程1. UDP编程框架要使用UDP协议进行程序开发,我们必须首先得理解什么是什么是UDP?这里简单概括一下。UDP(u转载 2021-12-11 12:33:47 · 3807 阅读 · 0 评论 -
优质参考资料
最值得收藏的 计算机网络 全部知识点思维导图整理(王道考研),附带经典5层结构的中英对照和框架简介_孤柒的博客-CSDN博客原创 2021-12-03 21:52:09 · 60 阅读 · 0 评论 -
如何查看网络的性能指标?
Linux 网络协议栈是根据 TCP/IP 模型来实现的,TCP/IP 模型由应用层、传输层、网络层和网络接口层,共四层组成,每一层都有各自的职责。应用程序要发送数据包时,通常是通过 socket 接口,于是就会发生系统调用,把应用层的数据拷贝到内核里的 socket 层,接着由网络协议栈从上到下逐层处理后,最后才会送到网卡发送出去。而对于接收网络包时,同样也要经过网络协议逐层处理,不过处理的方向与发送数据时是相反的,也就是从下到上的逐层处理,最后才送到应用程序。网络的速度往往跟用户体验是挂转载 2021-08-22 19:26:16 · 819 阅读 · 0 评论 -
Reactor 和 Proactor
!演进如果要让服务器服务多个客户端,那么最直接的方式就是为每一条连接创建线程。其实创建进程也是可以的,原理是一样的,进程和线程的区别在于线程比较轻量级些,线程的创建和线程间切换的成本要小些,为了描述简述,后面都以线程为例。处理完业务逻辑后,随着连接关闭后线程也同样要销毁了,但是这样不停地创建和销毁线程,不仅会带来性能开销,也会造成浪费资源,而且如果要连接几万条连接,创建几万个线程去应对也是不现实的。要这么解决这个问题呢?我们可以使用「资源复用」的方式。也就是不用再为每个连接创建线转载 2021-08-22 19:25:17 · 163 阅读 · 0 评论 -
怎么根据日志分析出 PV 和 UV?
很多时候,我们观察程序是否如期运行,或者是否有错误,最直接的方式就是看运行日志,当然要想从日志快速查到我们想要的信息,前提是程序打印的日志要精炼、精准。但日志涵盖的信息远不止于此,比如对于 nginx 的 access.log 日志,我们可以根据日志信息分析用户行为。什么用户行为呢?比如分析出哪个页面访问次数(PV)最多,访问人数(UV)最多,以及哪天访问量最多,哪个请求访问最多等等。这次,将用一个大概几万条记录的 nginx 日志文件作为案例,一起来看看如何分析出「用户信息」。转载 2021-08-22 19:23:43 · 1037 阅读 · 0 评论 -
I/O 多路复⽤:select/poll/epoll★★★
!最基本的 Socket 模型要想客户端和服务器能在网络中通信,那必须得使用 Socket 编程,它是进程间通信里比较特别的方式,特别之处在于它是可以跨主机间通信。Socket 的中文名叫作插口,咋一看还挺迷惑的。事实上,双方要进行网络通信前,各自得创建一个 Socket,这相当于客户端和服务器都开了一个“口子”,双方读取和发送数据的时候,都通过这个“口子”。这样一看,是不是觉得很像弄了一根网线,一头插在客户端,一头插在服务端,然后进行通信。创建 Socket 的时候,可以指定网络层..转载 2021-08-22 19:19:50 · 145 阅读 · 0 评论 -
零拷贝的知识点
前言磁盘可以说是计算机系统最慢的硬件之一,读写速度相差内存 10 倍以上,所以针对优化磁盘的技术非常的多,比如零拷贝、直接 I/O、异步 I/O 等等,这些优化的目的就是为了提高系统的吞吐量,另外操作系统内核中的磁盘高速缓存区,可以有效的减少磁盘的访问次数。这次,我们就以「文件传输」作为切入点,来分析 I/O 工作方式,以及如何优化传输文件的性能。正文为什么要有 DMA 技术?在没有 DMA 技术前,I/O 的过程是这样的: CPU 发出对应的指令给磁盘控制器,然后返回;转载 2021-08-22 19:18:36 · 130 阅读 · 0 评论 -
Linux 系统是如何收发网络包的?★★★
前言这次,就围绕一个问题来说。Linux 系统是如何收发网络包的?正文网络模型为了使得多种设备能通过网络相互通信,和为了解决各种不同设备在网络互联中的兼容性问题,国际标标准化组织制定了开放式系统互联通信参考模型(pen System Interconnection Reference Model),也就是 OSI 网络模型,该模型主要有 7 层,分别是应用层、表示层、会话层、传输层、网络层、数据链路层以及物理层。每一层负责的职能都不同,如下:应用层,负责给应用程序提供统一的接口;转载 2021-08-22 16:28:17 · 500 阅读 · 0 评论 -
浏览器输入url到显示,期间发生了什么?★★★
正文接下来以下图较简单的网络拓扑模型作为例子,探究探究其间发生了什么?简单的网络模型01 孤单小弟 —— HTTP浏览器做的第一步工作是解析 URL首先浏览器做的第一步工作就是要对URL进行解析,从而生发送给Web服务器的请求信息。让我们看看一条长长的 URL 里的各个元素的代表什么,见下图:URL 解析所以图中的长长的 URL 实际上是请求服务器里的文件资源。要是上图中的蓝色部分 URL 元素都省略了,哪应该是请求哪个文件呢?当没有路径名时,...转载 2021-08-22 16:27:31 · 154 阅读 · 0 评论 -
ping 的工作原理
前言在日常生活或工作中,我们在判断与对方网络是否畅通,使用的最多的莫过于ping命令了。“那你知道ping是如何工作的吗?” —— 来自小林的灵魂拷问可能有的小伙伴奇怪的问:“我虽然不明白它的工作,但 ping 我也用的贼 6 啊!”你用的是 6 ,但你能面试官面前,你就 6 不起来了,毕竟他们也爱问。所以,我们要抱有「知其然,知其所以然」的态度,这样就能避免面试过程中,出门右拐的情况了。来自面试官的灵魂拷问不知道的小伙伴也没关系,今天我们就来搞定它,搞懂它。消除本次...转载 2021-08-22 16:20:43 · 859 阅读 · 0 评论 -
TCP 实战抓包分析
提纲正文显形“不可见”的网络包网络世界中的数据包交互我们肉眼是看不见的,它们就好像隐形了一样,我们对着课本学习计算机网络的时候就会觉得非常的抽象,加大了学习的难度。还别说,我自己在大学的时候,也是如此。直到工作后,认识了两大分析网络的利器:tcpdump 和 Wireshark,这两大利器把我们“看不见”的数据包,呈现在我们眼前,一目了然。唉,当初大学学习计网的时候,要是能知道这两个工具,就不会学的一脸懵逼。tcpdump 和 Wireshark 有什么区别?tc...转载 2021-08-22 16:14:17 · 24367 阅读 · 14 评论 -
TCP 重传、滑动窗口、流量控制、拥塞控制★★★
正文相信大家都知道 TCP 是一个可靠传输的协议,那它是如何保证可靠的呢?为了实现可靠性传输,需要考虑很多事情,例如数据的破坏、丢包、重复以及分片顺序混乱等问题。如不能解决这些问题,也就无从谈起可靠传输。那么,TCP 是通过序列号、确认应答、重发控制、连接管理以及窗口控制等机制实现可靠性传输的。今天,将重点介绍 TCP 的重传机制、滑动窗口、流量控制、拥塞控制。重传机制TCP 实现可靠传输的方式之一,是通过序列号与确认应答。在 TCP 中,当发送端的数据到达接收主机时...转载 2021-08-22 16:11:24 · 365 阅读 · 0 评论 -
三次握手与四次挥手★★★
为什么是三次握手?不是两次、四次?相信大家比较常回答的是:“因为三次握手才能保证双方具有接收和发送的能力。”这回答是没问题,但这回答是片面的,并没有说出主要的原因。在前面我们知道了什么是TCP 连接: 用于保证可靠性和流量控制维护的某些状态信息,这些信息的组合,包括Socket、序列号和窗口大小称为连接。 所以,重要的是为什么三次握手才可以初始化Socket、序列号和窗口大小并建立 TCP 连接。接下来以三个方面分析三次握手的原因: 三次握手才可以阻止历史重复连接的初始..转载 2021-08-21 10:19:01 · 130 阅读 · 0 评论 -
HTTP/1.1、HTTP/2、HTTP/3 演变
HTTP/1.1、HTTP/2、HTTP/3 演变说说 HTTP/1.1 相比 HTTP/1.0 提高了什么性能?HTTP/1.1 相比 HTTP/1.0 性能上的改进:使用 TCP 长连接的方式改善了 HTTP/1.0 短连接造成的性能开销。 支持管道(pipeline)网络传输,只要第一个请求发出去了,不必等其回来,就可以发第二个请求出去,可以减少整体的响应时间。但 HTTP/1.1 还是有性能瓶颈:请求 / 响应头部(Header)未经压缩就发送,首部信息越多延迟越大。只能压缩转载 2021-08-21 09:34:10 · 418 阅读 · 0 评论 -
HTTP 与 HTTPS
HTTP 与 HTTPS 有哪些区别?HTTP 是超文本传输协议,信息是明文传输,存在安全风险的问题。HTTPS 则解决 HTTP 不安全的缺陷,在 TCP 和 HTTP 网络层之间加入了 SSL/TLS 安全协议,使得报文能够加密传输。 HTTP 连接建立相对简单, TCP 三次握手之后便可进行 HTTP 的报文传输。而 HTTPS 在 TCP 三次握手之后,还需进行 SSL/TLS 的握手过程,才可进入加密报文传输。 HTTP 的端口号是 80,HTTPS 的端口转载 2021-08-21 09:23:10 · 269 阅读 · 0 评论