# 计算机网络基础 ## TCP/IP 模型和 OSI 模型分别是什么?它们之间有什么区别? ![image.png](http://cdn.kamacoder.com/6736327917b2e-phpK8C3X2.png) 例如osi模型,用电脑软件给朋友发送一条信息,会首先应用层为聊天界面,然后表示层翻译为网络可以识别的格式,然后建立会话和传输,在传输的过程中有tcp和udp两种,tcp完整有序,udp不会保证这个,然后网络层在这层会根据ip找到对方路由器,然后数据链路层,这层会根据mac地址找到具体的电脑,最后再物理层进行光纤信息的传输。对方想要读取的话就反过来进行剥离。 **会话层的工作依赖于传输层和网络层的支持**,而这些底层功能在实际操作中先于会话层发生。 ## 什么是网络分层模型?它在网络通信中有什么作用? **网络分层模型**是一种将网络通信过程分解为多个层次的设计方法,每一层都有特定的功能和协议。 分层模型通过分割复杂的网络通信任务,简化网络的设计、实现和维护 ### **OSI 模型的七层结构** OSI 模型定义了网络通信的 **七层结构**,从底层到顶层分别是: | **层次** | **功能** | **常见协议/技术** | | :------------: | :----------------------------------------------------------: | :--------------------------: | | **物理层** | 负责硬件信号的传输,包括电缆、光纤、无线信号等。 | Ethernet、Wi-Fi、Bluetooth | | **数据链路层** | 负责数据帧的传输和错误检测,管理物理地址(MAC 地址)。 | Ethernet、PPP、HDLC | | **网络层** | 负责逻辑地址(IP 地址)的分配,提供路由选择功能,支持跨网段通信。 | IP(IPv4、IPv6)、ICMP、ARP | | **传输层** | 负责端到端的传输,确保数据的可靠性、完整性和顺序。 | TCP、UDP、SCTP | | **会话层** | 负责建立、管理和终止会话,支持多用户之间的连接。 | TLS/SSL、NetBIOS | | **表示层** | 负责数据的格式化、加密和解密,确保发送方和接收方能正确理解数据。 | TLS/SSL、JPEG、MPEG、ASCII | | **应用层** | 提供用户和网络之间的接口,支持各种网络服务。 | HTTP、FTP、SMTP、DNS、Telnet | ------ ### **TCP/IP 模型的四层结构** TCP/IP 模型是互联网的实际标准,其 **四层结构** 和 OSI 模型的关系如下: | **TCP/IP层** | **OSI层** | **功能** | | :----------: | :--------------------: | :--------------------------------------------: | | **应用层** | 应用层、表示层、会话层 | 提供用户应用接口,支持数据的表示、加密和解密。 | | **传输层** | 传输层 | 提供端到端的可靠或快速数据传输服务。 | | **网络层** | 网络层 | 提供逻辑地址的分配和跨网段的数据传输。 | | **链路层** | 数据链路层、物理层 | 管理数据帧传输,处理硬件信号的物理传输。 | ## 什么是网络协议?它在网络通信中有什么作用? - **定义**:网络协议是一组规则和标准,用于确定计算机之间如何进行通信。它定义了数据的格式、传输方式和错误处理等方面。 - **作用**:它确保不同设备和系统之间可以互相理解并正确交换数据,是实现网络通信的基础。没有协议,设备之间无法有效地交换信息。 ## 什么是 ARP 协议?它在网络通信中有什么作用? #### 知识索引 - **计算机网络** - 数据链路层与网络层交互 - **协议** - 地址解析协议(ARP,Address Resolution Protocol) ------ #### 简要回答 1. **ARP协议**:一种用于将网络层IP地址解析为数据链路层MAC地址的协议。 2. **作用**:在局域网中,帮助设备通过已知的IP地址找到对应的MAC地址,从而实现网络通信。 3. 工作流程 :- 设备发送ARP请求广播,询问目标IP地址的MAC地址。 - 目标设备通过ARP响应单播返回其MAC地址。 4. **常见问题**:ARP缓存中可能存在被攻击者伪造的记录,导致ARP欺骗。 ------ #### 详细回答 1. ARP协议定义与背景 : - 在网络通信中,数据链路层使用MAC地址传递数据帧,而网络层使用IP地址定位设备。ARP协议充当桥梁,完成IP到MAC的地址解析。 - 只适用于同一个局域网,因为广播包无法跨网段。 2. 工作流程 : 1. **发送ARP请求**:源设备构造一个ARP请求包,其中包含目标IP地址,并通过广播发送到局域网内所有设备。 2. **接收ARP响应**:目标设备接收请求后,检查是否与自己的IP地址匹配,若匹配则构造响应包(包含目标MAC地址)单播发送给源设备。 3. **缓存记录**:源设备在接收到响应后,将目标设备的IP-MAC映射存储在ARP缓存中,以备后续使用,避免重复查询。 3. 作用 : - **设备间通信**:确保以太网设备能够通过IP地址定位并通信。 - **提高效率**:通过ARP缓存减少频繁的地址解析操作。 4. 常见安全问题 : - **ARP欺骗攻击**:攻击者伪造ARP响应,将自身MAC地址冒充为网关MAC地址,劫持网络流量。 - **缓解措施**:启用静态ARP表、使用安全ARP协议(如GARP)、部署ARP防护设备。 ------ #### 延申问答 1. 问题1 :ARP协议的局限性有哪些? - 回答 :- 无法跨子网工作,需要网关设备中转。 - 易受ARP欺骗攻击。 - ARP广播增加局域网内的通信负担。 2. 问题2 :什么是ARP缓存中毒? - **回答**:攻击者通过伪造的ARP响应向目标设备注入错误的IP-MAC映射,从而劫持通信或进行中间人攻击。 3. 问题3 :如何防止ARP欺骗? - 回答 :- 配置静态ARP表,手动绑定IP-MAC对。 - 使用交换机的动态ARP检测功能(DAI)。 - 在网络中启用IP/MAC绑定的安全策略。 ## IP 地址和 MAC 地址有什么区别?它们在网络通信中各自扮演什么角色? #### **IP地址** **定义**:IP地址(Internet Protocol Address)是分配给每个联网设备的逻辑地址,用于标识设备在网络中的位置。 **作用**: 用于定位设备在网络中的位置。 #### **MAC地址** **定义**: MAC地址(Media Access Control Address)是网卡的物理地址,由设备制造商烧录到硬件中,通常是全球唯一的。 **作用**: 用于在同一局域网(LAN)中标识设备。 | **特性** | **IP地址** | **MAC地址** | | :------------: | :-----------------------------------------------: | :--------------------------------------: | | **层次** | 属于网络层(OSI 模型第 3 层) | 属于链路层(OSI 模型第 2 层) | | **作用范围** | 标识设备在网络中的逻辑位置,可跨网段使用 | 标识设备的物理位置,仅用于局域网通信 | | **地址形式** | IPv4: 点分十进制(如 `192.168.1.1`) | 16 进制(如 `00:1A:2B:3C:4D:5E`) | | | IPv6: 冒号分隔的 16 进制(如 `2001:0db8::1`) | | | **静态/动态** | 可静态分配(手动配置)或动态分配(DHCP 自动分配) | 静态分配,由硬件制造商确定,通常不会改变 | | **唯一性** | 在同一个网络中唯一,不同网络可重复 | 全球唯一 | | **是否可修改** | 用户可更改 IP 地址 | 一般不可更改(可通过软件手段伪造) | | **主要用途** | 用于路由选择和设备定位 | 用于数据链路层的帧传输 | | **生命周期** | IP 地址可以随网络变化而变化 | MAC 地址通常是设备的固定属性 | #### 作用 ##### **IP地址** - **互联网通信**:- 通过公共 IP 地址访问网站。 - **局域网通信**:- 使用私有 IP 地址进行设备互联。 - **动态分配**:- 使用 DHCP 服务器动态分配 IP 地址。 ##### **MAC地址** - **局域网设备识别**:- 在以太网、Wi-Fi 网络中,用于标识物理设备。 - **访问控制**:- 通过 MAC 地址白名单限制设备接入网络。 - **安全监控**:- 用于追踪网络中设备的活动。 ## 什么是 NAT(网络地址转换)?它在网络通信中有什么作用? **理论:** NAT(网络地址转换,Network Address Translation)是一种将私有网络IP地址转换为公共网络IP地址的技术。它主要用于解决IPv4地址枯竭问题,同时提供一定的安全性。 **作用:** 1. 节约IP地址 : - 通过在内部网络中使用私有IP地址(如192.168.x.x),多个内部设备可以共享一个或少数几个公共IP地址,减少对公网IP地址的需求。 2. 隐藏内部网络结构 : - NAT隐藏了内部网络的IP地址,使得外部网络无法直接访问内部设备,提高了网络的安全性。 3. 允许多个设备共享一个公共IP : - 通过端口号的映射,NAT能够让多个内部设备通过同一个公共IP地址与外部网络通信。 **工作原理:** NAT设备(通常是路由器)在数据包通过时修改其源或目的IP地址: - **源地址转换(SNAT)**:将内部设备的私有IP地址转换为公共IP地址。 - **目的地址转换(DNAT)**:将公共IP地址转换为内部设备的私有IP地址,通常用于端口转发。 **类型:** 1. **静态NAT**:- 一对一的地址映射,固定的私有IP与公共IP对应。 2. **动态NAT**:- 多个私有IP动态映射到一个公共IP池中的可用IP。 3. **端口地址转换(PAT)**:- 多个私有IP通过不同的端口号共享一个公共IP地址,常用于家庭和小型办公室网络。 **示例:** - 家庭网络使用NAT : - 家庭中有多台设备(如手机、电脑、平板)使用私有IP地址(如192.168.1.x)。 - 路由器通过NAT将这些私有IP地址转换为一个公共IP地址(如203.0.113.1)。 - 当家庭设备访问互联网时,路由器负责转换地址,确保外部服务器能够正确响应。 - 企业网络的端口转发 : - 企业内部有一台Web服务器,私有IP为192.168.1.10。 - NAT设备配置端口转发,将外部访问公共IP的80端口请求转发到内部的192.168.1.10:80。 - 外部用户通过访问公共IP的80端口即可访问内部的Web服务器。 ## TCP/IP 模型中,数据链路层和网络层各有哪些主要协议?它们的作用是什么? | **层** | **协议** | **作用** | | :------------: | :--------------: | :----------------------------------------: | | **数据链路层** | Ethernet | 提供局域网中的数据传输和设备寻址。 | | | Wi-Fi | 支持无线网络通信。 | | | ARP | 将 IP 地址解析为 MAC 地址。 | | | PPP | 提供点对点数据链路通信。 | | **网络层** | IP | 提供逻辑地址和路由选择功能。 | | | ICMP | 提供网络层的错误报告和诊断。 | | | DHCP | 动态分配 IP 地址和网络参数。 | | | NAT | 实现私有 IP 和公共 IP 地址的映射。 | | | OSPF / BGP / RIP | 提供动态路由选择,优化网络数据包传输路径。 | ## OSI 模型中,哪一层负责数据的加密和解密?哪一层负责数据的传输? | **功能** | **负责的OSI层** | **具体描述** | | :----------------: | :-------------------: | :----------------------------------------------------------: | | **数据加密和解密** | **表示层(第 6 层)** | 确保数据的机密性,使用加密算法保护数据,接收方负责解密。 | | **数据传输** | **传输层(第 4 层)** | 负责端到端的数据传输,确保数据完整、无差错地从发送方传输到接收方。 | | **加密会话的管理** | **会话层(第 5 层)** | 负责加密通信会话的建立和管理,协调加密协议的运行 | **理论:** OSI(开放系统互联,Open Systems Interconnection)模型是一个分层的网络通信模型,共有七层。每一层都有其特定的功能。 - 数据的加密和解密 : - **表现层(第6层)**:负责数据的表示、转换和加密/解密。表现层确保不同系统之间的数据格式兼容,并处理数据的加密和解密,以保障数据的安全性。 - 数据的传输 : - **物理层(第1层) 和 数据链路层(第2层)**负责数据的实际传输。- 物理层 :负责数据在物理媒介上的传输,如电缆、光纤的信号传输。 - **数据链路层**:负责在同一网络节点之间可靠地传输数据帧,进行错误检测和纠正。 **详细说明:** - 表现层(第6层) : - 主要处理数据的表示和语法,负责数据的加密、解密、压缩和转换。 - 示例:SSL/TLS协议在表现层实现加密和解密,确保数据在传输过程中的安全性。 - 传输层(第4层) : - 虽然传输层负责端到端的数据传输,但加密和解密主要由表现层处理,以保证传输层传递的数据已经是加密后的形式。 **示例:** - 数据加密和解密 : - 当用户通过HTTPS访问网站时,SSL/TLS协议在表现层对HTTP数据进行加密,确保数据在网络上传输时的安全性。接收端的表现层负责解密这些数据,以供应用层使用。 - 数据传输 : - 在一个局域网内,数据通过物理层的以太网电缆传输,数据链路层通过以太网协议(如IEEE 802.3)负责将数据帧可靠地发送到目标设备。 ## 什么是网络拥塞?TCP 是如何应对网络拥塞的? 网络拥塞是指在计算机网络中,由于数据流量超过网络设备或链路的处理能力,导致数据包的传输延迟增加、丢失或网络性能下降的情况。拥塞会影响网络的正常工作,可能导致以下问题: 1. **数据包丢失**:当网络设备的缓冲区满时,新到达的数据包会被丢弃。 2. **延迟增加**:数据包在网络中排队等待处理,导致传输延迟增加。 3. **带宽降低**:有效的传输速率下降,影响应用程序的性能。 TCP 如何应对网络拥塞? TCP(传输控制协议)通过多种机制来检测和应对网络拥塞,主要包括以下几个方面: 1. 拥塞控制算法 : - 慢启动(Slow Start) : - TCP 在连接开始时设置一个较小的拥塞窗口(cwnd),每收到一个 ACK,窗口大小增加一倍。这样可以迅速增加发送的数据量,直到达到网络的承载能力。 - 拥塞避免(Congestion Avoidance) : - 一旦达到阈值(ssthresh),进入拥塞避免阶段,窗口每经过一个 RTT(往返时间)仅增加一个 MSS(最大报文段大小),以更加稳健地增长。 - 快速重传(Fast Retransmit) : - 当发送方连续收到三个相同的 ACK(表明某个数据包丢失),立即重传丢失的数据包,而不是等待重传定时器超时。 - 快速恢复(Fast Recovery) : - 在快速重传之后,将拥塞窗口调整为 `ssthresh + 3 * MSS`,进入拥塞避免阶段,避免窗口立即减小。 2. 拥塞窗口(cwnd) : - TCP 使用一个称为拥塞窗口的变量来控制可以发送的未确认数据量。拥塞窗口的大小根据网络状况动态调整,以适应当前的网络能力。 3. 重传定时器 : - TCP 设置一个重传定时器,如果未收到特定数据包的 ACK,则会重传该数据包。定时器的设置基于 RTT 的估计值。 4. 流量控制 : - 除了拥塞控制外,TCP 还通过流量控制机制(使用接收窗口 rcv_wnd)来确保接收方不会被过多的数据淹没,从而降低了拥塞的可能性。 5. 拥塞控制算法的选择 : - TCP 实现了多种拥塞控制算法(如 Reno、New Reno、CUBIC 等),这些算法在不同的网络条件下表现不同,TCP 可以根据网络状况选择合适的算法进行拥塞控制。 ## CDN 是什么?它在网络传输中有什么作用? CDN是一种分布式网络服务,通过将内容存储在分布式的服务器上,使用户可以从距离较近的服务器获取所需的内容,加快内容获取的速度。 - **就近访问**:CDN 在全球范围内部署了多个服务器节点,用户的请求会被路由到距离最近的 CDN 节点,来获取资源。 - **内容缓存**:CDN 服务器会缓存静态资源,如图片、样式表等。当用户请求访问这些资源时,CDN 会首先检查是否已经缓存了该资源。如果有缓存,CDN 节点会直接返回缓存的资源,如果没有缓存所需资源,它会从源服务器(原始服务器)回源获取资源,并将资源缓存到节点中,以便以后的请求。 - **可用性**:即使某些节点出现问题,用户请求可以被重定向到其他健康的节点。