计算机网络 快速了解网络层次、常用协议、常见物理设备。 掌握程序员必备网络基础知识!!!

文章目录

  • 0 引言
  • 1 基础知识的定义
    • 1.1 计算机网络层次
    • 1.2 网络供应商 ISP
    • 1.3 猫、路由器、交换机
    • 1.4 IP协议
    • 1.5 TCP、UDP协议
    • 1.6 HTTP、HTTPS、FTP协议
    • 1.7 Web、Web浏览器、Web服务器
    • 1.8 以太网和WLAN
    • 1.9 Socket (网络套接字)
  • 2 总结

0 引言

  • 在学习的过程中总是会对IP、TCP、UDP、HTTP、HTTPS、FTP这些常见的协议不熟悉,以及对猫,交换机、路由器的含义也不太清楚。
  • 对于只是想了解一二的人,让他去学一遍计算机网络课程确实有点耗费时间精力
  • 所以我就针对平时常见的名词进行解释,然后再用一张层次图来表明他们各自所处的网络层次全面介绍;

1 基础知识的定义

1.1 计算机网络层次

计算机网络通常被分为多个层次,常用的是OSI模型TCP/IP模型,它们分别有不同的层次配置。但在实际应用中,TCP/IP协议栈更为广泛使用。

注意:网络的底层均是为上一层提供服务,然后上一层再为上上层提供服务。

  1. OSI模型:
  • 物理层:处理物理连接和电信号传输。(猫)
  • 数据链路层:负责数据帧的传输和错误检测。(交换机)
  • 网络层:进行路由和包转发,实现不同网络之间的通信。(路由器、IP)
  • 传输层:提供端到端的可靠数据传输和流控制。(TCP、UDP)
  • 会话层:管理通信会话的建立和维护。
  • 表示层:进行数据格式转换、加密和压缩等操作。
  • 应用层:提供用户与网络应用程序的接口。(HTTP、HTTPS、FTP)
  1. TCP/IP模型:
  • 网络接口层(链路层):负责处理与物理介质的通信,如以太网、Wi-Fi等。它定义了数据在物理媒介中的传输方式和格式,以及物理地址的解析和传输。
  • 网络层:负责数据包的路由和转发,将数据从源地址传输到目标地址。它使用IP协议来标识和定位网络上的设备,并通过路由选择算法确定最佳路径。
  • 传输层:提供端到端的可靠数据传输。其中最常用的协议是传输控制协议(TCP)和用户数据报协议(UDP)。TCP提供可靠的、面向连接的数据传输,而UDP提供不可靠的、面向无连接的数据传输。
  • 应用层:提供用户与网络之间的接口,支持特定应用程序的网络通信。常见的应用层协议包括超文本传输协议(HTTP)、文件传输协议(FTP)、域名系统(DNS)等。

这些层次的划分有助于组织和管理计算机网络的各个功能模块,使得网络的设计、实现和维护更加灵活和可扩展。

1.2 网络供应商 ISP

  • 网络供应商(Internet Service Provider,ISP)是指提供互联网接入服务的公司或组织。它们在全球范围内提供互联网连接和相关服务,使用户能够通过电信基础设施与全球互联网进行通信。
  • 中国的网络供应商有:中国电信、中国移动、中国联通、中国铁通;

1.3 猫、路由器、交换机

猫(Modem)、交换机(Switch)和路由器(Router)是计算机网络中常见的网络设备,它们在网络通信中扮演着不同的角色。

猫(Modem):
猫是“调制解调器”的简称,它主要负责将数字信号转化为模拟信号用于传输,以及将模拟信号转化为数字信号用于接收。猫一般用于连接本地网络设备(如计算机、路由器)与互联网服务提供商(ISP)的接入点。它可以通过各种物理介质(如电缆、DSL)将数据信号通过传输线路发送和接收。猫通过拨号、以太网等方式将连接从外部提供者传输到内部网络。

交换机(Switch):
交换机是在局域网(LAN)中用于连接多个网络设备的网络设备。交换机具有多个以太网端口,可以通过它们之间的交换转发数据包。交换机在接收到数据包时,会检查数据包的目的地址,并将其只发送到目标设备连接的端口上,从而实现网络设备之间的直接通信。交换机通过提供高速、可靠的数据交换,增强了局域网的性能和安全性。

路由器(Router):
路由器是用于连接多个网络的设备,用于在不同的网络之间传输数据包。路由器根据目标IP地址和转发表,决定将数据包转发到哪个网络。路由器负责在不同网络之间路由数据,并确保数据按照正确的路径到达目标网络。路由器在一个网络到另一个网络之间起到桥梁的作用,可以实现不同网络之间的通信和互联。

他们三者的联系和区别:

  • 猫、交换机和路由器都是网络设备,用于实现数据的传输和通信。
  • 猫主要负责将数字信号转化为模拟信号用于传输接入互联网服务提供商;交换机用于连接多个内部网络设备以实现设备之间的通信;路由器则用于连接不同的网络,并在网络之间实现数据包的转发和路由。
  • 猫和交换机通常用于局域网内部,而路由器用于连接不同的网络。
  • 交换机和路由器都具有多个端口,可以连接多个设备,而猫通常只有一个或少数几个端口。
  • 综上所述,猫、交换机和路由器在计算机网络中具有各自的功能和作用,它们一起构成了一个完整的网络系统,实现了设备之间的连接和数据的传输。

1.4 IP协议

IP(Internet Protocol,互联网协议)是一种在互联网上进行数据包传输的网络层协议。它为网络设备(如计算机、路由器等)提供了一种 寻址路由 的功能,以确保数据能够准确传递到目标设备。

IP协议的主要特点功能如下:

  • 寻址和唯一标识:IP协议通过IP地址来标识网络设备,每个设备都有一个唯一的IP地址,它由网络号和主机号组成。IP地址用于定位设备的位置,以便网络数据能够正确地路由到目标设备。
  • 路由选择:IP协议负责根据目标IP地址选择合适的路由路径,以实现数据包的传输。路由器根据设备的IP地址和路由表信息,决定将数据包发送到哪个网段或下一跳的路由器。
  • 分组和重组:IP协议将大块的数据分割成较小的数据包(称为IP数据报),并在网络上传输。接收端的IP协议负责根据数据包的序号和标识信息,将分散的数据包重新组装成完整的数据。
  • 不可靠的传输:IP协议本身是一种无连接、不可靠的传输协议。它不提供数据包的确认、重传和序列控制等机制。当数据包在传输过程中发生丢失、错误或延迟,IP协议不会进行处理,而是交给上层的传输协议(如TCP和UDP)来处理

总体来说,IP协议提供了一种灵活、可扩展的机制,使得数据能够在不同的网络之间进行传输。它是互联网通信的基础,为其他上层协议(如TCP、UDP、HTTP等)提供了可靠的传输基础。同时,IP协议也面临着很多挑战,如IPv4地址枯竭和网络安全等问题,因此,IPv6协议作为新一代IP协议正在逐渐推广和应用。

1.5 TCP、UDP协议

TCP(Transmission Control Protocol)和UDP(User Datagram Protocol)是两种常用的传输层协议。它们在互联网通信中起着不同的作用和提供不同的特点。

TCP协议:

  • 面向连接:在数据传输之前,TCP会先建立一个连接,确保通信双方建立可靠的传输通道。
  • 可靠性:TCP提供可靠的数据传输机制。它采用序列号、确认机制和重传机制来保证数据的可靠性,确保数据包按序到达目的地,并处理丢失、重复、错误等问题。
  • 流量控制:TCP通过滑动窗口机制控制数据发送的速率,避免发送过多数据导致接收方无法及时处理。
  • 拥塞控制:TCP能够感知网络拥塞,并根据网络状况调整数据的发送速率,以避免拥塞情况的进一步恶化。
  • 适用场景:TCP适用于对数据传输可靠性要求较高的应用,如文件传输、电子邮件、Web浏览器等应用。

UDP协议:

  • 无连接:UDP是一种无连接的协议,数据包的传输没有建立连接的过程。数据包独立发送,不保证顺序和可靠性。
  • 无确认和序列号:UDP不提供数据包的确认和重传机制,也不处理丢失、重复、错误等问题。
  • 简单性和低延迟:由于不需要建立连接和进行可靠性保证,UDP的开销较小,传输速度相对较快,适用于实时性要求高的应用。
  • 广播和多播:UDP支持广播和多播功能,可以实现将数据包发送给多个目标设备。
  • 适用场景:UDP适用于对传输延迟要求较高、对传输可靠性要求相对较低的应用,如实时音视频传输、在线游戏等。

两者使用场景区别:选择使用TCP还是UDP取决于应用要求和场景需求。对于需要可靠传输、顺序性和拥塞控制的应用,TCP是更好的选择。而对于实时性要求较高、数据量较小、丢失几个数据包不会造成严重影响的应用,UDP更合适。

1.6 HTTP、HTTPS、FTP协议

HTTP(Hypertext Transfer Protocol),HTTPS(Hypertext Transfer Protocol Secure)和FTP(File Transfer Protocol)都是常用的应用层协议,用于不同的数据传输和通信场景。

HTTP:
HTTP是一种用于在客户端服务器之间传输超文本的协议。它是Web浏览器和Web服务器之间的通信协议,用于请求和传输HTML页面、图像、音频、视频等资源。HTTP是基于TCP协议的(上层协议都是根据下层协议提供的服务实现的),采用了请求-响应模型,客户端向服务器发送请求,服务器返回相应的内容。

HTTPS:
HTTPS是基于HTTP协议的安全版本。它通过使用SSL(Secure Sockets Layer)或TLS(Transport Layer Security)协议来对通信进行加密和验证,以确保数据传输的安全性。HTTPS协议在HTTP的基础上加入了加密和身份认证,常用于涉及敏感信息传输的网站,如电子商务网站、在线银行等。

FTP:
FTP是一种用于文件传输的协议。它允许将文件从一个计算机传输到另一个计算机,可以上传、下载和管理文件。FTP协议可以在一个客户端和一个服务器之间建立一个连接,使用用户名和密码进行身份验证,并在服务器和客户端之间进行文件传输。FTP通常使用TCP作为传输协议

需要注意的是,HTTP和HTTPS主要用于Web访问和资源传输,而FTP协议则专注于文件传输。每种协议都有自己的特点和用途,在不同的场景中选择适合的协议来满足需求。

1.7 Web、Web浏览器、Web服务器

在HTTP协议中介绍了Web相关的知识点,下面再将Web相关定义回顾一遍

Web(World Wide Web)
是一种基于互联网的信息系统由许多互相连接的网页组成。它通过使用标准的HTTP协议进行通信,使得用户能够通过Web浏览器访问和浏览网页上的内容。

Web浏览器
是一种用于查看和访问Web页面的软件应用程序。它提供了用户界面,允许用户输入URL(统一资源定位符)或点击链接来请求特定的Web页面。一旦接收到页面数据,Web浏览器会解析并显示页面上的文本、图像、视频和其他多媒体内容。常见的Web浏览器包括谷歌浏览器、Mozilla Firefox、微软Edge等。

Web服务器
是一种网络服务器软件,主要负责接收并响应Web浏览器发出的HTTP请求。它存储和提供Web页面和其他相关资源,将这些资源发送给请求的浏览器。Web服务器可以根据请求的URL和其他参数,动态生成页面内容,还可以处理表单提交、会话管理等功能。常见的Web服务器软件有Apache HTTP Server、Nginx、Microsoft IIS等。

Web浏览器和Web服务器是Web使用过程中的两个重要角色。浏览器作为客户端发送HTTP请求,服务器作为服务端接收并响应请求,两者之间通过互联网进行通信,以实现用户在Web上浏览和交互的功能。


拓展:Web浏览器和Web服务器之间基本的请求-响应模型

当用户在Web浏览器中输入URL或点击链接时,以下是Web浏览器和Web服务器之间的基本流程:

  1. 解析URL:浏览器解析用户输入的URL,提取出协议(如HTTP、HTTPS)、域名(如www.example.com)和路径(如/page)等信息。
  2. 建立连接:浏览器通过网络建立与Web服务器的TCP连接。使用域名解析域名转换为服务器的IP地址,并通过端口号确定Web服务器的监听端口(默认为80)。
  3. 发送HTTP请求浏览器构建HTTP请求报文,包括请求方法(如GET、POST)、请求(如User-Agent、Cookie)和请求(如果有的话),然后将请求报文发送给Web服务器
  4. 处理请求:Web服务器接收到请求后,根据请求的URL和其他信息,找到对应的资源或处理程序。如果请求的是静态文件(如HTML、图片、CSS文件等),服务器会从磁盘中读取文件,并将文件作为响应内容发送给浏览器。如果请求的是动态资源(如PHP、Python脚本等),服务器会调用相应的处理程序进行处理,并生成动态的响应内容。
  5. 发送HTTP响应:Web服务器将生成的响应内容构建成HTTP响应报文,包括响应状态码(如200表示成功,404表示未找到资源)和响应头(如Content-Type、Content-Length),然后将响应报文发送给浏览器。
  6. 接收和解析响应:浏览器接收到响应报文后,根据响应头中的信息解析响应内容。浏览器会根据响应的数据类型进行相应的处理,如渲染HTML内容、加载CSS样式表、执行JavaScript脚本等。
  7. 渲染页面:浏览器会将接收到的HTML文档解析为DOM树,并根据CSS样式对DOM元素进行渲染。然后,浏览器将渲染好的页面显示给用户。
  8. 关闭连接:当浏览器完成页面的渲染并断开与服务器的连接时,连接会被关闭,释放相关的资源。

1.8 以太网和WLAN

以太网(Ethernet)
是一种局域网(LAN)技术,用于在计算机和其他网络设备之间进行数据通信。以太网是一种基于有线传输介质的网络技术,最常见的传输介质是双绞线。它基于CSMA/CD(载波侦听多路访问/冲突检测)协议,允许多个设备共享同一个局域网,并通过解决冲突来提供高效的数据传输。

WLAN(无线局域网)
是一种无线网络技术,通过无线信号传输数据,实现计算机和其他无线设备之间的数据通信。WLAN使用无线接入点(Access Point)作为中心设备,通过无线信号覆盖一定范围内的区域,使设备可以连接到网络并进行数据交换。常见的无线网络技术包括Wi-Fi(无线保真)。

区别和联系

  • 传输介质:以太网使用有线传输介质(如双绞线),而WLAN使用无线信号进行数据传输。
  • 连接方式:以太网通常通过物理连接(如网线)将设备连接到网络,而WLAN则通过无线信号连接设备。
  • 覆盖范围:以太网的传输范围受限于有线传输介质的长度,而WLAN通过无线信号可以在一定范围内提供网络覆盖。
  • 移动性:以太网连接通常是固定的,设备需要通过有线连接到网络,而WLAN提供了移动性,允许设备在无线网络覆盖范围内自由移动。
  • 速度和带宽:以太网通常提供更高的传输速度和带宽,适合在局域网中传输大量数据。WLAN的速度和带宽通常受到无线信号质量和干扰的影响,可能不如有线网络稳定和高速。
  • 尽管以太网和WLAN使用不同的传输技术和连接方式,它们通常被用于不同的场景和需求。以太网适用于需要高速、高带宽和可靠连接的场景,如办公室、数据中心等;而WLAN适用于需要灵活移动、无线连接和覆盖范围更广的场景,如家庭、咖啡馆、机场等。

1.9 Socket (网络套接字)

思考:在设计到网络编程时,总会听到Socket词汇,那么Socket到底是什么呢?
答案:Socket 是传输层应用层提供的服务接口。

  • 在网络通信中,不同层次的协议有着不同的责任和功能,传输层负责将数据从一个节点传输到另一个节点,而应用层则负责应用程序之间的通信。
  • Socket 是传输层和应用层之间的接口,通过它应用程序可以向传输层发送数据和接收数据。应用程序可以利用 Socket API 来创建和管理套接字(Socket),通过套接字进行数据的发送和接收。
  • 传输层提供了两种常用的协议:传输控制协议(TCP)和用户数据报协议(UDP)。TCP 提供可靠的、面向连接的数据传输,而 UDP 则是一种无连接的协议,适用于需要快速传输而对可靠性要求较低的应用。
  • 通过 Socket,应用程序可以选择适合自身需求的传输层协议。例如,对于需要保证数据的可靠性和顺序的应用,可以选择使用 TCP 协议;而对于实时性要求较高、可靠性要求较低的应用,可以选择使用 UDP 协议。

总结来说,Socket 是传输层提供给应用层的接口,它使应用程序能够通过传输层协议进行数据的发送和接收。开发人员可以利用 Socket 来实现各种网络应用和通信功能。

2 总结

在这里插入图片描述

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

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

相关文章

【Java-LangChain:使用 ChatGPT API 搭建系统-2】语言模型,提问范式与 Token

第二章 语言模型,提问范式与 Token 在本章中,我们将和您分享大型语言模型(LLM)的工作原理、训练方式以及分词器(tokenizer)等细节对 LLM 输出的影响。我们还将介绍 LLM 的提问范式(chat format…

postgresql-物化视图

postgresql-物化视图 物化视图创建物化视图刷新物化视图修改物化视图删除物化视图 物化视图 创建物化视图 postgresql使用create materialized view 语句创建视图 create materialized view if not exists name as query [with [NO] data];-- 创建一个包含员工统计信息的物化…

java遇到的问题

java遇到的问题 Tomcat与JDK版本问题 当使用Tomcat10的版本用于springmvc借用浏览器调试时,使用JDK8浏览器会报异常。 需要JDK17(可以配置多个JDK环境,切换使用)才可以使用,配置为JAVA_HOME路径,否则&a…

【AI视野·今日Robot 机器人论文速览 第四十七期】Wed, 4 Oct 2023

AI视野今日CS.Robotics 机器人学论文速览 Wed, 4 Oct 2023 Totally 40 papers 👉上期速览✈更多精彩请移步主页 Interesting: 📚基于神经网络的多模态触觉感知, classification, position, posture, and force of the grasped object多模态形象的解耦(f…

苹果系统_安装matplotlib__pygame,以pycharm导入模块

为了更便捷、连贯的进行python编程学习,尽量在开始安装python软件时,将编辑器、模块一并安装好,这样能避免以后版本冲突的问题。小白在开始安装pycharm、pip、matplotlib往往会遇到一些问题,文中列示其中部分bug,供大家…

VL53L5CX驱动开发(1)----驱动TOF进行区域检测

VL53L5CX驱动开发----1.驱动TOF进行区域检测 闪烁定义视频教学样品申请源码下载主要特点硬件准备技术规格系统框图应用示意图区域映射生成STM32CUBEMX选择MCU 串口配置IIC配置X-CUBE-TOF1串口重定向代码配置Tera Term配置演示结果 闪烁定义 VL53L5CX是一款先进的飞行感应&…

Reset信号如何同步?

首先来复习一个更加基础的概念:同步reset和异步reset。 同步reset(synchronous reset)是说,当reset信号为active的时候,寄存器在下一个时钟沿到来后被复位,时钟沿到来之前寄存器还是保持其之前的值。 异步…

xxl-job的原理(2)—调度中心管理注册信息

一、调度中心管理注册信息 1.JobApiController 执行器调用调度中心的url来实现注册、下线、回调等操作;其主要的实现类是JobApiController,调用/api/registry接口注册执行器信息,调用/api/registryRemove接口下线执行器信息,调用…

操作系统和进程相关的认识

目录 冯诺依曼体系结构 冯诺依曼体系结构五大组成部分 为什么数据只能通过存储器进行输入和输出 操作系统 概念一:访问操作系统的请求都是通过系统调用完成的 操作系统如何管理用户信息 概念二:先描述,再组织。 进程的概念 在认识进行相关的知…

二叉树的经典OJ题

判断平衡二叉树 1.题目2.分析3.时间复杂度为O(N^2)的代码4.优化时间复杂度的代码 1.题目 2.分析 3.时间复杂度为O(N^2)的代码 4.优化时间复杂度的代码

总结三:计算机网络面经

文章目录 1、简述静态路由和动态路由?2、说说有哪些路由协议,都是如何更新的?3、简述域名解析过程,本机如何干预域名解析?4、简述 DNS 查询服务器的基本流程是什么?DNS 劫持是什么?5、简述网关的…

re学习(38)HGAME2020-re-Level-Week1-maze

题目描述 You won’t figure out anything if you give in to fear. 学习资料: https://ctf-wiki.github.io/ctf-wiki/reverse/maze/maze-zh/ 附加说明:请走最短路线 题解 分析题目 一看题目:maze 可以确定是一个迷宫题 void __fastcall __noreturn…

【java爬虫】使用vue+element-plus编写一个简单的管理页面

前言 前面我们已经将某宝联盟的数据获取下来了,并且编写了一个接口将数据返回,现在我们需要使用vueelement-plus编写一个简单的管理页面进行数据展示,由于第一次使用vue编写前端项目,所以只是编写了一个非常简单的页面。 项目结…

关于PointHeadBox类的理解

forward函数 def forward(self, batch_dict):"""Args:batch_dict:batch_size:point_features: (N1 N2 N3 ..., C) or (B, N, C)point_features_before_fusion: (N1 N2 N3 ..., C)point_coords: (N1 N2 N3 ..., 4) [bs_idx, x, y, z]point_labels (opti…

【计算机组成 课程笔记】7.1 存储层次结构概况

课程链接: 计算机组成_北京大学_中国大学MOOC(慕课) 7 - 1 - 701-存储层次结构概况(15-14--)_哔哩哔哩_bilibili 这是我们已经非常熟悉的冯诺依曼计算机结构, 其中和存储功能相关的部件有:存储器和外部记录介质肯定具有…

80%测试员被骗,关于jmeter 的一个弥天大谎!

jmeter是目前大家都喜欢用的一款性能测试工具,因为它小巧、简单易上手,所以很多人都愿意用它来做接口测试或者性能测试,因此,在目前企业中,使用各个jmeter的版本都有,其中以jmeter3.x、4.x的应该居多。 但是…

Waves 14混音特效插件合集mac/win

Waves14是一款音频处理软件,主要用于音频编辑、混音和母带处理。该软件提供了各种插件,包括EQ、压缩、混响、延迟、失真等,以及一些专业的音频处理工具,如L2限幅器、Linear Phase EQ和多频道扬声器管理。 Mac软件下载:…

凉鞋的 Unity 笔记 106. 第二轮循环场景视图Sprite Renderer

106. 第二轮循环&场景视图&Sprite Renderer 从这一篇开始,我们开始进行第二轮循环。 这次我们至少能够在游戏运行窗口看到一些东西。 首先还是在场景层次窗口进行编辑,先创建一个 Sprite,操作如下: 创建后,会在 Scene …

Nginx与Spring Boot的错误模拟实践:探索502和504错误的原因

文章目录 前言502和504区别---都是Nginx返回的access.log和error.log介绍SpringBoot结合Nginx实战502 and 504准备工作Nginx配置host配置SpringBoot 502模拟access.logerror.log 504模拟access.logerror.log 500模拟access.logerror.log 总结 前言 刚工作那会,最常…

JMeter接口自动化测试(数据驱动)

之前我们的用例数据都是配置在HTTP请求中,每次需要增加,修改用例都需要打开JMeter重新编辑,当用例越来越多的时候,用例维护起来就越来越麻烦,有没有好的方法来解决这种情况呢?我们可以将用例的数据存放在cs…