php网站开发的第三章/百度投诉中心在线申诉
目录
前言
从协议是什么出发
关于TCP/IP协议体系
几个传输方式的分类
地址
网卡
中继器(Repeater)
网桥(Bridge)
路由器(Router)
网关
前言
笔者最近正在整理(笔者开的坑不少,希望都可以坚持下来)自己学习计算机网络的笔记。笔者的这个系列将会整理的是HTTP协议,TCP/IP协议,UDP协议等几个非常经典的协议。文章更加像是一种整理,所以会略显枯燥
从协议是什么出发
首先,毫无疑问的,伴随70年的发展,计算机之间的互联已经成为一个事实。我们马上就会想到的一个问题,那就是我们如何保证交流解析的一致性(换而言之,双方如何构造发送的信息和解析接受的信息呢?)这一问题直接导致了计算机协议的产生。毕竟这样我们才能读得懂发来的信息,发送别人看得懂的信息。
对计算机网络发展历史感兴趣的朋友可以参考《图解TCP/IP》一书,这本书非常的出名,笔者建议可以看这本书入门的学习TCP/IP协议。
请看下面的表格,这愉快的说明了我们现在常见的协议体系架构,笔者现在常常听说的就是TCP/IP协议了。也是我们现在最经常使用的协议体系。
网络体系结构 | 协议 | 主要用途 |
---|---|---|
TCP/IP | IP, ICMP, TCP, UDP, HTTP, TELNET, SNMP, SMTP... | 互联网、局域网 |
IPX/SPX (NetWare) | IPX, SPX, NPC... | 个人电脑局域网 |
AppleTalk | DDP, RTMP, AEP, ATP, ZIP... | 苹果公司现有产品的局域网 |
DECnet | DPR, NSP, SCP... | 前DEC小型机 |
OSI | FTAM, MOTIS, VT, CMIS/CMIP, CLNP, CONP... | — |
XNS | IDP, 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) 网关 前言 笔者最近正在整理(笔者开的坑不少…...

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

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

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

can not add outlook new accounts on the outlook
link : Reference url...

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

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

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

如何优化垃圾回收机制?
垃圾回收机制 掌握 GC 算法之前,我们需要先弄清楚 3 个问题。第一,回收发生在哪里?第二,对象在 什么时候可以被回收?第三,如何回收这些对象? 回收发生在哪里? 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:**表达式知识体系****一、三种表达式形式对比****二、表达式转换核心方法****1. 中缀转后缀(重点)****2. 中缀转前缀** **三、表达式计算方法****1. 后缀表达式计算(栈实现)****…...

段错误(Segmentation Fault)调试
1. 使用 GDB(GNU Debugger) GDB 是一个强大的调试工具,可以帮助你逐步执行程序并检查变量状态。 编译时添加调试信息: gcc -g your_program.c -o your_program启动 GDB: gdb ./your_program运行程序: …...

每日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 ,在数组中找出由三个数组成的最大乘积,并输出这个乘积。 示例 1: 输入:nums [1,2,3] 输出:6示例 2: 输入:nums [1,2,3,4] 输出:24示例 3&a…...

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

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

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

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

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

柔性数组与c/c++程序中内存区域的划分
1.柔性数组 1.1柔性数组的定义 柔性数组是指在结构体中定义的,其大小在编译时未确定,而在运行时动态分配的数组。这种数组允许结构体的大小根据需要动态变化。语法如下: struct D {int a;int arry1[0]; };struct F {int a;int arry2[]; };…...

mini-lsm通关笔记Week2Day7
项目地址:https://github.com/skyzh/mini-lsm 个人实现地址:https://gitee.com/cnyuyang/mini-lsm 在上一章中,您已经构建了一个完整的基于LSM的存储引擎。在本周末,我们将实现存储引擎的一些简单但重要的优化。欢迎来到Mini-LSM的…...

Typora免费使用
一.下载地址 https://typoraio.cn/ 二.修改配置文件 1.找到安装路径下的LicenseIndex.180dd4c7.4da8909c.chunk.js文件 文件路径为:安装路径\resources\page-dist\static\js\LicenseIndex.180dd4c7.4da8909c.chunk.js 将js中的 e.hasActivated"true"e.hasActiva…...

AI驱动的无线定位:基础、标准、最新进展与挑战
1. 论文概述 研究目标:本论文旨在综述AI在无线定位领域的应用,包括其基础理论、标准化进展、最新技术发展,以及面临的挑战和未来研究方向。主要发现: AI/ML 技术已成为提升无线定位精度和鲁棒性的关键手段,特别是在 3GPP 标准的推动下。论文系统性地分析了 AI 在 LOS/NLOS…...

苹果再度砍掉AR眼镜项目?AR真的是伪风口吗?
曾经,AR游戏一度异常火热,宝可梦go让多少人不惜翻墙都要去玩,但是也没过去几年,苹果被曝出再度砍掉了AR眼镜项目,面对着市场的变化,让人不禁想问AR真的是伪风口吗? 一、苹果再度砍掉AR眼镜项目&…...

18 大量数据的异步查询方案
在分布式的应用中分库分表大家都已经熟知了。如果我们的程序中需要做一个模糊查询,那就涉及到跨库搜索的情况,这个时候需要看中间件能不能支持跨库求交集的功能。比如mycat就不支持跨库查询,当然现在mycat也渐渐被摒弃了(没有处理笛卡尔交集的…...

DRM系列八:Drm之DRM_IOCTL_MODE_ADDFB2
本系列文章基于linux 5.15 在上一篇文章DRM系列七:Drm之DRM_IOCTL_MODE_CREATE_DUMB获取buf的handle和pitch之后,接着使用ioctl(fd, DRM_IOCTL_MODE_ADDFB2, &fb_cmd)创建一个新的帧缓冲区对象(framebuffer object),并将帧缓冲区对象与显…...

软件测试用例篇
设计测试用例是测试面试的必考题,务必好好学 1. 测试用例 测试用例的概念 测试⽤例(Test Case)是为了实施测试而向被测试的系统提供的⼀组集合,这组集合包含:测试环境、操作步骤、测试数据、预期结果等要素。 设计测试⽤…...

PopupMenuButton组件的功能和用法
文章目录 1 概念介绍2 使用方法3 示例代码 我们在上一章回中介绍了Sliver综合示例相关的内容,本章回中将介绍PopupMenuButton组件.闲话休提,让我们一起Talk Flutter吧。 1 概念介绍 我们在本章回中介绍的PopupMenuButton组件位于AppBar右侧,…...

Python进行模型优化与调参
在数据科学与机器学习领域,模型的优化与调参是提高模型性能的重要步骤之一。模型优化可以帮助提高模型的准确性和泛化能力,而合理的调参则能够充分发挥模型的潜力。这篇教程将重点介绍几种常用的模型优化与调参方法,特别是超参数调整和正则化技术的应用。这些技术能够有效地…...

vue2-组件通信
文章目录 vue2-组件通信1. 为什么需要组件通信2. props传递数据3. $emit触发自定义事件4.ref5. EventBus6. p a r e n t 和 parent和 parent和root7. a t t r s 和 attrs和 attrs和listeners8. provide和inject9. vuex10. 总结 vue2-组件通信 1. 为什么需要组件通信 在VUE中…...