计算机网络

本文详细介绍了计算机网络的基础知识,包括TCP/IP协议、HTTP协议的工作原理、三次握手和四次挥手过程、TCP和UDP的区别以及拥塞控制策略。此外,还涵盖了打开URL的完整流程,HTTP状态码,以及HTTPS的安全特性。这些内容对于理解网络通信和准备网络相关面试非常有帮助。
摘要由CSDN通过智能技术生成

面经刷过的问题

1.打开一个url经过那些流程,说一下对应的协议

2.HTTP的无状态是什么意思

3.TCP和UDP的区别是什么,是什么导致了效率区别

4.拥塞避免具体的四个过程,以及实现

5.TCP和HTTP分别在哪一层

6.TCP如何保证可靠传输

7.TCP拥塞协议中的慢重传算法

8.HTTP介绍一下

9.HTTP的keepalive作用

10.HTTP2.0了解吗(作者没答上来没往下问)

复习知识点

网络一共4(7)层:

应用层(应用层,表示层,会话层)HTTP,DNS,Telnet

传输层 提供端对端的接口 TCP,UDP

网络层 为数据包选择路由 IP,BGP

链路层(数据链路层,物理层)传输有地址的帧以及错误检测功能,以二进制数据形式传输数据 IEEE,ISO

TCP三次握手:SYN--SYN+ACK--ACK 为什么三次不是两次是因为防止服务器端收到失效的SYN连接请求报文

TCP四次挥手:FIN--ACK--FIN--ACK 为什么四次,是因为基于TCP的双方是双全工的。在一方结束发送之后,另外一方可以继续发送报文。如果是三次挥手,就做不到一方结束之后另外一方可以继续发送了。

TCP是面向流协议 好处--按序接受,丢失重发 坏处--报文之间没有边界,需要交给上层(应用层)协议来界定边界(常用方法就是定长报文),仅支持单播传输,不支持多播和广播

TCP依靠段编号和确认号来保证报文传输的可靠。每个包的序列号保证了接收方的按序接受,每一次接受会返还一个ack包给发送端。发送端在合理的RTT内如果没收到ACK就会重新发送

UDP是面向报文的 好处--不会对数据报文进行拆分拼接(丢给应用层更多的工作),header开销小,实时性高,支持多播与广播 坏处--不会备份数据,没有拥塞控制,无视网络状况好坏以恒定速率发包会导致丢包

TCP的拥塞控制四个过程:

cwnd=1,ssthreshold=k

慢开始+拥塞避免:慢开始从1开始指数增大cwnd直至其大于ssthreshold,之后转为拥塞避免,既线性地(+1)增长cwnd。当出现报文丢失时(既发生重传时),认定网络出现拥塞。将ssthreshold//2,并初始化cwnd重新开始算法

快重传+快恢复:对上面过程的两种改进。首先快重传允许发送方在连续三次收到重复确认报文时忽视超时判定的预设立即进行对应报文的重发并执行快重传和快恢复算法(这种情况需要接收方每次收到报文时立即发送ack而不是等到发送报文时捎带ack,并且在收到了失序的报文时发送重复确认报文)。立即执行重发并将cwnd//2以及ssthreshold//2并继续进行拥塞避免算法。这样做的好处是避免个别丢失的报文段被误认为是网络拥塞造成。

打开一个URL的全过程:

第一步 域名——IP

搜索本地dns缓存(浏览器,hosts文件和操作系统缓存)

向域名解析服务器发送解析请求

一台解析服务器常常被大量用户使用,大多数常用域名都可以在这命中

如果还没命中,解析服务器向根域服务器(如com,jp)发出请求开始递归或者迭代解析 (树状搜索)

递归查询:本机向本地域名服务器发出一次查询请求,等待结果

迭代查询:每一次查询返回下一步的dns服务器ip,每次都是以客户机的身份去各个服务器查询

至此域名对应的ip已被浏览器获取

第二步 建立tcp连接以及发送HTTP请求

tcp三次握手,http获取资源,发送cookie等

第三步 接受响应结果

状态行(http1.1 200 OK)并获得报文主体

第四步 浏览器解析html以及布局渲染

浏览器按照顺序解析html并构建DOM树,在解析到外部的css和js文件时,向服务器发起请求下载资源。下载css可同时解析,js会有执行,不能同时继续解析html。浏览器解析css文件时会构建CSSOM树,依靠两个树来构造出渲染树。通常为了更好的用户体验,渲染会与解析同时进行,将已经解析好的树渲染出来。

HTTP复习

http,超文本传输协议。基于tcp/ip的应用层协议,使用的是可靠的数据传输协议,保证传输有序无损。

http是一种无状态协议,即不会保存请求和响应之间的通信状态。好处是可以加快处理速度,确保协议的可伸缩性。

最开始http没进行一次通信就要断开一次tcp连接。但现在每个网页都包含大量的多媒体资源,每次连接与断开tcp都会增加时间开销,所以http1.1引入了持久连接keepalive。在请求首部字段中提出keepalive之后,只要任意一段没有明确提出断开连接,tcp就一直会保持连接状态。

Cookie的引入更好地提高了http的性能。为了解决无状态性带来的冗余操作,服务器端在响应http请求时会发送setcookie,之后在后续的http请求中在服务器端创建session来记录cookie与对应的想短暂保存的信息(用户信息等)。这样在之后一段时间内的请求时,服务器端可以通过请求报文中的cookie值来确认请求端的信息。

http请求种类:

1)get获取资源(多媒体,程序执行结果)

2)post传输实体主体,相比与get传输,post请求的数据会放置在内容实体中而不是uri之后,安全性大大增强

3)put传输文件,由于http1.1本身不自带验证机制,所以安全性欠佳。一般web不使用此方法

4)head获得报文首部,与get一样,只是不获取报文主体,用来验证uri的有效性

5)delete删除文件 类似put

6)options询问支持的方法

7)trace追踪路径 让web服务器端将之前的请求通信环回给客户端,用来确认连接过程中,代理中转的加工/篡改。

8)connect要求用隧道协议连接代理 主要使用ssl和tsl把通信内容加密后经网络隧道传输

http状态码:

1xx 请求正在处理中

2xx 正常处理完毕

3xx 需要进行附加操作才算完成请求

4xx 客户端发送的请求数据出错

5xx 服务端处理请求时出错

https(http secure)是加上了*加密+认证+完整性保护*的http,常见与支付系统

常见加密技术:对称秘钥,公私秘钥(配对的CA证书认证)

SSL和TLS是一种独立于http的协议,使用时会由ssl中转从http到tcp的信息

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值