面试笔记:计算机网络


1. OSI,TCP/IP,五层协议的体系结构,以及各层协议

体系分层
OSI(7层)物理层、数据链路层、网络层、传输层、会话层、表示层、应用层
TCP/IP分层(4层)网络接口层、 网际层、运输层、 应用层
五层协议(5层)物理层、数据链路层、网络层、运输层、 应用层
OSI协议作用
物理层RJ45、CLOCK、IEEE802.3(中继器,集线器)通过媒介传输比特,确定机械及电气规范(比特Bit)
数据链路层PPP、FR、HDLC、VLAN、MAC(网桥,交换机)将比特组装成帧和点到点的传递(帧Frame)
网络层IP、ICMP、ARP、RARP、OSPF、IPX、RIP、IGRP(路由器)负责数据包从源到宿的传递和网际互连(包Packet)
传输层TCP、UDP、SPX提供端到端的可靠报文传递和错误恢复(段Segment)
会话层NFS、SQL、NETBIOS、RPC建立、管理和终止会话(会话协议数据单元SPDU)
表示层JPEG、MPEG、ASII对数据进行翻译、加密和压缩(表示协议数据单元PPDU)
应用层FTP、DNS、Telnet、SMTP、HTTP、WWW、NFS允许访问OSI环境的手段(应用协议数据单元APDU)

2. ARP是地址解析协议,简单语言解释一下工作原理

  • 每个主机都会在ARP缓冲区中建立一个ARP列表,表示IP地址MAC地址之间的对应关系
  • 源主机要发送数据时,首先检查ARP列表中是否有对应IP地址目的主机MAC地址,如果有,则直接发送数据,如果没有,就向本网段的所有主机发送ARP数据包,该数据包包括的内容有:源主机IP地址,源主机MAC地址,目的主机IP地址
  • 当网络所有主机收到该ARP数据包时,首先检查数据包中的IP地址是否是自己的IP地址,如果不是,则忽略该数据包,如果是,则首先从数据包中取出源主机IP和MAC地址写入到ARP列表中,如果已经存在,则覆盖,然后将自己的MAC地址写入ARP响应包中,告诉源主机自己是它想要找的MAC地址
  • 源主机收到ARP响应包后。将目的主机IP和MAC地址写入ARP列表,并利用此信息发送数据。如果源主机一直没有收到ARP响应包,表示ARP查询失败。
  • 广播发送ARP请求,单播发送ARP响应。

3. ICMP、TFTP、HTTP、NAT、DHCP协议的介绍

  • ICMP(Internet Control Message Protocol,因特网控制报文协议)
    TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。
  • TFTP(Trivial File Transfer Protocol,简单文件传输协议)
    TCP/IP协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务。
  • HTTP(HyperText Transfer Protocol,超文本传输协议)
    是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。
  • NAT(Network Address Translation,网络地址转换)
    网络地址转换属接入广域网(WAN)技术,是一种将私有(保留)地址转化为合法IP地址的转换技术。
  • DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)
    是一种让系统得以连接到网络上,并获取所需要的配置参数手段,使用UDP协议工作。具体用途:给内部网络或网络服务供应商自动分配IP地址,给用户或者内部网络管理员作为对所有计算机作中央管理的手段。

4. 描述RARP协议

  • RARP(Reverse Address Resolution Protocol)是反向地址解析协议。
  • 作用:完成硬件地址到IP地址的映射,主要用于无盘工作站,因为给无盘工作站配置的IP地址不能保存。
  • 工作流程:在网络中配置一台RARP服务器,里面保存着IP地址和MAC地址的映射关系,当无盘工作站启动后,就封装一个RARP数据包,里面有其MAC地址,然后广播到网络上去,当服务器收到请求包后,就查找对应的MAC地址的IP地址装入响应报文中发回给请求者。
  • 因为需要广播请求报文,因此RARP只能用于具有广播能力的网络。

5. TCP三次握手和四次挥手的全过程

三次握手:(TCP建立连接)

  • 第一次握手:客户端发送SYN包(syn=x)的数据包到服务器,并进入SYN_SEND状态,等待服务器确认;
  • 第二次握手:服务器收到SYN包,必须确认客户的SYN(ack=x+1),同时自己也发送一个SYN包(syn=y),即SYN+ACK包,此时服务器进入SYN_RECV状态;
  • 第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=y+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。

握手过程中传送的包里不包含数据,三次握手完毕后,客户端与服务器才正式开始传送数据。理想状态下,TCP连接一旦建立,在通信双方中的任何一方主动关闭连接之前,TCP 连接都将被一直保持下去。

四次挥手:(TCP断开连接)

  • 第一次挥手:主动关闭方发送一个FIN,用来关闭主动方到被动关闭方的数据传送,也就是主动关闭方告诉被动关闭方:我已经不会再给你发数据了(当然,在fin包之前发送出去的数据,如果没有收到对应的ack确认报文,主动关闭方依然会重发这些数据),但是,此时主动关闭方还可以接受数据
  • 第二次挥手:被动关闭方收到FIN包后,发送一个ACK给对方,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号,SYN和FIN都有seq序号)。
  • 第三次挥手:被动关闭方发送一个FIN,用来关闭被动关闭方到主动关闭方的数据传送,也就是告诉主动关闭方,我的数据也发送完了,不会再给你发数据了。
  • 第四次挥手:主动关闭方收到FIN后,发送一个ACK给被动关闭方,确认序号为收到序号+1,至此,完成四次挥手。

6. 在浏览器中输入www.baidu.com后执行的全部过程

  • 客户端浏览器通过DNS解析到www.baidu.com的IP地址220.181.27.48,通过这个IP地址找到客户端到服务器的路径。客户端浏览器发起一个HTTP会话到220.181.27.48,然后通过TCP进行封装数据包,输入到网络层
  • 在客户端的传输层,把HTTP会话请求分成报文段,添加源和目的端口,如服务器使用80端口监听客户端的请求,客户端由系统随机选择一个端口如5000,与服务器进行交换,服务器把相应的请求返回给客户端的5000端口。然后使用IP层的IP地址查找目的端。
  • 客户端的网络层不用关心应用层或者传输层的东西,主要做的是通过查找路由表确定如何到达服务器,期间可能经过多个路由器,这些都是由路由器来完成的工作,我不作过多的描述,无非就是通过查找路由表决定通过那个路径到达服务器。
  • 客户端的链路层,包通过链路层发送到路由器,通过邻居协议查找给定IP地址的MAC地址,然后发送ARP请求查找目的地址,如果得到回应后就可以使用ARP的请求应答交换的IP数据包现在就可以传输了,然后发送IP数据包到达服务器的地址。

7. TCP和UDP的区别?

  • TCP提供面向连接的、可靠的数据流传输;
    UDP提供的是非面向连接的、不可靠的数据流传输。
  • TCP传输单位称为TCP报文段;
    UDP传输单位称为用户数据报。
  • TCP注重数据安全性;
    UDP数据传输快,因为不需要连接等待,少了许多操作,但是其安全性却一般。
TCP对应的协议UDP对应的协议
FTP:定义了文件传输协议。端口21DNS:用于域名解析服务,将域名地址转换为IP地址。端口53
Telnet:一种用于远程登陆的端口,用户可以以自己的身份远程连接到计算机上,可提供基于DOS模式下的通信服务。端口23SNMP:简单网络管理协议,是用来管理网络设备的。由于网络设备很多,无连接的服务就体现出其优势。端口161
SMTP:邮件传送协议,用于发送邮件。端口25TFTP(Trival File Transfer Protocal):简单文件传输协议。端口69
POP3:它是和SMTP对应,POP3用于接收邮件。端口110
HTTP:是从Web服务器传输超文本到本地浏览器的传送协议

8. DNS域名系统,简单描述其工作原理。

当DNS客户机需要在程序中使用名称时,它会查询DNS服务器来解析该名称。客户机发送的每条查询信息包括三条信息:

  • 指定的DNS域名
  • 指定的查询类型
  • DNS域名的指定类别

DNS域名系统基于UDP服务,端口53。该应用一般不直接为用户使用,而是为其他应用服务,如HTTP、SMTP等在其中需要完成主机名到IP地址的转换。

9. TCP的三次握手过程?为什么会采用三次握手,若采用二次握手可以吗?

1、TCP的三次握手过程:

  • 主机A向B发送连接请求;
  • 主机B对收到的主机A的报文段进行确认;
  • 主机A再次对主机B的确认进行确认。

2、采用三次握手是为了防止失效的连接请求报文段突然又传送到主机B,因而产生错误。
失效的连接请求:主机A发出的连接请求没有收到主机B的确认,于是经过一段时间后,主机A又重新向主机B发送连接请求,且建立成功,顺序完成数据传输。主机A第一次发送的连接请求并没有丢失,而延迟到达主机B,主机B以为是主机A又发起的新连接,于是主机B同意连接,并向主机A发回确认,但是此时主机A根本不会理会,主机B就一直等待主机A发送数据,导致主机B的资源浪费。

3、采用两次握手不行,原因就是上面说的失效的连接请求的特殊情况。

10. 交换机、路由器、网关的概念,各自的用途

1、交换机
在计算机网络系统中,交换机是针对共享工作模式的弱点而推出的。交换机拥有一条高带宽的背部总线和内部交换矩阵。交换机的所有的端口都挂接在这条背部总线上,当控制电路收到数据包以后,处理端口会查找内存中的地址对照表以确定目的MAC的网卡挂接在哪个端口上,通过内部交换矩阵迅速将数据包传送到目的端口。目的MAC若不存在,交换机才广播到所有的端口,接收端口回应后交换机会“学习”新的地址,并把它添加入内部地址表中。
交换机工作于第二层数据链路层。交换机内部的CPU会在每个端口成功连接时,通过ARP协议学习它的MAC地址,保存成一张ARP表。在今后的通讯中,发往该MAC地址的数据包将仅送往其对应的端口,而不是所有的端口。因此,交换机可用于划分数据链路层广播,即冲突域;但它不能划分网络层广播,即广播域。

2、路由器
路由器(Router)是一种计算机网络设备,提供了路由与转送两种重要机制,可以决定数据包从来源端到目的端所经过的路由路径(host到host之间的传输路径),这个过程称为路由;将路由器输入端的数据包移送至适当的路由器输出端(在路由器内部进行),这称为转送。
路由工作在第三层网络层,例如网际协议。
路由器的一个作用是连通不同的网络,另一个作用是选择信息传送的线路。

3、网关
网关(Gateway)是连接两个网络的设备,区别于路由器(由于历史的原因,许多有关TCP/IP 的文献曾经把网络层使用的路由器(Router)称为网关,在今天很多局域网采用都是路由来接入网络,因此现在通常指的网关就是路由器的IP),经常在家庭中或者小型企业网络中使用,用于连接局域网和Internet。 网关也经常指把一种协议转成另一种协议的设备,比如语音网关。
在传统TCP/IP术语中,网络设备只分成两种,一种为网关(gateway),另一种为主机(host)。网关能在网络间转递数据包,但主机不能转送数据包。在主机(又称终端系统,end system)中,数据包需经过TCP/IP四层协议处理,但是在网关(又称中介系统,intermediate system)只需要到达网际层(Internet layer),决定路径之后就可以转送。在当时,网关(gateway)与路由器(router)还没有区别。
在现代网络术语中,网关与路由器的定义不同。网关能在不同协议间移动数据,而路由器是在不同网络间移动数据,相当于传统所说的IP网关。网关是连接两个网络的设备,对于语音网关来说,他可以连接PSTN网络和以太网,这就相当于VOIP,把不同电话中的模拟信号通过网关而转换成数字信号,而且加入协议再去传输。在到了接收端的时候再通过网关还原成模拟的电话信号,最后才能在电话机上听到。
对于以太网中的网关只能转发三层以上数据包,这一点和路由是一样的。而不同的是网关中并没有路由表,他只能按照预先设定的不同网段来进行转发。网关最重要的一点就是端口映射,子网内用户在外网看来只是外网的IP地址对应着不同的端口,这样看来就会保护子网内的用户。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值