计算机网络入门基础

news2024/9/22 17:24:09

1. 基础概念

我们在聊网络的时候,就像是我们在日常生活中寄信一样。我们可以把网络想象成一个巨大的邮局系统,负责把信息从一个地方传送到另一个地方。

a. 什么是协议栈?

协议栈就像是寄信过程中的多个步骤。我们可以把它想象成寄信的时候需要做的各个步骤:

  • 写信:你先写好内容(相当于网络中的应用层,比如浏览网页、发邮件)。
  • 装信封:把信装进信封里并贴上邮票(相当于网络中的传输层和网络层,把信息包裹起来,附上地址)。
  • 邮递员取信:邮递员把信从你家拿走,送到邮局(相当于数据链路层和物理层,把信息通过线路传输到网络中)。

这些步骤是有序的,每一步都很重要,只有每一步都完成,信才能顺利送到收信人手里。协议栈就是这些步骤的集合,按照顺序完成信息的传输任务。

b. 什么是客户端和服务器?

客户端和服务器就像是寄信的人和收信的人。

  • 客户端:就像是寄信的人。你想要做某件事,比如上网查信息,或者发一封邮件。你把这些需求打包起来,交给网络去处理。

  • 服务器:就像是收信的人。服务器收到你的“信”后,会做出相应的回应,比如把网页内容发回给你,或者接收你的邮件并帮你发送给其他人。

客户端(寄信的人)和服务器(收信的人)通过网络(邮局系统)进行信息传递。

c. 网络和它们的关系是什么?

网络就是连接客户端和服务器的那条“路”,也是“邮局系统”。它负责让“信”(信息)能够在客户端和服务器之间来回传送。没有网络,就像没有路,信根本送不到对方手里。网络不仅要确保信送得快,还要确保信送得准。

所以,协议栈就是“寄信”需要遵循的一系列步骤,客户端和服务器就像是寄信和收信的人,而网络就是帮他们传递“信件”的那条路。
在这里插入图片描述

为什么协议栈要分层?

网络协议栈分层的原因,就像我们在生活中做事情时把复杂的任务分成多个步骤一样,这样更容易管理、理解和解决问题。我们可以通过一个实际生活中的比喻来解释。

想象一下,你要组织一个大型的家庭聚会。这个任务非常复杂,如果你一个人做所有事情,会非常困难。所以,你可以把任务分成几个部分。通过把任务分层,每个人只需要专注于自己的一部分工作,整个聚会就能顺利进行。网络协议栈分层的道理也是一样的。每一层只专注于处理一部分任务,所有层协作完成数据传输的整个过程。

如果你在聚会当天发现菜不够了,需要去补货,你只需要让负责买菜的人再去一趟超市,而不需要打乱其他环节的工作。这就是分层带来的灵活性。如果网络中的某一层需要改进或者更新,只需要改动这一层,而不影响其他层。

网络分层后,如果某一部分出了问题,比如数据传输慢了,你可以直接检查负责这一层的部分,而不用把整个系统翻个遍。分层让不同的团队可以各自做好自己的一部分,然后把它们组合在一起。同样,网络协议栈分层后,世界各地的不同厂商可以遵循同样的标准生产设备,这样它们的产品就能互相兼容,像拼图一样拼在一起使用。

总结来说,网络协议栈分层的目的是为了简化复杂性、增强灵活性、便于故障排除,以及实现标准化和互操作性。这使得网络更加高效和易于管理。

局域网和广域网的对比

局域网(LAN)和广域网(WAN)的区别可以通过一个简单的类比来理解,就像是家里和城市之间的区别。

1. 覆盖范围

  • 局域网(LAN):就像是你的家。局域网覆盖的范围比较小,通常在一个房间、一栋楼或者一个小型的办公区域内。所有的设备都在同一个“家”里,通过局域网彼此连接,比如家里的电脑、手机、智能电视等都通过家里的Wi-Fi连接在一起。因为局域网覆盖范围小,数据传输速度通常很快.

  • 广域网(WAN):就像是一个城市。广域网覆盖的范围非常大,可以跨越城市、国家甚至是整个世界。广域网连接的是多个局域网,比如你家里的网络连接到互联网,你的网络就进入了一个广域网,这样你就可以访问全球的信息。广域网的覆盖范围大,涉及的网络设备多,传输距离长,所以速度可能相对慢一些。

2. 所有权和用途

  • 局域网:局域网通常是由个人、家庭或公司拥有和管理的。你可以自己设置、维护和管理家里的网络,比如安装路由器、设置Wi-Fi密码等。主要用于连接在同一地点的设备,方便共享资源(如打印机、文件)和进行本地通信。

  • 广域网:广域网通常由电信公司或互联网服务提供商(ISP)拥有和管理。个人和公司无法直接控制广域网,但可以通过支付服务费来使用它。主要用于连接不同地理位置的局域网,提供跨地区、跨国的通信和信息交换。

总结来说,局域网和广域网的主要区别在于它们的覆盖范围、速度、所有权和用途。局域网像是一个家庭内部的网络,而广域网则是跨越更大区域、连接不同局域网的全球网络。


2. 协议是什么?

协议在计算机网络中就像是一套“约定好的规则”,用来确保不同设备和系统之间可以相互理解和通信。我们可以通过一个简单的比喻来理解协议的概念。

想象一下,你和你的朋友说不同的语言。如果你们想顺利交流,你们需要先达成一致,比如都使用英语,这样双方才能互相理解,不会产生误解。在网络世界里,不同的计算机和设备也需要一种“共同的语言”来交流,这个“语言”就是协议。

网络协议定义了如何在设备之间发送、接收和处理数据。它规定了数据的格式、传输的顺序、错误处理的方法等,确保数据能准确地传递和理解。
在这里插入图片描述

协议是谁来定的?

网络协议不是由某个单一的个人或公司来决定的,而是由全球范围内的标准化组织和专业机构共同制定的。这些组织通常由来自不同国家和公司的专家组成,他们一起协商并达成一致意见,确保全球网络能够互相兼容、互通。

这些组织的工作方式通常是通过广泛的讨论、测试和反馈,最终形成一个全球认可的标准。这个标准一旦确立,设备制造商、软件开发者和服务提供商都会遵守,以确保他们的产品和服务能够在全球范围内互相兼容。

3. TCP / IP模型

TCP/IP模型是现代互联网的核心架构,用来指导数据在网络中的传输。它是基于一个分层的方式,每一层都有不同的功能,负责处理网络通信的不同部分。我们可以把TCP/IP模型想象成一个四层的“通信楼”,每一层负责不同的任务,确保数据能够从一个设备顺利到达另一个设备。

四层结构

  1. 网络接口层(Network Interface Layer)

    • 作用:这一层负责物理连接和数据的实际传输。它处理的是网络硬件相关的操作,比如通过网线、Wi-Fi等物理介质来发送和接收数据。包括数据链路层和物理层。
    • 任务:将数据包发送到网络,并从网络接收数据包。它还负责检查物理连接的有效性,保证数据的可靠传输。
  2. 网络层(Internet Layer)

    • 作用:这一层主要负责数据在网络之间的传输,特别是在多个网络之间的数据路由选择和寻址
    • 核心协议
      • IP协议(Internet Protocol):负责为数据包提供地址信息,使其能够找到目标设备。IP地址类似于网络上的“门牌号”,每台设备都有唯一的地址。
      • ICMP协议(Internet Control Message Protocol):用于网络设备之间发送控制信息和错误消息,比如“目标不可达”或者“请求超时”等。
  3. 传输层(Transport Layer)

    • 作用:这一层确保数据在源设备和目标设备之间可靠地传输,并管理数据传输的速度和方式。
    • 核心协议
      • TCP协议(Transmission Control Protocol):提供可靠的数据传输服务,通过建立连接、数据分段、重传等机制,确保数据不丢失、不重复且按顺序到达。
      • UDP协议(User Datagram Protocol):提供不可靠的数据传输服务,适用于需要快速传输但不要求严格顺序和可靠性的场景,比如视频流和在线游戏。
  4. 应用层(Application Layer)

    • 作用:这一层直接与用户应用程序交互,负责处理应用程序需要的数据格式和协议。
    • 核心协议
      • HTTP/HTTPS(Hypertext Transfer Protocol / Secure):用于网页浏览。
      • FTP(File Transfer Protocol):用于文件传输。
      • SMTP(Simple Mail Transfer Protocol):用于电子邮件发送。
      • DNS(Domain Name System):用于域名解析,把网址转换为IP地址。

在这里插入图片描述

TCP/IP模型的工作流程(这部分后面会展开讲)

当你在浏览器中输入一个网址并按下回车时,数据会经过这四层处理:

  1. 应用层将你的请求(比如访问网页的请求)打包成一个数据单元。
  2. 传输层将这个数据单元分成小块(数据段),并为每个数据段提供序列号,确保它们能按顺序到达。
  3. 网络层为每个数据段附加上源IP地址和目标IP地址,确保数据包能找到目标设备。
  4. 网络接口层通过物理介质将数据包发送出去,最终数据经过网络传输到达目标设备。

在目标设备上,数据包会按照相反的顺序从网络接口层经过每一层,最后在应用层组合成完整的数据,显示在你的浏览器中。TCP/IP模型是互联网的基础架构,通过分层的方式处理数据的传输。每一层都负责特定的任务,从实际的物理传输到应用程序的交互,确保数据能够准确、可靠地传递到目标设备。

4. IP地址和MAC地址

IP地址和MAC地址是网络通信中两个非常重要的概念,它们分别起着不同的作用,确保数据能够在网络中正确传输和定位。

a. 什么是IP地址?

IP地址(Internet Protocol Address) 可以看作是网络中的“门牌号”或“电话号码”,用于标识每一台连接到网络的设备。就像每栋房子都有一个唯一的门牌号,IP地址确保数据能够找到正确的设备。这也是路由器能够“认路”的原因。

  • 类型

    • IPv4地址:是32位的数字地址,通常用点分十进制表示,例如 192.168.1.1。它最多可以提供约43亿个独立地址(2^32)。一般更加常用IPv4地址。
    • IPv6地址:是128位的数字地址,用冒号分隔的16进制数表示,例如 2001:0db8:85a3:0000:0000:8a2e:0370:7334。由于IPv4地址不够用,IPv6提供了大量的可用地址(2^128)。
  • 作用:IP地址用于在网络中定位设备并路由数据。它告诉网络“把数据包送到这个地方去”。当你访问网站时,IP地址帮助数据包从你的电脑传送到网站服务器,并返回给你。

  • 动态和静态IP

    • 动态IP地址:每次设备连接到网络时由网络自动分配,可能每次都不同。大部分家庭网络中的设备使用动态IP地址。
    • 静态IP地址:固定的,设备每次连接到网络时使用相同的IP地址。它用于服务器或需要固定地址的设备。

b. 什么是MAC地址?

MAC地址(Media Access Control Address) 可以看作是网络设备的“身份证号码”。它是硬件级别的地址,用于标识每个网络接口,比如电脑的网卡或手机的Wi-Fi模块。

  • 类型

    • 格式:MAC地址是一个48位的标识符,通常用六组十六进制数字表示,如 00:1A:2B:3C:4D:5E
    • 全球唯一:每个网络设备的MAC地址都是唯一的,由设备制造商在出厂时烧录到设备中。
  • 作用:MAC地址用于局域网(LAN)中设备的标识和通信。它确保数据帧在局域网中能找到正确的设备。比如,当你的路由器接收到来自互联网的数据包时,它会根据MAC地址将数据发送到家里正确的设备。

c. IP地址和MAC地址的关系

IP地址和MAC地址在网络中共同作用,确保数据能够准确送达目标设备。

  • IP地址主要用于在整个网络(特别是互联网)中定位设备并决定数据包的路径。
  • MAC地址则用于在局域网中识别设备,确保数据帧能找到正确的网络接口。

当数据包在网络中传输时,首先通过IP地址找到目标网络(例如,把数据从你家发送到一个网站的服务器)。当数据进入局域网(例如,到达你家的路由器)后,路由器会使用MAC地址将数据发送到正确的设备(如你的电脑或手机)。IP地址像“门牌号”,用于在网络中定位设备并路由数据。MAC地址像“身份证号码”,用于在局域网中标识设备和传输数据。

它们协同工作,确保网络通信能够顺利进行。

在Linux中如何看MAC地址:指令ifconfig
在这里插入图片描述

IP地址屏蔽底层网络的差异

IP地址能够在很大程度上屏蔽底层网络的差异,这是IP协议设计的一个重要特性。

a. 什么是底层网络的差异?

底层网络的差异指的是不同类型的物理网络技术和数据链路协议之间的差异。例如:

  • 有线网络(如以太网)无线网络(如Wi-Fi) 之间的差异。
  • 光纤网络电缆网络之间的差异。
  • 不同网络拓扑(如星型、环型、总线型等)之间的差异。
  • 不同的数据链路层协议(如Ethernet、PPP、Frame Relay)之间的差异。

这些底层技术在数据传输的方式、速率、介质和协议上可能有很大不同。

b. IP地址如何屏蔽这些差异?

IP地址通过将网络分为不同的层次,并在网络层(IP层)实现数据的路由和传输,从而屏蔽了底层网络的差异。以下是其工作原理:

  • 分层模型:在TCP/IP模型中,IP地址位于网络层(Internet层),这一层的主要职责是将数据包从一个网络传输到另一个网络。无论底层网络是什么样的,IP层的操作都是相同的,它只关心IP地址,不关心数据如何通过物理介质传输。

  • 封装和解封装:当数据从更高层次(如应用层)传输下来时,IP层会将数据封装在一个IP数据包中,附加上源IP地址和目的IP地址。这一过程独立于底层网络的传输方式。无论数据在底层通过什么介质传输(光纤、电缆、无线等),IP层都不需要了解这些细节。

  • 路由选择:IP协议通过路由器在不同网络之间传输数据包。路由器负责解析IP地址,并将数据包转发到合适的下一跳(下一网络)。路由器根据IP地址进行操作,而不是底层的物理地址(如MAC地址),所以它可以在不同类型的网络之间进行数据传输,而不需要知道这些网络的具体物理细节。

c. 为什么屏蔽底层网络差异很重要?

  • 互操作性:通过屏蔽底层网络的差异,IP协议能够让不同类型的网络(有线、无线、光纤等)互相通信,这使得全球互联网得以建立。

  • 灵活性:网络层和物理层的分离使得网络可以随着技术的发展不断演进。例如,当新型网络技术出现时(如5G、光纤网络),它们可以直接集成到现有的IP网络中,而无需改变IP层的工作方式。

  • 简化设计:由于IP层不需要了解底层的网络技术,网络协议的设计和实现变得更加简单和标准化。这减少了开发和维护网络设备和软件的复杂性。

IP地址通过在网络层抽象出数据传输的路径,成功屏蔽了底层网络的差异。无论底层网络如何变化,IP协议都能保证数据包按照IP地址指示的路径传输,这也是互联网能够连接各种不同网络的关键。

感谢你能看到这里,如果对你有帮助的话不妨点个赞支持一下~

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

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

相关文章

Python3 SMTP发送邮件

SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。 python的smtplib提供了一种很方便的途径发送电子邮件。它对smtp协议进行了简单的封装。 Python创建 SM…

Kotlin:1.9.0 的新特性

一、概述 Kotlin 1.9.0版本英语官方文档 Kotlin 1.9.0 中文官方文档 The Kotlin 1.9.0 release is out and the K2 compiler for the JVM is now in Beta. Additionally, here are some of the main highlights: Kotlin 1.9.0版本已经发布,用于JVM的K2编译器现在…

运用Java实现倒计时功能

这个功能其实是比较好实现的,一般来说java中实现倒计时有两种方法: 1、使用 scheduledexecutorservice创建一个可重复执行的任务,直到时间到: ScheduledExecutorService 是 Java 中一种用于安排延迟或定期任务的工具。我们可以使…

PMP--一模--解题--61-70

文章目录 14.敏捷61、 [单选] 作为估算活动持续时间过程的一部分,项目经理促成了与产品负责人和Scrum团队的冲刺计划会议。项目经理将用户故事分解为较小的任务项,以小时为单位估算所需时间,并根据团队的能力确定冲刺待办事项列表。尽管计划周…

6. Transforms的使用(一)--ToTensor()

Transforms的使用(一) 1.使用ToTensor类将数据转化为Tensor形式 导入需要使用的transforms类 from torchvision import transforms创建ToTensor类的实例 totensor transforms.ToTensor()将读取的图片ndarray数据转化为Tensor数据 img cv.imread(img_p…

SAP学习笔记 - 开发06 - CDSView + Fiori Element 之 List Report

上一章讲了Fiori UI5开发环境搭建和实践: - VSCode 安装Fiori Tools插件 - SEGW 创建后台程序,注册服务,Gateway Client确认服务 - 使用SEGW公开的服务来查询数据显示到页面 SAP学习笔记 - 开发05 - Fiori UI5 开发环境搭建2 Fiori Tools…

react js 使用 useEffect 钩子

起因, 目的: useEffect() , 已经遇见好几次了。 我的理解是, 页面加载完成之后,会执行这个函数。??? 写个例子, 请求 api import React, { useState, useEffect } from "re…

在线查看 Android 系统源代码 AOSPXRef and AndroidXRef

在线查看 Android 系统源代码 AOSPXRef and AndroidXRef 1. AOSPXRef1.1. http://aospxref.com/android-14.0.0_r2/1.2. build/envsetup.sh 2. AndroidXRef2.1. http://androidxref.com/9.0.0_r3/2.2. build/envsetup.sh 3. HELLO AndroidReferences 1. AOSPXRef http://aospx…

Java | Leetcode Java题解之第406题根据身高重建队列

题目&#xff1a; 题解&#xff1a; class Solution {public int[][] reconstructQueue(int[][] people) {Arrays.sort(people, new Comparator<int[]>() {public int compare(int[] person1, int[] person2) {if (person1[0] ! person2[0]) {return person2[0] - perso…

5.TensorBoard的使用(二)--add_image()

TensorBoard的使用&#xff08;二&#xff09; 1.使用add_image()给添加图片 首先导入Tensorboard包 from torch.utils.tensorboard import SummaryWriter创建一个SummaryWriter类的实例&#xff0c;并将所有的事件文件保存在logs文件夹中 writer SummaryWriter(logs)使用add…

【光照增强论文略读】Zero-Reference Deep Curve Estimation for Low-Light Image Enhancement

这篇题为《用于低光照图像增强的零参考深度曲线估计》的论文介绍了一种名为Zero-DCE的创新方法&#xff0c;用于增强低光照图像。其主要创新点在于&#xff0c;它在训练过程中不需要成对或非成对的参考图像&#xff0c;因此是一种“零参考”方法。通过轻量级深度学习模型DCE-Ne…

五星级可视化页面(25):非蓝色系,金色系可视化界面。

深蓝色系的可视化界面是最常见的&#xff0c;本文专门分享一些金色系的可视化界面。

java项目之编程训练系统源码(springboot)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的编程训练系统。项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息 。 项目简介&#xff1a; 编程训练系统的主要使用者管…

TCP套接字【网络】

文章目录 TCP常见接口服务端服务端创建套接字服务端绑定服务端监听服务端获取连接服务端处理请求 客户端客户端创建套接字客户端连接服务器并发起请求 代码 TCP常见接口 创建套接字&#xff1a;&#xff08;TCP/UDP) int socket(int domain, int type, int protocol);inet_at…

超高速传输 -- 超通道Superchannel

超通道表示多个子载波在波分侧合并成一个更大带宽的光通道一起传输。 超通道基于flexible grid技术&#xff0c;能够提升频谱效率、降低滤波器级联代价。 超通道目前主要应用在波长间隔为37.5GHz的场景&#xff0c;在此场景下&#xff0c;多个ROADM单板级联时的…

速通LLaMA1:《LLaMA: Open and Efficient Foundation Language Models》全文解读

文章目录 论文总览1. 创新点和突破点2. 技术实现与算法创新3. 架构升级4. 概念补充SwiGLU激活函数AdamW 5. 总结 AbstractIntroductionApproachPre-training DataArchitecture&#xff08;架构&#xff09;Optimizer&#xff08;优化器&#xff09;Efficient implementation&am…

浅谈人工智能之基于ollama本地大模型结合本地知识库搭建智能客服

浅谈人工智能之基于ollama本地大模型结合本地知识库搭建智能客服 摘要 随着人工智能技术的飞速发展,基于大型语言模型(LLMs)的智能客服系统逐渐成为提升企业服务质量和效率的关键工具。然而,对于注重数据隐私和安全的企业而言,使用云服务可能会引发数据泄露的风险。因此…

快速打字及技巧

1.tab部首 娴 xian tab nv 楔 xie tab mu 2.用单引号间隔 xian 西安 修改技巧&#xff1a;Ctrl首字母就能快速定位到该字母的前面 3.启用U模式&#xff0c;再也不怕生僻字 u tututu 垚 u niuniuniu 犇 或者用笔画拼音缩写 u pn 㐅 4.启用V模式&#xff0c;输入法秒变计算…

Ubuntu 不重装系统增加交换空间大小

目录 一、设置交换文件 二、删除重新创建交换文件 一、设置交换文件 1、创建新的交换文件 使用 dd 命令创建一个新的交换文件。例如&#xff0c;创建一个4GB的交换文件&#xff1a; sudo dd if/dev/zero of/swapfile bs1G count4 2、设置交换文件的权限 为了安全起见&am…

蒸!--数据在内存中的存储

一.整数在内存中的存储 对于整形来说&#xff1a;数据存放内存中其实存放的是补码。 为什么&#xff1f; 在计算机系统中&#xff0c;数值⼀律⽤补码来表⽰和存储。 原因在于&#xff0c;使⽤补码&#xff0c;可以将符号位和数值域统⼀处理&#xff1b; 同时&#xff0c;加法和…