当前位置: 首页 > news >正文

计算机网络笔记再战——理解几个经典的协议1

目录

前言

从协议是什么出发

关于TCP/IP协议体系

几个传输方式的分类

地址

网卡

中继器(Repeater)

网桥(Bridge)

路由器(Router)

网关


前言

笔者最近正在整理(笔者开的坑不少,希望都可以坚持下来)自己学习计算机网络的笔记。笔者的这个系列将会整理的是HTTP协议,TCP/IP协议,UDP协议等几个非常经典的协议。文章更加像是一种整理,所以会略显枯燥

从协议是什么出发

首先,毫无疑问的,伴随70年的发展,计算机之间的互联已经成为一个事实。我们马上就会想到的一个问题,那就是我们如何保证交流解析的一致性(换而言之,双方如何构造发送的信息和解析接受的信息呢?)这一问题直接导致了计算机协议的产生。毕竟这样我们才能读得懂发来的信息,发送别人看得懂的信息。

对计算机网络发展历史感兴趣的朋友可以参考《图解TCP/IP》一书,这本书非常的出名,笔者建议可以看这本书入门的学习TCP/IP协议。

请看下面的表格,这愉快的说明了我们现在常见的协议体系架构,笔者现在常常听说的就是TCP/IP协议了。也是我们现在最经常使用的协议体系。

网络体系结构协议主要用途
TCP/IPIP, ICMP, TCP, UDP, HTTP, TELNET, SNMP, SMTP...互联网、局域网
IPX/SPX (NetWare)IPX, SPX, NPC...个人电脑局域网
AppleTalkDDP, RTMP, AEP, ATP, ZIP...苹果公司现有产品的局域网
DECnetDPR, NSP, SCP...前DEC小型机
OSIFTAM, MOTIS, VT, CMIS/CMIP, CLNP, CONP...
XNSIDP, SPP, PEP...施乐公司网络

我们熟知的这些协议大多数都是典型的,隶属于“分组交换”的协议,什么意思呢?我们把数据按照协议的规矩,一块块传递,而不是一大坨数据完全不做任何处理的丢出去。所以,为了保证这些分组可以正确的重组回我们希望的信息,我们往往会把拆分的数据添加一些额外的控制信息,学习协议的一个重要的组成部分就在这里:这些经典的协议是如何高效的添加这些控制信息确保我们的信息传递是准确的呢?

关于TCP/IP协议体系

TCP/IP协议体系是分层的!一般的说,有OSI七层分法和现在流行的经典五层分法。分层更加像是隶属于设计模式的解耦合设计。我们知道,目前为止我们信息传递看起来是输入几个文本然后一个回车出去对方收到了信息,这中间经历了非常复杂的转换。分层,划分模块是一个经典的将一个大问题化简为若干小问题的一个办法。每一个层都各司其职,接受下一层的输入向上一层输出。这种模式也就奠基了TCP/IP体系的架构设计。

分层名称功能每层功能概览
应用层针对特定应用的协议。电子邮件协议、远程登录协议、文件传输协议
表示层设定数据表达方式和网络标准数据格式的转换。接收不同应用程序传输的各类信息,如文字、图片、声音等
会话层负责通信管理,负责建立、维护和终止连接。通信连接的建立与维护,数据流控制
传输层管理两个“节点”之间的数据传输。是否数据丢失?
网络层地址管理与路由选择。经过哪条路由传送到目标地址?
数据链路层连接设备之间传输和识别数据帧。数据帧与与传输设备之间的转换
物理层以“0”“1”代表示的原始数据。比特流与电子信号之间的转换,连接器与网线的规范

当然,这个看一下即可。因为更加广泛的是五层模型。后面再说。

几个传输方式的分类

两种,有连接形式的和无连接形式的。有连接形式就像滑绳上绑东西传递,双方需要架设好一个通信线路(打电话就是架设电话线,无线的连接就是架设通信的信道)。无连接形式则更加像是扔东西,双方没有被通知准备,突发的从一端传递到另一端。

还有一种分类则是根据接受端个数划分——单播(一对一),多播(一对多),广播(一对若干)以及任播(随意的调一个设备,这个更加强调的是随意的一台接受设备接受信息就能完成任务)

地址

很好,我们聊完了上面的传输,现在我们考虑的是——传递是从一端到另一端,问题来了,如何在通信的时候表达是身份——我是谁,这个信息要去哪里。我们还是需要一个叫做“地址”的东西来标识的。就像我叫小李,我想呼叫小张,我会在通信的时候喊一声小张然后把信息输送过去。

虽然说关于地址,还有很多复杂的问题我们并没有纳入考虑,但是现在更加像是一个层次化的总结博客。笔者不放在这里谈。

地址具备层次性,这又回到了上面谈论的协议分层理论。协议分层必然带来地址分层。对于TCP/IP中,TCP传输层和IP网络层使用的是IP地址,向下的使用的是MAC地址作为硬件网卡的地址。1. 网卡(Network Interface Card, NIC)

说一说上面这些图中出现的几个经典的要素:

网卡

网卡是计算机连接到网络的硬件设备,它的主要功能是实现计算机与网络之间的物理连接。网卡负责将计算机内部的数据转换为适合传输的网络数据包,并将网络上的数据传送到计算机内部。

  • 网卡通过数据链路层协议与网络通信,常见的协议有Ethernet(以太网)协议。

  • 网卡接收并发送数据帧,包括数据链路层的帧头、帧尾等信息。

  • 每个网卡都有唯一的硬件地址(MAC地址),通过该地址来识别设备。

中继器(Repeater)

玩过红石中继器的都知道(MC人探头),这个就是起到延续信号传递作用的设备

中继器是一种信号放大器,它用于扩大信号的传输距离。当网络信号在传输过程中因为距离过长而衰减时,中继器会接收到信号并放大,再将其发送出去。

  • 中继器工作在物理层,它没有智能,仅仅是对信号进行放大,重复传输。

  • 它不会分析网络数据,也不会修改数据包内容,仅仅是信号的再生,适用于长距离传输。

  • 常用于扩展局域网(LAN)的覆盖范围,连接两个相距较远的网络节点。

网桥(Bridge)

网桥用于连接两个或多个局域网(LAN),使它们能够协同工作。网桥在接收到数据时,会根据目标地址决定是否转发该数据帧。

  • 网桥工作在数据链路层,它根据MAC地址来判断是否转发数据。

  • 网桥有学习和过滤功能,通过学习网络中的MAC地址,它可以决定哪些数据应该在网络中传输,哪些应该被过滤。

  • 网桥能够将不同类型的局域网连接在一起,比如连接两段以太网。

  • 用于减少局域网的冲突域,提高网络的效率。

  • 适用于连接不同物理介质的局域网,或者在局域网内部分隔流量。

路由器(Router)

路由器是一种工作在网络层的设备,主要作用是根据目的IP地址决定数据包的转发路径,连接不同的网络并进行数据包的路由选择。

  • 路由器根据网络层的IP地址来决定数据的转发路径。

  • 它具有路由表,根据这些路由表信息选择最佳路径进行数据转发。

  • 路由器能够连接不同类型的网络,如局域网(LAN)、广域网(WAN)等。

  • 路由器还具有网络地址转换(NAT)功能,能够实现多个设备共享一个公网IP地址上网。

  • 连接不同网络,尤其是广域网(如互联网)与局域网之间的连接。

  • 管理数据包的路由,确保数据通过最优路径传输。

网关

网关是一种工作在应用层的设备,通常用于不同协议或不同网络之间的转换。网关不仅仅处理网络层的IP地址,还可以处理更高层的数据协议,它能够连接完全不同的网络系统。

  • 网关能翻译不同协议之间的数据,如从一个协议栈到另一个协议栈,进行协议转换。

  • 网关工作在OSI模型的较高层,通常涉及到应用层、传输层、网络层等多层次的协议转换。

  • 它可以用于连接不同的网络架构,比如互联网与私有网络,或不同企业间的网络互通。

  • 在跨越不同类型网络时,例如,连接企业内部网络与外部互联网。

  • 实现不同协议或通信方式之间的互操作,比如将IP电话与传统电话系统连接。

相关文章:

计算机网络笔记再战——理解几个经典的协议1

目录 前言 从协议是什么出发 关于TCP/IP协议体系 几个传输方式的分类 地址 网卡 中继器(Repeater) 网桥(Bridge) 路由器(Router) 网关 前言 笔者最近正在整理(笔者开的坑不少&#xf…...

ElasticSearch学习笔记-解析JSON格式的内容

如果需要屏蔽其他项目对Elasticsearch的直接访问操作&#xff0c;统一由一个入口访问操作Elasticsearch&#xff0c;可以考虑直接传入JSON格式语句解析执行。 相关依赖包 <properties><elasticsearch.version>7.9.3</elasticsearch.version><elasticsea…...

浅谈密码相关原理及代码实现

本代码仅供学习、研究、教育或合法用途。开发者明确声明其无意将该代码用于任何违法、犯罪或违反道德规范的行为。任何个人或组织在使用本代码时&#xff0c;需自行确保其行为符合所在国家或地区的法律法规。 开发者对任何因直接或间接使用该代码而导致的法律责任、经济损失或…...

Spring Boot常用注解深度解析:从入门到精通

今天&#xff0c;这篇文章带你将深入理解Spring Boot中30常用注解&#xff0c;通过代码示例和关系图&#xff0c;帮助你彻底掌握Spring核心注解的使用场景和内在联系。 一、启动类与核心注解 1.1 SpringBootApplication 组合注解&#xff1a; SpringBootApplication Confi…...

can not add outlook new accounts on the outlook

link : Reference url...

私有化部署 DeepSeek + Dify,构建你的专属私人 AI 助手

私有化部署 DeepSeek Dify&#xff0c;构建你的专属私人 AI 助手 概述 DeepSeek 是一款开创性的开源大语言模型&#xff0c;凭借其先进的算法架构和反思链能力&#xff0c;为 AI 对话交互带来了革新性的体验。通过私有化部署&#xff0c;你可以充分掌控数据安全和使用安全。…...

【Elasticsearch】post_filter

post_filter是 Elasticsearch 中的一种后置过滤机制&#xff0c;用于在查询执行完成后对结果进行过滤。以下是关于post_filter的详细介绍&#xff1a; 工作原理 • 查询后过滤&#xff1a;post_filter在查询执行完毕后对返回的文档集进行过滤。这意味着所有与查询匹配的文档都…...

验证工具:GVIM和VIM

一、定义与关系 gVim&#xff1a;gVim是Vim的图形界面版本&#xff0c;提供了更多的图形化功能&#xff0c;如菜单栏、工具栏和鼠标支持。它使得Vim的使用更加直观和方便&#xff0c;尤其对于不习惯命令行界面的用户来说。Vim&#xff1a;Vim是一个在命令行界面下运行的文本编…...

如何优化垃圾回收机制?

垃圾回收机制 掌握 GC 算法之前&#xff0c;我们需要先弄清楚 3 个问题。第一&#xff0c;回收发生在哪里&#xff1f;第二&#xff0c;对象在 什么时候可以被回收&#xff1f;第三&#xff0c;如何回收这些对象&#xff1f; 回收发生在哪里&#xff1f; JVM 的内存区域中&…...

beyond the ‘PHYSICAL‘ memory limit.问题处理

Container [pid5616,containerIDcontainer_e50_1734408743176_3027740_01_000006] is running 507887616B beyond the ‘PHYSICAL’ memory limit. Current usage: 4.5 GB of 4 GB physical memory used; 6.6 GB of 8.4 GB virtual memory used. Killing container. 1.增大map…...

Day36【AI思考】-表达式知识体系总览

文章目录 **表达式知识体系总览**回答1&#xff1a;**表达式知识体系****一、三种表达式形式对比****二、表达式转换核心方法****1. 中缀转后缀&#xff08;重点&#xff09;****2. 中缀转前缀** **三、表达式计算方法****1. 后缀表达式计算&#xff08;栈实现&#xff09;****…...

段错误(Segmentation Fault)调试

1. 使用 GDB&#xff08;GNU Debugger&#xff09; GDB 是一个强大的调试工具&#xff0c;可以帮助你逐步执行程序并检查变量状态。 编译时添加调试信息&#xff1a; gcc -g your_program.c -o your_program启动 GDB&#xff1a; gdb ./your_program运行程序&#xff1a; …...

每日Attention学习19——Convolutional Multi-Focal Attention

每日Attention学习19——Convolutional Multi-Focal Attention 模块出处 [ICLR 25 Submission] [link] UltraLightUNet: Rethinking U-shaped Network with Multi-kernel Lightweight Convolutions for Medical Image Segmentation 模块名称 Convolutional Multi-Focal Atte…...

LeetCode题练习与总结:三个数的最大乘积--628

一、题目描述 给你一个整型数组 nums &#xff0c;在数组中找出由三个数组成的最大乘积&#xff0c;并输出这个乘积。 示例 1&#xff1a; 输入&#xff1a;nums [1,2,3] 输出&#xff1a;6示例 2&#xff1a; 输入&#xff1a;nums [1,2,3,4] 输出&#xff1a;24示例 3&a…...

Colorful/七彩虹 隐星P15 TA 24 原厂Win11 家庭版系统 带F9 Colorful一键恢复功能

Colorful/七彩虹 隐星P15 TA 24 原厂Win11 家庭中文版系统 带F9 Colorful一键恢复功能 自动重建COLORFUL RECOVERY功能 带所有随机软件和机型专用驱动 支持机型&#xff1a;隐星P15 TA 24 文件下载&#xff1a;asusoem.cn/745.html 文件格式&#xff1a;ISO 系统版本&…...

第二篇:多模态技术突破——DeepSeek如何重构AI的感知与认知边界

——从跨模态对齐到因果推理的工程化实践 在AI技术从单一模态向多模态跃迁的关键阶段&#xff0c;DeepSeek通过自研的多模态融合框架&#xff0c;在视觉-语言-语音的联合理解与生成领域实现系统性突破。本文将从技术实现层面&#xff0c;解构其跨模态表征学习、动态融合机制与…...

CTreeCtrl 设置图标

mfc界面修改真难受 使用CTreeCtrl 进行设置导航视图时&#xff0c;有时候需要设置图标&#xff0c;一般使用如下代码 m_TreeViewImages.DeleteImageList();UINT uiBmpId IDB_ICONLIST_TREE;CBitmap bmp; if (!bmp.LoadBitmap(uiBmpId)) return;BITMAP bmpObj; bmp.GetBitmap…...

在JAX-RS中获取请求头信息的方法

在JAX-RS中获取请求头信息的方法 HeaderParam注解&#xff0c;可以直接将请求头中的特定值注入到方法参数中&#xff0c;代码示例&#xff1a; import javax.ws.rs.GET; import javax.ws.rs.HeaderParam; import javax.ws.rs.Path; import javax.ws.rs.core.Response;Path(&q…...

Java 面试之结束问答

技术优化 线程池优化 设置最大线程数设置最小核心线程数设置额外线程存活时间选择线程池队列选择合适的线程池选择合适的饱和策略 锁优化 尽量不要锁住方法缩小同步代码块&#xff0c;只锁数据锁中尽量不要再包含锁将锁私有化&#xff0c;在内部管理锁进行适当的锁分解 HT…...

柔性数组与c/c++程序中内存区域的划分

1.柔性数组 1.1柔性数组的定义 柔性数组是指在结构体中定义的&#xff0c;其大小在编译时未确定&#xff0c;而在运行时动态分配的数组。这种数组允许结构体的大小根据需要动态变化。语法如下&#xff1a; struct D {int a;int arry1[0]; };struct F {int a;int arry2[]; };…...

synchronized 学习

学习源&#xff1a; https://www.bilibili.com/video/BV1aJ411V763?spm_id_from333.788.videopod.episodes&vd_source32e1c41a9370911ab06d12fbc36c4ebc 1.应用场景 不超卖&#xff0c;也要考虑性能问题&#xff08;场景&#xff09; 2.常见面试问题&#xff1a; sync出…...

边缘计算医疗风险自查APP开发方案

核心目标:在便携设备(智能手表/家用检测仪)部署轻量化疾病预测模型,实现低延迟、隐私安全的实时健康风险评估。 一、技术架构设计 #mermaid-svg-iuNaeeLK2YoFKfao {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg…...

QMC5883L的驱动

简介 本篇文章的代码已经上传到了github上面&#xff0c;开源代码 作为一个电子罗盘模块&#xff0c;我们可以通过I2C从中获取偏航角yaw&#xff0c;相对于六轴陀螺仪的yaw&#xff0c;qmc5883l几乎不会零飘并且成本较低。 参考资料 QMC5883L磁场传感器驱动 QMC5883L磁力计…...

【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)

可以使用Sqliteviz这个网站免费编写sql语句&#xff0c;它能够让用户直接在浏览器内练习SQL的语法&#xff0c;不需要安装任何软件。 链接如下&#xff1a; sqliteviz 注意&#xff1a; 在转写SQL语法时&#xff0c;关键字之间有一个特定的顺序&#xff0c;这个顺序会影响到…...

前端开发面试题总结-JavaScript篇(一)

文章目录 JavaScript高频问答一、作用域与闭包1.什么是闭包&#xff08;Closure&#xff09;&#xff1f;闭包有什么应用场景和潜在问题&#xff1f;2.解释 JavaScript 的作用域链&#xff08;Scope Chain&#xff09; 二、原型与继承3.原型链是什么&#xff1f;如何实现继承&a…...

Springboot社区养老保险系统小程序

一、前言 随着我国经济迅速发展&#xff0c;人们对手机的需求越来越大&#xff0c;各种手机软件也都在被广泛应用&#xff0c;但是对于手机进行数据信息管理&#xff0c;对于手机的各种软件也是备受用户的喜爱&#xff0c;社区养老保险系统小程序被用户普遍使用&#xff0c;为方…...

JVM虚拟机:内存结构、垃圾回收、性能优化

1、JVM虚拟机的简介 Java 虚拟机(Java Virtual Machine 简称:JVM)是运行所有 Java 程序的抽象计算机,是 Java 语言的运行环境,实现了 Java 程序的跨平台特性。JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 JVM 上运行的目标代码(字节码),就可以…...

第7篇:中间件全链路监控与 SQL 性能分析实践

7.1 章节导读 在构建数据库中间件的过程中&#xff0c;可观测性 和 性能分析 是保障系统稳定性与可维护性的核心能力。 特别是在复杂分布式场景中&#xff0c;必须做到&#xff1a; &#x1f50d; 追踪每一条 SQL 的生命周期&#xff08;从入口到数据库执行&#xff09;&#…...

OD 算法题 B卷【正整数到Excel编号之间的转换】

文章目录 正整数到Excel编号之间的转换 正整数到Excel编号之间的转换 excel的列编号是这样的&#xff1a;a b c … z aa ab ac… az ba bb bc…yz za zb zc …zz aaa aab aac…; 分别代表以下的编号1 2 3 … 26 27 28 29… 52 53 54 55… 676 677 678 679 … 702 703 704 705;…...

uniapp 实现腾讯云IM群文件上传下载功能

UniApp 集成腾讯云IM实现群文件上传下载功能全攻略 一、功能背景与技术选型 在团队协作场景中&#xff0c;群文件共享是核心需求之一。本文将介绍如何基于腾讯云IMCOS&#xff0c;在uniapp中实现&#xff1a; 群内文件上传/下载文件元数据管理下载进度追踪跨平台文件预览 二…...