计算机网络面经(笔记一)

这可能是全网最详细的计算机网络面经(笔记一)

OSI七层模型

应用层:实现应用进程之间的交互来完成特定的网络作用,常见的应用层协议有DNS域名协议,HTTP协议等
表示层:数据的表示,安全,压缩。确保一个系统的应用层所发送的信息可以被另一个系统的应用层所读取
会话层:建立通信链路,保持会话过程通信链接的畅通,同步两个节点之间的对话。决定通信是否被中断以及通信中断时该向何处重新发送
传输层:负责向两台主机进程之间的通信提供数据传输服务。传输层上主要的协议有TCP(传输控制)/UDP(用户数据协议)
网络层:为数据包选择合适的路由和交换节点,确保数据即时送达。常见的ARP协议(IP地址转换为MAC地址) 路由
数据链路层:建立相邻节点之间的数据链路,通过差错控制提供数据帧在信道上无差错的传输,并进行各电路上的动作系列 (交换机)
物理层:计算机结点之间实现比特流的透明传输,同时减少传输介质和物理设备上的差异

DNS工作流程

DNS是因特网中作为域名和IP地址相互映射的分布式数据库
主机向本地DNS服务器的查询属于递归查询,本地域名服务器向根域名服务器的查询是迭代查询 。
1.在浏览器中输入url地址,操作系统会在本地hosts文件中查找是否有该域名的映射关系,如果有,调用IP地址映射,完成域名解析
2.如果hosts文件中没有,则查询本地DNS解析器缓存,如果有,则完成域名解析
3.如本地DNS解析器没有,则查询本地DNS服务器,查到则完成域名解析
4.本地域名服务器->根域名服务器->顶级域名服务器->权限域名服务器,最后本地域名服务器告诉主机所对应的IP地址。

ARP协议

ARP协议作用是解析IP地址得到MAC物理地址
以太网帧大小限制 46-1500字节

在这里插入图片描述

ARP工作流程 : 查找ARP缓存表,将MAC地址写入MAC帧的首部–>主机A在局域网中广播一个ARP请求分组
–>主机B向主机A以单播的方式发送带有自己MAC地址的响应分组–>主机A在缓存表写入主机B的IP地址及IP地址所对应的MAC地址。

若两台主机不在同一个局域网内,必须先通过广播,路由器转发到主机B的局域网,通过主机B的MAC地址才能找到主机B。

IPv4和IPv6的区别

  1. 地址空间不同,IPv4中规定IP地址长度为32,而IPv6中IP地址的长度为128。
  2. 路由表大小不同,IPv6的路由表相比IPv4的更小。IPv6的组播支持以及对流的支持要强于IPv4。
  3. 安全性不同,IPv6的安全性更高,在使用IPv6的网络时,用户可对网络层的数据进行加密。协议扩充不同。IPv6允许协议进行扩充而IPv4不允许。

Ping的过程

网络层ICMP协议的一个实际应用,测试主机的连通性

  1. 向目的主机发送多个ICMP回送请求报文
  2. 根据返回的回送报文时间和成功响应的次数估算出数据包的往返时间及丢包率

输入url地址到浏览器页面过程发生了什么

  1. 首先是DNS域名解析,具体参考上述DNS工作流程
    浏览器依次查找浏览器缓存,系统hosts文件缓存,路由器缓存,如果查到域名的IP地址映射,
    则返回域名解析。如果上述没有查找成功,则进入ISP缓存搜索,直至获取ip地址。
  2. 浏览器向服务器发起tcp连接,三次握手建立连接。
  3. 握手成功后,浏览器向服务器发送http请求,请求数据包。
  4. 服务器处理收到的请求,将数据返回至浏览器
  5. 浏览器收到HTTP响应
  6. 读取页面内容,浏览器渲染,解析html源码,css,js组件交互
  7. 客户端和服务器交互
  8. tcp四次挥手,断开连接

HTTP与HTTPS协议

HTTP协议传输的数据都是未加密的,也就是明文的,因此使用HTTP协议传输隐私信息非常不安全;
HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比HTTP协议安全。 SSL(Secure Sockets Layer)协议用于对HTTP协议传输的数据进行加密。

在这里插入图片描述
在这里插入图片描述

HTTP与HTTPS有什么区别

  1. https协议需要到CA (Certificate Authority,证书颁发机构) 申请证书,一般免费证书较少,因而需要一定费用。
  2. http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。
  3. http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
  4. http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

HTTPS的加密过程

对称加密:加密和解密使用同一密钥,优点是运算速度快,缺点是如何安全将密钥传输给另一方(常见对称加密算法有DES, AES等)
非对称加密:加密和解密使用不同密钥,一把公开的公钥,一把私有的私钥。公钥加密的信息只有私钥才能解密,私钥加密的信息只有公钥才能解密。优点解决了对称加密存在的问题,缺点运算效率慢。(常见非对称加密算法有RSA, DSA, ECC等)

https使用对称加密和非对称加密的混合加密算法。
具体使用非对称加密来传输对称密钥保证安全性,使用对称加密来保证通信的效率。

  1. 客户端向服务端发起第一次握手,告知客户端所支持的SSL指定版本,加密算法及密钥长度信息
  2. 服务端将自己的公钥发给数字证书认证机构,数字证书认证机构利用自己的私钥对服务器的公钥进行数字签名,并给服务器颁发公钥证书。
  3. 服务器将证书发给客户端
  4. 客户端利用数字认证机构的公钥,向机构验证公钥证书上的数字签名,确认服务器公钥的真实性
  5. 客户端使用服务端的公钥加密自己生成对称密钥,发给服务端
  6. 服务端收到后利用私钥解密信息,获得客户端发来的对称密钥
  7. 通信双方可用对称密钥来加密解密信息,保证通信效率

为什么说http是无状态的?http第一次请求和第二次请求有联系吗?

  1. HTTP协议是无状态的,指的是HTTP协议对事务处理没有记忆能力,服务器不知道客户端是什么状态。即第一次和第二次发起对应的请求之间没有任何联系。
  2. HTTP是一个无状态协议,这意味着每个请求都是独立的,Keep-Alive(服务器处理完客户的请求后,并收到客户端的应答后,不会立即断开,联系tcp长连接思考)没能改变这个结果。
    最初使用http是为了浏览静态文件,无状态就可以做到查询,如何硬要实现应用进程交互,就要维护状态,导致开销和成本大大增加。后续引入cookie和session的概念

Cookie和Session的区别

HTTP协议是无状态的,即服务器无法判断用户身份。Cookie和Session可以用来进行身份辨认

Cookie
cookie是保存在客户端一个小数据块, 其中包含了用户信息。当客户端向服务端发起请求,服务端会像客户端浏览器发送一个Cookie, 客户端会把Cookie存起来,当下次客户端再次请求服务端时,会携带上这个Cookie,服务端会通过这个Cookie来确定身份。
Session
Session是通过Cookie实现的,和Cookie不同的是, Session是存在服务端的。当客户端浏览器第一次访问服务器时, 服务器会为浏览器创建一个sessionid, 将sessionid放到Cookie中, 存在客户端浏览器。比如浏览器访问的是购物网站,将一本《图解HTTP》放到了购物车,当浏览器再次访问服务器时,服务器会取出Cookie中的sessionid,并根据sessionid获取会话中的存储信息,确认浏览器的身份是上次将《图解HTTP》放入到购物车那个用户。

存放位置占用空间安全性应用场景
Cookie客户端浏览器较低一般存放配置信息
Session服务端较高存放较为重要的信息

如果客户端禁用cookie,session还能使用吗?

可以通过在URL中传递sessionid。session的作用是在服务端保持状态,通过sessionid来保持身份,通常情况session通过cookie传递,除非cookie被禁用等情况。

HTTP状态码

在这里插入图片描述

200 OK;
202:已接收请求,但处理未完成;

301:资源被永久重定向;

400:Bad Request 客户端请求有语法错误,不能被服务器理解;
403 Forbidden 服务器理解用户的请求,但拒绝执行该请求;
408 :等待时间过长,超时;

500 Internal Server Error 服务器错误;
502 Bad GateWay:错误网关,响应无效;

HTTP方法

PUT(增):上传文件,向服务器添加数据,相当于增加操作
DELETE(删除):删除文件

GET和POST的区别
GET(查):获取资源,向服务器提交查询反馈,GET具有幂等性,GET的参数存放在URL中,安全性低
请求提交数据最多2048KB
POST(改):传输实体载体,向服务器提交并更新数据,POST无幂等性,传输没有大小限制

HTTP/1.1 和HTTP/1.0的区别

在这里插入图片描述

HTTP/1.X 和HTTP/2.0的区别

在这里插入图片描述

HTTP3了解吗

HTTP3在QUIC协议上发展,UDP网络连接,是谷歌制定的一种基于UDP的低延迟传输协议。其主要目的是解决采用传输层TCP协议存在的问题,同时满足传输层和应用层对多连接、低延迟等的需求。
该协议融合了TCP,TLS,HTTP/2等协议的特性,并基于UDP传输。

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
很高兴回答你关于计算机网络原理的问题!以下是一些常见的面试问题和面试经验,希望能帮助到你: 1. OSI七层模型和TCP/IP四层模型的区别是什么? - OSI七层模型:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。 - TCP/IP四层模型:网络接口层、网络层、传输层、应用层。 主要的区别在于OSI模型将会话层、表示层分开,而TCP/IP模型将其合并到应用层。 2. TCP和UDP的区别是什么? - TCP(传输控制协议):面向连接、可靠的传输协议,适用于需要可靠传输的场景,如文件传输。 - UDP(用户数据报协议):无连接、不可靠的传输协议,适用于实时性要求较高的场景,如音视频传输。 3. 网络中的IP地址和MAC地址有什么区别? - IP地址:用于标识网络中的设备,通过IP地址可以实现不同网络之间的通信。 - MAC地址:用于标识网络中的网卡,是物理地址,用于在本地局域网内进行通信。 4. 什么是DNS? - DNS(域名系统):将域名转换为IP地址的系统,用于通过域名访问互联网资源。 5. 什么是HTTPHTTPS? - HTTP(超文本传输协议):用于在客户端和服务器之间传输超文本的协议。 - HTTPS(安全超文本传输协议):在HTTP基础上加入了SSL/TLS加密层,提供了安全的通信机制。 这些是一些常见的计算机网络原理面试问题,希望能对你有所帮助!如果还有其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Q_Outsider

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值