嘿!
新年的第一篇博客,大家新年快乐呀!希望大家新的一年要多多进步噢!
1.TCP/IP的四层/五层参考模型有哪些层,各层的特点是?计算机网络分层的好处是?
TCP/IP 四层参考模型
- 应用层:直接为用户的应用程序提供服务
- 传输层:为应用层实体提供端到端的通信功能,保证了数据包的顺序传送及数据的完整性
- 网际互联层:主要解决主机到主机的通信问题,所包含的协议设计数据包在整个网络上的逻辑传输,注重重新赋予主机一个 IP 地址来完成对主机的寻址,提供一个可靠、无连接的数据报传递服务
- 网络接入层:负责监视数据在主机和网络之间的交换
TCP/IP 五层参考模型
- 物理层:利用传输介质为数据链路层提供物理联接,负责数据流的物理传输工作
- 数据链路层:负责在物理层面上传输数据,把网络层传下来的 IP 数据报封装成帧,添加一些控制信息,接收端可根据这些控制信息判断是否出现差错,以及知道该帧从哪个比特开始从哪个比特结束,传输单位是帧,所实现的硬件有交换机、网桥等。
- 传输层:提供端到端的可靠数据传输和错误恢复功能,具有复用和分用的功能
- 应用层:直接为应用程序提供服务
计算机网络分层的好处
- 各层独立
- 灵活性好
- 易于实现和维护
- 促进标准化:有利于制定统一的标准和规范
- 便于理解和学习
2.信道复用技术的主要特点
- 能够提高资源利用率
- 支持多用户通信
- 提高系统容量和传输效率
- 抗干扰能力强
- 具有灵活性和可扩展性
- 降低成本
- 便于管理和维护
3.数据链路层帧的特点,可靠传输如何实现,使用了哪些协议?
数据链路层帧的特点
- 封装性:封装为数据提供了清晰的组织形式,便于传输和管理。
- 定界性:通过特定的帧首部和尾部来标识帧的开始和结束,使得接收方能够准确地识别出一个完整的帧,从而正确地进行接收和处理。
- 透明性:对于帧的数据部分,数据链路层应实现透明传输,即无论数据部分包含什么内容,都应原封不动地传输到接收端,不会因数据中的特定字符或比特序列而产生错误的处理或误解。
- 差错检测性:用于检测数据在传输过程中是否出现差错
- 长度受限性:如果网络层传递下来的数据包超过了
MTU
(最大传输单元),则需要进行分片处理后再封装成帧进行传输。
数据链路层可靠传输的实现方式
- 差错检测:发送方在帧中添加校验字段,如 CRC 等,接收方根据接收到的帧重新计算校验字段,并与接收到的校验字段进行比较,如果不一致则说明帧在传输过程中出现了差错。
- 确认与重传:接收方在正确接收到帧后,会向发送方发送确认帧(ACK),表示已正确接收。发送方如果在规定的时间内未收到确认帧,则认为帧丢失或出错,会重新发送该帧。常见的自动重发请求(ARQ)差错控制技术有停止等待 ARQ、后退 N 步 ARQ、选择拒绝 ARQ 等。
- 序号机制:为每个帧添加序号,接收方可以根据序号来判断帧的顺序是否正确,以及是否有帧丢失或重复,从而保证数据的有序传输。
- 流量控制:通过限制发送方的发送速率,使接收方能够来得及接收和处理数据,防止接收方缓存溢出而导致数据丢失
数据链路层使用的协议
- PPP 协议
- HDLC 协议
- 以太网协议
- IEEE802.3 协议
- 帧中继协议
- ATM 协议
4.CSMA/CD,CSMA/CA的作用及特点
CSMA/CD
- 作用: 主要用于解决多个设备共享同一总线型网络时,如何有序地访问介质和避免数据冲突的问题,使得不同设备或网络上的节点可以在多点的网络上通信而不相互冲突。
- 特点: 先听后发、边听边发、冲突停发、随机延迟重发、算法简单、负载敏感
CSMA/CA
- 作用: 主要用于无线局域网中,解决多个无线设备共享无线信道时的冲突问题,确保数据传输的可靠性和效率。
- 特点: 载波侦听、随机等待(减少多个设备同时发送数据导致冲突的可能性)、无法直接检测冲突、使用确认帧(保证数据传输的可靠性)、帧间间隔(用于分隔不同优先级的帧和避免冲突)、网络分配向量(避免在信道忙碌期间发送数据)
5.arp协议的作用?工作原理是?
作用
ARP 协议即地址解析协议,其主要作用是在局域网中将 IP 地址解析为对应的 MAC 地址。使得设备在发送数据时,能够在链路层通过 MAC 地址准确地找到目标设备,从而实现数据的正确传输,是连接网络层和链路层的纽带。
工作原理
ARP 缓存检查
:设备在发送数据前,会先在本地的 ARP 缓存表中查找目标设备的 IP 地址对应的 MAC 地址。如果缓存表中存在相应条目,则直接使用该 MAC 地址进行数据封装和传输。ARP 请求广播
:如果 ARP 缓存中不存在目标设备的 MAC 地址,发送方设备会创建一个 ARP 请求报文,其中包含自己的 MAC 地址、IP 地址以及目标设备的 IP 地址。然后将该 ARP 请求报文以广播的形式发送到局域网上的所有设备,此时 ARP 请求报文的目标 MAC 地址为全 1 的广播地址(ff:ff:ff:ff:ff:ff)。目标设备响应
:局域网上的所有主机都会接收到 ARP 请求报文,但只有目标设备会检查请求报文中的目的 IP 地址是否与自身的 IP 地址相匹配。如果匹配,则目标设备会创建一个 ARP 响应报文,其中包含自己的 MAC 地址和 IP 地址,并将该响应报文发送回发送方设备,ARP 响应报文通常以单播的形式发送。地址缓存更新
:发送方设备收到目标设备的 ARP 响应报文后,会将目标设备的 IP 地址和 MAC 地址的映射关系添加到自己的 ARP 缓存中。通信建立并发送数据包
:发送方设备在获得目标设备的 MAC 地址后,就可以将目标 MAC 地址写入数据帧的目的 MAC 地址字段,将源 MAC 地址写入数据帧的源 MAC 地址字段,然后将数据帧发送给目标设备,从而实现数据的传输。
6.IP地址和子网掩码是否能正确理解
IP 地址
定义与作用
:IP 地址是用于标识计算机网络中的每台设备的唯一数字标签,就像现实生活中的家庭住址或电话号码,用于在网络中准确地找到特定的设备,使得数据包能够在网络中从一个设备传递到另一个设备。地址格式
:IPv4 地址由 32 位二进制数组成,通常被分为四个 8 位的组,每组表示为一个 0 到 255 之间的十进制数,例如 192.168.1.1。而 IPv6 地址则由 128 位二进制数组成,采用冒号十六进制表示法,例如 2001:0db8:85a3:0000:0000:8a2e:0370:7334。地址分类
:在 IPv4 中,地址分为 A 类、B 类、C 类、D 类和 E 类。A 类地址的第一个字节范围是 1 到 126,用于大型网络;B 类地址的第一个字节范围是 128 到 191,适用于中型网络;C 类地址的第一个字节范围是 192 到 223,用于小型网络;D 类地址用于多播;E 类地址保留用于实验和研究。
子网掩码
定义与作用
:子网掩码是一个 32 位的地址掩码,用于判断任意两台计算机的 IP 地址是否属于同一子网络,主要作用是屏蔽 IP 地址的一部分以区别网络标识和主机标识,并说明该 IP 地址是在局域网上,还是在远程网上,还可用于将一个大的 IP 网络划分为若干小的子网络,减少 IP 地址的浪费。工作原理
:子网掩码与 IP 地址进行逻辑与运算,可以得到网络地址。所有具有相同网络地址的 IP 都属于同一个子网。例如,对于 IP 地址 192.168.1.1 和子网掩码 255.255.255.0,进行与运算后得到的网络地址是 192.168.1.0,表示该 IP 地址属于 192.168.1.0 这个子网。常见表示形式
:通常以点分十进制表示法表示,与 IP 地址的表示形式类似,如 255.255.255.0。也可以用 CIDR 表示法,如 192.168.1.0/24,其中 “/24” 表示子网掩码的前 24 位为 1,即 255.255.255.0。
两者关系
相互依存
:IP 地址和子网掩码必须结合使用,才能准确地确定网络中的设备位置和进行通信。仅知道 IP 地址而不知道子网掩码,无法确定设备所属的子网;反之,仅知道子网掩码而没有具体的 IP 地址,也无法定位到特定的设备。子网划分
:通过改变子网掩码,可以灵活地划分不同大小的子网,以满足不同网络规模和需求。合理的子网划分可以提高网络的管理效率和安全性,减少网络拥塞和广播风暴等问题。路由决策
:路由器在转发数据包时,会根据目的 IP 地址和子网掩码来判断数据包的目的地是在本地子网内还是在其他子网中,从而决定是直接交付还是将数据包转发到其他子网或网络。
7.IP地址划分子网的计算方法
根据子网数量计算子网掩码
- 确定要划分的子网数:明确需要将给定的 IP 地址
划分
成多少个子网
。 - 将子网数目转化为二进制:把子网数
转换
为二进制数
形式。 - 确定二进制位数:数出该二进制数的
位数
,记为n
。 - 获取原 IP 地址类的子网掩码:根据 IP 地址所属的类别(A 类、B 类、C 类等),确定其默认的子网掩码。
- 修改子网掩码:将原子网掩码的主机地址部分的
前n位置1
,其余位置0
,得到划分子网后的子网掩码。
根据主机数量计算子网掩码 - 确定每个子网的主机数:确定每个子网中预计容纳的
主机数量
。 - 将主机数目
转化为二进制
:把主机数转换为二进制数形式。 - 确定二进制位数:数出该
二进制数的位数
,记为n
,这里要注意如果主机数小于或等于 254
,需要去掉
保留的两个
IP 地址(全0和全1的主机地址不可用)。 - 获取原 IP 地址类的子网掩码:根据 IP 地址所属的类别(A 类、B 类、C 类等),确定其默认的子网掩码。
- 修改子网掩码:先将该类 IP 地址的子网掩码的
主机
地址位数全部置1
,得到 255.255.255.255,然后从后向前
将n
位全部置为0
,即为子网掩码值。
确定每个子网的网络地址、广播地址和可用主机地址范围 - 计算网络地址:将 IP 地址与新的子网掩码进行
“与”
运算,得到每个子网的网络地址。 - 计算广播地址:先找到该子网的下一个子网的网络地址,通过将本子网的网络地址加上子网掩码所表示的块大小,得到下一个子网的网络地址,那么
本子网
的广播地址就是下一个子网
的网络地址减去1
。 - 计算可用主机地址范围:每个子网的可用主机地址范围是子网的网络地址加1到广播地址
减1
。
8.IP数据报的特点,首部有哪些关键字段,这些字段有哪些作用?
IP 数据报的特点
- 无连接
- 无状态
- 不可靠
IP 数据报首部的关键字段及作用
版本
:占 4 位,指 IP 协议的版本,通信双方使用的 IP 协议版本必须一致首部长度
:占 4 位,用于指示首部的长度,以保证数据部分永远在 4 字节的整数倍开始。区分服务
:占 8 位,只有在使用区分服务时,这个字段才起作用,用于获得更好的服务质量。总长度
:占 16 位,指首部和数据之和的长度,单位为字节,因此数据报的最大长度为 2^16-1=65535 字节,但在实际传输中,还需考虑链路层的最大传送单元 MTU 限制。标识
:占 16 位,用于在数据报分片后,使各分片能正确地重装成为原来的数据报。标志
:占 3 位,但只有 2 位有意义。最低位 MF 表示后面 “还有分片” 的数据报,MF=1 表示后面还有分片,MF=0 表示这已是若干数据报片中的最后一个;中间一位 DF 表示 “不能分片”,只有当 DF=0 时才允许分片。片偏移
:占 13 位,指出较长的分组在分片后,某片在原分组中的相对位置,以 8 个字节为偏移单位,即每个分片的长度一定是 8 字节(64 位)的整数倍。生存时间
:占 8 位,防止无法交付的数据报在网络中无限循环。协议
:占 8 位,指出此数据报携带的数据是使用何种协议,以便使目的主机的 IP 层知道应将数据部分上交给哪个处理过程,如 1 表示 ICMP,2 表示 IGMP,6 表示 TCP,17 表示 UDP 等。首部检验和
:占 16 位,只检验数据报的首部,但不包括数据部分,因为数据报每经过一个路由器,路由器都要重新计算一下首部检验和,不检验数据部分可减少计算的工作量。源地址
:占 32 位,标识发送数据报的源主机的 IP 地址。目的地址
:占 32 位,标识数据报的目的主机的 IP 地址。
9.TCP与UDP的区别?什么时候用TCP什么用UDP?TCP能实现可靠传输的原因是什么?
TCP 与 UDP 的区别
- 连接性:
TCP 是面向连接的
,在数据传输前需要先建立连接,通信双方通过三次握手来确认连接的建立,数据传输完毕后还需通过四次挥手来关闭连接;UDP 是无连接的
,发送数据之前不需要与对方建立连接,直接发送数据报。 - 可靠性:
TCP 提供可靠的数据传输服务
,通过校验和、重传控制、序号标识、滑动窗口、确认应答等机制,确保数据无差错、不丢失、不重复且按序到达;UDP 不保证数据的可靠性
,尽最大努力交付,报文可能会丢失、重复以及乱序等。 - 传输效率:
TCP
由于需要进行连接管理和数据确认等操作,传输效率相对较低
;UDP 传输效率高
,因为它在传输数据报前不用建立连接,也没有超时重发等机制,故而传输速度很快。 - 应用场景:
TCP 通常用于需要可靠传输的场景
,如文件传输、电子邮件、远程登录等;UDP 常用于对实时性要求高、对少量数据丢失不敏感的场景
,如视频会议、在线游戏、音频流等。 - 通信模式:
TCP
是一对一
的通信;UDP
支持一对一、一对多、多对一和多对多
的交互通信。 - 首部开销:
TCP 的首部包含更多的控制信息
,如序号、确认号、窗口大小等,首部开销较大;UDP 的首部开销较小
,只有源端口、目的端口、长度和校验和等基本字段。
TCP 和 UDP 的应用场景
使用 TCP 的场景
:
文件传输、电子邮件、远程登录使用 UDP 的场景
:
视频直播和音频流、实时游戏、DNS 查询
TCP 能实现可靠传输的原因
- 校验和机制:TCP 保持它首部和数据的检验和,这是一个端到端的检验和,目的是检测数据在传输过程中的任何变化。如果收到段的检验和有差错,TCP 将丢弃这个报文段和不确认收到此报文段,要求发送方重新发送。
- 序号标识与确认应答:TCP 会按照顺序给发送的数据标上号码,每发送一个数据报,都会期待一个接收端 ACK 的回复,以此确认接收端已经收到消息。如果短时间内没有收到 ACK,TCP 就会对消息进行自动重发。
- 滑动窗口技术:通过滑动窗口机制,发送方可以根据接收方的接收能力和网络状况,动态调整发送窗口的大小,控制发送数据的速率,避免接收方缓冲区溢出,同时提高传输效率。
- 重传控制:当发送方在规定时间内未收到接收方的确认应答时,会自动重传数据,确保数据能够被接收方正确接收。
- 数据排序与去重:由于 IP 数据报的到达可能会失序,TCP 报文段的到达也可能会失序,TCP 将对收到的数据进行重新排序,将收到的数据以正确的顺序交给应用层;对于重复的数据,接收端能够丢弃重复数据。
10.TTL字段的作用与特点
TTL 字段即生存时间字段,在网络通信中有重要作用与特点,以下是具体介绍:
作用
- 防止数据包无限循环:避免数据包在网络中无休止地循环,节省网络资源。
- 辅助网络故障诊断:帮助网络管理员诊断网络故障和确定网络拓扑结构。
- 控制数据传输范围:避免数据泄露到外部网络;确保数据包能够在广域网中传输足够的跳数以到达目的地。
特点
- 取值范围有限
- 逐跳递减:这种逐跳递减的特性使得每个路由器都能对数据包的生存时间进行控制,确保在一定的跳数内数据包能够到达目的地或被丢弃。
- 引发 ICMP 消息:当路由器将 TTL 值减为 0 并丢弃数据包时,会向源地址发送一个 ICMP(Internet Control Message Protocol)超时消息,通知源主机数据包已被丢弃。源主机可以根据收到的 ICMP 消息判断数据包是否成功传输,以及在传输过程中是否出现了问题。