当前位置: 首页 > 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[]; };…...

CLIP-GmP-ViT-L-14与YOLOv11结合:实现目标检测后的细粒度语义描述

CLIP-GmP-ViT-L-14与YOLOv11结合&#xff1a;实现目标检测后的细粒度语义描述 你有没有遇到过这种情况&#xff1f;一个智能摄像头告诉你“画面里有人”&#xff0c;但你更想知道的是“画面里有一个穿着蓝色外套、正在打电话的年轻人”。或者&#xff0c;一个货架分析系统告诉…...

从“三次握手”到文件落地:用Wireshark抓包带你彻底搞懂C++ Socket文件传输全过程

从“三次握手”到文件落地&#xff1a;用Wireshark抓包带你彻底搞懂C Socket文件传输全过程 当你在浏览器下载文件时&#xff0c;是否好奇过数据是如何跨越网络准确无误地到达你的电脑&#xff1f;本文将带你用C实现一个完整的TCP文件传输程序&#xff0c;并通过Wireshark抓包工…...

MacOS极简部署OpenClaw:GLM-4.7-Flash模型联调与安全防护

MacOS极简部署OpenClaw&#xff1a;GLM-4.7-Flash模型联调与安全防护 1. 为什么选择OpenClawGLM-4.7-Flash组合 去年冬天&#xff0c;当我第一次尝试用Python脚本批量处理公司周报时&#xff0c;发现传统自动化工具对非结构化数据的处理能力非常有限。直到遇见OpenClaw这个能…...

OpenClaw浏览器自动化:GLM-4.7-Flash驱动的智能搜索与数据采集

OpenClaw浏览器自动化&#xff1a;GLM-4.7-Flash驱动的智能搜索与数据采集 1. 为什么需要浏览器自动化助手 上周我需要做一个小型市场调研&#xff0c;收集20家竞品的产品定价和功能列表。手动打开每个网站、复制粘贴数据、整理成表格&#xff0c;花了整整一个下午。这种重复…...

用51单片机+无源蜂鸣器播放《两只老虎》完整教程(附代码与乐理速成)

用51单片机驱动无源蜂鸣器演奏《两只老虎》全流程解析 第一次听到单片机播放音乐时&#xff0c;那种"机器唱歌"的奇妙感至今难忘。作为电子爱好者入门必备的趣味项目&#xff0c;用蜂鸣器演奏音乐不仅能巩固定时器、中断等核心知识&#xff0c;更能将枯燥的理论转化为…...

AI 模型推理框架性能分析与对比

AI模型推理框架性能分析与对比 随着人工智能技术的快速发展&#xff0c;AI模型推理框架成为支撑各类应用落地的核心工具。无论是计算机视觉、自然语言处理还是推荐系统&#xff0c;高效的推理框架直接影响模型的响应速度、资源占用和部署成本。本文将从多个维度对比主流AI推理…...

Undecimus革新性全流程越狱技术指南:从核心价值到实用工具

Undecimus革新性全流程越狱技术指南&#xff1a;从核心价值到实用工具 【免费下载链接】Undecimus unc0ver jailbreak for iOS 11.0 - 12.4 项目地址: https://gitcode.com/gh_mirrors/un/Undecimus 一、核心价值&#xff1a;破解iOS生态三大痛点 Undecimus作为针对iOS…...

Matlab实战:5步搞定微电网源储荷协调调度(附完整CPLEX调用代码)

Matlab实战&#xff1a;微电网源储荷协调调度的5个工程化技巧 微电网调度是新能源时代的核心技术难题之一。面对风光发电的波动性和负荷需求的多变性&#xff0c;如何实现源、储、荷三者的动态平衡&#xff0c;成为电力工程师们每天都要应对的挑战。不同于学术论文中复杂的理论…...

Avalonia跨平台开发踩坑记:我的第一个带最小化/关闭按钮的MVVM应用

Avalonia跨平台开发实战&#xff1a;从零构建MVVM窗口控制应用 第一次接触Avalonia时&#xff0c;我被它"一次编写&#xff0c;多平台运行"的承诺所吸引。作为一个长期使用WPF的开发者&#xff0c;跨平台桌面应用开发一直是个痛点。但当我真正开始用Avalonia实现一个…...

别再被ToggleGroup坑了!手把手教你写一个不自动选首项的CustomToggleGroup组件(附完整代码)

深度定制Unity ToggleGroup&#xff1a;打造无默认选中行为的智能组件 引言 在Unity UI开发中&#xff0c;ToggleGroup组件是构建选项卡式界面的常见选择&#xff0c;但许多开发者都遇到过这样的困扰&#xff1a;当ToggleGroup激活时&#xff0c;系统总会自动选中第一个Toggle项…...