计算机网络常考面试题(总结)

一.OSI参考模型与TCP/IP参考模型

OSI(Open System Interconnection)参考模型是国际标准化组织(ISO)制定的一个用于计算机或通信系统间互联的标准体系,一般称为OSI参考模型或七层模型。

TCP/IP四层模型是在OSI七层模型基础之上精简发展过来的。
没有OSI七层模型就没有TCP/IP四层模型。
由于OSI七层模型比较繁琐,所以当前几乎不用。目下TCP/IP四层模型应用最多。

1.OSI七层协议:从下到上依次为 物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。

 

2.每层对应的协议及作用如下

协议

物理层:RJ45、CLOCK、IEEE802.3 (中继器,集线器) 
数据链路:PPP、FR、HDLC、VLAN、MAC (网桥,交换机) 
网络层:IP、ICMP、ARP、RARP、OSPF、IS-IS、IPX、BGP、RIP、IGRP、 (路由器)
传输层:TCP、UDP、SPX 
会话层:NFS、SQL、NETBIOS、RPC 
表示层:JPEG、MPEG、ASII HTTP/HTML · FTP · Telnet ·
应用层:FTP、DNS、Telnet、DHCP、SMTP、HTTP、POP3、WWW、NFS 

每一层的作用如下: 

物理层:通过媒介传输比特,确定机械及电气规范(比特Bit) 
数据链路层:将比特组装成帧和点对点的传递(帧Frame) 
网络层:负责数据包从源到宿的传递和网际互连(包PackeT) 
传输层:提供端到端的可靠报文传递和错误恢复(段Segment) 
会话层:建立、管理和终止会话(会话协议数据单元SPDU) 
表示层:对数据进行翻译、加密和压缩(表示协议数据单元PPDU) 
应用层:允许访问OSI环境的手段(应用协议数据单元APDU

在OSI模型中ARP协议属于链路层;而在TCP/IP模型中,ARP协议属于网络层。 

二、五层体系结构: 

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

五层协议只是OSI和TCP/IP的综合,实际应用还是TCP/IP的四层结构。为了方便可以把下两层称为网络接口层。

 

 

三.TCP/IP四层协议 :自下而上依次是:网络接口层、网络层、传输层、应用层。

   从实质上讲,只有上边三层,网络接口层没有什么具体的内容。

  • 通信方式:

      单工通信:只能由A主机向B主机发送消息,通信是单向的。

     半双工通信:同一时间只能是由A主机向B主机或者是B主机向A主机发送信息,不能同时发送消息。

     全双工通信: A主机和B主机可以实现在同一时间内既接收消息,又发送消息,极大的提升了通信效率。

  • IP协议(网际协议):

IP协议是TCP/IP体系中最主要的协议之一,一切在IP之下,一切又在IP之上。我们常说的应该是IP协议族,还包含配套的协议:

  • ARP(地址解析协议):将网络的IP地址转化为实际的物理地址(MAC地址),并存储在MAC地址表中。

  • ICMP(网际控制报文协议):用于进行差错情况和异常情况的反馈,分为询问报文和差错报告报文。

  • IGMP(网际组管理协议):用于控制和管理多播和组播的协议。

3.IP地址

A类地址以0开头,第一个字节作为网络号,地址范围为:0.0.0.0~127.255.255.255
B类地址以10开头,前两个字节作为网络号,地址范围是:127.0.0.0~191.255.255.255
C类地址以110开头,前三个字节作为网络号,地址范围是:192.0.0.0~223.255.255.255
D类地址以1110开头,地址范围是224.0.0.0~239.255.255.255,D类地址作为组播地址(一对多的通信)
E类地址以1111开头,地址范围是240.0.0.0~255.255.255.255,E类地址为保留地址,供以后使用
注:只有A、B、C由网络号和主机号之分,D、E没有划分网络号和主机号
1)网络地址
IP地址由网络号(包括子网号)和主机号组成,网络地址的主机号全为0,网络地址代表着整个网络。

2)广播地址
广播地址通常称为直接广播地址,是为了区分受限广播地址。
广播地址与网络地址的主机号正好相反,广播地址中,主机号为全1。当向某个网络的广播地址发送消息时,该网络内的所有主机都能收到该广播消息。

3)组播地址
D类地址就是组播地址

4)255.255.255.255
该IP地址指的是受限的广播地址。
一般的广播地址(直接广播地址)能够通过某些路由器(当然不是所有的路由器),而受限的广播地址则不能通过路由器

5)0.0.0.0
常用于寻找自己的IP地址,例如在RARP,BOOTP和DHCP协议中,若某个位置IP地址的无盘机想要知道自己的IP地址,他就以255.255.255.255为目的地址,像本地范围(具体而言是被各个路由器屏蔽的范围内)的服务器发送IP请求分组

6)回环地址
127.0.0.0/8被用作回环地址,会换地址表示本机的地址,常用于对本机的测试,用得最多的是127.0.0.1

7)A、B、C类私有地址
私有地址(Private Address)也叫专用地址,他们不会在全球使用,只具有本地意义
A类私有地址:10.0.0.0/8,范围是:10.0.0.0~10.255.255.255
B类私有地址:172.16.0.0/12,范围是:172.16.0.0~172.31.255.255
C类私有地址:192.168.0.0/16,范围是:192.168.0.0~192.168.255.255

4.子网掩码及网络划分
   随着互联网应用的不断扩大,原先的IPv4的弊端也逐渐暴露出来,即网络号站位太多,而主机号位太少,所以其能提供的主机地址也越来越稀缺,目前除了使用NAT在企业内部利用保留地址自行分配以外,通常都对一个高类别的IP地址进行再划分,以形成多个子网,提供给不同规模的用户群使用
为了再网络分段情况下有效利用IP地址,通过对主机号的高位部分作为子网号,从通常的网络位界限中扩展或压缩子网掩码,用来创建某类地址的更多子网。但创建更多的子网时,在每个子网上的可用主机地址数目会比原先减少。

什么是子网掩码?
子网掩码是标志两个IP地址是否属于一个子网的,也是32位二进制地址,其每一个1代表该位是网络位,0代表主机位。它和IP地址一样也是使用点式十进制来表示的。如果两个IP地址在子网掩码的按位与计算所得结果相同,即表明它们共属于同一个子网中。

注:在计算子网掩码时,要注意IP地址中的保留地址,即"0"地址和广播地址,他们是指主机地址或网络全为"0"或"1"时的IP地址,他们代表着本网络地址和广播地址,一般是不能被计算在内的。

  • TCP三次握手建立连接

1.为什么要使用三次握手

  为了防止已失效的连接请求报文段突然又传送到了服务端,因而产生错误,主要目的防止server端一直等待,浪费资源。

如果采用两次的话,会出现下面这种情况。

解释:比如是A机要连到B机,结果发送的连接信息由于某种原因没有到达B机;于是,A机又发了一次,结果这次B收到了,于是就发信息回来,两机就连接。传完东西后,断开。结果这时候,原先没有到达的连接信息突然又传到了B机,于是B机发信息给A,然后B机就以为和A连上了,这个时候B机就在等待A传东西过去

2.三次握手:

第一次握手:客户端要和服务端进行通信,首先要告知服务端一声,遂发出一个SYN=1的连接请求信号,”服务端哥哥,我想给你说说话”。

第二次握手:当服务端接收到客户端的连接请求,此时要给客户端一个确认信息,”我知道了(ACK),我这边已经准备好了,你现在能连吗(SYN)”。

第三次握手:当客户端收到了服务端的确认连接信息后,要礼貌的告知一下服务端,“好的,咱们开始联通吧(ACK)”。

到此整个建立连接的过程已经结束,接下来就是双方你一句我一句甚至同时交流传递信息的过程了。

3.为什么使用四次挥手?

因为TCP是全双工模式

第一次挥手:主动关闭方发送一个FIN,用来关闭主动方到被动关闭方的数据传送,也就是主动关闭方告诉被动关闭方:我已经不 会再给你发数据了(当然,在fin包之前发送出去的数据,如果没有收到对应的ack确认报文,主动关闭方依然会重发这些数据),但是,此时主动关闭方还可 以接受数据。

第二次挥手:被动关闭方收到FIN包后,发送一个ACK给对方,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号)。
第三次挥手:被动关闭方发送一个FIN,用来关闭被动关闭方到主动关闭方的数据传送,也就是告诉主动关闭方,我的数据也发送完了,不会再给你发数据了。
第四次挥手:主动关闭方收到FIN后,发送一个ACK给被动关闭方,确认序号为收到序号+1,至此,完成四次挥手

4.释放连接时,为什么在TIME_WAIT状态下等待2MSL?

保证最后一个ACK报文段能到达服务端;

(MSL,Maximum Segment Life,这是TCP 对TCP Segment 生存时间的限制)

 

1.TCP与UDP的区别:

TCP:(1)TCP是传输控制协议,提供的是面向连接、可靠的字节流服务。

       (2)通信双方彼此交换数据前,必须先通过三次握手协议建立连接,之后才能传输数据。

       (3)TCP提供超时重传,丢弃重复数据,检验数据,流量控制等功能,保证数据能从一端传到另一端。

UDP:(1)UDP是用户数据报协议,是一个简单的面向无连接的协议。

        (2)UDP不提供可靠的服务。在数据数据前不用建立连接故而传输速度很快。

       (3)UDP主要用户流媒体传输,IP电话等对数据可靠性要求不是很高的场合。

   简单的总结如下,方便记忆:         

                           TCP                    UDP 
是否连接          面向连接          面向非连接 
传输可靠性          可靠                  不可靠 
应用场合       传输大量数据        少量数据 
速度                       慢                     快

2.交换机与路由器有什么区别?

①工作所处的OSI层次不一样,交换机工作在OSI第二层数据链路层,路由器工作在OSI第三层网络层

②寻址方式不同:交换机根据MAC地址寻址,路由器根据IP地址寻址

③转发速不同:交换机的转发速度快,路由器转发速度相对较慢。

3.数据链路层使用的信道主要有两种类型:

1.点对点信道

2.广播信道

数据链路层有三个基本问题:

1.封装成帧

2.透明传输

3.差错检测

4.ARP地址解析协议
​ ARP为IP地址到对应的硬件地址之间提供动态映射。ARP的功能主要是将逻辑的IP地址转化为对应的物理地址。

​ ARP 高效运作的关键是由于每个主机上都有 个 ARP 速缓存。这个高速缓存存放的是最近Internet地址到硬件地址之间的映射记录。高速缓存中每一项的存时间般为20分钟,起始时间从被创建时开始算起

ARP地址解析过程:

​ 1.当主机A需要向本局域网的机器B发送数据报文时候,需要在其ARP高速缓冲区查看是否有无主机B的IP地址,如果有,就将他的对应硬件地址取出,再将这个地址写入到MAC帧,然后通过局域网把该MAC帧发往此硬件地址。

​ 如果没有需要进行广播请求:

​ 1.广播发送一个ARP请求分组,然后写入A的IP地址和硬件地址,还有B的IP地址进行询问B的硬件地址

​ 2.本局域网上的所有主机接收到ARP广播分组

​ 3.主机B收到ARP分组,并向A返回自己的硬件地址和IP,局域网的其他主机不会做出反应

​ 4.主机A收到返回结果后,将B的IP和硬件地址对应的写入高速缓存

5.RARP(反向地址转换协议):
反向地址转换协议就是将局域网中某个主机的物理地址转换为IP地址,比如局域网中有一台主机只知道物理地址而不知道IP地址,那么可以通过RARP协议发出征求自身IP地址的广播请求,然后由RARP服务器负责回答。RARP协议广泛用于获取无盘工作站的IP地址。
①给主机发送一个本地的RARP广播,在此广播包中,声明自己的MAC地址并且请求任何收到此请求的RARP服务器分配一个IP地址;
②本地网段上的RARP服务器收到此请求后,检查其RARP列表,查找该MAC地址对应的IP地址;
③如果存在,RARP服务器就给源主机发送一个响应数据包并将此IP地址提供给对方主机使用;
④如果不存在,RARP服务器对此不做任何的响应;
⑤源主机收到从RARP服务
通信方式

6.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 需要认证证书
 

7.TTL是什么?作用是什么?哪些工具会用到它(ping traceroute ifconfig  netstat)?

TTL是指生存时间,简单来说,它表示了数据包在网络中的时间,经过一个路由器后TTL就减一,这样TTL最终会减为0,当TTL为0时,则将数据包丢弃,这样也就是因为两个路由器之间可能形成环,如果没有TTL的限制,则数据包将会在这个环上一直死转,由于有了TTL,最终TTL为0后,则将数据包丢弃。ping发送数据包里面有TTL,但是并非是必须的,即是没有TTL也是能正常工作的,traceroute正是因为有了TTL才能正常工作,ifconfig是用来配置网卡信息的,不需要TTL,netstat是用来显示路由表的,也是不需要TTL的。

8.常用端口号:

 21端口:FTP 文件传输服务(TCP) 
 22端口:安全登录
 23端口:TELNET 远程登陆(TCP)
 25端口:SMTP 简单邮件传输服务(TCP)
 53端口:DNS 域名解析服务(UDP)
 80端口:HTTP 超文本传输服务(TCP)
 110端口:POP3 “邮局协议版本3”使用的端口(TCP)
 443端口:HTTPS 加密的超文本传输服务(TCP)
 1080端口:SOCKS代理协议服务器常用
 3306端口:MySQL数据库(UDP)

 

NAT协议、DHCP协议、DNS协议的作用

NAT协议:网络地址转换(NAT,Network AddressTranslation)属接入广域网(WAN)技术,

是一种将私有(保留)地址转化为合法IP地址的转换技术,它被广泛应用于各种类型Internet接入方式和各种类型的网络中。原因很简单,NAT不仅完美地解决了lP地址不足的问题,而且还能够有效地避免来自网络外部的攻击,隐藏并保护网络内部的计算机。

借助于NAT,私有(保留)地址的"内部"网络通过路由器发送数据包时,私有地址被转换成合法的IP地址,一个局域网只需使用少量IP地址(甚至是1个)即可实现私有地址网络内所有计算机与Internet的通信需求。

DHCP协议:动态主机设置协议(Dynamic Host ConfigurationProtocol, DHCP)

是一个局域网的网络协议,使用UDP协议工作,主要有两个用途:给内部网络或网络服务供应商自动分配IP地址,给用户或者内部网络管理员作为对所有计算机作中央管理的手段。

DNS协议:DNS 是域名系统 (Domain Name System) 的缩写,是因特网的一项核心服务,它作为可以将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。

例如:在浏览器中输入www.baidu.com后执行的全部过程
①浏览器获取输入的域名www.baidu.com 
② 浏览器向DNS请求解析www.baidu.com的IP地址 
③ 域名系统DNS解析出百度服务器的IP地址 
④浏览器与该服务器建立TCP连接(默认端口号80) 
⑤浏览器发出HTTP请求,请求百度首页 
⑥服务器通过HTTP响应把首页文件发送给浏览器 
⑦TCP连接释放 
⑧浏览器将首页文件进行解析,并将Web页显示给用

http常见状态码有哪些?

状态码告知从服务器端返回的请求结果。

  •  2开头状态码

    2xx (成功)表示成功处理了请求的状态代码

200 (成功) 服务器已成功处理了请求。 通常。
  • 3开头状态码

    3xx (重定向) 表示要完成请求,需要进一步操作。 通常,这些状态代码用来重定向。

304 (未修改) 自从上次请求后,请求的网页未修改过。 服务器返回此响应时,不会返回网页内容。
  • 4开头状态码

    4xx(请求错误) 这些状态代码表示请求可能出错,妨碍了服务器的处理

1:400 (错误请求) 服务器不理解请求的语法。
 
2:403 (禁止) 服务器拒绝请求。

3:404 (未找到) 服务器找不到请求的网页。
  • 5开头状态码

   5xx(服务器错误)这些状态代码表示服务器在尝试处理请求时发生内部错误。 这些错误可能是服务器本身的错误,而不是请求出错

500 (服务器内部错误) 服务器遇到错误,无法完成请求。

501 (尚未实施) 服务器不具备完成请求的功能。 例如,服务器无法识别请求方法时可能会返回此代码。

502 (错误网关) 服务器作为网关或代理,从上游服务器收到无效响应。

503 (服务不可用) 服务器目前无法使用(由于超载或停机维护)。 通常,这只是暂时状态。

504 (网关超时) 服务器作为网关或代理,但是没有及时从上游服务器收到请求。

505 (HTTP 版本不受支持) 服务器不支持请求中所用的 HTTP 协议版本。

重点:200,304,403,404,500
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值