计算机网络总结

OSI七层模型

应用层 表示层 会话层 运输层 网络层 数据链路层 物理层

五层协议

应用层 运输层 网络层 数据链路层 物理层

应用层:完成应用进程间的交互,如域名系统DNS,支持万维网应用的HTTP协议,支持电子邮件的STMP协议,这一层的数据单元是报文;

运输层:负责两台主机进程间通信,提供通用的数据传输服务,其中复用指的是多个应用层进程可以同时使用下面运输层的服务,分用则指的是运输层把收到的信息交付上层应用层的相应进程,有TCP和UDP两个协议,传输单位:报文段(TCP)、用户数据报(UDP)

其中TCP是面向连接的,提供可靠交付,只能点对点,建立开销大花费时间长,头部字节长,以字节流形式传输,用于电子邮件,文件传输
UDP是无连接的,不提供可靠交付,同时支付多播和广播,开销少速度快,头部字节固定8字节,以数据报形式传输;一般用于即时通信

网络层:选择合适的网间路由和交换节点,单位是IP数据报,协议有IP和IPv6

数据链路层:两台主机之间的数据传输,总是在一段一段的链路上传送,将IP数据报封装成帧,在相邻节点传输,协议有ARP协议(地址解析)和RARP协议,具体是根据IP地址找到mac地址(唯一),进行物理寻址;

物理层:实现相邻节点间比特流的传输,再转换成电信号光信号进行物理传输,IEEE802.2

**

来再讲一讲三次握手

**
TCP建立连接的过程,面试概率太大了,再来一遍

客户端发送SYN,服务端发送SYN加ACK,客户端发送ACK,就三句话;
起初服务端处于listen,用户端发送SYN后用户端进入SYN-SEND状态,服务端收到后应答,进入SYN_RECEIVED状态,客户端收到SYN和ACK,进入ESTABLISHED,用户端收到ACK,也进入ESTABLISHED

三次握手的意义是客户端和服务端确定自己的发送接收能力正常~
第一次,客户端不能确认,服务端确认自己接收正常,对方发送正常
第二次,客户端确认自己和对方都发送接收正常,服务端还是只能确认自己接收正常,对方发送正常
第三次,服务端确认自己发送、接收正常,对方发送、接收正常;服务端 确认了:自己发送、接收正常,对方发送、接收正常

第2次握手传回了ACK,为什么还要传回SYN?
ACK表示自己收到了请求,SYN则表示服务端也同意建立连接

四次挥手:
服务端发送fin,进入fin_wait1,客户端收到发送ack,进入close_wait,客户端进入fin_wait2,服务端传送完毕,发送FIN和ack,进入last_ack,客户端收到,发送ack并进入time_wait(2MSL),服务端收到后closed

TCP协议是如何保证可靠传输的:
1.报文被合理切割成合适大小
2.发送方对包编号,接收方对包排序,最终将有序数据传给应用层;
3.TCP的接收端会丢弃重复数据;
4.流量控制,通过滑动窗口迎合接收端的接收能力;
5.拥塞控制,同样是滑动窗口,根据网络情况动态调整;慢开始(试探网络情况)、拥塞避免(拥塞窗口缓慢增大)、快重传和快恢复(FRR,可以很好地解决丢一个包的情况,当接收到三次重复确认就不等待定时器而是立即重发);
6.超时重传机制
7.ARQ协议(自动重传,确认和超时),根据分组传输,包括停止等待的ARQ和连续ARQ,前者需要接收端确认后才可继续发送,信道利用率低;后者则连续发送,累计确认,信道利用率高

在浏览器中输入url地址 ->> 显示主页的过程(面试常客)
1.进行DNS解析,先去找缓存,然后去本机hosts文件找有没有对应的IP地址,然后去本地DNS服务器,同样查缓存没有,去找顶级DNS服务器,然后根据其反馈找下一级DNS服务器,直到返回IP地址
2.通过三次握手建立TCP连接
3.浏览器发送请求报文,等待响应
4.服务器进行后端逻辑处理,返回应答报文
5.是否长连接,如果不是就四次挥手断开连接
6.浏览器根据收到的静态资源进行页面渲染

http是无状态的,如何保存用户登录状态
cokkie存在硬盘,记录sessionid,请求时带着sessionid,服务端可以从相应session中获取用户信息;
如果cookie被禁用还可以把session信息附在url后面;
为了安全,可以将cokkie加密,拿到服务端解密;

http1.0和1.1的区别
1长连接,避免握手和挥手的重复开销,keep-alive,1.1有流水线和非流水线模式,流水线是同时发送请求,非流水线是等待上一个请求的应答报文后才能发出下一个请求;
2.错误状态码增加 409资源状态冲突 410资源被永久删除
3.缓存处理的策略进行了扩展
4.带宽优化及网络连接的使用,引入range,可以传一个对象的部分数据,返回码是206;

http和https
1端口 80-》443
2https在会话层增加了SSL/TLS,进行加密,传输信息加密并验证通话双方身份,但是系统资源耗费大;是混合加密的形式,传输信息用的对称加密,但是通话秘钥的传输用了非对称加密;

对称加密:加密解密使用同一秘钥,速度快,如DES/AES
非对称加密:公钥加密私钥解密,速度慢,如RSA/DSA

SSL:安全套接层
TLS:传输安全性协议

请你描述一下TLS的加密过程吧(究级):
客户端生成随机数A并发送支持的加密套件,服务端生成随机数B并返回他选择的加密套件、他的服务端证书,客户端通过CA验证证书(使用CA的公钥),认证通过,客户端生成随机数C,通过服务端的公钥加密并发送C1,客户端根据ABC,计算出协商秘钥D以及加密算法E,发送DE,客户端根据DE将之前的通信参数hash值生成密文F,发送F;
服务端根据自己的私钥解密C1得到C,再根据ABC计算出协商秘钥D和加密算法E,使用DE将之前的通信参数hash值生成密文F1,对比一致,发送采用的协商秘钥和加密算法;
根据DE将之前的通信参数hash值生成密文F2,发送到客户端
客户端使用DE解密F2,对比F2,F,握手完成;
————————————————
版权声明:本文为CSDN博主「进击的小王666」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/m0_56033865/article/details/123011191

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值