wolf鬼刀
明明已经知道结局,但是当结局正真来临时,还是会伤心欲绝
展开
-
HTTP3.0和QUIC协议那些事
HTTP3.0和QUIC协议那些事文章目录HTTP3.0和QUIC协议那些事一、HTTP2.0和HTTP3.01.1 HTTP2.0和TCP的爱恨纠葛1.2 谷歌为什么选择UDP1.3 QUIC协议和HTTP3.0二、QUIC详解2.1 队头阻塞问题2.2 0RTT 建链2.2.1 首次连接和非首次连接2.2.2 首次连接2.2.3 非首次连接2.3 前向安全问题2.4 前向纠错2.5 连接迁移2.6 改进的拥塞控制2.6.1 可插拔2.6.2单调递增的 Packet Number2.6.3 不允许 Re原创 2020-09-22 14:03:38 · 11450 阅读 · 0 评论 -
几种常见的Web攻击
几种常见的Web攻击文章目录几种常见的Web攻击一、DoS攻击1.SYN洪水攻击2.IP欺骗3.Land攻击4.针对DoS攻击的防御二、CSRF攻击1. CSRF攻击的发生有三个必要条件:2.几种防护方法:三、XSS漏洞攻击1.非持久型XSS漏洞2.持久型XSS漏洞四、SQL注入1.SQL注入的危害2.SQL注入的方式3.防止SQL注入的解决方案一、DoS攻击 DoS(Denial of Service),拒绝服务,顾名思义这种攻击是为了让服务器无法提供正常服务,最常见的DoS攻击是网络带宽攻击和连原创 2020-08-17 17:21:03 · 972 阅读 · 0 评论 -
TCP真的可靠吗
TCP真的可靠吗文章目录TCP真的可靠吗一、TCP的特性1.序列号、确认应答、超时重传2.窗口控制与高速重发控制/快速重传(重复确认应答)3.拥塞控制4.慢启动:5.拥塞避免7.快速重传8.链接机制9.进行三次握手、四次挥手及timewait的原因二、问题引入三、TCP如何保证可靠性?四、TCP并不能保证它所发送数据的可靠传输五、故障类型1.收不到FIN的故障2.能收到FIN的故障3.总结一、TCP的特性TCP保证可靠性:1.序列号、确认应答、超时重传 数据到达接收方,接收方需要发出一个确认应答原创 2020-07-15 22:54:31 · 2594 阅读 · 1 评论 -
HTTP1.0、HTTP1.1和HTTP2.0的区别
HTTP1.0、HTTP1.1和HTTP2.0的区别文章目录HTTP1.0、HTTP1.1和HTTP2.0的区别一、HTTP的历史二、HTTP的基本优化三、HTTP1.0和HTTP1.1的区别1. 长连接(Persistent Connection)2. 节约带宽3.HOST域4.缓存处理5.错误通知的管理四、SPDY:HTTP1.x的优化五、HTTP和HTTPS的区别六、HTTP1.1和HTTP2.0(SPDY的升级版)的区别1. 多路复用2.头部数据压缩3.服务器推送七、HTTP2.0和SPDY的区别原创 2020-07-03 15:33:56 · 3170 阅读 · 0 评论 -
TCP粘包问题详解
TCP粘包问题详解文章目录TCP粘包问题详解一、引言二、TCP协议简介三、保护消息边界和流1.那么什么是保护消息边界和流呢?2.TCP和UDP四、粘包问题分析与对策1.引入2.什么时候需要考虑粘包问题3.粘包出现原因4.为了避免粘包现象,可采取以下几种措施:5.TCP无保护消息边界的解决6、针对3种方案摸拟实现五、网络通讯的封包和拆包1.为什么基于TCP的通讯程序需要进行封包和拆包2.怎样封包和拆包一、引言 在socket网络程序中,TCP和UDP分别是面向连接和非面向连接的。 因此TCP的soc原创 2020-06-14 14:00:49 · 581 阅读 · 0 评论 -
HTTP和HTTPS总结
HTTP&HTTPS文章目录HTTP&HTTPS一、HTTP协议的特点1. HTTP是不保存状态的协议2. 持久连接节省通信量3. 通信使用明文可能会被窃听4. 不验证通信方的身份可能被伪装5. 无法证明报文的完整性,可能被修改二、HTTPS1. HTTPS是身披SSL外衣的HTTP2. 相互交换密钥的公开密钥加密技术3. HTTPS协议的缺陷三、总结1.HTTP特点:2.HTT...原创 2020-04-02 18:53:07 · 818 阅读 · 0 评论 -
IO多路转接之epoll
IO多路转接之epoll一、epool是为处理大批量句柄而作了改进的pol1.相关函数a.int epoll_create(int size);创建一个epoll的句柄.自从linux2.6.8之后,size参数是被忽略的.用完之后, 必须调用close()关闭官方的讲:创建一个epoll的句柄其实呢,它是创建了一个epoll模型: 1. 在操作系统内核构建一个红黑树...原创 2020-02-15 10:34:35 · 1662 阅读 · 1 评论 -
IO多路转接之poll
IO多路转接之poll一、Poll1.函数原型:int poll(struct pollfd *fds, nfds_t nfds, int timeout);参数作用struct pollfd *fdsfds是一个poll函数监听的结构列表. 每一个元素中, 包含了三部分内容: 文件描述符, 监听的事件集合, 返回的事件集合nfds_t nfdsnfds表示...原创 2020-02-14 21:06:04 · 1442 阅读 · 0 评论 -
I/O多路转接之select
I/O多路转接之select一、五种IO模型阻塞IO: 在内核将数据准备好之前, 系统调用会一直等待. 所有的套接字, 默认都是阻塞方式非阻塞IO: 如果内核还未将数据准备好, 系统调用仍然会直接返回, 并且返回EWOULDBLOCK错误码.非阻塞IO往往需要程序员循环的方式反复尝试读写文件描述符, 这个过程称为轮询. 这对CPU来说是较大的浪费3. 信号驱动IO: 内核将...原创 2020-02-14 19:29:41 · 569 阅读 · 0 评论 -
网络基础(三)
网络基础(三)一、IP协议1.基本概念主机:配有IP地址, 但是不进行路由控制的设备;路由器: 即配有IP地址, 又能进行路由控制;节点: 主机和路由器的统称;2.协议头格式4位版本号(version): 指定IP协议的版本, 对于IPv4来说, 就是4.4位头部长度(header length): IP头部的长度是多少个32bit, 也就是 length * 4 的字节...原创 2020-02-14 14:50:46 · 1659 阅读 · 0 评论 -
网络基础(二)及HTTP协议
网络基础(二)及HTTP协议一、HTTP协议1 . 什么是url?平时我们俗称的 “网址” 其实就是说的 URL2.http协议的格式http请求:首行: [方法] + [url] + [版本]Header: 请求的属性, 冒号分割的键值对;每组属性之间使用\n分隔;遇到空行表示Header部分结束空行Body: 空行后面的内容都是Body. Body允许为空字符串. 如果B...原创 2020-02-12 18:43:15 · 2620 阅读 · 0 评论 -
TCP协议通讯流程(三次握手及四次挥手)
TCP协议通讯流程(三次握手及四次挥手)一、服务器端:调用socket函数,创建一个socket(文件描述符)操作句柄调用bind函数,把刚创建的socket文件描述符 和 ip及端口 绑定在一起,注意一个进程可以绑定多个端口号,但是一个端口号只能被一个进程绑定bind中进程和端口的关系调用listen函数,对socket文件描述符进行监听(首先listen会在进程地址空间中维护一个缓冲...原创 2020-02-12 15:09:12 · 1607 阅读 · 0 评论 -
网络编程套接字(四)
网络编程套接字(四)一、实现tcp服务器多用户版本(多进程、多线程、线程池版本)tcp_process_server.hpp#pragma once#include "tcp_socket.hpp"#include <functional>#include <signal.h>typedef std::function<void (const st...原创 2020-02-11 21:19:58 · 599 阅读 · 0 评论 -
网络编程套接字(三)
网络编程套接字(三)一、实现简单的Tcp服务器(单用户)tcp_socket.hpp#pragma once#include <cstdio>#include <cstdlib>#include <cstring>#include <cassert>#include <string>#include <uni...原创 2020-02-11 15:21:12 · 1961 阅读 · 0 评论 -
网络编程套接字(二)
网络编程套接字(二)原创 2020-02-11 12:15:44 · 1592 阅读 · 0 评论 -
网络编程套接字(一)
网络编程套接字(一)一、基础知识1. 理解源IP地址和目的IP地址在IP数据包头部中,有两个IP地址,分别叫源IP地址和目的IP地址。这两个很好理解,见名知义。思考: 我们光有IP地址就可以完成通信了嘛? 想象一下发qq消息的例子, 有了IP地址能够把消息发送到对方的机器上,但是还需要有一个其他的标识来区分出, 这个数据要给哪个程序进行解析。2. 认识端口号端口号是传输层协议内容 :...原创 2020-01-17 17:43:46 · 1922 阅读 · 0 评论 -
网络基础(一)
网络基础(一)一、计算机网络的背景1.网络的发展:独立模式: 计算机之间相互独立2.网络互联:多态计算机连载一起,完成数据共享3.局域网:计算机数量更多了, 通过交换机和路由器连接在一起;4.广域网WAN: 将远隔千里的计算机都连在一起二、认识“协议”1.计算机之间的传输媒介是光信号和电信号. 通过 “频率” 和 “强弱” 来表示 0 和 1 这样的信息. 要想传递各种不同...原创 2020-01-17 14:46:12 · 5795 阅读 · 0 评论 -
Linux下编写UDP/TCP版本的服务器和客户端的流程
Linux下编写UDP/TCP版本的服务器和客户端的流程一:UDP和TCP的区别1、TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接2、TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,通常情况下是无差错,不丢失,不重复,且按序到达的,(注意,这里的可靠是在通常情况下,在非通常情况下,TCP传送数据并不是不是100%,比如把网线拔了,数据就无...原创 2020-01-06 16:09:49 · 1053 阅读 · 2 评论