Network
文章平均质量分 62
暂代
须知少日拿云志,曾许人间第一流。
展开
-
TCP协议和UDP协议横向对比
TCP协议(传输控制协议)TCP是面向连接的传输协议,建立连接需要经历三次握手,断开连接时需要经过四次挥手。传输数据的时候需要回复ACK包确认,多种机制保证了数据能够正确到达。TCP协议是面向字节流的协议。TCP协议是可靠传输,应用于文件传输,重要状态更新等场景。UDP协议(用户数据报协议)UDP是非连接的传输协议,没有建立连接和断开连接的过程,它只是简单的把数据丢到网络中,...原创 2018-06-05 15:35:05 · 449 阅读 · 0 评论 -
Nginx使用指南之安装
一、pcre 和 pcre-devel安装PCRE(Perl Compatible Regular Expressions) 是一个Perl库,包括 perl 兼容的正则表达式库。nginx 的 http 模块使用 pcre 来解析正则表达式,所以需要在 linux 上安装 pcre 库,pcre-devel 是使用 pcre 开发的一个二次开发库。nginx也需要此库。命令:sudo yum...原创 2019-08-01 15:55:21 · 928 阅读 · 4 评论 -
如果ESTABLISHED队列满了,可是有连接需要从SYN队列转移
转载至:https://blog.csdn.net/yangbodong22011/article/details/60468820由于标题长度有限制,我把想要描述的问题再次描述下:内核通常会为每一个LISTEN状态的Socket维护两个队列:accept队列: listen()函数第二个参数BACKLOG指定,表示已完成连接的队列,等待被accept函数取走。SYN队列:由/pro...转载 2019-06-23 10:50:56 · 522 阅读 · 1 评论 -
深入探索 Linux listen() 函数 backlog 的含义
转载至:https://blog.csdn.net/yangbodong22011/article/details/603997281:listen()回顾以及问题引入listen()函数是网络编程中用来使服务器端开始监听端口的系统调用,首先来回顾下listen()函数的定义: 有关于第二个参数含义的问题网上有好几种说法,我总结了下主要有这么3种:Kernel会为LISTEN状态...转载 2019-06-23 10:44:33 · 289 阅读 · 0 评论 -
使用C++封装一个socket通信框架
封装一组socket常用通信操作,header only 风格。#pragma once#include <unistd.h>#include <string>#include <sys/socket.h>#include <netinet/in.h>#include <arpa/inet.h>#include <f...原创 2019-06-22 23:56:14 · 791 阅读 · 0 评论 -
Linux下IO多路复用
文章目录一、IO多路复用处理数据报文二、select1. 简介2. 函数原型2.1 参数说明2.2 fd_set结构说明2.3 timeval结构说明2.4 返回值说明3. 就绪条件3.1 读就绪3.2 写就绪4. 函数使用5. 函数特点6. 函数缺点三、poll1. 函数原型1.1 参数说明1.2 pollfd结构说明1.3 返回值说明2. 就绪条件3. 函数使用4. 优点5. 缺点四、epol...原创 2019-06-21 21:04:02 · 1474 阅读 · 0 评论 -
Epoll的惊群效应
什么是惊群效应? 在多线程或者多进程环境中使用Epoll来处理事件,每个线程 / 进程都同时监听着socket,那么当socket中的某个事件就绪后或者添加新的事件进去,操作系统就不知道应该将哪个线程 / 进程唤醒来处理此次事件,所以操作系统的处理方法就是同时唤醒多个线程 / 进程,可是此时必定只有一个线程/进程能够获得处理此次事件的权利,那么其他没有竞争到处理权限的线程 / 进程就会失败,错...原创 2019-06-20 21:38:40 · 1468 阅读 · 0 评论 -
HTTP协议优化措施
如果文章哪里有问题,还请诸位看官不吝赐教噢~经典提高效率的机制并行连接可以通过建立多个 tcp连接通道来实现并行传输数据,提高页面响应速率。并行TCP连接的使用还能够一定程度上减轻RTT延迟和短连接缓启动延迟的影响。长连接HTTP/1.1默认开启 Keep-Alive 选项,并且是 pipeline模式的。这样建立的 TCP 连接,可以在多次请求中复用。(注意:pipelin...原创 2019-02-20 20:52:57 · 2233 阅读 · 0 评论 -
socket编程 & 地址转换函数
接口字符串转 in_addr://head file#include <arpa/inet.h>//portint inet_aton(const char* strptr, struct in_addr* addrptr);in_addr_t inet_addr(const char* strptr);int inet_pton(int family, const ch...原创 2018-11-21 01:19:22 · 406 阅读 · 0 评论 -
P2P技术介绍
看到的一篇对P2P技术的介绍1. 什么是对等网络(P2P)技术?P2P技术属于覆盖层网络的范畴,是相对于客户机/服务器(C/S)模式来说的一种网络信息交换方式。在C/S模式中,数据的分发采用专门的服务器,多个客户端都从此服务器获取数据。这种模式的优点是:数据的一致性容易控制,系统也容易管理。但是此种模式的缺点是:因为服务器的个数只有一个(即便有多个也非常有限),系统容易出现单一...转载 2018-11-20 14:47:51 · 2715 阅读 · 0 评论 -
Apache & Nginx 网络模型
Apache & Nginx 网络模型Nginx的高并发得益于其采用了epoll模型,与传统的服务器程序架构不同,epoll是linux内核2.6以后才出现的。下面通过比较Apache和Nginx工作原理来比较。Apache传统Apache都是多进程或者多线程来工作,假设是多进程工作(prefork),apache会先生成几个进程,类似进程池的工作原理,只不过这里的进程池会随着请...转载 2018-10-11 15:44:44 · 501 阅读 · 0 评论 -
TCP拥塞控制笔记摘录
TCP拥塞控制TCP拥塞控制的介绍 什么是拥塞现象?拥塞现象是指注入到网络中的数据量过多,使得网络来不及处理,以至于引起部分乃至整个网络性能下降的现象,严重时甚至会导致网络通信业务陷入停顿。 流量控制和拥塞控制的区别是什么?流量控制:局部性拥塞控制:全局性 拥塞现象产生的原因是什么?存储空间不足带宽容量不足处理器处理能力弱,速度慢...原创 2018-08-30 08:21:22 · 522 阅读 · 0 评论 -
Socket编程实践_迭代回显服务器_TCP版
API函数原型:int listen(int sockfd, int backlog);函数作用:声明sockfd处于监听状态,并且最多允许又backlog个客户端处于连接等待状态,如果接收到更多的连接请求就忽略(这里一般不会设置太大)函数返回值:监听成功返回0,失败返回-1函数原型:int accept(int sockfd, struct sockaddr...原创 2018-06-07 11:07:58 · 375 阅读 · 0 评论 -
Socket编程实践_迭代回显服务器_UDP版
Socket编程接口创建socket套接字的API函数原型int socket(int af, int type, int protocol)参数说明af(address famly)为地址族,也就是IP地址类型,常用有AF_INET和AF_INET6。(INET是“internet”的缩写)AF_INET表示ipv4地址,例如:127.0.0.1(127.0.0.1...原创 2018-06-06 08:40:19 · 363 阅读 · 0 评论 -
Nginx root路径修改后无法生效解决方案
记一次解决“Nginx 修改root路径后无法生效”的问题解决历程。在使用Nginx搭建一个静态网站的时候,想要通过让Nginx转发某个请求到后台的指定静态文件,最初修改的Nginx的部分配置如下:server { listen 80; server_name localhost; location / { root html; index index.html; }...原创 2019-08-08 16:13:31 · 14006 阅读 · 2 评论