基础
1、网络模型(OSI七层模型,TCP/IP四层模型、五层模型、各层协议以及作用)
网络模型
- 七层模型: 应用层(Http、FTP)、表示层(Telnet)、会话层(DNS)、传输层、网络层、数据链路层、物理层。
- 五层模型: 应用层(http、DNS、FTP、SMTP、telnet)、传输层(TCP、UDP)、网络层(IP.ICMP、ARP)、数据链路层(ppp)、物理层。
- TCP/IP四层模型: 应用层,传输层,网际层,网络接口层。
作用:
- 应用层:解决通过应用进程之间的交互来实现特定网络应用的问题
- 表示层:解决通信双方交换信息的表示问题
- 会话层:解决进程之间进行会话问题
- 传输层:解决进程之间基于网络的通信问题
- 网络层:解决报文或用户数据报封装成的分组和包在多个网络之间传输(路由)的问题
- 数据链路层:解决分组在一个网络(或一段链路)上传输的问题
- 物理层:解决使用何种信号来传输比特0和1的问题
2、每一层对应的网络协议有哪些?
OSI七层网络模型 |
TCP/IP四层模型 |
对应的网络协议 |
应用层 |
应用层 |
HTTP、DNS、FTP、NFS、WAIS、 SMIP、Telnet、SNMP |
表示层 |
TIFF、GIF、JPEG、PICT |
|
会话层 |
RPC、sQL、NFS、NetBIOS、 names、 AppleTalk |
|
传输层 |
传输层 |
TCP、UDP |
网络层 |
网络层 |
IP、ICMP、ARP、RAPP、RIP、IPX |
数据链路层 |
网络接口层 |
FDDI、Frame Relay、HDLC、PPP |
物理层 |
EIA/TIA-232、EIA/TIA-499 |
3、数据如何在各层之间传输?
第一步:应用层按照HTTP协议的规定构建一个HTTP请求报文,然后将其交付给传输层处理。
第二步:传输层给HTTP请求报文添加一个TCP首部,使之成为TCP报文段,然后将其交付给网络层处理。
第三步:网络层给TCP报文段添加一个IP首部,使之成为IP数据报,然后将其交付给数据链路层处理。
第四步:数据链路层给IP数据报添加一个首部和一个尾部,使之成为帧,然后将其交付给物理层处理。
第五步:物理层将帧看做是比特流,并该比特流前面添加前导码,之后将装有前导码的比特流变换成相应的信号发送给传输媒体。
第六步:传输媒体进行传输。
网络综合
1、用户输入网址到显示对应页面的全过程?
- DNS 解析:当用户输入一个网址并按下回车键的时候,浏览器获得一个域名,而在实际通信过程中,我们需要的是一个 IP 地址,因此我们需要先把域名转换成相应 IP 地址。
- TCP 连接:浏览器通过 DNS 获取到 Web 服务器真正的 IP 地址后,便向 Web 服务器发起 TCP 连接请求,通过 TCP 三次握手建立好连接后,浏览器便可以将 HTTP 请求数据发送给服务器了。
- 发送 HTTP 请求:浏览器向 Web 服务器发起一个 HTTP 请求,HTTP 协议是建立在 TCP 协议之上的应用层协议,其本质是在建立起的TCP连接中,按照HTTP协议标准发送一个索要网页的请求。在这一过程中,会涉及到负载均衡等操作。
- 处理请求并返回:服务器获取到客户端的 HTTP 请求后,会根据 HTTP 请求中的内容来决定如何获取相应的文件,并将文件发送给浏览器。
- 浏览器渲染:浏览器根据响应开始显示页面,首先解析 HTML 文件构建 DOM 树,然后解析 CSS 文件构建渲染树,等到渲染树构建完成后,浏览器开始布局渲染树并将其绘制到屏幕上。
- 断开连接:客户端和服务器通过四次挥手终止 TCP 连接。
2、输入一个域名后经历的协议 ?
如下图所示:
3、DNS 的解析过程?
假设你要查询 www.baidu.com 的 IP 地址:
- 首先会查找浏览器的缓存,看看是否能找到www.baidu.com对应的IP地址,找到就直接返回;否则进行下一步。
- 将请求发往给本地DNS服务器,如果查找到也直接返回,否则继续进行下一步;
- 本地DNS服务器向根域名服务器发送请求,根域名服务器返回负责com的顶级域名服务器的IP地址的列表。
- 本地DNS服务器再向其中一个负责com的顶级域名服务器发送一个请求,返回负责baidu.com的权限域名服务器的IP地址列表。
- 本地DNS服务器再向其中一个权限域名服务器发送一个请求,返回www.baidu.com所对应的IP地址。
递归查询
- 如果主机所询问的本地域名服务器不知道被查询域名的 IP 地址,那么本地域名服务器就以 DNS 客户端的身份,向其他根域名服务器继续发出查询请求报文,即替主机继续查询,而不是让主机自己进行下一步查询。
迭代查询
- 当根域名服务器收到本地域名服务器发出的迭代查询请求报文时,要么给出所要查询的IP 地址,要么告诉本地服务器下一步应该找哪个域名服务器进行查询,然后让本地服务器进行后续的查询。
由于递归查询对于被查询的域名服务器负担太大,通常采用以下模式:从请求主机到本地域名服务器的查询是递归查询,而其余的查询是迭代查询。
4、WebSocket 与 Socket 的区别?
Socket 等于 IP 地址 + 端口 + 协议
- 具体来说,Socket 是一套标准,它完成了对 TCP/IP 的高度封装,屏蔽网络细节,以方便开发者更好地进行网络编程。
区别:
- WebSocket 是一个持久化的协议,它是伴随 H5 而出的协议,用来解决 http 不支持持久化连接的问题。
- Socket 是一个网络编程的标准接口,而 WebSocket 则是应用层通信协议。
5、常见协议及对应的端口?
协议 |
名称 |
默认端口 |
底层协议 |
HTTP |
超文本传输协议 |
80 |
TCP |
HTTPS |
超文本传输安全协议 |
443 |
TCP |
Telnet |
远程登录服务的标准协议 |
23 |
TCP |
FTP |
文件传输协议 |
20传输和21连接 |
TCP |
TFTP |
简单文件传输协议 |
69 |
UDP |
SMTP |
简单邮件传输协议(发送用) |
25 |
TCP |
POP |
邮局协议(接收用) |
110 |
TCP |
DNS |
域名解析服务 |
53 |
服务器间进行域传输的时候用TCP |