计算机网络
文章平均质量分 77
计算机网络
知知之之
这个作者很懒,什么都没留下…
展开
-
浏览器输入URL后的过程
TCP 连接建立成功后,浏览器会发送一个 HTTP 请求给服务器,这个请求包含了 URL、请求方法(GET、POST 等)、请求头等信息。获得 IP 地址后,基于三次握手(TCP 三次握手过程),浏览器与服务器建立 TCP 连接,以确保通信的可靠性。服务器接收到 HTTP 请求后,会根据请求路径和参数处理请求,并生成 HTTP 响应。服务器将处理结果封装成 HTTP 响应,返回给浏览器。浏览器首先检查本地缓存中是否有该URL的资源,如果有且未过期,则直接从缓存中加载资源。原创 2024-07-11 11:28:46 · 723 阅读 · 0 评论 -
常见加密算法
在对称加密算法中,加密(编码)和解密(解码)使用的是同一个密钥。也就是说,发送方和接收方必须事先共享同一密钥,并且保守这个密钥不被第三方得知。原创 2024-04-25 10:19:55 · 744 阅读 · 3 评论 -
CDN浅聊
其目的是通过在现有的Internet中增加一层新的CACHE(缓存)层,将网站的内容发布到最接近用户的网络”边缘“的节点,使用户可以就近取得所需的内容,提高用户访问网站的响应速度。简单的说,CDN的工作原理就是将您源站的资源缓存到位于全球各地的CDN节点上,用户请求资源时,就近返回节点上缓存的资源,而不需要每个用户的请求都回您的源站获取,避免网络拥塞、缓解源站压力,保证用户访问资源的速度和体验。为了达到最佳的性能和效率,CDN 需要一些复杂的技术配置,包括缓存规则的设定、CDN 节点的选择等。原创 2024-03-22 15:19:41 · 410 阅读 · 0 评论 -
Oauth 2.0认证机制
Oauth 2.0是目前流行的授权机制,用来授权第三方应用。例如:使用微信、支付宝登录就是比较常见的场景OAuth 的核心就是向第三方应用颁发令牌,OAuth 2.0 规定了四种获得令牌的流程。你可以选择最适合自己的那一种,向第三方应用颁发令牌授权码(authorization-code)授权码(authorization code)方式,指的是第三方应用先申请一个授权码,然后再用该码获取令牌。这种方式是最常用的流程,安全性也最高,它适用于那些有后端的 Web 应用。授权码通过前端传送,原创 2022-04-26 10:59:25 · 951 阅读 · 0 评论 -
TCP/IP
五层网络协议TCP/IP是指能够在多个不同网络间实现传输的协议簇。TCP/IP协议不仅仅指的是TCP和IP两个协议,而是指一个有FTP、SMTP、TCP、UDP、IP等协议构成的协议簇,同时是Internet最基本的协议、Internet国际互联网络的基础,由网络层的IP协议和传输层的TCP协议组成。TCP/IP定义了电子设备如何连入因特网,以及数据如何在它们之间传输的标准。为什么要设计分层在设计的角度来讲变得灵活了,当某一层需要修改时,只需要拿掉相应的层,实现可插拔,无需变动所有层。对于.原创 2021-10-28 15:16:54 · 867 阅读 · 0 评论 -
HTTP和HTTPS的区别
HTTP超文本传输协议,是一个基于请求与相应,无状态的,应用层协议,长基于TCO/IP协议传输数据,互联网上应用最为广泛的一种网络协议,所有的WWW文件都必须遵守这个标准。设计HTTP的初衷是为了提供一种发布和接收HTML页面的方法。HTTP特点无状态:协议对客户端没有状态存储,对事物处理没有记忆能力,比如访问一个网站需要反复进行登录操作。 无连接:HTTP/1.1之前,由于无状态特点,每次请求需要通过TCP三次握手四次挥手,和服务器重新建立连接。比如某个客户端在短时间短时间多次请求同一个资源原创 2021-10-28 15:52:57 · 1713 阅读 · 3 评论 -
TCP包结构
这个字段占用6位,这六个二进制比特位分别是URG(紧急),ACK(确认),PSH(推送),RST(复位),SYN(同步)和FIN(结束)。:这个32位的字段记录了数据段的第一个字节的序号。:这个字段是可选的,常见的选项有最大段长度(MSS),窗口缩放系数(Window scale factor)等。:这个4位的字段指示了头部的长度,由于TCP头部包含可选字段,所以需要这个字段指出头部和数据部分的边界。:当URG位设置时,这个16位的字段才有意义,表示紧急数据在数据流中的结束位置。原创 2022-02-16 16:19:00 · 8290 阅读 · 2 评论 -
TCP粘包拆包
什么是粘包拆包由于TCP传输协议面向流的,没有消息保护边界。一方发送的多个报文可能会被合并成一个大的报文进行传输,这就是粘包;也可能发送的一个报文,可能会被拆分成多个小报文,这就是拆包。粘包、拆包的过程,client分别发送了两个数据包D1和D2给server,server端一次读取到字节数是不确定的,因此可能可能存在以下几种情况:关于这几种情况说明如下:server端分两次读取到了两个独立的数据包,分别是D1和D2,没有粘包和拆包 server一次接受到了两个数据包,D1和D2粘合在原创 2022-03-03 15:44:51 · 1963 阅读 · 0 评论 -
TCP三次握手,四次挥手
第一次握手:客户端将标志位SYN置为1,随机发送一个值seq=J,并将该数据包发送个服务端,客户端进入SYN_SENT状态,等待服务端确认 第二次握手:服务端收到收据包后由标志位SYN=1知道客户端请求建立连接,服务端将标志位SYN和ACK都置为1,ack=J+1,随机产生一个值seq=K,并将该数据包发送个客户端以确认连接请求,服务端进入SYN_RCVD状态 第三次握手:客户端收到确认后,检查ack是否为J+1,ACK是否为1,如果正确则将标志位ACK置为1,ack=K+1,并将该数.原创 2021-10-28 15:45:44 · 2687 阅读 · 0 评论 -
TCP连接管理相关的攻击
SYN泛洪SYN泛洪是一种TCP拒绝服务攻击,在这种攻击中一个或多个恶意的客户端产生一系 列TCP连接尝试(SYN报文段),并将它们发送给一台服务器,它们通常采用“伪造”的 (例如,随机选择)源IP地址。服务器会为每一条连接分配一定数量的连接资源。由于连接 尚未完全建立,服务器为了维护大量的半打开连接会在耗尽自身内存后拒绝为后续的合法连 接请求服务。解决方法SYN Cookie是对TCP服务器端的三次握手做一些修改,专门用来防范SYN Flood攻击的一种手段。它的原理是,在TCP服务器接收到T原创 2022-03-04 10:22:13 · 2318 阅读 · 0 评论 -
什么是DDoS攻击
分布式拒绝服务(DDoS)攻击是通过大规模互联网流量淹没目标服务器或其周边基础设施,以破坏目标服务器、服务或网络正常流量的恶意行为。DDoS 攻击利用多台受损计算机系统作为攻击流量来源以达到攻击效果。利用的机器可以包括计算机,也可以包括其他联网资源。通俗的来讲就是远程劫持多台计算机向目标计算机发起流量饱和攻击,导致目标计算机无法无法服务的目的。DDoS攻击原理这些网络由计算机和其他设备(例如 IoT 设备)组成,它们感染了恶意软件,从而被攻击者远程控制。这些个体设备称为机器人(或僵尸),一组原创 2021-10-30 14:50:16 · 2182 阅读 · 0 评论 -
TCP和UDP协议
特性无连接的 相比于TCP协议,UDP协议在传送数据前不需要建立连接。 是尽最大努力交付的 也就是说UDP协议无法保证数据能够准确的交付到目的主机。也不需要对接收到的UDP报文进行确认。 是面向报文的 也就是说UDP协议将应用层传输下来的数据封装在一个UDP包中,不进行拆分或合并。因此,运输层在收到对方的UDP包后,会去掉首部后,将数据原封不动的交给应用进程。 没有拥塞控制 因此UDP协议的发送速率不受网络的拥塞度影响。 UDP支持一对一、一对多、多对一和多对多的交互通信 UDP的头部原创 2022-02-18 10:40:28 · 2134 阅读 · 0 评论 -
TCP超时与重传
TCP是可靠的传输方式,当发送端数据到达接收端时,接收端回复一个确认消息,表示已经接收到了数据。但是在错综复杂的网络环境中, 并不是一定能正常数据传输,万一在传输过程中数据丢失了怎么办?所以针对数据包丢失的情况,TCP实现了重传机制。超时重传重传机制的其中一个方式,就是在发送数据时,设定一个定时器,当超过指定的时间后,没有收到对方的 ACK 确认应答报文,就会重发该数据,也就是我们常说的超时重传。TCP 会在以下两种情况发生超时重传:数据包丢失 确认应答丢失超时时间设置原创 2022-03-01 10:37:44 · 4929 阅读 · 0 评论 -
TCP的拥塞控制
拥塞控制与流量控制流量控制:为了避免分组丢失,控制发送者的发送速度,使得接收者来得及接收。拥塞控制:拥塞控制是作用于网络的,它是防止过多的数据注入到网络中,避免出现网络负载过大的情况。几种拥塞控制方法慢开始( slow-start )、拥塞避免( congestion avoidance )、快重传( fast retransmit )和快恢复( fast recovery )。慢开始和拥塞避免发送方维持一个拥塞窗口 cwnd ( congestion window )的状态变量。拥原创 2022-02-18 10:16:33 · 1381 阅读 · 0 评论 -
TCP滑动窗口
滑动窗口的作用TCP 是每发送一个数据,都要进行一次确认应答。当上一个数据包收到了应答了, 再发送下一个。这个模式就有点像我和你面对面聊天,你一句我一句。但这种方式的缺点是效率比较低的。如果你说完一句话,我在处理其他事情,没有及时回复你,那你不是要干等着我做完其他事情后,我回复你,你才能说下一句话,很显然这不现实。按数据包进行确认应答所以,这样的传输方式有一个缺点:数据包的往返时间越长,通信的效率就越低。为解决这个问题,TCP 引入了窗口这个概念。即使在往返时间较长的情况下,它也原创 2022-03-01 11:03:52 · 461 阅读 · 0 评论 -
TCP流量控制
为什么要流量控制双方在通信的时候,发送方的速率与接收方的速率是不一定相等,如果发送方的发送速率太快,会导致接收方处理不过来,这时候接收方只能把处理不过来的数据存在缓存区里(失序的数据包也会被存放在缓存区里)。如果缓存区满了发送方还在疯狂着发送数据,接收方只能把收到的数据包丢掉,大量的丢包会极大着浪费网络资源,因此,我们需要控制发送方的发送速率,让接收方与发送方处于一种动态平衡才好。对发送方发送速率的控制,我们称之为流量控制。利用滑动窗口实现流量控制利用滑动窗口机制可以很方便地在TCP连接原创 2022-02-16 17:28:50 · 436 阅读 · 0 评论 -
TCP保活机制
KeepAlive初衷客户端和服务器需要了解什么时候终止进程或者与对方断开连接。 应用进程之间没有任何数据交换,但仍然需要通过连接保持一个最小的数据流。keepAlive是由一个保活计时器实现的。当计时器被激发,连接一端 将发送一个保活探测(简称保活)报文,另一端接收报文的同时会发送一个ACk作为响应。TCP协议中实现KeepAlive但是保活机制存在争议。许多人认为,如果需要,这一功能也不应在TCP协议中提供, 而应在应用程序中实现。另一种观点认为,如果许多应用程序中都需要这一功能,那么在 T原创 2022-02-28 11:36:41 · 3839 阅读 · 0 评论 -
记一次HTTP Keep-Alive问题
问题现场Java程序通过fegin调用第三方接口时出现feign.RetryableException: failed to respond executing POST http://xxx/xxx,从报错信息可以看出是没有收到接口响应,因为项目中的fegin是使用了连接池,而第三方web服务器没有开启HTTP Keep-Alive,在调用的时候由于服务端连接断开,而fegin是连接池出现连接复用,因此收不到接口响应。什么是Keep-Alive模式HTTP协议采用“请求-应答”模式,当使用普通原创 2021-12-28 15:44:53 · 1002 阅读 · 0 评论