首页 > 编程知识 正文

计算机网络全部协议(数据结构常见面试题)

时间:2023-05-04 02:21:48 阅读:72246 作者:3352

1 .疑问1一台电脑怎么向另一台电脑发送信息?

两台电脑什么线路都没有连接,怎么能给他发信息?

3世界上有很多电脑,你怎么能找到那台有特色的电脑? 据说我们可以用MAC或IP制作唯一的标志呢。 但是,我有点怀疑。 世界那么大,电脑很多。 有了这个标志,我们怎么才能找到他? 要巡视所有电脑吗?

4多个程序同时向一台计算机发送消息。 计算机如何准确地把这些消息带到这些不同的程序中?

5如果丢失了发送的信息怎么办?

通过以下说明,我们来回答以上问题。

2 .协议首先计算机之间要通信,双方必须基于相同的规则。 例如,如何找到目标,如何通信,所有这些都需要规则。 该规则将协议(protocol)这样与互联网相关的协议统称为TCP/IP,TCP/IP是IP协议通信过程中协议家族的总称。 在TCP/IP协议家族中,关键是分层。 接下来,我们来看看网络分层和各层协议。

3 .网络分层网络分层是标准的七层,即OSI七层模型。 TCP/IP5层模型和TCP/IP4层模型在OSI层进行了优化。

来看一张详细的

为什么要进行分层呢?

分层TCP/IP是有益的。 例如,如果internet仅由一个协议统一,并且需要在某个地方进行设计更改,则在对所有部分进行整体替换掉分层后,只需替换已更改的层次结构。 规划每个层间的接口部分后,输入每个层次内部的设计就能够自由改动了

有趣的是,分层后,设计也变得比较简单。 位于APP应用层的APP应用只能考虑分配给自己的任务,不需要弄清楚对方在地球上的位置、对方的传输路径如何、能否确保传输等问题。

4 .了解每层常见物理设备每层的详细信息之前,先看看每层物理设备吗?

5 .每层详细说明。 介绍OSI层模型。 这在面试中经常被考试。

5.1物理层负责通过光缆、电缆、双绞线、无线电波等连接两台计算机,连接计算机。 计算机之间主要根据电器的特性发送高低电压(电信号)进行通信。高电压对应数字1,低电压对应数字0

5.2数据链路层数据链路层来源:简单电信号0和1没有任何意义,必须规定电信号多少位一组,各组有什么意义。

数据链路层的功能:定义了电信号的分组方式。

虽然可以发送比特流,但是如果没有格式的话会很混乱,所以有“框架”。 为了利用“帧”数据块进行传输,确保数据通信的正确性,实现数据的有效差错控制,增加了检错等功能。

1 .以太网协议以太网协议规定一组电信号组成一个数据包,该数据包称为。 每一帧由两部分组成:标头(Head )和数据(Data )。

帧的大小通常为64 - 1518字节。 传输的数据较大时,分为多个帧进行传输。head包含:(固定18个字节)

发件人/源地址,6字节。 收件人/目标地址,6字节。 数据类型,6字节。 标头部分的字节是固定的,固定为18字节。

data包含:(最短46字节,最长1500字节)

的具体内容是head长度data长度=最短64字节,最长1518字节,超过最大限制时进行片发送

将一个计算出的数据通过物理层和链路层发送到另一台计算机,谁发送给谁,计算机和计算机之间如何区分,应该要给他们唯一的识别吧。 来自3358www.Sina.com/中的3358www.Sina.com/:到http://www.Sina.com /中的http://www.Sina.com

2. MAC地址连接到网络的所有计算机都有网络接口卡,每个网卡都有唯一的地址。 该地址为head计算机之间的数据传输是通过MAC地址唯一的检索、传输。源和目标地址通常以12位十六进制表示。 (前6位为制造商编号,后6位为流水线编号) )。

3 .广播:有了MAC地址,同一网络中的两台主机可以进行通信(ethernet

在同一子网中,计算机1向计算机4发送包含收件人MAC地址的数据包。 发送时,计算机a

通过广播的方式发送的,这时同一个子网中的计算机 2, 3 也会收到这个数据包的,然后收到这个数据包的计算机,会把数据包的 MAC 地址取出来,与自身的 MAC 地址对比,如果两者相同,则接受这个数据包,否则就丢弃这个数据包。计算机4发现包含自己的MAC地址,于是就进行响应。

5.3网络层

我们所处的网络,是由无数个子网络构成的。广播的时候,也只有同一个子网里面的计算机能够收到。假如没有子网这种划分的话,于是就通过ethernet、mac地址、广播的发送方式,世界上的计算机就可以彼此通信了,问题是世界范围的互联网是由一个个彼此隔离的小的局域网组成的,那么如果所有的通信都采用以太网的广播方式,那么一台机器发送的包全世界都会收到,这就会使得整个网络奔溃。

必须找出一种方法来区分哪些计算机属于同一广播域,哪些不是,如果是就采用广播的方式发送,如果不是,通过网关和路由向不同广播域/子网分发数据包

所以有了我们的网络层,它是处理分组在网络中的活动,比如分组的选路。
引入一套新的协议用来区分不同的广播域/子网,于是就有了IP 协议。

1. IP协议

IP协议,它所定义的地址,我们称之为IP地址。IP协议有两种版本,一种是 IPv4,另一种是 IPv6。我们目前大多数用的还是 IPv4,并且面试也重点考这个,所以我们来重点喵一下这个IPv6。

这个 IP 地址由 32 位的二进制数组成,我们一般把它分成4段的十进制表示,地址范围为0.0.0.0~255.255.255.255。

ip地址分成两部分

网络部分:标识子网主机部分:标识主机

网络部分和主机部分所占用的二进制位数是不固定的。
注意:单纯的ip地址段只是标识了ip地址的种类,从网络部分或主机部分都无法辨识一个ip所处的子网。

假如两台计算机的网络部分是一模一样的,我们就说这两台计算机是处于同一个子网中。例如 192.168.33.1 和 192.168.33.2, 假如这两个 IP 地址的网络部分为 24 位,主机部分为 8 位。那么他们的网络部分都为 192.168.33,所以他们处于同一个子网中。又例如:192.16.10.1与192.16.10.2并没有告诉你网络部分和主机部分各几位,所以不能确定二者处于同一子网。于是就有了子网掩码

子网掩码 它是表示子网络特征的一个参数,是一个32位二进制数字,它的网络部分全部为1,主机部分全部为0。比如上面的ip地址192.16.10.1,如果已知网络部分是前24位,主机部分是后8位,那么子网络掩码就是11111111.11111111.11111111.00000000,写成十进制就是255.255.255.0。

如何判断是否在一个子网中
是将两个IP地址与子网掩码分别进行AND运算(两个数位都为1,运算结果为1,否则为0),然后比较结果是否相同,如果是的话,就表明它们在同一个子网络中,否则就不是。

例如,192.168.33.1和192.168.33.2的子码掩码都为255.255.255.0,把IP与子码掩码相与,可以得到他们都为192.168.33.0,进而他们处于同一个子网中。

2. ARP协议

arp协议功能:广播的方式发送数据包,获取目标主机的mac地址。

有了IP协议,我们可以判断在一个一个子网中了,在一个子网中我们在链路层也讲过是通过MAC地址进行通信的,那我们现在只有目标的IP地址,如何才能拿到目标主机的MAC地址呢,这个时候又引出了ARP协议。

发送端主机通过广播的方式把自己的数据包发出去,所有主机接收后拆开包,发现目标ip为自己的,就响应,返回自己的mac。数据包格式如下:
数据包格式:(发送端的MAC地址,目标MAC地址,发送端IP地址,目标IP地址,数据)

3. ICMP协议

这个协议也经常考。让我们来了解一下。
为什么需要ICMP协议呢?一个新搭建好的网络,往往需要先进行一个简单的测试,来验证网络是否畅通;但是IP协议并不提供可靠传输。如果丢包了,IP协议并不能通知传输层是否丢包以及丢包的原因。于是就有了ICMP协议。

ICMP协议的功能主要有:

确认IP包是否成功到达目标地址通知在发送过程中IP包被丢弃的原因

我们需要注意几点:
1.ICMP是基于IP协议工作的,但是它并不是传输层的功能,因此仍然把它归结为网络层协议 。
2. ICMP只能搭配IPv4使用,如果是IPv6的情况下, 需要是用ICMPv6。

还记得我们平时的ping命令吗?其实就是用到了ICMP。

那么如何验证的呢?
(1)ping命令会先发送一个 ICMP Echo Request给对端
(2)对端接收到之后, 会返回一个ICMP Echo Reply
(3)若没有返回,就是超时了,会认为指定的网络地址不存在。

4.traceroute

traceroute也是基于ICMP协议实现的。
功能:
打印出可执行程序主机,一直到目标主机之前经历多少路由器。
注意:因为traceroute是路由器命令,在windows下应该是tracert命令。

5.4传输层

相比网络层的功能是建立主机到主机的通信。传输层的功能就是建立端口到端口的通信

通过物理层、数据链路层以及网络层的互相帮助,我们已经把数据成功从计算机1传送到计算机4了,可是,计算机B里面有各种各样的应用程序,计算机该如何知道这些数据是给谁的呢?通过端口(Port)。比如我们的熟知的8080。

补充:端口范围0-65535,0-1023为系统占用端口。

也就是说,只有有了IP和端口,我们才能进行准确着通信。这个时候可能有人会说,我输入IP地址的时候并没有指定一个端口啊。其实呢,对于有些传输协议,已经有设定了一些默认端口了。例如http的传输默认端口是80,这些端口信息也会包含在数据包里的。

也就是说,只有有了IP和端口,我们才能进行准确着通信。这个时候可能有人会说,我输入IP地址的时候并没有指定一个端口啊。其实呢,对于有些传输协议,已经有设定了一些默认端口了。例如http的传输默认端口是80,这些端口信息也会包含在数据包里的。

传输层最常见的两大协议是 TCP(Transmission Control Protocol,传输控制协议) 协议和 UDP(User Data Protocol,用户数据报协议) 协议,其中 TCP 协议与 UDP 最大的不同就是 TCP 提供可靠的传输,而 UDP 提供的是不可靠传输
这里看一下连接过程https://mp.weixin.qq.com/s/Pw8v6sZy95DV_TQkS5Llbg

5.5会话层

会话层提供的服务可使应用建立和维持会话,并能使会话获得同步。计算机收到了发送的数据,但是有那么多进程,具体哪个进程需要用到这个数据,则把他输送到那个进程。例如:如果80端口要用,所以系统内数据通信,将接收端口数据送至需求端口。还有就是会话层使用校验点可使通信会话在通信失效时从校验点继续恢复通信,即对信息的交互实现控制。这种能力对于传送大的文件极为重要。

5.6表示层

表示层的作用之一是为异种机通信提供一种公共语言,以便能进行互操作。现在正确接收到了需要的数据,但是因为数据在传输过程中可能基于安全性,或者是算法上的压缩,还有就是网络类型不同。那就得有一个沟通的桥梁来整理整理,还原出原本应该有的表示。例如,IBM主机使用EBCDIC编码,而大部分PC机使用的是ASCII码。在这种情况下,便需要会话层来完成这种转换。其他功能例如数据加密,数据压缩

5.7应用层

终于说到应用层了,应用层这一层最接近我们用户了。应用层是网络可向最终用户提供应用服务的唯一窗口,其目的是支持用户联网的应用的要求。由于用户的要求不同,应用层含有支持不同应用的多种应用实体,提供多种应用服务,如电子邮件(MHS)、文件传输(FTAM)、虚拟终端(VT)、电子数据交换(EDI)等。主要协议有,FTP(21端口),SMTP(25端口),DNS,HTTP(80端口).

应用层的主要协议:FTP(文件传送协议)、Telnet(远程登录协议)、DNS(域名解析协议)、SMTP(邮件传送协议),POP3协议(邮局协议),HTTP协议(Hyper Text Transfer Protocol)

1.DHCP协议

DHCP(Dynamic Host configuration Protocol,动态主机配置协议 )是一个局域网的网络协议,使用UDP协议工作;统一使用两个IANA分配的端口:67(服务器端),68(客户端)。DHCP通常被用于局域网环境,主要作用是集中的管理、分配IP地址,使client动态的获得IP地址、Gateway地址、DNS服务器地址等信息,并能够提升地址的使用率。简单来说,DHCP就是一个不需要账号密码登录的、自动给内网机器分配IP地址等信息的协议。

主要有两个用途:
(1)用于内部网或网络服务供应商自动分配IP地址;
(2)给用户用于内部网管理员作为对所有计算机作中央管理的手段。

DHCP实现动态分配IP的功能,实现IP的时分复用,从而解决IP资源短缺的问题。
DHCP有三种机制分配IP地址:
1) 自动分配方式(Automatic Allocation),DHCP服务器为主机指定一个永久性的IP地址,一旦DHCP客户端第一次成功从DHCP服务器端租用到IP地址后,就可以永久性的使用该地址。
2) 动态分配方式(Dynamic Allocation),DHCP服务器给主机指定一个具有时间限制的IP地址,时间到期或主机明确表示放弃该地址时,该地址可以被其他主机使用。
3) 手工分配方式(Manual Allocation),客户端的IP地址是由网络管理员指定的,DHCP服务器只是将指定的IP地址告诉客户端主机。
三种地址分配方式中,只有动态分配可以重复使用客户端不再需要的地址。

2.DNS

域名系统(英文:Domain Name System,缩写:DNS)是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。

就比如我们访问www.baidu.com 转化为 39.156.69.79

6.必学协议以及面试高频考点: 1、http协议,包括:封装格式,常见响应码,不同版本的区别,常见请求方法,存在哪些安全隐患,啥是无状态协议等。2、https协议:http 是明文传输,https 是加密安全的,需要知道 https 是如何加密的、数字证书如何形成,啥的对称加密、非对称加密。3、TCP协议:三次握手、四次挥手、如何保证可靠传输、流量控制、拥塞控制。4、UDP:这个大致了解即可,好像内容比较少5、DNS、ICMP、ARP、DHCP
推荐书籍:《计算机网络:自顶向下》、《图解http》 参考文章: https://blog.csdn.net/yaopeng_2005/article/details/7064869https://blog.csdn.net/baidu_37964071/article/details/80514340https://mp.weixin.qq.com/s/Y3-CM6EiIX9saXn4U9yu1w


优质文章推荐

1.计算机网络----三次握手四次挥手
2.一篇让你彻底了解http请求报文和响应报文的结构
3.梦想成真-----项目自我介绍
4.一篇让你彻底了解HTTP 的前世今生
5.一篇让你彻底搞定HTTP方法与状态码
6.你们要的设计模式来了
7.震惊!来看《这份程序员面试手册》!!!
8.一字一句教你面试“个人简介”
9.接近30场面试分享

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。