计算机网络面试题
计算机网络的五层体系结构
物理层:在物理介质上正确、透明的传送比特流。(由10转换为电流强弱进行传输,到达目的地后在转换为10)
数据链路层: 将IP数据报加头和尾,构成数据帧,实现数据在不可靠的物理线路上的可靠传递。
网络层:负责为分组交换网上的不同主机提供通信服务。
运输层:负责向两台主机中进程之前的通信提供通用的数据传输服务。
应用层:为用户的应用进程提供网络通信服务。
一段我也可以写的故事
Http和HTTPS的发展历史
Http
http是一种长文本传输协议,一个基于请求与响应,无状态的,应用层协议。设置这个的初中是为了提供一种发布和接收html页面的方法。
Http的特点
- 无状态:对事务处理没有记忆能力,比如访问一个网站需要进行登录。
- 无连接:每次请求都需要TCP进行三次四次握手。和服务器进行从新连接。
- 基于请求和响应:基本特性,由客户端发起请求,服务端响应。请求和响应不会对通信方进行确认,无法保护数据的完整性。通信使用明文。
- 简单快速
Https
是一种通过计算机网络进行安全通信的传输协议,经由http进行通信。身披SSLQ外壳的HTTP。
https的特点
- 内容加密:采用混合加密技术
- 验证身份:从证书认证客户端访问的是自己的服务器。
- 保护数据完整性:防止传输的内容被中间人冒充或篡改。
HTTPS和HTTP的区别主要如下:
1. https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。
2. http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。
3. http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
4. http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
客户端在使用HTTPS方式与Web服务器通信时有以下几个步骤,如图所示。
(1)客户使用https的URL访问Web服务器,要求与Web服务器建立SSL连接。
(2)Web服务器收到客户端请求后,会将网站的证书信息(证书中包含公钥)传送一份给客户端。
(3)客户端的浏览器与Web服务器开始协商SSL连接的安全等级,也就是信息加密的等级。
(4)客户端的浏览器根据双方同意的安全等级,建立会话密钥,然后利用网站的公钥将会话密钥加密,并传送给网站。
(5)Web服务器利用自己的私钥解密出会话密钥。
(6)Web服务器利用会话密钥加密与客户端之间的通信。
TCP三次握手
三次握手的目的:
三次握手的目的:消除旧有连接请求的SYN消息对新连接的干扰,同步连接双方的序列号和确认号并交换TCP 窗口大小信息。
1.第一次握手: 客户端向服务器发送连接请求包SYN,等待服务器回应
2. 第二次握手:服务器端收到客户端请求包之后,将客户端的请求包SYN(syn=j)放到自己未连接的队列里,此时服务器发送两个包给客户端。
- 已经收到请求的确认包ACK
- 和发送连接询问的请求包询问客户端是否做好连接准备
3.第三次握手: 客户端接收到信息之后,就发送ACK确认收到信息且准备好了然后他们就可以传递数据了。
TCP四次挥手原理
由于TCP通信方式是采用全双工的通信方式,因此关闭的时候要关闭通信双方的接口。假设A断B
第一次挥手:A发送给B一个FIN包。意味着告诉B我发送的数据大小时N,发送完毕请断开连接
第二次挥手:主机B收到A发送的FIN包,并向A发送一个确认请求ACK,意思是告诉A我已经接受到了并且断开了连接。
第三第四次挥手和前两次一样只是是B在发送。
TCP与UDP的区别
基于连接与无连接;
对系统资源的要求(TCP较多,UDP少);
UDP程序结构较简单;
流模式与数据报模式 ;
TCP保证数据正确性,UDP可能丢包,TCP保证数据顺序,UDP不保证