你应该知道的计算机网络知识(计算机网络知识题库)

你应该知道的计算机网络知识
计算机的世界里只有0和1, 正如你现在所看这篇文章的文字, 存储在计算机中也是一大串0和1的组合. 但是这些数字不能在真实的物理介质中传输的, 而需要把它转换为光信号或者电信号, 所以这一层负责将这些比特流(0

===

当您阅读本文时,计算机世界中只有0 和1。然而,这些数字不能在实际的物理介质上传输。由于这些需要转换为光或电信号,因此该层负责将这些比特流(0101)转换为光和电信号。

如果不存在物理层,则没有互联网,也不会发生数据共享,因为数据无法在网络内流动。

数据链路层

=====

该层中的数据不是作为比特流发送,而是分段并以帧的形式发送。

MAC地址

也称为计算机的硬件地址,是固定在适配器(网卡)ROM中的48位地址。 MAC地址在全球范围内是唯一的,用于唯一标识计算机。

ps : 如果一台计算机有多个网卡,则一个MAC 地址不能唯一对应于一台计算机。例如,一台计算机配备有两张网卡,一张用于计算机与外界通信,另一张用于与计算机通信。网卡用于内部LAN 通信。此时有两个MAC地址,但它们实际上是同一台计算机。

分组交换

这次,因为数据必须一次分割成一个帧,所以每个链路都有不同的最大帧长度或MTU(最大传输单元),因此超过此MTU 的任何内容都会被丢弃。

例如,一辆卡车一次可以运载5吨货物,但有些道路的载重限制为2吨,因此货物必须分三部分运输。

网桥

网桥在数据链路层运行,根据MAC 帧的目标地址转发和过滤传入帧。

以太网交换机

事实上,它是一个多接口桥,以太网交换机的每个接口都直接连接到单个主机或另一个集线器,从而可以轻松实现VLAN(虚拟局域网)。

以太网的MAC帧

MAC帧的格式为:

MAC帧格式

目的地址: 接收者的48 位MAC 地址

源地址: 发送方的48 位MAC 地址

类型字段:标记上层使用的协议。0x0800 是IP 数据报。

网络层

===

如果只有数据链路层而没有网络层,则只能在同一链路上发送数据,而网络层允许在域内的不同数据链路之间发送数据。

IP地址

IP 地址也称为软件地址,在计算机内存中存储为32 位IPv4 地址和128 位IPv6 地址。

IP地址和MAC地址

IP地址在网络层之上使用,MAC地址在数据链路层之下使用。

IP地址是逻辑地址,MAC地址是物理地址

IP数据包报头中的源地址和目的地址在传输过程中不会发生变化,但MAC帧报头中的源地址和目的地址在每次到达路由器时都会发生变化。

IP地址分类

IP地址={网络号,主机号}

A 类地址: 0.0.0.0 至127.0.0.0 B 类地址: 128.0.0.0 至191.255.0.0 C 类地址: 192.0.0.0 至223.255.255.0

划分子网之后的IP地址

IP地址={网络号、子网号、主机号}

例如,设备的B 类IP 地址为145.13.0.0。所有目标地址为145.13.x.x 的数据报在内部子网分裂后都变为: 145.13.3.0, 145.13。7.0 、 145.13.21.0 但在外界看来是网络,即145.13.0.0 。这样,路由器R收到报文后,根据目的地址将其发送到相应的子网。

子网掩码

通常,无论您的网络是否划分子网,您都可以通过将子网掩码与IP地址进行按位与运算来获取网络地址。

如果您的路由表中有默认路由,请将其提供给您的路由器。如果没有,- (6)

报告数据包转发错误

构成超网的IP地址

Internet上的所有路由器都不转发目的地址为私有地址的数据报。私有地址(虚拟IP地址)分为三种类型:

10.0.0.0 至10.255.255.255

172.16.0.0 至172.31.255.255

192.168.0.0 至192.168.255.255

A公司目前在广州设有分部,在上海设有分部,并在当地拥有自己的专网。那么如何连接这两个专用网络呢?

电信线路是专门为该组织租用的,但价格太贵。

使用公共互联网作为通信载体的虚拟专用网络(VPN)。

IP数据报

多个专用网络中的主机共享NAT 路由器的IP 地址。当主机发送或接收IP数据报时,必须首先通过NAT路由器进行网络地址转换。

NAT 路由器的工作原理

不仅如此,NAT还可以使用端口号转换网络地址和端口转换NAPT。

IP层转发分组的流程

ARP解决了同一局域网内主机或路由器的IP地址和MAC地址之间的映射问题:IP地址-ARP-MAC地址。

每台主机都有一个ARP缓存,其中包含局域网中每台主机和路由器的IP地址到MAC地址的映射表。 ARP :的工作原理如下:

ARP 的工作原理.jpg

如果网络之间使用ARP怎么办?

在此网络上广播

如果找不到主机,则转到路由器

路由器帮助转发(在另一个网络上广播)

如果找到,则完成ARP 请求,否则返回(2)。

传输层

===

数据链路层和网络层被赋予最高优先级,因为这些层的数据传输不可靠并且交付效果最好。也就是说,数据链路层和网络层不负责是否发送数据。然而,TCP 协议的这一层提供了可靠的数据传输。

该层主要关注两个协议: UDP 和TCP。

路由器的分组转发算法

UDP :的主要特点

无连接

尽力交付

对于数据包:UDP头被直接添加到应用层传递的数据包中,并扔到IP层,没有任何合并或拆分。

无拥塞控制

支持一对一、一对多、多对一、多对多交互通信。

标头开销很小,只有8个字节

UDP报头

UDP 报头格式

源端口: 源端口号选择是否需要对方响应。所有其他情况均为0。

目标端口: 目标端口号。当端点传递消息时应该使用它。

长度: UDP 数据报长度,最小8(仅报头)

校验和: 与仅检查报头的IP 数据报不同,UDP 必须同时检查报头和数据部分。

虚拟专用网VPN

TCP :的主要特点

面向连接的传输层协议

每个TCP 连接只能有两个端点。 TCP是点对点的。

提供可靠的运输

全双工通信

面向字节流

TCP工作流程

TCP字节流

TCP连接

TCP连接的端点称为套接字

socket=(IP地址:端口号)

每个TCP 连接由通信两端的两个端点(套接字)唯一标识。即: TCP连接:={套接字1,套接字2}={(IP1 :端口1),(IP2 :端口2)}。

TCP 段头

TCP 段头

源端口和目标端口: 具有与UDP 端口相同的功能。

Serial Number : 该段中数据的第一个字节的序列号

确认号: 预期从对等方的下一个消息段接收到的第一个数据字节的序列号。如果确认号=N,则表示成功接收到:序号N-1之前的所有数据。

数据偏移量: TCP 段头长度

预留:以供将来使用,目前为0

紧急URG : 如果URG=1,则表示启用紧急指针字段,告诉系统这是紧急数据,应尽快发送。例如,传输突然中断。

ACK 确认: 如果ACK=1,则确认号有效;如果ACK=0,则确认号无效。 TCP规定连接建立后,发送的所有报文段的ACK必须置1。

Push PSH : 当PSH=1 时,接收方收到报文段后,直接向上传递该报文段,无需等到整个缓存满。

Reset RST : 如果RST=1,则表示TCP 连接遇到严重错误,必须释放并重新连接。

同步SYN : 用于在建立连接时同步序列号。如果SYN=1,ACK=0,当对方同意建立连接时设置SYN=。 1 响应段中ACK=1。

终止FIN : FIN=1 表示该报文段的发送方数据已发送,应释放连接。

窗口:告诉对方:接收方当前允许对方发送多少数据,从该消息段的报头中的确认号开始。这是接收方让发送方设置发送窗口的依据。

校验和: 与UDP 相同,检查标头部分和数据部分

紧急指针:在URG=1时有效,指示消息段内紧急数据的结尾位置。

选项: 的最大长度为40 个字节。否则为0。 最大分段长度MSS(最大分段大小) : 每个TCP 分段的数据字段的最大长度。如果未输入,则默认为536 字节。

窗户

TCP中一个非常重要的概念是窗口(发送窗口和接收窗口)。

窗户

停止等待协议的效率非常低,因此由发送方维护的发送窗口的概念诞生了。发送窗口内的5个报文可以连续发送,无需等待对方确认。每接收到一个数据包,传输窗口就前移一个数据包,显着提高信道利用率。

接收方不必为每个数据包发送确认消息,而是使用累积确认方法。也就是说,确认消息被发送到按顺序到达的最后一个数据包。

网络地址转换NAT

如果发送方在等待一定时间后没有收到ACK确认消息,则这段等待时间就成为重传超时(RTO)。

然而,RTO的值并不固定,这个时间总是略大于连接的往返时间(RTT)。假设发送一条消息需要5秒,发送一条消息也需要5秒。如果对方收到确认消息后回复,则RTT为10秒,因此RTO略大于10秒。如果超过RTO且没有收到确认消息,则认为该消息丢失,必须发送该消息。怨恨。

ARP协议

流量控制使用滑动窗口和发送消息段的定时。

用户数据报协议UDP

发送方维护一个拥塞窗口cwnd(发送窗口=拥塞窗口)。

慢启动: cwnd=1,每轮发送后加倍。 拥塞避免: 缓慢增加慢启动阈值ssthresh :

对于cwnd ssthresh,使用慢启动算法

对于cwnd ssthresh,使用拥塞避免算法

如果cwnd=ssthresh 则可选

拥塞控制

只要确定网络拥塞,就重新运行慢启动算法,将ssthresh 设置为当前发送拥塞窗口的一半(不能小于2),并将cwnd 设置为1 。

除了慢启动和拥塞避免算法外,还有一套快速重传和快速恢复算法:

快速重传: 只要接收方及时发送确认,并且发送方收到连续3次重复确认,就会立即重发。

快速恢复: 如果发送方连续收到三个重复确认,则ssthresh 减半,并且cwnd 设置为ssthresh。

传输控制协议TCP

TCP建立连接的3次握手和断开连接的4次挥手是面试中被问到的常识。

TCP三路握手

问: 为什么我们需要握手三次而不是两次?

: A 第一次发送连接请求,但卡在网络中的某个节点上并重新发送。之后,A和B成功发送数据。当连接释放时,B突然收到断开连接的请求。如果是双向握手,B发送确认,但A实际上并不关注这个确认。因为我没有。然而,B却傻乎乎地认为数据会到达,并耐心等待,结果却浪费了资源。

更现实的解释是: A呼叫B。

第一次握手: 你好,我是A,你能听到我说话吗?

第二次握手: 我听到你的声音,是B,你能听到我说话吗?

第三次握手:听到,可以开始聊天了

三次握手实际上是一种检查双方发送和接收能力是否正常的方法。

超时重传

4 TCP 波

Q : 为什么你挥手4次而不是2次或3次?

A:

首先,TCP的全双工通信允许双方充当数据发送方。如果A想要关闭连接,必须等到所有数据都发送完毕后,才能向B发送FIN(A处于半关闭状态)。此时的状态)

然后B发送确认ACK,如果此时它想发送任何数据,它就会这样做(例如,执行预发布处理)。

而且,B发送完数据后,向A发送FIN(此时B处于半关闭状态)。

然后A发送ACK并进入TIME-WAIT状态

最后,如果2MSL后没有收到B的消息,则判定B已收到ACK(此时认为A和B完全关闭)。

PS : 如果你仔细分析上面的步骤,你就会明白为什么只能摇动不到4次了。

问: 为什么我必须等待2MSL(最大段生命周期)小时才能从TIME_WAIT 更改为CLOSED?

A : 客户端发送了最终的ACK 响应,但ACK 可能会丢失。如果服务器没有收到ACK,则继续重复发送FIN片段。因此,客户端不能立即关闭,必须保证服务器收到ACK。客户端发送ACK后,进入TIME_WAIT状态。客户端设置一个定时器并等待2MSL。如果在此时间内再次收到FIN,则客户端重新发送ACK,并再次等待2MSL。 MSL是指网络中一个段的最大生存期,2MSL是传输和响应所需的最大时间。如果客户端在2MSL内没有再次收到FIN,则客户端认为已成功收到ACK并终止TCP连接。

更现实的解释:

First Wave : A 告诉B 它没有数据要发送,准备关闭连接。您想发送数据吗?

第二波: B 发送最后一个数据

第三波: B告诉A我也想关闭连接。

第四波: A告诉B你可以关了,我也关了。

应用层

===

最著名的应用层协议是HTTP、FTP,还有重要的DNS。

域名系统(DNS,Domain Name System)

=============================

DNS可以将域名(例如www.jianshu.com)解析为IP地址。

域名服务器分类

根域名服务器: 顶级域名服务器

顶级域名服务器:正如其名。

授权域名服务器:负责该区域的响应服务器

本地域名服务器:主机向服务器发送DNS查询请求

流量控制

DNS查询

针对本地域名服务器的主机查询通常使用递归查询。

从本地域名服务器到根域名服务器的查询通常使用重复查询。

欢迎任何人加入我们的圈子(技术交流、学习资源、职场投诉、大公司内部推荐、面试指导),让我们一起学习、成长!

如果您需要此信息,请从第 栏中获取。

以上#必知的计算机网络知识相关内容来自互联网,仅供大家参考。相关信息请参见官方公告。

原创文章,作者:CSDN,如若转载,请注明出处:https://www.sudun.com/ask/92272.html

(0)
CSDN's avatarCSDN
上一篇 2024年6月26日 下午11:38
下一篇 2024年6月26日 下午11:38

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注