1.OSI模型,TCP/IP模型都有哪几层,每层的功能是什么?
OSI模型:开放式系统互联通信参考模型,open system interconnection reference model,物理层,数据链路层,网络层,传输层,会话层,表示层,应用层。
TCP/IP模型:网络接口层,网际层,传输层,应用层。
物理层考虑的是怎样在传输媒体上传输数据比特流,物理层的作用是尽可能的屏蔽传输媒体和通讯手段的差异,使数据链路层感觉不到这些差异。
数据链路层是将数据包封装成能够在不同网络传输的帧,可以进行差错检测,但不能纠错。
网络层进行路由选择和分组转发。
传输层是为应用进程之间提供可靠和不可靠的数据传输服务。
应用层是为用户提供接口,不同主机的应用进程之间提供数据传输服务。
会话层是建立和管理会话。
表示层进行数据压缩,数据加密、格式转换。
- 常见协议端口。
- 有哪些交换技术?
- 计算机网络的性能指标。
速率:数据的传输速率;
带宽:在单位时间内,网络中某信道所能通过的最高数据率;
吞吐量:单位时间通过某个网络的实际数据量;
时延:是数据从网络的一端传送到另一端所需的时间,包括发送时延、传播时延、排队时延、处理时延;
时延带宽积:是传播时延*带宽;
往返时间rtt:互联网上的信息双向交互一次所需时间。
- 从通信双方信息交互的方式来看可以有单向通信,双向交替通信,双向同时通信。数据链路层使用的信道分为点对点信道和广播信道。
- 为什么要用复用技术?
可以提高传输能力和资源利用率,有时分复用(TDM),频分复用(FDM),码分复用(CDM),波分复用(WDM)。
- 数据链路层的三个基本问题。
封装成帧、透明传输、差错检测
封装成帧:对上层的分组进行封装,添加首部和尾部,确定最大传输单元mtu;
透明传输:是为了防止错误的找到帧的边界,在数据中出现的控制字符前加入转义字符,有字符填充和字节填充两种方法;
差错检测:使用CRC循环冗余校验码,只能检测比特差错,不能检测传输差错只能检错不能纠错。
- MAC是媒体接入控制。PPP协议中使用CSMA/CD是在载波监听多点接入碰撞检测协议。载波监听就是发送前和发送时都要检测信道,多点接入是多个计算机,以多点接入方式连接在一条总线上,碰撞检测是边发边检测。介质访问规则就是先听后发、边发边听、冲突回退、候时重发。
- IP是internet网际协议。
A类地址是0.0.0.0~127.255.255.255,
B类地址是128.0.0.0~191.255.255.255,
C类地址是192.0.0.0~223.255.255.255,D类地址是多播地址。
私有地址:
A类10.0.0.0~10.255.255.255,
B类是 172.16.0.0~172.31.255.255,
C类是192.168.0.0~192.168.255.255。
网络地址的主机号全为零代表整个网络。 - 虚电路服务与用户数据报服务对比。
- ARP协议的工作过程:
- IPv4和IPv6的区别。
IPv4的地址长度是32位,IPv6的地址长度是128位;IPv4的IPsec支持是可选的,IPv6的IPsec支持是必须的; IPv4的首部包含了校验和,IPv6的首部没有包含校验和;IPv4首部包含可选项,IPv6的可选项都移到了扩展头中。
- TCP与UDP的区别。
用户数据报协议(UDP,User Datagram Protocol)的特点:
1)无连接的。
2)面向报文的。
3)提供尽最大努力交付的服务,即不可靠的服务。
4)提供一对一、一对多、多对一和多对多的通信服务。
5)UDP 没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低(对实时应用很有用,如 直播,实时视频会议等)。
6)首部开销小,只有8个字节。
传输控制协议 TCP(Transmisson Control Protocol)的特点:
1)面向连接的。
2)面向字节流的。
3)提供的是、可靠的交付服务,通过TCP连接传递的数据是无差错、不重复、不丢失、按序到达的。
4)TCP只提供一对一的通信服务。
5)提供全双工通信。通信双方都设有发送缓存和接收缓存,用来临时存放双方通信的数据。
- TCP为何采用三次握手来建立连接,若采用二次握手可以吗?
采用三次握手建立连接是为了确保通信双方都能够正确的接收和发送数据。进行前两次握手是为了确保接收方能够接收到发送方的数据并且可以做出应答;第二三次握手是为了确保发送方能够接收到接收方的数据并能做出应答。
若采用二次握手可能造成接收方资源的浪费,例如接收方收到了发送方已失效的连接请求,在对其发送SYN+ACK包后,就为其分配了资源,而由于是已经失效的连接,发送方并不会向接收方发送数据,这就造成了接收方资源的浪费。
- 为什么要传回 SYN?
接收端传回发送端所发送的 SYN 是为了告诉发送端,我接收到的信息确实就是你所发送的信号了。
- 传了 SYN,为啥还要传 ACK?
双方通信无误必须是两者互相发送信息都无误。传了 SYN,证明发送方到接收方的通道没有问题,但是接收方到发送方的通道还需要 ACK 信号来进行验证。
- 为什么客户端最后还要等待2MSL?(MSL最大生存时间)
1)保证A 发送的最后一个确认报文段能够到达B 。如果A 不等待2MSL, 若A 返回的最后确认报文段丢失,则B 不能进入正常关闭状态,而A 此时已经关闭,也不可能再重传。
2)防止出现“已失效的连接请求报文段“。A 在发送最后一个确认报文段后,再经过2MSL可保证本连接持续的时间内所产生的所有报文段从网络中消失。
服务器结束TCP 连接的时间要比客户机早一些,因为客户机最后要等待2MSL 后才可进入CLOSED状态。
- 为什么建立连接是三次握手,关闭连接确是四次挥手呢?
因为在建立连接的时候,接收方将SYN+ACK放在一个报文里。而释放连接时,接收方收到FIN报文时,只代表发送方不会再发送数据,而接收方还有可能继续发送数据,所以此时发送方的ACK与FIN不能一起发给接收方。
- 如果已经建立了连接,但是客户端突然出现故障了怎么办?
TCP设有一个保活计时器,服务器每收到一次客户端的请求后都会重新复位这个计时器,时间通常是设置为2小时,若两小时还没有收到客户端的任何数据,服务器就会发送一个探测报文段,以后每隔75秒发送一次。若一连发送10个探测报文仍然没反应,服务器就认为客户端出了故障,接着就关闭连接。
- TCP是如何保证传输的可靠性?
(1)校验和:对伪首部和TCP报文计算校验和,来确保传输过程中数据没有发生变化。
(2)确认应答机制与编号:对每个分组进行编号,TCP传输的过程中,每次接收方收到数据后,都会对传输方进行确认应答。也就是发送ACK报文。这个ACK报文当中带有对应的确认序列号,告诉发送方,接收到了哪些数据,下一次的数据从哪里发。收到重复的分组会将其丢弃,重发确认(停止等待协议)
(3)超时重传机制:发送方在发送完数据后等待一个时间,时间到达没有接收到ACK报文,那么对刚才发送的数据进行重新发送。如果是刚才第一个原因,接收方收到二次重发的数据后,便进行ACK应答。如果是第二个原因,接收方发现接收的数据已存在(判断存在的根据就是序列号,所以上面说序列号还有去除重复数据的作用),那么直接丢弃,仍旧发送ACK应答。(连续自动重传请求协议,连续ARQ协议)
(4)滑动窗口机制:
流量控制: 控制发送方发送速率,保证接收方来得及接收。接收方发送的确认报文中的窗口字段可以用来控制发送方窗口大小,从而影响发送方的发送速率。将窗口字段设置为 0,则发送方不能发送数据。
拥塞控制: 为了防止过多的数据注入到网络。拥塞控制是一个全局性的过程,涉及到所有的主机,所有的路由器,以及与降低网络传输性能有关的所有因素。发送方让自己的发送窗口取为拥塞窗口和接收方的接受窗口中较小的一个。
- 拥塞控制采用慢开始 、 拥塞避免 、快重传和快恢复四种算法。
- 在浏览器中输入url地址到显示主页的过程。
DNS解析、TCP连接、发送HTTP请求、服务器处理请求并返回HTTP报文、浏览器解析渲染页面、连接结束。https://segmentfault.com/a/1190000006879700。
23.GET和POST的区别:
(1)GET一般用来从服务器上获取资源,POST一般是用来更新服务器上的资源。
(2)GET不会改变服务器上的资源, POST可能会对服务器上资源进行改变。
(3)GET请求数据会附着在URL上,即将请求数据放置在HTTP报文的请求头中。而POST请求的数据放在 HTTP报文的请求体中。
(4)POST会比GET的安全性高。
(5)GET请求长度受URL的长度限制,而POST的长度没有限制。
- 常见状态码
- SSL是secure sockets layer, 安全套接字协议,https使用的是TCP的443端口。
- 三大网络分别是电信网络,有线电视网络,计算机网络。
- VPN(虚拟专用网)使用了隧道技术,IPsec技术,主要分类为内联网VPN,外联网VPN,远程接入VPN。是专用IP与专用IP之间的通信。
- NAT(网络地址转换)主要解决的问题是专用IP到全球IP的通信。 NAT路由器会建立一个NAT地址转换表。当NAT路由器具有n个全球IP地址时,专用网最多可以同时有n台主机接入到互联网。通过NAT路由器的通信必须由专用网内的主机发起。
- DNS(域名系统),作为可以将域名和IP地址相互映射的一个分布式数据库。DHCP协议是动态主机配置协议。FTP是文件传输协议。 Telnet是远程登录的标准协议。 SMTP是简单邮件传输协议。 POP3是邮局协议。
IGP内部网关协议 ,EGP外部网关协议, RIP是路由信息协议,OSPF是开放最短路径优先, BGP是边界网关协议。 - RIP和OSPF的区别。
RIP是一种分布式的基于距离向量的路由选择协议。允许一条路径最多只包含15个路由器,所以只适用于小型互联网。仅和相邻路由器交换信息,交换的信息是自己现在的路由表,会按固定时间交换信息,每隔30秒。RIP使用的是运输层的UDP协议端口是520。存在好消息传播的快,坏消息传播的慢的特点。优点是实现简单,开销较小。 RIP1不支持子网划分, RIP2支持子网划分。
OSPF是一种分布式的基于链路状态的路由选择协议。适用于大型互联网。向本自制系统中的所有路由器发送信息发送的信息是与本路由器相邻的所有路由器的链路状态。所有路由器最终都能建立一个链路状态数据库实际上是全网的拓扑结构。使用的是 IP协议。更新过程收敛的快。 OSPF支持可变长的子网划分和无分类的编址CIDR(无分类域间路由选择)。
- HTTP的长连接、短连接。
实际上是TCP协议的长连接和短连接。在HTTP1.0中默认使用短连接,就是说客户端和服务器每进行HTTP操作就建立一次连接,任务结束就中断连接。HTTP1.1起默认使用长连接,使用长连接的HTTP协议会在响应头中加入connection keep alive。使用长连接的情况下,当一个网页打开完成后,客户端和服务器之间传输 HTTP数据的TCP连接不会关闭。
- HTTP是不保存状态的协议,它是使用的session进行保存用户状态,session是服务器端保存的。Cookie和session都是用来跟踪浏览器用户身份的会话方式。
Cookie一般用来存保存用户信息,session是通过服务端记录用户状态,cookie数据保存在客户端浏览器端,session数据保存在服务器端。所以session的安全性更高。 - 计算机网络为什么要分层,优点?
因为计算机网络要完成的功能很复杂,分层之后可以将复杂问题分解为若干个较容易解决的小问题,降低问题的复杂性。
优点:各层之间是相互独立的,灵活性好,易于实现和维护,能促进标准化工作。
- 交换机一个端口一个冲突域,集线器所有端口是一个冲突域。冲突域是物理层协议,广播域是数据链路层协议,路由器不转发广播域。