计算机网络基础——针对实习面试

目录

  • 计算机网络基础
    • OSI七层模型
    • TCP/IP四层模型
    • 为什么网络要分层?
    • 常见网络协议

计算机网络基础

在这里插入图片描述

OSI七层模型

开放系统互连参考模型(Open Systems Interconnection Reference Model,简称OSI模型)是一个概念性模型,用于标准化不同计算机系统间通信过程。这个模型由国际标准化组织(ISO)在1984年提出,旨在为网络通信提供一个共同的理解和设计框架。

OSI模型将网络通信划分为七个层次,每一层都有特定的功能和协议。从下到上,这七个层次分别是:

  1. 物理层(Physical Layer):负责在物理媒介上传输原始的比特流。这一层涉及到电气信号、光信号等物理传输介质,以及如何将数据编码为这些信号。

  2. 数据链路层(Data Link Layer):负责在相邻的网络节点之间传输数据帧。它确保物理层传输的数据无误,并进行错误检测和修正。

  3. 网络层(Network Layer):负责在源节点和目的节点之间选择数据传输路径。这一层定义了数据包的路由和转发。

  4. 传输层(Transport Layer):负责提供端到端的数据传输服务。它确保数据的完整性和可靠性,包括数据分段、错误检测、流量控制等。

  5. 会话层(Session Layer):负责建立、管理和终止应用程序之间的会话。这一层确保会话可以在通信过程中正确地建立和结束。

  6. 表示层(Presentation Layer):负责数据的表示、编码和转换。它确保一个系统的应用层所发送的信息可以被另一个系统的应用层读取,包括数据格式转换、数据加密和压缩等。

  7. 应用层(Application Layer):为应用软件提供网络服务。这一层涉及到最终用户与网络的交互,如HTTP、FTP、SMTP等协议。

本图为外网转载

OSI模型是一个理论模型,实际应用中更广泛采用的是TCP/IP模型,它将OSI模型的部分层次合并,通常分为四个层次:链路层、网络层、传输层和应用层。尽管如此,OSI模型仍然是理解网络通信原理的重要工具。

TCP/IP四层模型

TCP/IP模型,也被称为互联网模型,是一种四层的网络通信模型,它被广泛用于实现互联网的通信。这四层分别是:

  1. 链路层(Link Layer)

    • 也被称为网络接口层,负责在两个直接相连的节点之间传输原始比特流。
    • 处理与硬件相关的功能,如控制操作系统如何访问网络媒体。
    • 包括以太网(Ethernet)、Wi-Fi等技术。
    • 链路层协议包括ARP(地址解析协议)和RARP(反向地址解析协议)。
  2. 网络层(Internet Layer)

    • 负责在多个网络之间传输数据包,实现路由选择
    • 使用IP协议(Internet Protocol)来标识主机和路由数据包。
    • 网络层协议还包括ICMP(Internet Control Message Protocol,互联网控制消息协议),用于发送错误消息和操作信息。
    • 路由协议如OSPF(Open Shortest Path First,开放最短路径优先)和BGP(Border Gateway Protocol,边界网关协议)也在网络层工作。
  3. 传输层(Transport Layer)

    • 提供端到端的数据传输服务。
    • 包括TCP(Transmission Control Protocol,传输控制协议)和UDP(User Datagram Protocol,用户数据报协议)两种主要协议。
    • TCP提供可靠的、面向连接的服务,而UDP提供不可靠的、无连接的服务
    • 传输层负责数据的分段和重组,以及流量控制和拥塞控制。
  4. 应用层(Application Layer)

    • 提供网络服务给最终用户。
    • 包括HTTP(HyperText Transfer Protocol,超文本传输协议)、FTP(File Transfer Protocol,文件传输协议)、SMTP(Simple Mail Transfer Protocol,简单邮件传输协议)等。
    • 应用层协议负责处理特定应用程序的数据,并确保数据可以被应用程序正确解析和使用。

TCP/IP模型的每一层都通过下一层提供的服务来实现其功能,并且为上一层提供服务。这种分层的设计使得网络通信更加模块化,易于理解和实现。

为什么网络要分层?

  1. 各层之间相互独立:各层之间相互独立,各层之间不需要关心其他层是如何实现的,只需要知道自己如何调用下层提供好的功能就可以了(可以简单理解为接口调用)。这个和我们对开发时系统进行分层是一个道理。
  2. 各层之间相互独立:各层之间相互独立,各层之间不需要关心其他层是如何实现的,只需要知道自己如何调用下层提供好的功能就可以了(可以简单理解为接口调用)。这个和我们对开发时系统进行分层是一个道理。
  3. 大问题化小:分层可以将复杂的网络问题分解为许多比较小的、界线比较清晰简单的小问题来处理和解决。这样使得复杂的计算机网络系统变得易于设计,实现和标准化。 这个和我们平时开发的时候,一般会将系统功能分解,然后将复杂的问题分解为容易理解的更小的问题是相对应的,这些较小的问题具有更好的边界(目标和接口)定义。

常见网络协议

以下是一些最常见网络协议的详细解释:

  1. IP (Internet Protocol)

    • 作用:IP协议是网络层的核心协议,负责将数据包从源主机路由到目的主机。
    • 版本:IPv4和IPv6,其中IPv4是目前最广泛使用的版本,IPv6是为了解决IPv4地址耗尽问题而设计的。
    • 功能:提供数据包的寻址和路由功能,但不保证数据包的顺序或可靠性。
  2. TCP (Transmission Control Protocol)

    • 作用:传输层协议,提供可靠的、有序的、基于连接的数据传输服务
    • 特点:通过三次握手建立连接,使用序列号和确认应答机制保证数据的顺序和完整性,使用流量控制和拥塞控制机制。
    • 应用:适用于需要可靠传输的应用,如Web浏览(HTTP)、文件传输(FTP)和邮件传输(SMTP)。
  3. UDP (User Datagram Protocol)

    • 作用:传输层协议,提供不可靠的、无连接的数据传输服务
    • 特点:发送数据前不需要建立连接,不保证数据的顺序或完整性,适用于对实时性要求高的应用。
    • 应用:适用于实时应用,如VoIP(Voice over IP)、在线游戏和视频流。
  4. ICMP (Internet Control Message Protocol)

    • 作用:网络层协议,用于发送错误消息和操作信息
    • 功能:如ping命令使用ICMP来测试网络连接,ICMP还用于发送网络不可达、TTL超时等错误消息。
  5. ARP (Address Resolution Protocol)

    • 作用:链路层协议,用于将网络层的IP地址解析为链路层的MAC地址。
    • 功能:当一个设备需要向另一个设备发送数据时,它会使用ARP来查询目标IP地址对应的MAC地址。
  6. HTTP (HyperText Transfer Protocol)

    • 作用:应用层协议,用于从服务器传输超文本到本地浏览器。
    • 特点:基于请求/响应模型,无状态协议,支持多种类型的数据传输,如HTML、图片和视频。
    • 版本:HTTP/1.1是最常用的版本,HTTP/2提供了性能改进,HTTP/3是最新的版本,基于UDP和QUIC协议。
  7. HTTPS (HTTP Secure)

    • 作用:HTTP的安全版本,通过SSL/TLS提供加密的数据传输。
    • 功能:确保数据传输的安全性和完整性,防止中间人攻击。
  8. FTP (File Transfer Protocol)

    • 作用:应用层协议,用于在网络上进行文件传输
    • 特点:支持文件的上传、下载和管理,通常使用端口21。
  9. SMTP (Simple Mail Transfer Protocol)

    • 作用:应用层协议,用于发送电子邮件
    • 功能:定义了邮件服务器之间传输邮件的规则。
  10. DNS (Domain Name System)

    • 作用:应用层协议,将域名转换为IP地址
    • 功能:允许用户通过易于记忆的域名访问网站,而不是记住复杂的IP地址。
  11. DHCP (Dynamic Host Configuration Protocol)

    • 作用:网络层协议,用于自动分配IP地址和其他网络配置
    • 功能:减少网络管理员的工作量,动态管理IP地址池。
  12. SSL/TLS (Secure Sockets Layer/Transport Layer Security)

    • 作用:提供网络通信的加密和安全
    • 功能:使用密钥交换、数据加密和消息完整性验证来保护数据传输。

这些协议共同构成了互联网的基础架构,使得数据能够在不同的设备和网络之间高效、安全地传输。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/59589.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

leetcode100:相同的树

给你两棵二叉树的根节点 p 和 q ,编写一个函数来检验这两棵树是否相同。 如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。 示例 1: 输入:p [1,2,3], q [1,2,3] 输出:true示例 2&…

将已有的MySQL8.0单机架构变成主从复制架构

过程: 把数据库做一个完全备份, 恢复到从节点上, 恢复后从备份的那个点开始往后复制,从而保证后续数据的一致性。 步骤: 修改 master 主节点 的配置( server-id log-bin )master 主节点 完全备份( mysqldump )master 主节点 创建…

如何在jupyter notebook切换python环境

目录 参考链接 首先确保conda已经正常安装 conda --version 或者conda -V 以下请将“myenv”替换成自己的命名!!! 1-查看虚拟环境目录 conda env list 2-创建虚拟环境命令 conda create -n myenv 或者 conda create --name myenv 3-激活虚拟环…

Springboot 整合 itext 实现PDF文件合并,识别图片则转成PDF拼接

目录 前言一、引用依赖二、使用步骤1.Controller2.Service接口3.实现类三、请求接口及结果前言 本文实现 Springboot 整合 itext 实现PDF文件合并,图片转PDF拼接。 一、引用依赖 <dependency><groupId>com.itextpdf</groupId><artifactId>itext7-co…

在 Ubuntu 18.04 中搭建和测试 DNS 服务器

在 Ubuntu 18.04 中搭建和测试 DNS 服务器可以通过安装和配置 BIND&#xff08;Berkeley Internet Name Domain&#xff09;来实现。以下是详细的步骤&#xff1a; 1. 安装 BIND 打开终端并运行以下命令来安装 BIND&#xff1a; sudo apt update sudo apt install bind9 bin…

【嵌入式软件-STM32】OLED显示屏+调试方法

目录 一、调试方式 1&#xff09;串口调试 优势 弊端 2&#xff09;显示屏调试 优势 弊端 3&#xff09;Keil调试模式 4&#xff09;点灯调试法 5&#xff09;注释调试法 6&#xff09;对照法 二、OLED简介 OLED组件 OLED显示屏 0.96寸OLED模块 OLED外观和种类…

【知识科普】微内核架构与宏内核架构

微内核与宏内核 微内核一、微内核的定义二、微内核的特点三、微内核的优缺点四、微内核的应用场景操作系统 宏内核一、宏内核的定义二、宏内核的特点三、宏内核的优缺点四、宏内核的应用场景 微内核架构与宏内核架构简单比较微内核的优势宏内核的优势面向未来的架构 微内核 微…

Liebherr利勃海尔 EDI 需求分析

Liebherr 使用 EDI 技术来提高业务流程的效率、降低错误率、加快数据交换速度&#xff0c;并优化与供应商、客户和其他合作伙伴之间的业务沟通。通过 EDI&#xff0c;Liebherr 实现了与全球交易伙伴的自动化数据交换&#xff0c;提升了供应链管理和订单处理的透明度。 Liebher…

求字符 ‘a‘ 和 ‘b‘ 组成的,最大长度为n的字符串中字典序第 k 个字符串

求字符 ‘a’ 和 ‘b’ 组成的&#xff0c;最大长度为n的字符串中字典序第 k 个字符串 先来解释一下这个题目&#xff0c;假设最大长度为3&#xff0c;那么由字符a和b组成的字符串有&#xff1a; a, b, ab, aaa, aba...把这些字符串按照字典序排序: aaaaaaaabababaabbbbabaab…

再见 阿里巴巴EasyExcel替代品EasyExcel-Plus即将诞生

最近阿里发布公告通知&#xff0c;停止对EasyExcel 更新和维护&#xff0c;EasyExcel 是一款知名的 Java Excel 工具库&#xff0c;由阿里巴巴开源&#xff0c;作者是玉霄&#xff0c;在 GitHub 上有 30k stars、7.5k forks。 据了解&#xff0c;EasyExcel作者玉霄)去年已经从…

android应用调用c语言的so库

android应用调用c语言的so库&#xff0c;可以将c代码放在android工程里直接ndk编译&#xff0c;或者外部一个so库&#xff0c;ndk编一个调用so的桥接库。普通的c函数java代码不能直接调用&#xff0c;桥接的虚函数不可少&#xff0c;所以此处仅记录一下桥接函数。有的固定路径的…

如何保证MySQL与Redis缓存的数据一致性?

文章目录 一、引言二、场景来源三、高并发解决方案1. 先更新缓存&#xff0c;再更新数据库2. 先更新数据库&#xff0c;再更新缓存3. 先删除缓存&#xff0c;再更新数据库4. 先更新数据库&#xff0c;再删除缓存小结 四、拓展方案1. 分布式锁与分布式事务2. 消息队列3. 监听bin…

opencv调整图片对比度和亮度

在OpenCV中&#xff0c;为了改变图像的对比度和亮度&#xff0c;我们可以使用 cv2.convertScaleAbs() 方法。我们使用的方法的语法如下 cv2.convertScaleAbs(image,alpha,beta)其中image 是原始的输入图像。 # image cv2.imread(egg.jpg)alpha 是对比度值。为了降低对比度&am…

暴露IP地址会影响网络隐私安全吗?

​我的IP地址暴露后会影响隐私安全吗&#xff1f; 互联网飞速发展以来&#xff0c;短短数十年&#xff0c;我们的工作生活就不能够离开互联网。那么作为网络连接传递数据的门户——IP地址&#xff0c;大家都有一定的疑惑和好奇。其中关于自身安全的尤为重要&#xff0c;所以IP…

SQL面试题——蚂蚁SQL面试题 连续3天减少碳排放量不低于100的用户

连续3天减少碳排放量不低于100的用户 这是一道来自蚂蚁的面试题目,要求我们找出连续3天减少碳排放量低于100的用户,之前我们分析过两道关于连续的问题了 SQL面试题——最大连续登陆问题 SQL面试题——球员连续四次得分 这两个问题都是跟连续有关的,但是球员连续得分的难…

机器学习、深度学习面试知识点汇总

下面是本人在面试中整理的资料和文字&#xff0c;主要针对面试八股做浅显的总结&#xff0c;大部分来源于ChatGPT&#xff0c;中间有借鉴一些博主的优质文章&#xff0c;已经在各文中指出原文。有任何问题&#xff0c;欢迎随时不吝指正。 文章系列图像使用动漫 《星游记》插图…

深度学习--正则化

笔记内容侵权联系删 过拟合问题 过拟合问题描述:模型在训练集表现优异&#xff0c;但在测试集上表现较差。 根本原因:特征维度过多&#xff0c;模型假设过于复杂&#xff0c;参数过多&#xff0c;训练数据过少&#xff0c;噪声过多导致拟合出的函数几乎完美的对训练集做出预…

Jtti:服务器总是自动重启怎么办?

服务器总是自动重启可能是由于多种原因引起的&#xff0c;包括硬件故障、软件问题、配置错误或环境因素。以下是一些常见原因和相应的解决方案&#xff1a; 1. 硬件问题 电源故障&#xff1a;电源供应不稳定或电源模块故障可能导致服务器重启。 解决方案&#xff1a;检查电源供…

AXI接口的实现逻辑和底层原理,在FPGA中如何实现AXI接口,一篇文章足以搞明白!!!

AXI&#xff08;Advanced eXtensible Interface&#xff09;接口是一个点对点的接口&#xff0c;用于连接高性能的片上系统&#xff08;SoC&#xff09;中的处理器、外围设备、内存和其他IP核。以下是对AXI接口的详细解析&#xff0c;包括FPGA实现的原理、逻辑、速度以及详细的…

通过 SSH 隧道将本地端口转发到远程主机

由于服务器防火墙,只开放了22端口,想要通过5901访问服务器上的远程桌面,可以通过下面的方式进行隧道转发。 一、示例命令 这条代码的作用是通过 SSH 创建一个 本地端口转发,将你本地的端口(5901)通过加密的 SSH 隧道连接到远程服务器上的端口(5901)。这种方式通常用于在…