常识----计算机网络

1.OSI 7层网络模型:应用层、表示层、会话层、运输层、网络层、链路层、物理层
OSI(开放式系统互连)参考模型是一个用于描述计算机网络通信的框架。它将网络通信分为七个不同的层级,每个层级负责不同的功能。以下是每个层级的简要介绍:**物理层(Physical Layer):**这是网络通信的最底层,负责传输原始的比特流。它定义了物理上的数据传输媒介,如光纤、电缆和无线信号等。**链路层(Data Link Layer):**链路层将物理层提供的比特流划分为数据帧,并在相邻网络节点之间进行可靠的数据传输。它还负责错误检测和纠正。**网络层(Network Layer):**网络层负责在不同的网络之间进行数据路由和转发。它将数据包从源地址传输到目标地址,并选择最佳的路径。**运输层(Transport Layer):**运输层提供端到端的数据传输服务。它负责将数据分割为较小的数据段,并确保它们以正确的顺序和完整性到达目标。**会话层(Session Layer):**会话层建立、管理和终止网络会话。它提供会话协议和同步操作,以便不同终端之间的通信可以进行正确地协调。**表示层(Presentation Layer):**表示层处理数据的格式化、加密和解密。它负责将数据转换为适合传输的格式,并确保在不同系统之间的兼容性。**应用层(Application Layer):**应用层是最高级的层级,为用户提供各种应用和服务。它包括网络应用,如电子邮件、文件传输、远程登录和网页浏览等。

2.TCP/IP四层网络模型:应用层、运输层、网际层、接口层
TCP/IP四层网络模型是一种将网络通信划分为四个层级的框架,它在实际应用中更为常见。以下是每个层级的简要介绍:**应用层(Application Layer):**应用层是最高级的层级,提供各种应用和服务。它包括网络应用程序,如HTTP、FTP、SMTP和DNS等。应用层协议定义了应用程序之间的通信规则。**运输层(Transport Layer):**运输层负责数据的可靠传输和错误检测。它主要使用两个协议:传输控制协议(TCP)和用户数据报协议(UDP)。TCP提供可靠的、面向连接的通信,而UDP则提供不可靠的、无连接的通信。**网际层(Internet Layer):**网际层负责数据在不同网络之间的路由和转发。它使用了网际协议(IP),并定义了数据包如何在网络上进行寻址和传输。网际层协议使得数据能够跨越不同的网络传输。**接口层(Interface Layer):**接口层也被称为网络接口层或链路层。它负责将数据包从一台主机传输到直接相连的网络节点。接口层定义了物理媒介和链路的规范,如以太网、Wi-Fi和PPP等。TCP/IP四层模型与OSI七层模型有一定的对应关系。运输层对应于OSI模型的传输层,网际层对应于网络层,而应用层在TCP/IP模型中涵盖了OSI模型的应用层、表示层和会话层。

3.MTU
MTU(Maximum Transmission Unit)是指在网络通信中,数据链路层一次能够传输的最大数据包大小。它是以字节为单位来衡量的。MTU的大小是由网络设备或协议决定的,通常在网络设备中进行配置。不同的网络设备和协议可能有不同的MTU大小限制。MTU的大小对网络通信性能有一定的影响。较大的MTU可以减少网络通信的开销,提高传输效率,但也可能导致更高的延迟和丢包率。较小的MTU可以提高网络的稳定性,但会增加通信的开销。在实际应用中,MTU的大小通常是根据网络设备和协议的要求进行配置。常见的MTU大小为1500字节,在以太网中被广泛使用。但在某些情况下,可能需要调整MTU大小以适应特定的网络环境或需求。

4.MAC地址
MAC地址(Media Access Control Address)是用于标识网络设备的物理地址。它是由48位二进制数表示,通常以十六进制的形式显示。
MAC地址是在网络接口控制器(NIC)制造过程中分配的,每个网络设备都有唯一的MAC地址。它用于在局域网中唯一标识设备,以便数据包能够正确地发送和接收。MAC地址由6个字节组成,前3个字节称为组织唯一标识符(Organizationally Unique Identifier,OUI),用于标识设备的制造商。后面的3个字节是由制造商分配的设备唯一标识符。MAC地址通常以冒号或连字符分隔,如:00:1A:2B:3C:4D:5E。它是在数据链路层(第二层)中使用的,用于在局域网中进行设备之间的通信。需要注意的是,MAC地址是在局域网范围内具有唯一性的,不同的局域网可能存在相同的MAC地址。在跨越不同网络的通信中,使用的是IP地址来标识设备。

5.地址解析协议
地址解析协议(Address Resolution Protocol,简称ARP)是一种用于在局域网中将IP地址映射到MAC地址的协议。它是TCP/IP协议族中的一个重要协议,用于解决网络设备之间的通信问题。在局域网中,当一个设备需要向另一个设备发送数据时,它需要知道目标设备的MAC地址。而设备通常只知道目标设备的IP地址,而不知道其MAC地址。这时候就需要使用ARP协议来进行地址解析。ARP协议的工作原理如下:当设备A要发送数据给设备B时,设备A首先检查自己的ARP缓存中是否有设备B的IP地址对应的MAC地址。如果ARP缓存中没有对应的记录,设备A就会在局域网上广播一个ARP请求(ARP Request)消息,询问该IP地址对应的MAC地址。其他设备收到ARP请求消息后,会检查自己的IP地址是否与请求中的目标IP地址匹配。如果设备B的IP地址与请求匹配,它会发送一个ARP响应(ARP Reply)消息,将自己的MAC地址发送给设备A。设备A收到ARP响应消息后,将目标设备B的MAC地址存储到自己的ARP缓存中,并使用该MAC地址发送数据给设备B。ARP协议在局域网中起到了重要的作用,它能够动态地解析IP地址和MAC地址的映射关系,使设备能够正确地进行通信。需要注意的是,ARP协议是一种广播协议,它只能在同一个局域网中进行地址解析。如果要进行跨网段的通信,就需要使用其他协议,如ARP的扩展协议Proxy ARP或者使用路由器进行转发。

6.为啥有IP地址还需要MAC地址?同理,为啥有了MAC地址还需要IP地址?
IP地址和MAC地址在网络通信中扮演着不同的角色,彼此之间有着不同的作用和功能。IP地址(Internet Protocol Address)是在网络层(第三层)使用的地址,用于在全球范围内唯一标识网络设备。它是逻辑地址,用于在互联网中进行路由和寻址。IP地址可以按照网络类别划分为A、B、C、D、E五类,每个设备都需要拥有一个唯一的IP地址,以便进行网络通信。MAC地址(Media Access Control Address)是在数据链路层(第二层)使用的地址,用于在局域网中唯一标识网络设备。它是物理地址,由设备的制造商分配。MAC地址用于在局域网中进行直接通信,它是以太网设备的唯一标识符,用于在局域网中定位和识别设备。
IP地址提供了全球范围内的唯一标识,使得设备能够在互联网中进行通信和寻址。IP地址是逻辑地址,它可以通过路由器进行跨网络的转发和路由选择。IP地址是在网络层进行寻址和路由的基础。MAC地址提供了局域网内的唯一标识,使得设备能够在局域网中直接通信。MAC地址是物理地址,它是在数据链路层进行数据帧传输的基础。MAC地址是在局域网中进行数据链路的基础。IP地址和MAC地址在网络通信中协同工作,各自发挥着不同的作用:当设备需要与其他网络设备进行通信时,它会使用目标设备的IP地址来寻址和路由数据包。当数据包到达目标设备所在的局域网时,目标设备会使用ARP协议将目标IP地址解析为对应的MAC地址,以便直接通信。简而言之,IP地址提供了全球范围的唯一标识,用于在互联网中进行寻址和路由;而MAC地址提供了局域网内的唯一标识,用于在局域网中直接通信。

7.网络层转发数据报的流程
网络层负责转发数据报(也称为IP数据包),以实现在不同网络之间的通信。下面是网络层转发数据报的基本流程:
1.发送端主机将数据报封装在IP数据包中,包括源IP地址和目标IP地址等信息。
2.发送端主机通过ARP协议获取目标IP地址对应的MAC地址,如果目标主机在同一局域网中,会直接获取目标主机的MAC地址;如果目标主机在不同网络中,发送主机会获取默认网关(路由器)的MAC地址。
3.发送端主机将数据包发送到本地网络接口(网卡)。
4.数据包通过本地网络接口发送到局域网中,根据目标IP地址和子网掩码判断目标IP地址是否在同一子网中。
5.如果目标IP地址在同一子网中,数据包直接发送到目标主机。
6.如果目标IP地址不在同一子网中,数据包发送到默认网关(路由器)。
7.路由器接收到数据包后,根据路由表中的信息,决定将数据包发送到下一跳的接口。
8.数据包经过一系列路由器的转发,最终到达目标网络。
9.目标网络中的路由器将数据包发送到目标主机。
需要注意的是,网络层转发数据报的过程是基于IP地址的路由选择。路由器根据路由表中的信息来决定数据包的下一跳路径。路由表中包含了目的网络的IP地址和对应的下一跳接口。路由器根据最长前缀匹配原则,将数据包发送到最匹配的目的网络。此外,网络层还可以进行数据包的分片和重组,以适应不同网络的最大传输单元(MTU)。

8.TCP与UDP的区别及应用场景
TCP(传输控制协议)和UDP(用户数据报协议)是两种常见的传输层协议,它们在数据传输方面有以下区别:连接性:TCP是面向连接的协议,通过建立可靠的连接来传输数据。UDP是无连接的协议,不需要先建立连接就可以直接发送数据。可靠性:TCP提供可靠的数据传输,它使用序号、确认和重传机制来确保数据的完整性和可靠性。UDP不提供可靠性保证,它只是简单地将数据报发送出去,不关心是否到达目标。有序性:TCP保证数据的有序性,它会按照发送顺序将数据包重新排序。UDP不保证数据的有序性,数据包的顺序可能会被打乱。流量控制和拥塞控制:TCP使用滑动窗口和拥塞控制算法来控制数据的发送速率,以避免网络拥塞。UDP没有流量控制和拥塞控制机制,数据包发送的速率由应用程序决定。
基于以上区别,TCP和UDP在应用场景上有不同的选择:TCP适用于对数据传输可靠性要求较高的应用,例如文件传输、电子邮件、网页浏览等。TCP的可靠性和有序性保证了数据的准确性,但也带来了一定的延迟和开销。UDP适用于对实时性要求较高、数据传输可靠性要求较低的应用,例如音视频流媒体、在线游戏、实时通信等。UDP的无连接性和较低的开销使得数据传输更加快速,但也容易出现丢包或乱序的情况。需要根据具体的应用需求来选择使用TCP还是UDP。有些应用可能同时使用TCP和UDP,例如在线游戏中,TCP用于传输游戏状态和控制信息,而UDP用于传输实时的游戏数据。

9.TCP首部报文格式(SYN、ACK、FIN、RST必须知道)
TCP(传输控制协议)的首部报文格式如下:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±+
| 源端口号 | 目标端口号 |
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±+
| 序列号 |
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±+
| 确认号 |
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±+
| 数据偏移 | 保留 | 控制位 | 窗口大小 |
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±+
| 校验和 | 紧急指针 |
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±+
| 选项(可选) |
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±+
在TCP首部报文中,以下是几个重要的控制位:
SYN(同步):用于建立连接。当某个主机向另一个主机发送SYN报文段时,它表明它想要建立一个连接,并指定初始序列号。SYN标志位为1。
ACK(确认):用于确认收到的数据。当主机接收到一个带有ACK标志位的TCP报文段时,它会向发送方发送一个确认报文段,确认收到的数据。ACK标志位为1。
FIN(结束):用于关闭连接。当主机发送一个带有FIN标志位的TCP报文段时,它表明它想要关闭连接。FIN标志位为1。
RST(复位):用于重置连接。当主机接收到一个带有RST标志位的TCP报文段时,它会立即关闭连接,并且不发送任何响应。RST标志位为1。
这些控制位在TCP的连接建立、数据传输和连接关闭过程中起着重要的作用。

10.TCP滑动窗口原理
TCP滑动窗口是一种流量控制和拥塞控制机制,用于控制发送方和接收方之间的数据传输速率。滑动窗口的原理如下:
发送方窗口(Sender Window):发送方维护一个发送窗口,表示可以连续发送的数据的范围。发送方将发送窗口分割为多个数据段,每个数据段的大小由接收方的窗口大小和网络状况决定。
接收方窗口(Receiver Window):接收方维护一个接收窗口,表示可以接收的数据的范围。接收方根据自身处理能力和可用缓冲区大小来设置接收窗口的大小。
窗口滑动:发送方根据接收方的确认信息来调整发送窗口的位置。当发送方收到接收方的确认信息时,发送窗口向前滑动,允许发送更多的数据。如果发送方没有收到接收方的确认信息,发送窗口保持不变。
流量控制:接收方通过调整接收窗口的大小来控制发送方的发送速率。接收方可以根据自身处理能力和可用缓冲区的大小来调整接收窗口的大小,从而限制发送方的发送速率,避免数据的丢失或溢出。
滑动窗口机制可以实现以下功能:
流量控制:通过动态调整发送窗口和接收窗口的大小,控制数据的传输速率,避免接收方无法及时处理大量的数据。
拥塞控制:通过观察网络的拥塞状况,动态调整发送窗口的大小,避免网络拥塞,提高网络的利用率和性能。
可靠性传输:通过使用序列号和确认号,确保数据的有序性和可靠性。发送方只发送接收方已确认的数据,接收方只接收发送方发送的正确的数据。
滑动窗口机制是TCP可靠性传输和拥塞控制的基础,它可以根据网络的状况动态调整数据的传输速率,保证数据的可靠性和网络的稳定性。

11.TCP超时重传时间选择
选择TCP超时重传时间是一个复杂的问题,需要综合考虑网络延迟、丢包率和拥塞状况等因素。以下是一些常见的TCP超时重传时间选择策略:固定超时时间:使用固定的超时时间来进行重传,例如设置为100毫秒。这种策略简单直接,但可能会导致过早或过晚的重传,影响传输性能。自适应超时时间:根据网络延迟和丢包率等动态调整超时时间。一种常见的自适应算法是指数加权移动平均(Exponential Weighted Moving Average,EWMA),根据历史的往返时间来计算平均往返时间(RTT),并根据RTT的变化来调整超时时间。
Karn算法:Karn算法是一种避免计算超时时间的算法。它基于以下假设:如果一个分组在超时时间内没有收到确认,那么后续的重传也不会收到确认。因此,Karn算法在超时后立即重传,而不是等待超时时间结束。
Jacobson算法:Jacobson算法是一种基于RTT估计的超时时间选择算法。它通过计算往返时间的偏差(RTT差)来调整超时时间,以适应网络的变化。在实际应用中,通常会结合多种策略来选择超时重传时间,以适应不同的网络环境和应用需求。此外,还可以使用拥塞控制算法来动态调整发送速率,以避免网络拥塞和丢包。
需要注意的是,选择合适的超时重传时间是一个复杂的问题,需要根据具体的网络环境和应用场景进行调整和优化。

12.子网划分、子网掩码
子网划分和子网掩码是用于将一个大的网络划分为多个较小的子网络的技术。子网划分可以提高网络的性能和安全性,同时也有助于更有效地管理IP地址。子网划分是将一个IP网络划分为多个子网络,每个子网络都有自己的网络地址和主机地址范围。子网划分可以根据需求和网络规模的大小进行灵活调整,以满足不同的网络需求。子网掩码是一个32位的二进制数,用于标识IP地址中哪些位用于网络地址,哪些位用于主机地址。子网掩码中的1表示网络地址,0表示主机地址。通过与IP地址进行逻辑与运算,可以确定IP地址的网络部分和主机部分。子网掩码的长度决定了网络地址的位数,也决定了可以分配给每个子网的主机数量。例如,如果子网掩码为255.255.255.0,那么前24位用于网络地址,后8位用于主机地址,可以分配256个主机。在进行子网划分时,需要确定子网掩码的长度,以及每个子网的网络地址和主机地址范围。常用的子网掩码长度有24位(255.255.255.0)、16位(255.255.0.0)和8位(255.0.0.0)等。
子网划分和子网掩码的使用可以帮助实现以下目标:
提高网络性能:通过将大的网络划分为多个子网络,可以减少广播域的范围,减少广播和冲突,提高网络的性能和可靠性。
提高网络安全性:通过划分子网,可以实现网络的隔离和分段,增加网络的安全性。不同的子网可以使用不同的访问控制策略和安全设置。
更有效地管理IP地址:子网划分可以根据实际需求,合理分配IP地址,避免地址浪费。同时也方便管理和维护网络。

你可能感兴趣的:(计算机网络,网络,服务器)