目录
1. 计算机网络模型
2. ARP是地址解析协议,简单语言解释一下工作原理。
3. DNS ( Domain Name System )域名系统,简单描述其工作原理。
4. TCP 和 UDP 的区别?
5. 网关的作用?网桥的作用?
6. 详细解释一下 IP 协议的定义,在哪个层上面,主要有什么作用?
7. 请问交换机和路由器分别的实现原理是什么?分别在哪个层次上面实现的?
8. 防火墙的端口防护是指?
9. 面向连接和非面向连接的服务的特点是什么?
10. TCP 的三次握手过程?为什么会采用三次握手,若采用二次握手可以吗?
11. 网络分类
12. 网络的拓扑结构
13. 运输层的协议?
14. 运输层协议与网络层协议的区别?
15. 两台笔记本电脑连起来后 ping 不同,你觉得可能存在哪些问题?
16. 数据链路层协议可能提供的服务?
17. TCP三次握手和四次挥手的全过程
1.计算机网络模型
OSI ( Open System Interconnect ):开放系统互联,是一个七层的计算机网络模型,分别为:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。
每一层的作用如下:
物理层:通过媒介传输比特,确定机械及电气规范(比特Bit)
数据链路层:将比特组装成帧和点到点的传递(帧Frame)
网络层:负责数据包从源到宿的传递和网际互连(包PackeT)
传输层:提供端到端的可靠报文传递和错误恢复(段Segment)
会话层:建立、管理和终止会话(会话协议数据单元SPDU)
表示层:对数据进行翻译、加密和压缩(表示协议数据单元PPDU)
应用层:允许访问OSI环境的手段(应用协议数据单元APDU)
TCP/IP ( Transmission Control Protocol/Internet Protocol ):传输控制协议 / 因特网互联协议,是一个四层的计算机网络模型,分别为:网络接口层、网络层、传输层和应用层。结合 OSI 和 TCP/IP 产生了一个五层结构,分别为:物理层、数据链路层、网络层、传输层和应用层。 Internet 就是采用的TCP/IP 协议。
集线器工作在 OSI 模型的物理层,网卡工作在 OSI 模型的物理层,交换机工作在数据链路层,路由器工作在网络层。
2.ARP 是地址解析协议,简单语言解释一下工作原理。
( 1 )首先,每个主机都会在自己的 ARP 缓冲区中建立一个 ARP 列表,以表示 IP 地址和 MAC 地址之间的对应关系。
( 2 )当源主机要发送数据时,首先检查 ARP 列表中是否有对应 IP 地址的目的主机的 MAC 地址,如果有,则直接发送数据,如果没有,就向本网段的所有主机发送 ARP 数据包,该数据包包括的内容有:源主机 IP 地址,源主机 MAC 地址,目的主机的 IP 地址。
( 3 )当本网络的所有主机收到该 ARP 数据包时,首先检查数据包中的 IP 地址是否是自己的 IP 地址,如果不是,则忽略该数据包,如果是,则首先从数据包中取出源主机的 IP 和 MAC 地址写入到 ARP 列表中,如果已经存在,则覆盖,然后将自己的 MAC 地址写入 ARP 响应包中,告诉源主机自己是它想要找的 MAC 地址。
( 4 )源主机收到 ARP 响应包后。将目的主机的 IP 和 MAC 地址写入 ARP 列表,并利用此信息发送数据。如果源主机一直没有收到 ARP 响应数据包,表示 ARP 查询失败。
广播发送 ARP 请求,单播发送 ARP 响应。
3. DNS ( Domain Name System )域名系统,简单描述其工作原理。
当 DNS 客户机需要在程序中使用名称时,它会查询 DNS 服务器来解析该名称。客户机发送的每条查询信息包括三条信息:包括:指定的 DNS 域名,指定的查询类型, DNS 域名的指定类别。基于 UDP 服务,端口 53. 该应用一般不直接为用户使用,而是为其他应用服务,如 HTTP , SMTP 等在其中需要完成主机名到 IP 地址的转换。
4.TCP 和 UDP 的区别?
TCP 提供面向连接的、可靠的数据流传输,而 UDP 提供的是非面向连接的、不可靠的数据流传输。 TCP 传输单位称为 TCP 报文段, UDP 传输单位称为用户数据报。 TCP 注重数据安全性, UDP 数据传输快,因为不需要连接等待,少了许多操作,但是其安全性却一般。
5.网关的作用?网桥的作用?
网关:通过它可以访问外网。
网桥:是一个局域网与另一个局域网之间建立连接的桥梁。
6.详细解释一下 IP 协议的定义,在哪个层上面,主要有什么作用? TCP 和 UDP 呢?
IP 协议是网络层的协议,它是为了实现相互连接的计算机进行通信设计的协议,它实现了自动路由功能,即自动寻径功能。 TCP 是传输层的协议,它向下屏蔽 IP 协议的不可靠传输的特性,向上提供一种面向连接的、可靠的点到点数据传输。 TCP 在可靠性和安全性上等更有保证。 UDP 也是传输层协议,它提供的是一种非面向连接的,不可靠的数据传输,这主要是有些应用需要更快速的数据传输,比如局域网内的大多数文件传输都是基于 UDP 的。 UDP 在传输速率上更快,开销更小。
7.请问交换机和路由器分别的实现原理是什么?分别在哪个层次上面实现的?
交换机用于局域网,利用主机的 MAC 地址进行数据传输,而不需要关心 IP 数据包中的 IP 地址,它工作于数据链路层。路由器识别网络是通过 IP 数据包中 IP 地址的网络号进行的,所以为了保证数据包路由的正确性,每个网络都必须有一个唯一的网络号。路由器通过 IP 数据包的 IP 地址进行路由的(将数据包递交给哪个下一跳路由器)。路由器工作于网络层。由于设备现在的发展,现在很多设备既具有交换又具有路由功能,两者的界限越来越模糊。
8.防火墙的端口防护是指?
指通过对防火墙的端口开关的设置,关闭一些非必需端口,达到一定安全防护目的的行为。
9.面向连接和非面向连接的服务的特点是什么?
面向连接的服务是按照电话系统建模的。
面向连接的服务,通信双方在进行通信之前,要先在双方建立起一个完整的可以彼此沟通的通道,在通信过程中,整个连接的情况一直可以被实时地监控和管理。
无连接的服务是按照邮政系统建模的。
非面向连接的服务,不需要预先建立一个联络两个通信节点的连接,需要通信的时候,发送节点就可以往网络上发送信息,让信息自主地在网络上去传,一般在传输的过程中不再加以监控。
10.TCP 的三次握手过程?为什么会采用三次握手,若采用二次握手可以吗?
答:建立连接的过程是利用客户服务器模式,假设主机 A 为客户端,主机 B 为服务器端。
( 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 )采用两次握手不行,原因就是上面说的实效的连接请求的特殊情况。
11.网络分类
网络按地域范围分类:局域网、城域网、广域网。
网络按使用者分类为:公共网和专用网。
12.网络的拓扑结构:
主要有:星形、总线型、环形以及树型、全连接、不规则网状。
13.运输层的协议?
TCP ,传输单位称为: TCP 报文段
UDP ,传输单位称为:用户数据报
其端口的作用是识别那个应用程序在使用该协议。
14.运输层协议与网络层协议的区别?
网络层协议负责的是提供主机间的逻辑通信
运输层协议负责的是提供进程间的逻辑通信
15.两台笔记本电脑连起来后 ping 不同,你觉得可能存在哪些问题?
( 1 )首先考虑是否是网络的问题
( 2 )局域网设置问题,电脑互联是要设置的。看是否安装了必要的网络协议,最重要的是 IP 地址是否设置正确。
( 3 )网卡驱动未安装正确
( 4 )防火墙设置有问题
( 5 )是否有什么软件阻止了 ping 包
16.数据链路层协议可能提供的服务?
成帧、链路访问、透明传输、可靠交付、流量控制、差错检测、差错纠正、半双工和全双工。最重要的是帧定界(成帧)、透明传输以及差错检测。
17.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占用一个序号)。
第三次挥手:被动关闭方发送一个FIN,用来关闭被动关闭方到主动关闭方的数据传送,也就是告诉主动关闭方,我的数据也发送完了,不会再给你发数据了。
第四次挥手:主动关闭方收到FIN后,发送一个ACK给被动关闭方,确认序号为收到序号+1,至此,完成四次挥手。