![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
计算机网络
文章平均质量分 94
网络相关知识
程序员面试那点事儿
互联网大厂校招、社招面试官,多年互联网大厂工作经验,分享校招、社招面试题、职场相关内容,互相交流经验
展开
-
如何优化 NAT 性能?
网络延迟是最核心的网络性能指标。由于网络传输、网络包处理等各种因素的影响,网络延迟不可避免。但过大的网络延迟,会直接影响用户的体验。NAT原理NAT 技术可以重写 IP 数据包的源 IP 或者目的 IP,被普遍地用来解决公网 IP 地址短缺的问题。它的主要原理就是,网络中的多台主机,通过共享同一个公网 IP 地址,来访问外网资源。同时,由于 NAT 屏蔽了内网网络,自然也就为局域网中的机器提供了安全隔离。你既可以在支持网络地址转换的路由器(称为 NAT 网关)中配置 NAT,也可以在 Linux 服务原创 2021-03-25 08:42:04 · 2393 阅读 · 0 评论 -
网络请求延迟变大,该怎么办
文章目录网络延迟案例准备案例分析总结除了 DDoS 会带来网络延迟增大外,也有不少其他原因导致的网络延迟,比如网络传输慢,导致延迟;Linux 内核协议栈报文处理慢,导致延迟;应用程序数据处理慢,导致延迟等等。网络延迟提到网络延迟时,你可能轻松想起它的含义——网络数据传输所用的时间。这个时间可能是单向的,指从源地址发送到目的地址的单程时间;也可能是双向的,即从源地址发送到目的地址,然后又从目的地址发回响应,这个往返全程所用的时间。通常,我们更常用的是双向的往返通信延迟,比如 pin原创 2021-03-12 10:01:01 · 1945 阅读 · 0 评论 -
怎么缓解 DDoS 攻击带来的性能下降问题?
文章目录DDoS 简介案例准备案例分析DDoS 到底该怎么防御总结DDoS 简介DDoS 的前身是 DoS(Denail of Service),即拒绝服务攻击,指利用大量的合理请求,来占用过多的目标资源,从而使目标服务无法响应正常请求。DDoS(Distributed Denial of Service) 则是在 DoS 的基础上,采用了分布式架构,利用多台主机同时攻击目标主机。这样,即使目标服务部署了网络防御设备,面对大量网络请求时,还是无力应对。比如,目前已知的最大流量攻击,正是去年 Gith原创 2021-03-12 09:16:00 · 351 阅读 · 0 评论 -
怎么使用 tcpdump 和 Wireshark 分析网络流量?
文章目录案例准备再探 pingtcpdumpWireshark总结ping是一个最常用的测试服务延迟的工具,很多情况下ping 可以帮我们定位出延迟问题,不过有时候, ping 本身也会出现意想不到的问题。这时,就需要我们抓取 ping 命令执行时收发的网络包,然后分析这些网络包,进而找出问题根源。tcpdump 和 Wireshark 就是最常用的网络抓包和分析工具,更是分析网络性能必不可少的利器。tcpdump 仅支持命令行格式使用,常用在服务器中抓取和分析网络包。Wireshark 除了可以原创 2021-03-12 08:55:45 · 792 阅读 · 0 评论 -
怎么使用 tcpdump 和 Wireshark 分析网络流量?
文章目录案例准备再探 pingtcpdumpWireshark小结上一节,我们学习了 DNS 性能问题的分析和优化方法。简单回顾一下,DNS 可以提供域名和 IP 地址的映射关系,也是一种常用的全局负载均衡(GSLB)实现方法。通常,需要暴露到公网的服务,都会绑定一个域名,既方便了人们记忆,也避免了后台服务 IP 地址的变更影响到用户。不过要注意,DNS 解析受到各种网络状况的影响,性能可能不稳定。比如公网延迟增大,缓存过期导致要重新去上游服务器请求,或者流量高峰时 DNS 服务器性能不足等,都会导致原创 2021-03-11 08:53:08 · 503 阅读 · 0 评论 -
C10K 和 C1000K
文章目录C10KI/O 模型优化工作模型优化C1000KC10M总结C10K 和 C1000K 的首字母 C 是 Client 的缩写。C10K 就是单机同时处理 1 万个请求(并发连接 1 万)的问题,而 C1000K 也就是单机支持处理 100 万个请求(并发连接 100 万)的问题。C10KC10K 问题最早由 Dan Kegel 在 1999 年提出。那时的服务器还只是 32 位系统,运行着 Linux 2.2 版本(后来又升级到了 2.4 和 2.6,而 2.6 才支持 x86_64),只配原创 2021-03-10 10:31:42 · 1043 阅读 · 0 评论 -
Linux 网络性能指标
文章目录性能指标网络配置套接字信息协议栈统计信息网络吞吐和 PPS连通性和延时性能指标通常用带宽、吞吐量、延时、PPS(Packet Per Second)等指标衡量网络的性能。带宽:表示链路的最大传输速率,单位通常为 b/s (比特 / 秒)。吞吐量:表示单位时间内成功传输的数据量,单位通常为 b/s(比特 / 秒)或者 B/s(字节 / 秒)。吞吐量受带宽限制,而吞吐量 / 带宽,也就是该网络的使用率。延时:表示从网络请求发出后,一直到收到远端响应,所需要的时间延迟。在不同场景中,这一指标可原创 2021-03-10 09:45:45 · 598 阅读 · 0 评论 -
Linux 网络详解
文章目录网络模型Linux 网络栈Linux 网络收发流程网络包的接收流程网络包的发送流程小结网络是一种把不同计算机或网络设备连接到一起的技术,它本质上是一种进程间通信方式,特别是跨系统的进程间通信,必须要通过网络才能进行。随着高并发、分布式、云计算、微服务等技术的普及,网络的性能也变得越来越重要。网络模型为了解决网络互联中异构设备的兼容性问题,并解耦复杂的网络包处理流程,OSI 模型把网络互联的框架分为应用层、表示层、会话层、传输层、网络层、数据链路层以及物理层等七层,每个层负责不同的功能。其中,原创 2021-03-10 08:36:46 · 2707 阅读 · 0 评论 -
TCP四次挥手中的TIME_WAIT有什么问题
TIME_WAIT发生的场景线上故障复现:原创 2020-11-28 10:28:09 · 345 阅读 · 0 评论 -
本地套接字之字节流和数据报
文章目录概述本地字节流套接字客户端服务端本地数据报套接字服务端客户端总结概述本地套接字是IPC,是本地进程间通信的一种实现方式本地套接字是一种特殊的套接字,提供了一种单主机跨进程间调用的手段本地字节流套接字客户端#include "lib/common.h" int main(int argc, char **argv) { if (argc != 2) { error(1, 0, "usage: unixstreamclient <local_path&g原创 2020-11-24 08:47:41 · 432 阅读 · 0 评论 -
关于QUIC协议的连接、重传、多路复用、流量控制
QUIC协议是基于UDP封住的一个协议原创 2020-11-23 22:54:37 · 3092 阅读 · 1 评论 -
HTTP1.1优化和HTTP2的优化
文章目录并行请求之多个连接的问题HTTP 1.1管道技术HTTP 2.0的优化二进制分帧并行处理并行请求之多个连接的问题一次建立多个TCP连接,可以一次下载更多的子元素,更快渲染出HTML页面,但是建立多个TCP连接是十分耗费客户端和服务器端的资源的。每建立一个连接需要三次握手,1.5次RTT在连接建立完后,长连接(或者叫连接复用)使得请求和响应完成后,连接不会立刻关闭,即使后面没有请求发送,服务器也必须维持着这么一些TCP连接,耗费不少服务器的资源。多个TCP连接的优化方式缺陷还是挺大的,最原创 2020-11-23 20:05:30 · 540 阅读 · 0 评论 -
详解HTTPS协议之加密、数字证书、工作模式
对称加密非对称加密数字证书HTTPS的工作模式重放与篡改原创 2019-05-15 14:04:36 · 299 阅读 · 0 评论 -
HTTP协议详解之组成、优化
HTTP请求的准备浏览器会把域名发给DNS服务器,把域名解析为IP地址,然后再进行TCP三次握手和四次挥手。HTTP请求的构建一 请求行二 首部字段HTTP请求的发送HTTP返回的构建HTTP2.0小结HTTP协议重点记住GET、POST、PUT、DELETE这几个方法和首部字段HTTP 2.0 通过头压缩、分帧、二进制编码、多路复用技术提升性能QUIC协议通过基于UDP自...原创 2019-05-15 11:26:45 · 186 阅读 · 0 评论 -
网络编程模型之客户端-服务器模型
客户端-服务器模型双十一购物中,手机上的每次操作,实际上都是客户端向服务器发送请求,并得到响应的例子。对于服务器端来说,一开始就需要监听在一个固定的端口上,等待客户端连接,一旦连接建立,服务端就会消耗一定的计算机资源为其服务,服务器是为众多的客户端服务的。如何去保证服务器端在巨大的客户端访问下,仍然有效率和稳定去提供服务,是高性能网络编程的目的。对于客户端来说,向服务端监听的端口发起请求,建立连接后,进行通信。在客户端和服务端中,运行的单位都是进程,而不是机器。IP和端口IP是网络世界的地原创 2020-11-17 09:59:33 · 457 阅读 · 0 评论 -
网络编程--Socket套接字
网络编程 网络编程的主要目的就是直接或间接的通过网络协议与其他计算机进行通讯。网络编程中有两个主要的问题,一个是如何准确的定位网络上的一台或多台主机,另一个就是找到主机后如何可靠高效的进行数据传输。在TCP/IP协议中IP层主要负责网络主机的定位,数据传输的路由。由可以唯一的确定Internet上唯一的一台主机,而TCP层则提供面向应用的可靠或非可靠的数据传输机制,这是网络编程的主要对象...转载 2018-05-19 15:46:09 · 148 阅读 · 0 评论 -
IP网际协议
IP协议位于网络层,它是TCP/IP协议族中最为核心的协议,所有的TCP、UDP、ICMP数据都以IP数据报格式传输。IP协议提供的是不可靠、无连接的数据报传送服务 不可靠:IP不能保证数据能成功到达目的地,仅提供传输服务 无连接:IP协议对每个数据报的处理是相互独立的。一 IP数据报 版本号:4位,用于标明IP版本号,0100表示IPv4,0110表示I...原创 2018-03-15 10:26:44 · 528 阅读 · 0 评论 -
LVS简介
使用LVS与keepalived搭建一个高可用的负载均衡服务器群一 LVS简介 1 负载均衡的实现方式 硬件负载均衡 :F5 ,梭子鱼 软件负载均衡:LVS、Nginx、HAProxy LVS主要工作在网络模型中的第四层(传输层),而Nginx主要工作在第七层(应用层)而HAProxy是一款提供高可用性、负载均衡以及基于TCP(第四层)和HT...原创 2018-03-12 17:14:34 · 350 阅读 · 0 评论 -
TCP协议
2.1 TCP协议的特点面向连接字节流协议全双工可靠的差错控制和流量控制2.2 TCP协议的创建客户端主动调用 connect 发送 SYN 分节服务器端必须回复一个 ACK 分节来确认客户端 SYN 分节,并发送一个 SYN 分节到客户端客户端对服务器端发送的 SYN 分节进行 ACK 确认至此,成功建立 TCP 连接,用于接下来的数据传输2.3 TCP协议的拆除因为 TCP 为全双工的传输协议...转载 2018-05-03 09:55:52 · 340 阅读 · 0 评论 -
请求方法
php面试过程中,基本上可以说是比问的一个题目就是。“你知道哪些http请求方法,他们的作用分别是什么?”下面就详细给大家介绍一下:HEAD:和GET方法很类似,但服务器只返回首部,不会返回实体内容,作用是判断资源的类型,根据状态码查看某个资源是否存在,测试资源是否被修改TRACE:一个HTTP请求可能会经过防火墙,代理,网关或其他一些应用程序,每个节点都可能修改原始HTTP请求,TRACE方法允...转载 2018-04-05 07:27:30 · 173 阅读 · 0 评论 -
状态码
1XX ==> 信息类状态码,表示接受请求正在处理2XX ===> 成功状态码- 200 ok 在服务端被正常处理了- 204 服务器接收的请求已成功处理,但在返回的请求头中,并没有相应的主体。- 206 返回部分的内容,服务端返回了请求,客户端成功执行了这部分的get请求。3XX ===> 重定向 需要附加操作以完成请求- 301 永久性重定向。请求的资源已经重新分配了u...转载 2018-04-05 07:27:42 · 230 阅读 · 0 评论 -
Ajax
简介:异步的JavaScript和XML,是一种无需重新加载整个网页的情况下,能够更新部分网页的技术。本身不支持跨域请求,需要在服务端处理工作原理:核心是XMLHttpRequest对象。请求过程:创建XMLHttpRequest、连接服务器、发送请求、服务器做出相应、接收相应数据ajax和jsonp区别 ajax是通过创建XMLHttpRequest来获取同源的数据。而jsonp是通过&l...原创 2018-03-19 11:50:08 · 130 阅读 · 0 评论 -
浏览器缓存
浏览器缓存浏览器缓存的知识是前端工程师必须要掌握的,因为这些知识直接影响到你的页面的用户体验,影响到你的页面的加载策略。接下来将要详细的讲述浏览器缓存的概 念和原理,新人要仔细阅读,甚至要多次反刍,缓存的知识除了和浏览器有关,还涉及到HTTP协议,所以这也是比较难于掌握的内容。一般在硬件中,缓存在硬件中分一级缓存,二级缓存。但在软件中的缓存却不一样。狭义上讲缓存就叫高速缓存,严格讲就是将数据暂时存...转载 2018-03-19 11:27:52 · 139 阅读 · 0 评论 -
LVS负载技术
IP负载均衡技术是在负载均衡调度器的实现技术中效率最高的 一 负载均衡解决方法 以软件实现的负载均衡的方式:基于应用层负载均衡、基于IP层负载均衡 1 基于应用层的负载均衡 Nginx以及Apache的Rewrite模块 2 基于IP层的负载均衡 用户通过虚拟IP地址访问服务时,访问请求的报文会到...原创 2018-03-14 11:34:39 · 148 阅读 · 0 评论 -
TCP/IP简介
TCP/IP是传输控制协议和网络协议的简称,它定义了电子设备如何接入因特网,以及数据如何在它们之间传输的标准 TCP/IP不是一个协议,而是一个协议族的统称 一 网络协议栈架构 二 几个基本知识点 1 IP地址 网络上的每一个节点必须有一个独立的IP地址,通常使用的IP地址是一个32bit的数字,分为4组,通过ip...原创 2018-03-14 10:34:22 · 675 阅读 · 0 评论 -
TCP协议的3次握手和4次挥手过程详解
一 前言 尽管TCP和UDP都使用相同的网络层(IP),TCP却向应用层提供与UDP完全不同的服务,TCP提供一种面向连接的、可靠的字节流服务二 TCP报文格式 1 序号:Seq序号,占32位,用来标识从TCP源端向目的端发送的字节流,发起方发送数据时对此进行标记 2 确认序号:Ack序号,占32位,只有ACK标志位为1时,确认序号字段才有效,Ack=Seq+1 3...原创 2018-03-12 16:51:37 · 229 阅读 · 0 评论 -
4.1 HTTP协议详解
简单来说,HTTP就是一个基于应用层的通信规范4.1.1 HTTP协议与SPDY协议 HTTP是一个应用层协议,由请求和响应构成,是一个标准的客户端服务模型。HTTP通常承载于TCP协议之上,有时候也承载于TLS或SSL协议层之上,这个时候,就成了常说的HTTPS。默认HTTP的端口号为80,HTTPS的端口号为443 缺点是服务端不会主动的向客户端PUSH SPDY协议的应用需要...原创 2018-03-06 20:09:28 · 192 阅读 · 0 评论