网络
文章平均质量分 91
ych9527
这个作者很懒,什么都没留下…
展开
-
五大IO模型
文章目录1.IO过程2.典型IO模型2.1阻塞IO2.2非阻塞IO2.3信号驱动IO2.4异步IO3.多路转接IO模型3.1select模型3.2poll模型3.3epoll模型3.3.1epoll的使用介绍3.3.2poll对文件描述符就绪事件的触发方式3.3.2.1水平触发EPOLLLT3.3.2.1边缘触发(边沿触发)EPOLLET1.IO过程任何IO过程,都要包含两个步骤,第一是等待, 第二是拷贝. 而且在实际的应用场景中, 等待消耗的时间往往都远远高于拷贝的时间. 让IO更高效, 最核心的办法原创 2021-06-25 11:21:51 · 369 阅读 · 1 评论 -
数据链路层
文章目录1.数据链路层2.以太网协议2.1是什么2.2连接形式2.3以太网协议格式3.ARP协议3.1ARP协议的作用3.2ARP协议格式3.3ARP工作方式3.4ARP缓存机制4.NAT协议5.NAPT(动态NAT重载)6.DNS协议6.1DNS的产生6.2域名6.3域名服务器6.4域名解析流程1.数据链路层网络层:网络层的ip协议不负责数据的有序或者无序到达对方(数据的安全、可靠性是由TCP提供的)网络层的ip协议只负责数据的源端、和数据的目的端,即只负责数据从哪里来,到哪里去数据链路层:数原创 2021-06-22 11:07:56 · 494 阅读 · 0 评论 -
IP地址基础知识
文章目录1.IP的基本概念2.IP协议头部格式3.IP报文分片与重组4.IP地址基础知识4.1IP地址的构成4.2IP地址的分类4.2.1早期分类4.2.2子网掩码和CIDR4.3私有IP地址4.4特殊IP地址4.5路由选择1.IP的基本概念HTTP解决的问题:构建与解析请求和响应(对应的操作是read和write)tcp解决的问题:数据的可靠性,效率,什么时候发送,每次发送多少(具体办事还是得看下两层)IP解决的问题:端到端,将数据经过路由选择,发送到对方主机的过程由IP层负责(可能经过多个IP)原创 2021-06-20 20:10:37 · 13944 阅读 · 3 评论 -
TCP通信细节—贰
文章目录1.延迟确认应答2.捎带应答3.面向字节流4.粘包问题5.TCP异常情况6.理解listen的第二个参数6.1全链接队列和半链接队列6.2为什么需要全链接队列和半链接队列6.3实验验证6.4原码验证7.TCP小结7.1为什么TCP这么复杂?7.2基于TCP应用层协议1.延迟确认应答接收数据的主机如果每次都立刻回复确认应答的话,可能会返回一个较小的窗口。那是因为刚接收完数据,缓冲区已满。当某个接收端收到这个小窗口的通知以后,会以它为上限发送数据,从而又降低了网络的利用率(这其实是窗口控制特有的原创 2021-06-13 14:40:25 · 887 阅读 · 2 评论 -
TCP通信细节
1.链接管理机制1.1为什么需要三次握手1.一、二次握手容易受到SYN洪水攻击2.tcp是全双工的,用最小的成本验证全双工第一次客户端向服务端发送SYN,第二次服务器向客户端发送SYN+ACK,此时只验证了客户端是可以向客户端发送请求和接收数据的,而服务器端并不能确定是否可以向客户端发送消息,当客户端回应ACK(第三次握手),才验证了双方是全双工的3.让服务器不要出现链接误判的情况,减少服务器的资源的浪费1.2为什么需要四次挥手tcp通信是全双工的,断开连接的时候,客户端和服务端都需要断原创 2021-06-05 16:00:13 · 495 阅读 · 6 评论 -
UDP、TCP协议段格式
文章目录1.长短链接1.1为什么需要长链接1.2如何确定长短链接1.3怎么区分多个请求2.UDP协议2.1协议格式2.2UDP的特点2.3UDP的缓冲区2.4UDP使用注意事项2.5基于UDP的上层协议3.TCP协议3.1确认应答机制3.3超时重传机制3.2TCP协议段格式3.3原码1.长短链接1.1为什么需要长链接短链接:一次链接只可以发送一次请求,和进行一次响应长链接:建立一次链接,释放一次,可以进行多次请求和响应在早期HTTP协议之中,只有短链接的方式,因为那时候需要传输的资源内容不多,比较原创 2021-06-04 11:13:05 · 1169 阅读 · 9 评论 -
HTTP理论-3
文章目录1.HTTP的应用演示1.1知识预知1.2代码1.3实验效果1.4协议只是给游览器的一种参考1.5网页重定向2.HTTP和HTTPS2.1HTTP的缺陷2.2HTTPS2.2.1https是什么2.2.2对称加密1.HTTP的应用演示1.1知识预知1.2代码#include <iostream>using namespace std;#include <string>#include <signal.h>#include <unistd.原创 2021-05-31 08:27:53 · 581 阅读 · 9 评论 -
HTTP理论—2
文章目录1.urlencode(编码) 和 urldecode(解码)2.HTTP协议格式2.1HTTP请求2.2HTTP响应3.HTTP的状态码4.HTTP常见Header5.HTTP基本特征HTTP的方法6.Cookie6.1为什么需要cookie6.2cookie安全问题的解决(相对解决)7.应用层抓包工具fiddler7.1抓包原理7.2使用演示7.3通过linux命令行获取响应信息7.4wget1.urlencode(编码) 和 urldecode(解码)在url之中并,有一些特殊的符号,比如原创 2021-05-28 10:25:14 · 16521 阅读 · 1 评论 -
协议的初识
文章目录1.协议1.1结构化数据1.2序列化和反序列化2.网络版的计算器3.抓包工具4.初识http协议4.1初识URL1.协议1.1结构化数据程序员写的一个个解决实际问题,满足日常需求的网络程序都是在应用层协议是一种约定、socket api的都是按照比特位的方式来进行发送和接收的,如果要传输一些"结构化的数据",怎么办呢?结构化数据:比如发送QQ消息 、消息的组成有 -> 头像、称谓、信息、时间等等 ->这种数据就叫做结构化数据1.2序列化和反序列化序列化:发送信息的时候、需要原创 2021-05-22 17:19:02 · 567 阅读 · 0 评论 -
socket编程小细节
1.inet_ntoa一些小细节inet_ntoa 这个函数返回了个char*,是一个地址,即这个函数将转换的结果保存在了内存之中,然后返回对应的地址给调用者。而我们并没有传入空间给这个函数,因此这个函数在内部一定申请了一块内存空间来保存ip转换的结果。这个返回结果保存到了静态存储区,不需要进行手动释放。如果多次调用这个函数,由于是存储在自己内部的一个静态存储区,因此第二次调用时的结果会将上一次的覆盖掉在APUE中明确的提出inet_ntoa不是线程安全的函数(存储在静态区、所有的线程都可以看到)原创 2021-05-22 11:01:41 · 516 阅读 · 9 评论 -
tcp服务器的实现
1.服务端需要绑定,客户端不需要1.1服务器为什么需要绑定1.一般服务器端是固定的,是总所周知的,ip和port不需要也不能轻易的更改。比如:http对应的端口号是80 https:443 ssh:222.服务器面对的客户很多,服务器一旦改了,客户端立马找不到,就无法访问服务器了。比如在日常生活中110对应的就是报警,报警的第一反应就是1103.服务器是一对多的,一旦发生变化,很多客户端都要做出相对的变动1.2客户端为什么不需要绑定1.客户有很多客户端,如果绑定,就需要让不同的公司商量原创 2021-05-20 16:44:59 · 926 阅读 · 7 评论 -
Socket编程
文章目录1.源IP、目的IP地址2.端口号2.1端口号基本概念2.2进一步理解端口号和pid的关系3.进一步理解网络通信4.TCP、UDP协议4.1 TCP协议4.2 UDP协议5.字节序5.1主机字节序5.2网络字节序5.3主机字节序如何转化为网络字节序5.4网络字节序如何转化为主机字节序6.UDP编程6.1sockaddr结构6.2创建socket文件描述符6.2.1接口介绍6.2.2创建套接字的意义6.3套接字如何与系统进程相关联的6.4绑定端口号6.4.1为什么需要绑定6.4.2接口介绍6.4.3结原创 2021-05-12 18:25:16 · 1268 阅读 · 11 评论 -
网络基础知识
文章目录1.网络发展背景2.协议2.1网络协议是什么2.2网络协议簇2.3体系结构/参考模型2.4协议分层2.4.1不同协议对应的分层2.4.2不同分层的功能2.5网络传输中的五元组信息1.网络发展背景在二战时,美国需要计算导弹轨迹,就需要进行大量的数据计算,于是乎将数据分发给各个实验室和高校进行计算,然后再进行统计。数据分发下去,计算完毕,去收取的时候,还是需要人工去获取的,这就导致工作效率非常的低下,这时候大家就在想数据能够在网络上面进行传输就好了,于是乎,网络这一概念就萌发了2.协议2.1原创 2021-04-03 11:11:05 · 1088 阅读 · 0 评论