一些面试需要准备的——计算机网络

1.OSI网络模型、TCP/IP模型

在这里插入图片描述

2.一些常用的协议

(1)常见应用层协议:

HTTP  端口号80  说明:超文本传输协议 
HTTPS 端口号443 说明:HTTP+SSL,HTTP的安全版(https协议是在http与tcp之间多添加了一层,进行身份验证和数据加密)
FTP  端口号20,21990 说明:文本传输协议

(2)scoket在会话层
(3)TCP、UDP在传输层

3.一些关于TCP的知识点

(1)TCP通信两端使用socket接口函数建立连接的流程

在这里插入图片描述
(2)TCP建立连接——三次握手

在这里插入图片描述

三次握手文字描述:
1.第一次握手:建立连接时,客户端发送SYN包(syn = j)到服务端,并进入SYN_SENT转态,等待服务器确认;
SYN:同步序列编码
2.第二次握手:服务端收到syn包,必须确认客户的syn(ack = j + 1),同时也发送一个SYN包(syn = k),即SYN+ACK包,此时服务器进入SYN_RECV状态
3.第三次握手:客户端收到服务器的SYN+ACK包,向服务器方发送确认包ACK(ack = k + 1),此时发送完毕,客户端和服务器进入ESTABLISHED,(tcp)连接成功,完成3次握手

(3)如果已经建立了连接,但是客户端突然出故障了怎么办?
TCP还设有一个计时器,显然,客户端如果出故障,服务器不能一直等下去,白白浪费资源。服务器每收到一次客户端的请求后都会重新复位这个计时器,时间通常设置为2个小时,若两个小时还没有接收到客户端的任何数据,服务器就会发送一个探测报文,以后每隔75s发送一次,若一连发送10个探测报文没有响应,服务器就认为客户端出了故障,接着就关闭连接
(4)为什么连接时是三次握手,断开却是四次握手?
断开的时候只有等到server端所有报文都发送完了,才能发送FIN报文,因此不能一起发送

4.TCP与UDP的区别

在这里插入图片描述
(1)TCP 协议的优点: 可靠、稳定,TCP 的可靠体现在 TCP 在传输数据之前,会 有三次握手来建立连接,而且在数据传输之前,会有三次握手来建立连接,而且 在数据传输时,有确认、窗口、重传、拥塞控制机制,在数据传完猴,还会断开 连接用来节约系统资源。

TCP 缺点:慢,效率低,占用系统资源高,易被攻击,TCP 在传输数据之前, 要先建立连接,这会消耗时间,而且在数据传递时,确认机制,重传机制,拥塞 机制等都会消耗大量时间,而且要在每台设备上维护所有的传输连接,事实上,每个连接都会占用系统的 CPU、内存等硬件资源。而且,因为 TCP 有确认机制、 三次握手机制,这些也导致了 TCP 容易被人利用,实现 DOS,DDOS,CC 等攻击。

(2)UDP 的优点:快速,比 TCP 稍安全,UDP 没有 TCP 的握手,确认,窗口,重 传,拥塞控制等机制,UDP 是一个无状态的传输协议,所以它在传递数据时非常 快。没有 TCP 的这些机制,UDP 较 TCP 被攻击者利用的漏洞就要少一点。但是 UDP 也是无法避免攻击; 不可靠,不稳定 因为 UDP 没有 TCP 那些可靠的机制, 在数据传递时,如果网络质量不好,就很容易丢失包。

(3) 什么时候应该使用 TCP: 当对网络通信质量有要求的时候,比如: 整个数据要准确无误的传递给对方, 这往往用于一些要求可靠的应用,如 QQ,游览器, HTTP,HTTPS,FTP 等传输文件的协议,POP,SITP 等邮件传输的协议。

(4) 什么时候应该使用 UDP: 当对我拿过来通信质量要求不高的时候,要求网络通讯能尽量的快,这时就 可以使用 UDP,比如 qq 语音,qq 视频 、FTFP

4.简单了解HTTP协议与HTTPS协议

HTTP协议:
(1).一些特性:
http协议是建立在TCP/IP协议之上应用层协议,默认端口为80或者8080
http协议的的特点是无状态,无连接(无连接指的是不像socket服务器一样,客户端与服务器一直保持连接,而是例如你在百度进行搜索,网页数据过来后连接就断开,直到你下次继续搜索)
(2).get请求和post请求的区别:
1.本质区别:
GET产生一个TCP数据包;POST产生两个TCP数据包。
对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据);
而对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)。

200是什么意思,总结起来一句话,以2开头的为成功,以4开头的多为失败,如常见的404.
2.区别:
(1)url可见性:
get,参数url可见
post,url参数不可见
有参数,但被隐藏起来了,可以通过抓包查看这个参数。
(2)数据传输上:
get,通过拼接url进行传递参数;
post,通过body体传输参数
(3)缓存性:
get请求是可以缓存的
post请求不可以缓存
(4)后退页面的反应
get请求页面后退时,不产生影响
post请求页面后退时,会重新提交请求
(5)传输数据的大小
get一般传输数据大小不超过2k-4k(根据浏览器不同,限制不一样,但相差不大)
post请求传输数据的大小根据php.ini 配置文件设定,也可以无限大。
(6)安全性
这个也是最不好分析的,原则上post肯定要比get安全,毕竟传输参数时url不可见,但也挡不住部分人闲的没事在那抓包玩。安全性个人觉得是没多大区别的,对传递的参数进行加密,其实都一样

HTTPS协议:
(1).简介与原理:http协议是明文传输的,因此很容易被截取和解析,泄漏个人数据。https协议是在http和tcp之间多添加了一层,进行身份验证和数据加密。
(2).密码学基础:对称加密和非对称加密
对称加密:对称加密又叫做私钥加密,即信息的发送方和接收方使用同一个密钥去加密和解密数据。
对称加密的特点是算法公开、加密和解密速度快,适合于对大数据量进行加密,常见的对称加密算法有DES、RC5

其加密过程如下:明文 + 加密算法 + 私钥 => 密文
解密过程如下: 密文 + 解密算法 + 私钥 => 明文

对称加密中用到的密钥叫做私钥,私钥表示个人私有的密钥,即该密钥不能被泄露。
其加密过程中的私钥与解密过程中用到的私钥是同一个密钥,这也是称加密之所以称之为“对称”的原因。
由于对称加密的算法是公开的,所以一旦私钥被泄露,那么密文就很容易被破解,所以对称加密的缺点是密钥安全管理困难。
非对称加密:非对称加密也叫做公钥加密。
非对称加密使用一对密钥,即公钥和私钥,且二者成对出现。私钥被自己保存,不能对外泄露。公钥指的是公共的密钥,任何人都可以获得该密钥。用公钥或私钥中的任何一个进行加密,用另一个进行解密。

1)被公钥加密过的密文只能被私钥解密,过程如下:
明文 + 加密算法 + 公钥 => 密文, 密文 + 解密算法 + 私钥 => 明文
(2)被私钥加密过的密文只能被公钥解密,过程如下:
明文 + 加密算法 + 私钥 => 密文, 密文 + 解密算法 + 公钥 => 明文

由于加密和解密使用了两个不同的密钥,这就是非对称加密“非对称”的原因。
非对称加密的缺点是加密和解密花费时间长、速度慢,只适合对少量数据进行加密。
在非对称加密中使用的主要算法有:RSA等。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值