计算机网络
文章平均质量分 61
一只老风铃
欣于所遇,暂得于己,快然自足。
展开
-
ARP攻击与SYN攻击
SYN攻击拒绝服务攻击DOS以及分布式拒绝服务攻击DDOS是利用短时间内占用服务器大量得内存、网络、存储等资源,使得正常访问者无法访问。而SYN攻击是利用TCP三次握手的漏洞,攻击者发起大量的SYN握手包然后不再回应,使得服务器存在大量处于SYN_Recv状态的半连接,消耗服务器资源。SYN泛滥的实现细节攻击者伪造建立链接的TCP握手报文,需要在外层填充自己的IP地址:需要随机填充那些无法访问的IP源地址如果采取自身的IP地址进行填充,那么会暴露,另外,填充的IP地址如果是其它真原创 2021-08-22 11:46:04 · 410 阅读 · 0 评论 -
HTTP版本迭代
HTTP:超文本传输协议,基于TCP实现的应用层协议HTTP版本的演化过程:【HTTP0.9】仅仅能支持get方法,并且只能请求和响应HTML格式的资源【HTTP1.0】开始包含头信息:并且增加POST和HEAD请求方法:HEAD:和Get方法类似,只不过服务器HTTP响应体中没有内容,通常用于检测链接的有效性同时增加了响应体的内容格式:text/html text/json image/png image/jpeg ....一个典...原创 2020-10-26 02:02:33 · 400 阅读 · 1 评论 -
CSAPP①:TingWeb
主函数:不断的监听8080端口,一旦accept到连接请求,变建立connect fd用于通信:int main(){ int listenfd,connfd; listenfd=create_server(IP,8080); while(1) { struct sockaddr_in addr; int len= sizeof(addr); connfd=accept(listenfd, (原创 2020-10-23 00:06:51 · 229 阅读 · 0 评论 -
CGI协议
HTTP服务器是一个用于处理HTTP请求的进程,其通过解析HTTP请求,执行相应的动作,重新封装HTTP响应包,返还给客户端。早期的HTTP服务器只能响应静态的内容,例如请求一个静态网页,请求一张图片。然而随着信息技术的发展,动态网站内容的要求被提出,客户端希望与服务器进行一定的交互,希望服务器返回相应的动态内容。实现这类需求的关键技术便是CGI:common Gateway Interface 通用网关接口CGI是WEB服务器与一个应用进程之间进行通信的协议标准:,其主要的实现方式原创 2020-10-16 00:28:18 · 1895 阅读 · 0 评论 -
Linux IO同步复用②
IO复用通过时分复用的形式,多个socket连接使用同一个IO线程,IO线程通过系统调用的方式获知被监视的文件标识符列表中就绪的文件,执行IO操作。这里的同步指代在执行IO操作时,会等待动作完成再继续执行,复用是采取一个线程完成对多个IO流的处理。Linux中poll方式是对select的改进,select存在一个文件描述符监视数量上限,即1024 而改进的poll去除了该上限。poll方式维护一个监听数组,数组中的元素是一个结构体,结构体形式如下:struct pollfd{ in.原创 2020-10-06 13:48:26 · 173 阅读 · 0 评论 -
Linux IO同步复用①
关于同步与异步:同步:调用者在执行一个调用时,一直等待调用完成返回后才进行后续操作。异步:调用者执行一个调用时,立即返回,继续进行后续操作而不关心调用是否完成。异步与同步是对通信机制的描述,而阻塞、非阻塞关心的是调用者的状态:阻塞:当执行一个调用时,调用者线程一直被挂起(CPU时间片切换给其它线程),直到调用完成返回。非阻塞:当执行一个调用时,调用者线程仍然活跃。值得注意的是同步调用过程,在等待过程线程可能并没有挂起,而只是一直等待(占用着资源)。IO多路复用:是一种..原创 2020-10-06 01:48:09 · 328 阅读 · 0 评论 -
SSL安全套接字协议
关于加密,主要有两大类算法:对称加密: 常见的DES算法,其包含一个密钥,加密和解密过程使用的是同一个密钥。非对称加密:常见的RSA算法,存在一组public key 和 private key 即一组公钥和私钥采取公钥加密的数据通过私钥解密 采取私钥加密的数据通过公钥解密。Hash算法:常见的MD5 SHA 用于生成一段序列的摘要,密码数据库基本都是Hash存储。Hash是这样一类函数,能够将原始序列经过一些列Hash散列运算生成一个消息摘要,其主要特点是不可逆:给定...原创 2020-10-05 21:38:03 · 1959 阅读 · 1 评论 -
arp协议与icmp协议在ping中的应用
ping命令可以用于查询目标网络或主机是否可达,其内部实现依赖于arp协议与icmp协议。对于arp协议,其工作在网络层,实现IP地址到Mac地址的映射。协议报文的格式如下:那么PING命令具体如何执行:以同一局域网内host1 => host2 为例:首先host1查询自己是否有host2的ip-mac地址映射缓存,若有,结束若没有,那么对外广播ARP请求,请求包填充自身的IP地址、MAC地址、以及目标的IP地址,MAC地址填充00:00:00:...原创 2020-09-25 20:55:14 · 3138 阅读 · 0 评论 -
ssl加密http协议
http协议是一种无记忆的协议,其基本形式是请求,响应,外层借助tcp协议实现数据传输。http协议包含请求报文和响应报文。请求报文:GET /search?hl=zh-CN&source=hp&q=domety&aq=f&oq= HTTP/1.1 Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/vnd.ms-原创 2020-09-23 20:02:28 · 959 阅读 · 0 评论 -
关于“粘包”:字节流与数据报的区别
问题引入?如何处理和解决“TCP粘包”问题?即客户端调用两次不同的send试图发送两份不同的数据,但接收端调用recv时一次全部取出。无法分割出原先的两部分数据。关于传输层的两个协议其定义如下:UDP:用户数据报协议TCP:面向连接的可靠字节流传输协议TCP粘包是一个伪问题,需要明确的是:TCP基于字节流的可靠传输,每一个TCP分组包含一定的字节流,该分组需要由首个字节流指定接收端在接收到TCP分组后,根据字节流Seq序号,将其合并在缓存区。即TCP只负责将交由.原创 2020-09-18 09:48:03 · 1561 阅读 · 0 评论 -
HTTP 请求方式与返回码
HTTP请求一共包含八种方法(动作)HTTP1.0定义了三种:Get Post HeadHTTP1.1定义了五种:put delete connect options traceget 请求服务器资源,请求参数将会显示在请求串中 post 向指定资源提交数据与表单,请求的数据被放置在请求体中,相对于get可以发送更多的数据 head 类似于get请求,只不过返回的没有实体,只有头部 put 向服务器发送指定的数据取代指定文档的内容 delete 删除原创 2020-09-14 23:14:23 · 619 阅读 · 0 评论 -
三次握手与四次挥手
网络协议栈,上层的实现基于下层提供的服务,体现在协议栈数据封装上,不断的用更底层的头部封装数据。最内部为顶层的应用程序数据,然后是TCP头部,IP头部,最后是以太网头部TCP协议提供面向连接的可靠的基于字节流的传输服务其头部基本格式如下:其中16位源、目的端口指明通信的双方端口32位序列号seq为所发送报文段的字节流的第一个字节序号32位确认号ack为接收方在收到发送方的字节流后,若其发送序号x 返回ack=x+1标记位:标记位每一个标记占用一个bit 也就...原创 2020-09-11 10:14:27 · 453 阅读 · 0 评论 -
计算机网络 ip地址分类与子网掩码
题目描述请解析IP地址和对应的掩码,进行分类识别。要求按照A/B/C/D/E类地址归类,不合法的地址和掩码单独归类。所有的IP地址划分为A,B,C,D,E五类A类地址1.0.0.0~126.255.255.255;B类地址128.0.0.0~191.255.255.255;C类地址192.0.0.0~223.255.255.255;D类地址224.0.0.0~239.255.255.255;E类地址240.0.0.0~255.255.255.255私网IP范围是:..原创 2020-09-08 10:48:03 · 1226 阅读 · 0 评论 -
TCP 流量控制与拥塞控制
TCP流量控制:为了避免发送端短时间内将大量数据发送给接收端,而接收端缓存和处理能力无法满足情况,采取滑动窗口的方式。动态的调整发送端的发送速率,TCP窗口单位是字节,即发送窗口大小的字节数小于接受端口大小的字节数TCP拥塞控制:与流量控制不同,流量控制只是控制发送端的发送速率,考虑的是两端之间的简单情况拥塞控制研究对象是整个网络,包括网络中的各个路由器和线路,考虑的是全局性的角度。由于各部分路由器、线路的能力资源有限。因此通过拥塞控制避免短时间内由于大量流量的注入引起的网络拥塞。.原创 2020-08-19 15:28:41 · 210 阅读 · 0 评论 -
多线程 避免多线程竞争
不可修改变量互斥锁CASget 从服务器端获取资源 put 提交资源 post 更新资源 delete 删除资源 connect 建立tunnel隧道返回状态码100 请求已收到,正等待后续资源 200 ok 成功 206 partial content 部分资源 301 永久重定向 400 bad request 客户端请求语法错误https是http加上ssl的应用层协议。在http的基础上增加了安全性和可靠性。端口的不同:http默认是80端口...原创 2020-07-27 21:37:58 · 441 阅读 · 0 评论 -
计算机网络 时延
发送时延:主机或路由器发送数据帧所需要的时间;传播时延:电磁波在信道中传播一定距离需要花费的时间;处理时延:主机或路由器在收到分组时要花费一定的时间处理;排队时延:分组在进入路由器后再输入队列中的等待处理的时间; 进一步 传播时延=信道长度/电磁波在信道上的传播速率链路中,比特都是按照相同的速度(光速)物理传播的,故在信道长度不变的情况下,提高链路速率并不能减小传...原创 2019-02-18 13:44:41 · 970 阅读 · 0 评论 -
计算机网络 常见命令
——netstat命令的功能是显示网络连接、路由表和网络接口信息,可以让用户得知目前都有哪些网络连接正在运作。 ——nslookup命令的功能是查询一台机器的IP地址和其对应的域名。它通常需要一台域名服务器来提供域名服务。如果用户已经设置好域名服务器,就可以用这个命令查看不同主机的IP地址对应的域名。 ——ping命令用于查看网络上的主机是否在工作,它向该主机发送ICMP EC...原创 2019-02-19 21:25:03 · 511 阅读 · 0 评论 -
计算机网络 OSI七层模型
物理层:通过媒介传输比特,确定机械及电气规范(比特Bit) 链路层:将比特组装成帧和点到点的传递(帧Frame) 网络层:负责数据包从源到宿的传递和网际互连(包PackeT) 传输层:提供端到端的可靠报文传递和错误恢复(段Segment) 会话层:建立、管理和终止会话(会话协议数据单元SPDU) 表示层:对数据进行翻译、加密和压缩(表...原创 2019-02-19 21:24:48 · 354 阅读 · 0 评论 -
TCP 三次握手
TCP建立连接过程Syn=1表示建立连接的同步信号 Seq=x表示当前发送的序列号 ack=x+1表示收到序列号x 期望下一个收到包为x+1第一次握手客户端向服务端发送连接请求报文段。该报文段的头部中SYN=1,ACK=0,seq=x。请求发送后,客户端便进入SYN-SENT状态。SYN=1,ACK=0表示该报文段为连接请求报文。 x为本次TCP通信的字节流的初...原创 2019-03-17 09:56:13 · 281 阅读 · 0 评论 -
加密 公钥与私钥
——非对称加密:加密采用一个密钥,解密采用另一个密钥特点:公钥和私钥是成对的,可互相解密。当想给某人寄送信件时,只需要向指定安全邮箱寄送(公钥加密) ,但只有收信方能用钥匙打开(密钥解密)接收方向外公开一个加密公钥,任何想给接收方发送数据的发送方都可以获得这个公开密钥 发送方采用公开密钥加密并发送,确保数据在复杂不安全传输中的安全性,因为只有密钥能解密——私钥签名公...原创 2019-03-21 10:53:05 · 1606 阅读 · 1 评论 -
计算机网络 曼彻斯特编码
曼彻斯特码,又称数字双向码、分相码或相位编码(PE),是 一种常用的的二元码线路编码方式之一,被物理层使用来编码一个同步位流的时钟和数据。在通信技术中,用来表示所要发送比特 流中的数据与定时信号所结合起来的代码。 在曼彻斯特编码中,每一位的中间有一跳变,位中间的跳变既作时钟信号,又作数据信号;从高到低跳变表示“1”,从低到高跳变表示“0”。还有一种是差分曼彻斯特编码,...原创 2019-06-17 10:37:09 · 3652 阅读 · 0 评论 -
计算机网络 CSMA
坚持型CSMA(1—persistent CSMA):其原理是若站点有数据发送,先监听信道,若站点发现信道空闲,则发送;若信道忙,则继续监听直至发现信道空闲,然后完成发送;若产生冲突,等待一随机时间,然后重新开始发送过程。其优点是减少了信道空闲时间;缺点是增加了发生冲突的概率;广播延迟对协议性能的影响:广播延迟越大,发生冲突的可能性越大,协议性能越差。 非坚持型CSM...原创 2019-07-25 09:34:45 · 1866 阅读 · 0 评论 -
计算机网络 子网掩码
网络地址172.16.22.38/28 请写出此地址的子网ID以及广播地址,此地址所处子网可用主机数?此IP地址 28 表示 子网掩码的前28位作为网络号,是1, 即 1111 1111.1111 1111. 1111 1111. 1111 0000所以可以计算该IP的网络号为:38---> 0010 0110& 1111 0000-----...原创 2019-08-27 10:38:34 · 4445 阅读 · 0 评论 -
前端 forward和redirect区别
forward(转发):是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器.浏览器根本不知道服务器发送的内容从哪里来的,因为这个跳转过程实在服务器实现的,并不是在客户端实现的所以客户端并不知道这个跳转动作,所以它的地址栏还是原来的地址.redirect(重定向):是服务端根据逻辑,返回一个状态码(如302),告诉浏览器重...原创 2019-02-27 15:12:27 · 838 阅读 · 0 评论