
计算机网络
文章平均质量分 57
Aristocrat l
由于个人学习太过枯燥,同时缺乏方向感,所以今天开始写博客 记录自己的学习生活
展开
-
计算机网络——滑动窗口
背景当网络通信中每个数据包都需要确认应答,那么包的往返时间越长,网络的吞吐量就会越低,所以TCP引入了窗口这个概念。窗口大小窗口大小就是无需确认等待应答的最大连续发送的数据量。窗口大小由TCP头部的Window字段决定。窗口传输丢包假设此时发送三个数据包,分别为1,1461和2921三个,那么这三个数据包不需要等待ack包确认就可以发送下一个数据包,这样即使中间有一个ack丢失了,只要后续的ack能传输到,也能证明丢失的回应对应的数据包已经...原创 2022-03-27 10:51:50 · 4961 阅读 · 0 评论 -
计算机网络——重传机制
超时重传:超时重传顾名思义就是当发送数据一定时间后没有收到回应,那么就会触发超时重传,那么超时重传的时间限制是多少呢。在计网基础学习中我们接触了时延RTT,RTT表示一次发送一次回应的总时间,RTT的时长是不确定的。而RTO是超时重传的时间,RTO的时间会略大于RTT的时间。有人会问RTT时间不是不确定的吗,怎么每次都确定RTO比RTT大一点呢?这个问题应该问学概率统计的哈哈哈。但是所有丢失的信息都进行超时重传效率会很低,因为要等待一段时间。快速重传:...原创 2022-03-24 10:40:01 · 4526 阅读 · 0 评论 -
计算机网络——TCP四次挥手
TCP的四次挥手(假设由客户端发起)首先客户端原先处于ESTABLISHED状态,然后客户端发送完信息后发送FIN给服务器,此后自己进入FIN_WAIT1状态。服务器原先处于ESTABLISHED状态,然后服务器接收到FIN之后回复ACK,接着进入CLOSE_WAIT状态。客户端接收到ACK后进入FIN_WAIT2状态。服务器处理完接收的数据之后发送FIN表示不再接收数据,请求关闭。接着进入LAST_ACK状态。客户端接收到FI...原创 2022-03-24 10:16:44 · 3677 阅读 · 0 评论 -
计算机网络——TCP三次握手,以及与UDP的区别
TCP协议头部信息:TCP三次握手:首先客户端给服务器发送连接请求,将标志位SYN设置为1,然后随机生成自身序列号,然后将SYN和自身序列号Seq发送给服务器,自己进入SYN_SENT状态。服务器接收到信息后,将序列号Seq+1设置为自己的确认应答号Ack,让后将自己的标志位ACK设置为1表示确认收到,SYN设置为1表示请求连接,并随机生成一个随机数作为自身序列号Seq,然后回复ACK,SYN,Seq number以及Ack number,随后自己进入SYN_...原创 2022-03-24 09:50:30 · 1932 阅读 · 0 评论 -
草稿——记录一下计网学习问题以及redis学习日志
计算机网络最近看到了TCP的三次握手四次挥手详解,为什么需要三次握手?二次,四次为什么不行?为什么需要四次挥手?三次握手的各个状态是什么?四次挥手的各个状态是什么?close_wait有什么意义?time_wait有什么意义?以及四种重传机制:超时重传,快速重传,sack模式,d-sack模式。滑动窗口解决发送包效率问题。发送包如何改善。滑动窗口如何进行流量控制?滑动窗口如何进行拥塞控制?拥塞控制四个算法:慢启动,拥塞避免,拥塞发生,快恢复如何实现的?与流量控制有关的,如果收发包时操作系统减...原创 2022-03-23 16:43:45 · 637 阅读 · 0 评论 -
计算机网络——详解HTTP2.0
HTTP2.0在前文已经提及过了,但是他调优的详细情况还没总结。回顾一下HTTP1.1的缺点:1.头部冗余,有重复字段或字符串2.头部过大,传输压力大3.队头堵塞,非管道传输请求堵塞,管道传输响应堵塞4.必须由客户端发起连接,服务器给予相应5.无请求优先级处理HTTP如何处理请求头冗余:HPACK算法1.静态表...原创 2022-03-20 10:44:41 · 2278 阅读 · 0 评论 -
HTTP1.0--HTTP1.1--HTTP2.0分别做了哪些优化
HTTP1.0--HTTP1.1的优化:1.使用长对话模式:之前每次请求响应都需要建立TCP/IP连接,资源消耗较大,使用长对话可以一次连接多次请求响应2.管道传输:之前http1.0发送一个请求后必须等待结果才能发送第二个请求,而http1.0在发送完请求后可以接着发送第二次请求,最后只要把响应的结果按顺序对应即可。HTTP1.1存在的问题:1.只能压缩body部分:请求信息头部无法压缩,头部较长时资源消耗较大。2.队头堵...原创 2022-03-19 13:57:10 · 1799 阅读 · 0 评论 -
计算机网络——ECDHE优化交换密钥
由于DH交换密钥算法计算过程较为复杂,所以现在大多数应用程序使用的都是ECDHE密钥交换方法,大致的流程和DH一样,只是核心计算法由离散对数改变为了椭圆。需求:通信双方确认选择一个椭圆,椭圆的曲率是相同的,有了相同曲率的椭圆就可以确认相同的基点G。这两个数据是公开的不需要加密,双方各自生成私钥a和b,计算公钥A=Ga,B=Gb,最后一方计算点(x1,y1) = aB,另外一方计算点(x2,y2) = bA。由于椭圆曲线上是可以满⾜乘法交换和结合律,所以 aB = abG ...原创 2022-03-19 13:15:57 · 1071 阅读 · 0 评论 -
计算机网络——DH密钥交换
之前的文章说的都是RSA加密形式加密密钥,但是这类加密方式都有一个共性问题,你就是前向性原创 2022-03-19 12:57:16 · 3440 阅读 · 0 评论 -
计算机网络——公钥数字认证
当客户端和服务器进行非对称的密钥通信时,服务器需要将一把公钥安全无误的交给客户端,这就涉及了公钥会不会被伪冒的问题。为了解决这一问题,可以使用权威认证机构CA去认证公钥的官方性。首先服务器接收到SSL/TLS连接请求后,生成一把公钥和一把私钥,然后向权威机构CA申请公钥认证证书。CA拿到公钥后给服务器端生成文件证书(包含序号Serial Number,发行人Issuer,合法性Validity等),然后将文件证书经过Hash算法计算成为一个哈希值,接着...原创 2022-03-18 14:04:27 · 1357 阅读 · 0 评论 -
计算机网络读笔记DAY6
SSL/TLS握手阶段四次通信过程SSL/TLS会话首先由客户端发起,客户端发送ClientHello给服务器端表示请求建立SSL/TLS连接,这一步生成了第一个随机数,向服务器端传输了第一个随机数,自己的支持的TLS版本和自己支持的密码算法列表。然后服务器端首先回复ACK表示接收到了,然后接收到ClientHello后,同样生成了一个随机数,并且返回给客户端自己支持的TLS版本,密码算法列表以及第二个随机数。接下来服务器向CA申请公钥认证,CA使...原创 2022-03-18 09:25:21 · 87 阅读 · 0 评论 -
计算机网络读书笔记DAY5(2)
公开密钥和共享密钥的联合使用在上一篇知道,公开密钥主要是接收方一发拥有私钥,共享了公钥,但是如果只用公开密钥进行通信那么真实的速度是很慢的,(因为公钥同样可能被伪造,所以公钥也需要认证,如果每次都认证,那么就会减慢总体流程)。虽然共享密钥可以解决传播慢的问题,但是共享密钥有一个致命的缺点,那就是难以把共享的密钥在可能被拦截修改的情况下传送给对方。于是就有了两种方式结合的办法。首先使用公开密钥的方式,服务器生成两把密钥,分别是公钥和私钥,公钥如果直接发送很容易被截取篡改...原创 2022-03-17 18:27:16 · 614 阅读 · 0 评论 -
计算机网络读书笔记DAY5
HTTP的信息安全问题安全问题主要有一下几个地方:1.无法确定接收请求的就是服务器,可能是被伪装的。2.无法确定接收响应的就是客户端,可能是被伪装的。3.无法确定通信对方是否具有访问权限。4.无法确定请求来自何方,出自谁手,中途可能被篡改。5.即使是无意义的请求也会照单全收,可能会被黑客发送海量请求,照成DOS攻击。HTTPS如何使信息传递变得安全1.检验身份这里使用了SSL,SSL提供了加密处理,还使用了证书这个方法。证书由值得信赖的第三方颁发,用于证明服务器和客户原创 2022-03-17 17:52:11 · 566 阅读 · 0 评论 -
计算机网络读书笔记DAY4(3)
IP与以太网的包收发操作本节内容和前面的相比稍微有些抽象,我是用城市公交站来理解的网络包经过IP模块的发送操作。网络包:网络包是由两部分组成,头部和数据部分。头部包含目的地址等信息,数据部分就是协议中的一些数据等。IP包:IP包包含了两个部分,一个是Ip头部,还有一个是数据部分(数据部分包括TCP头部和数据块,也就是前几篇文章所讲的部分)以太网包:以太网包包含了三个部分,MAC头部,IP头部,和数据部分。派送一个网络包就像是一个正在旅途的人要经过很多站点,从村子站点到镇子原创 2022-03-15 15:01:12 · 915 阅读 · 0 评论 -
计算机网络读书笔记 DAY4(2)
断开连接操作:断开连接操作一般由数据发送的一方发起断开的过程,可能是服务器,也可能是客户端。这里以服务器为例,服务器会首先调用Socket库中的close程序,然后服务器的协议栈就会生成有关断开连接的TCP头部,具体是将TCP头部中控制位的FIN比特值设置为1。接下来就是将这段信息发送给客户端,客户端接收到后返回ACK值表示接收到了。这些操作完成后协议栈就可以等待应用程序来读取加载的数据了。当数据都接收完毕,协议栈会告知应用程序信息收发完毕了,该断开连接了,应用程序得知后会调用Socket库中的clos原创 2022-03-15 14:16:45 · 1981 阅读 · 0 评论 -
计算机网络读书笔记 DAY4
上次说到了客户端与服务器的连接操作,今天解决收发操作,如何使用滑动窗口解决等待时间问题,TCP模块交给IP模块后IP模块发送数据前做了什么。发送缓冲区:当浏览器调用完connect方法后,接下来就是调用write方法将发送的数据交给协议栈,协议栈接收到信息后并不是立马发送出去,而是将数据存放在内部的发送缓冲区中,并等待应用程序的下一段数据。不同的应用程序读取字节的方法有时是不同的。有的是一个一个字节传的,有的是一组一组传的。如果是一个字节一个字节传送的话,那每传一个字节就要发送一次数据,那得发送多少原创 2022-03-15 13:57:48 · 1388 阅读 · 0 评论 -
计算机网络读书笔记 DAY3
操作系统协议栈:协议栈上半部有两块,分别是负责用TCP协议收发数据的部分和负责用UDP协议收发数据的部分。下半部分用IP协议控制网络包收发操作部分。在网络层传送数据时,数据会被切割成包,而将其发送到通信对象的操作就是IP负责的。TCP一般用于什么情况:浏览器、邮件等一般应用程序收发数据UDP一般用于什么情况:查询等收发较短的控制数据时IP包含两块:ICMP协议:用于告知网络包传送过程中产生的错误以及各种控制信息。ARP协议:用于根据IP地址查询相关以太网MAC网址。套接字原创 2022-03-14 10:23:22 · 456 阅读 · 0 评论 -
计算机网络读书笔记 DAY2(1)
第一章最后一节:1.4委托协议栈发送消息当我们从DNS服务器拿到完整的ip地址了之后,所有发送数据都已经准备完毕:ip地址,浏览器更具http协议解析后的信息,web服务器的端口号,剩下就是发送信息和接受信息了,但是与服务器连接的操作是浏览器无法做到的,需要委托操作系统中的协议栈去解决。而委托给协议栈的过程就是本节主要内容概念:端口号:每台计算机都有着自己的ip地址,当两个服务器和客户端需要发送通信时只有ip地址时不行的,他只是帮助我们找到对方的计算机在哪,而...原创 2022-03-11 10:26:27 · 2219 阅读 · 0 评论 -
计算机网络读书笔记 DAY1
今日阅读:1.1生成HTTP请求消息,1.2向DNS服务器查询Web服务器的IP地址,1.3全世界DNS服务器大接力HTTP协议一般的URL: http: + // + web服务器名 + / +目录名 + / + .... + 文件名 开头的http也就是协议名,访问不同的服务器会用到不同的协议常用的请求方法: GET POST PUT DELETE 等请求的结构:...原创 2022-03-10 14:30:50 · 112 阅读 · 0 评论