对于大厂的面试来说,掌握基本的计算机网络知识十分必要,但是说实话就单单是博主觉得,看书去复习,是最好的“安眠药”,哈哈哈,所以具有针对性的去学习更加的有效果,所以直接看大厂的高频面试题,快速建立知识结构体系。
以下的一些是博主通过博览众多平台的博客推文进行的汇总:
1.计算机网络OSI模型,TCP/IP,五层协议的体系结构,以及各层的协议(高频)
计算机网络OSI分层共分为7层:
由下至上依次为:物理层,数据链路层,网络层,传输层,表示层,会话层,应用层
七层的各层传输通信协议,对应的作用和代表设备,传输的单位:
物理层:RJ45、CLOCK、IEEE802.3 (集线器,中继器)
作用:通过媒介传输比特,确定机械及电气规范
传输单位:bit(比特)
数据链路层:PPP、FR、HDLC、VLAN、MAC (网桥,交换机)
作用:将比特组装成帧和点对点的传递
传输单位:帧(frame)
网络层:IP、ICMP、ARP、RARP、OSPF、IS-IS、IPX、BGP、RIP、IGRP(路由器)
作用:负责数据包从源到宿的传递和网际互连
传输单位:package(包)
传输层:TCP、UDP、SPX
作用:提供端到端的可靠报文传递和错误恢复
传输单位:段(segment)
会话层:NFS、SQL、NETBIOS、RPC
作用:建立、管理和终止会话
传输单位:会话协议数据单元SPDU
表示层:JPEG、MPEG、ASII HTTP/HTML · FTP · Telnet
作用:对数据进行翻译、加密和压缩
单位:表示协议数据单元PPDU
应用层:FTP、DNS、Telnet、DHCP、SMTP、HTTP、POP3、WWW、NFS
作用:允许访问OSI环境的手段
单位:应用协议数据单元APDU
2.TCP/IP通信协议的四层模型;
自下而上分别为;
网络接口层,网络层,传输层,应用层
与OSI的七层模型想对比的话如下图所示:
OSI模型中的会话层,表示层,应用层,对应TCP/IP四层模型中的应用层,数据链路层+物理层对应网络接口层。
通信方式:单工通信,半双工通信,全双工通信
IP协议族分类:IP协议,ARP地址解析协议,ICMP(网际控制报文协议),IGMP(网际组管理协议)
ARP地址解析协议:将网络的IP地址转化为实际的物理地址(MAC地址),并存储在MAC地址表中。
ICMP(网际控制报文协议):用于进行差错情况和异常情况的反馈,分为询问报文和差错报告报文。
IGMP(网际组管理协议):用于控制和管理多播和组播的协议。
3.TCP的连接建立的“三次握手”与断开连接的“四次挥手”的完整过程
第一次握手:客户端发送连接请求报文段,将SYN置为1,发送数据包seq为x,切客户端转为SYN_SEND模式等待服务端确认。
第二次握手:服务器收到SYN报文段,将ACK置为1+x,同时自己也要发送seq为y,此时服务器转换为SEND_REV状态
第三次握手:客户端收到服务器端的seq报文,将ACK为1+y,完成三次握手,开始准备传输数据。
断开连接的四次挥手:
第一次挥手:客户端进程发出连接释放报文,并且停止发送数据。释放数据报文首部,FIN=1,其序列号为seq=u(等于前面已经传送过来的数据的最后一个字节的序号加1),此时,客户端进入FIN-WAIT-1(终止等待1)状态。
第二次挥手:服务器收到连接释放报文,发出确认报文,ACK=1,ack=u+1,并且带上自己的序列号seq=v,此时,服务端就进入了CLOSE-WAIT(关闭等待)状态
第三次挥手:服务器将最后的数据发送完毕后,就向客户端发送连接释放报文,FIN=1,ack=u+1,由于在半关闭状态,服务器很可能又发送了一些数据,假定此时的序列号为seq=w
第四次挥手:客户端收到服务器的连接释放报文后,必须发出确认,ACK=1,ack=w+1,而自己的序列号是seq=u+1,此时,客户端就进入了TIME-WAIT(时间等待)状态。服务器只要收到了客户端发出的确认,立即进入CLOSED状态。同样,撤销TCB后,就结束了这次的TCP连接
4.TCP通信协议与UDP通信协议的区别对比
(1)TCP协议是面向连接的,传输数据前需要建立连接,即“三次握手”,UDP是面向无连接的
(2)TCP提供可靠交付数据,但是UDP提供的是最大努力交付,数据会有丢失,TCP传输的数据则是无重复,不丢失,且顺序
(3)面向的传输对象不同,TCP面向的是数据的字节流传输,UDP面向的是报文,UDP没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低
(4)TCP与UDP的传输映射关系不同,TCP仅支持点对点的通信,UDP支持一对一,多对多,多对一的交互通信
(5)TCP的逻辑通信信道是全双工的可靠信道,UDP则是不可靠信道
(6)TCP首部开销20字节;UDP的首部开销小,只有8个字节
5.OSI模型中给的网络层传输协议与传输层传输协议的区别
(1)网络层提供的是主机之间的通信
(2)传输层提供的是进程之间的通信
6.为什么建立连接是三次握手,关闭连接确是四次挥手呢?
建立连接的时候, 服务器在LISTEN状态下,收到建立连接请求的SYN报文后,把ACK和SYN放在一个报文里发送给客户端。
而关闭连接时,服务器收到对方的FIN报文时,仅仅表示对方不再发送数据了但是还能接收数据,而自己也未必全部数据都发送给对方了,所以己方可以立即关闭,也可以发送一些数据给对方后,再发送FIN报文给对方来表示同意现在关闭连接,因此,己方ACK和FIN一般都会分开发送,从而导致多了一次。
7.请简单说一下你了解的端口及对应的服务
8.子网掩码的作用
子网掩码只有一个作用,就是将某个IP地址划分成网络地址和主机地址两部分。
9.当建立连接后,发现客户端发生障碍,如何减少资源的浪费?
TCP内部设置有保活计时器,当客户端发生故障,服务器不会一直等下去,服务端每收到一次客户端的请求,都会复位保活计时器,时间为2小时。若两小时还没有收到客户端的任何数据,服务器就会发送一个探测报文段,以后每隔75秒发送一次。若一连发送10个探测报文仍然没反应,服务器就认为客户端出了故障,接着就关闭连接。
10.在地址栏输入URL后,一直到显示网页经历的过程
大的方向上来看:
1.DNS解析:解析域名对应的IP地址
2.TCP建立连接:
3.客户端发出HTTP请求
HTTP请求报文包括 请求行,请求报头,请求正文
4.服务器处理HTTP请求,返回报文
HTTP响应报文包括 状态行,响应报头,响应报文
5.浏览器解析渲染画面显示
6.链接结束
11.HTTP的常见状态码含义
200 (成功) 服务器已成功处理了请求
304 (未修改) 自从上次请求后,请求的网页未修改过
400 (错误请求) 服务器不理解请求的语法
403 (禁止) 服务器拒绝请求
404 (未找到) 服务器找不到请求的网页
500 (服务器内部错误) 服务器遇到错误,无法完成请求。
501 (尚未实施) 服务器不具备完成请求的功能。
502 (错误网关) 服务器作为网关或代理,从上游服务器收到无效响应。
503 (服务不可用) 服务器目前无法使用(由于超载或停机维护
504 (网关超时) 服务器作为网关或代理,但是没有及时从上游服务器收到请求。
505 (HTTP 版本不受支持) 服务器不支持请求中所用的 HTTP 协议版本。
12.HTTP 协议包括哪些请求?
GET:对服务器资源的简单请求
POST:用于发送包含用户提交数据的请求
HEAD:类似于GET请求,不过返回的响应中没有具体内容,用于获取报头
PUT:传说中请求文档的一个版本
DELETE:发出一个删除指定文档的请求
13.HTTP中的GET与POST的区别
GET请求的数据会附在URL后面,POST的数据放在HTTP包体POST安全性比GET安全性高
14 .HTTP和HTTPS的区别:
https:全称Hyper Text Transfer Protocol Secure,相比http,多了一个secure,这一个secure是怎么来的呢?这是由TLS(SSL)提供的,可以简单理解为 HTTPS=HTTP+SSL。
①HTTP 的 URL 以 http:// 开头,而 HTTPS 的 URL 以 https:// 开头
②HTTP 是相对不安全的,而 HTTPS 是相对安全的
③HTTP 标准端口是 80 ,而 HTTPS 的标准端口是 443
④在 OSI 网络模型中,HTTP 工作于应用层,而 HTTPS 工作在传输层
⑤HTTP 无需加密,而 HTTPS 对传输的数据进行加密
⑥HTTP 无需证书,而 HTTPS 需要认证证书
https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。
15.交换机与路由器有什么区别?
①工作所处的OSI层次不一样,交换机工作在OSI第二层数据链路层,路由器工作在OSI第三层网络层
②寻址方式不同:交换机根据MAC地址寻址,路由器根据IP地址寻址
③转发速不同:交换机的转发速度快,路由器转发速度相对较慢。
16.session 和 cookie 有什么区别?
(1)存储位置不同:cookie存储在客户端浏览器上,session的数据信息存储在服务端。
(2)存储容量不同:cookie存储的容量数据<=4KB,一个站点最多保持20个cookie,对于session来说并没有上限,但出于对服务器端的性能考虑,session内不要存放过多的东西,并且设置session删除机制。
(3)存储方式不同:cookie的保存形势为ASCII字符串,并且编码为Unicode或者二进制,
session能存储任何形式的数据,但不包括string
(4)跨域访问方式不同:cookie支持跨域访问,session不支持跨域访问。
致谢
1.https://www.cnblogs.com/qiaozhoulin/p/5075372.html
2.https://blog.csdn.net/qzcsu/article/details/72861891
3.https://segmentfault.com/a/1190000006879700
4.https://zhuanlan.zhihu.com/p/24001696