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

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

理解互联网与TCP/IP

下面,我们将会开始理解互联网这个东西,进一步的,我们会理解何为TCP/IP

我们的互联网就是一个巨大的网状结构,需要注意的是——每一个网状的节点之间都是使用一个叫做NOC,Network Operation Center网络操作中心完成的。对于不同性质连接起来的节点,则是使用一个叫做IX:网络交换中心来完成的。

中间,ISP(网络服务提供商)管理了我们每一个递归节点设备介入互联网的管理。就是这样的一张绘景

TCP/IP

如我们第一个博客(计算机网络笔记再战——理解几个经典的协议1-CSDN博客)所见,TCP/IP化简了OSI七层模型。在这里,我们将会详细的阐述每一个层中的内容。

物理层

实际上传递我们信息的物理硬件,是以太网驱动网卡还是电话线啥的,没关系!他总是向上提供一个SendRemote和ReceiveRemote的一个接口!

数据链路层

也就是驱动底层硬件做事情的层次。这里,工作和屏蔽一切物理层的差异,向上提供“发送和接受字节的操作”

网络层

这里就是IP层了,我们开始考虑字节组成的字节包流,也就是说,我们终于开始考虑一个接着一个的包。从这里开始,操作系统驱动数据链路层,完成字节流包的控制,接受和传递。在这里,常见的协议是IP,ICMP(控制IP包的协议)和ARP(解析硬件MAC地址)

传输层

也就是是一个封装了网络层的层次,在这里,我们常见的就是TCP/UDP。对于TCP就是一个经典的有连接协议(回顾上一个博客!),UDP是一个经典的无连接协议。我们这里就是对IP进行一定的控制和封装,现在,我们可以理解为真正有意义的被认为是传递信息载体的层次了。

应用层

应用层就是我们现在看得见摸得着的软件层,我们各种网络软件都在这里,实际上,我们生产和接受信息,向下委派传输层进行传输!常见的应用层的协议有HTTP, SMTP, FTP. TELNET,SSH, SNMP等协议

  • HTTP(超文本传输协议)是一种用于在客户端和服务器之间传输网页的协议。它是Web通信的基础,允许浏览器请求网页并接收响应。HTTP是无状态的,每个请求都是独立的,不会保存之前请求的信息。

  • SMTP(简单邮件传输协议)用于发送电子邮件,它的工作方式是将邮件从客户端传送到邮件服务器,然后再通过服务器将邮件传送到接收方的邮箱。SMTP主要用于发送邮件,而接收邮件通常使用POP3或IMAP协议。

  • FTP(文件传输协议)是一种用于在网络上进行文件传输的协议。它允许用户在本地计算机和远程服务器之间上传或下载文件。FTP支持两种模式:主动模式和被动模式,主要区别在于数据连接的建立方式。

  • TELNET是一种远程终端协议,它允许用户通过网络远程登录到另一台计算机并进行操作。通过TELNET,用户可以像直接操作计算机一样控制远程计算机,但TELNET本身没有加密功能,因此它的安全性较差。

  • SSH(安全外壳协议)是一种用于安全远程登录的协议,通常用于代替TELNET。与TELNET不同,SSH对数据进行加密,确保传输过程中的信息不会被窃取。它通常用于远程管理和控制服务器,提供比TELNET更强的安全性。

  • SNMP(简单网络管理协议)用于网络设备的管理和监控,尤其是在大规模网络中,SNMP可以帮助管理员收集设备状态信息、故障诊断和配置管理。通过SNMP,网络管理员可以监控路由器、交换机等设备的性能和运行状态。

数据在协议层之间发生了什么?

上面这个图就把话说完了.我们直到,我们的应用层的信息向下传递的时候,都会经过一层有一层的封装.这里,我们就进行了一系列的协议封装,用于指示下层和对方正确的理解我们的意图.

以写一个邮件为例子:当你在电脑上写一封邮件点击发送时,这台电脑会像处理信件一样逐层打包信息。最上面的应用层先把邮件内容(比如文字和附件)用SMTP邮件协议封装,就像把信纸塞进印有"邮政专递"字样的信封,写上收件人邮箱和发件人地址。接着传输层的TCP协议接手,把这个大信封拆分成多个小包裹,每个包裹贴上序号标签和收发双方的"门牌号"(比如发件电脑的随机端口和收件方25号端口),确保所有包裹都能完整有序送达。

网络层的IP协议继续处理,给每个小包裹套上更大的快递袋,用IP地址代替具体地址(比如发件人电脑的192.168.1.10和收件邮箱服务器的203.0.113.5),规划最佳运输路线。到了数据链路层,这些快递袋又被装进更具体的运输车——以太网帧里,贴上本地快递站的MAC地址(比如你家路由器的MAC)作为下一站中转点。最后物理层把这些数字包裹变成电信号或光信号,就像把货物装上真正的运输卡车,通过网线或Wi-Fi信号开始传送。

这些信号经过路由器层层转发,就像快递分拣中心根据IP地址不断更换运输车的MAC地址标签,跨过多个网络最终到达收件邮箱服务器。服务器反向拆包:物理层把光信号变回数据,数据链路层核对MAC地址,网络层验证IP地址,传输层按序号重组包裹,应用层最终取出原始邮件内容。现在,我们完成了一次自应用层为SMTP通信,在传输层是TCP,网络层是IP,数据链路是以太网或者是其他的玩意,物理层是电磁传输的一个通信!

相关文章:

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

理解互联网与TCP/IP 下面,我们将会开始理解互联网这个东西,进一步的,我们会理解何为TCP/IP 我们的互联网就是一个巨大的网状结构,需要注意的是——每一个网状的节点之间都是使用一个叫做NOC,Network Operation Center…...

设计高效的测试用例:从需求到验证

在现代软件开发过程中,测试用例的设计一直是质量保证(QA)环节的核心。有效的测试用例不仅能够帮助发现潜在缺陷,提升软件质量,还能降低后期修复成本,提高开发效率。尽管如此,如何从需求出发&…...

git reset 命令

git reset 的作用 git reset 是一个非常强大的命令,用于将当前分支的 HEAD(即当前指向的提交)重置到指定的提交。它还可以根据参数的不同,对工作区(Working Directory)和暂存区(Staging Area&a…...

docker被“遗忘”的那些参数该如何拯救

一、docker容器启动时没有指定端口,如何在不删除容器的情况下配置端口呢 在 Docker 中,如果容器启动时没有指定端口映射,可以通过以下步骤在不删除容器的情况下配置端口: 方法 1: 使用 docker commit 和 docker run 提交容器为新…...

BFS算法——广度优先搜索,探索未知的旅程(下)

文章目录 前言一. N叉树的层序遍历1.1 题目链接:https://leetcode.cn/problems/n-ary-tree-level-order-traversal/description/1.2 题目分析:1.3 思路讲解:1.4 代码实现: 二. 二叉树的锯齿形层序遍历2.1 题目链接:htt…...

Python分享20个Excel自动化脚本

在数据处理和分析的过程中,Excel文件是我们日常工作中常见的格式。通过Python,我们可以实现对Excel文件的各种自动化操作,提高工作效率。 本文将分享20个实用的Excel自动化脚本,以帮助新手小白更轻松地掌握这些技能。 1. Excel单…...

pytest+request+yaml+allure 接口自动化测试全解析[手动写的跟AI的对比]

我手动写的:Python3:pytest+request+yaml+allure接口自动化测试_request+pytest+yaml-CSDN博客 AI写的:pytest+request+yaml+allure 接口自动化测试全解析 在当今的软件开发流程中,接口自动化测试扮演着至关重要的角色。它不仅能够提高测试效率,确保接口的稳定性和正确性…...

深入解析 FFmpeg 的 AAC 编解码过程

深入解析 FFmpeg 的 AAC 编解码过程 —— 技术详解与代码实现 AAC(Advanced Audio Coding) 是一种高效的有损音频压缩格式,因其高压缩效率和良好的音质而被广泛应用于流媒体、广播和音频存储等领域。FFmpeg 是一个强大的多媒体处理工具,支持 AAC 的编码和解码。本文将详细…...

嵌入式硬件篇---OpenMV串口通信json字符串

文章目录 前言第一部分:Json字符串通信协议优点缺点 Json优点缺点编码与解码 第二部分:UART串口通信UART常用函数注意 总结 前言 以上就是今天要讲的内容,本文简单介绍了Json字符串、UART串口通信。 第一部分:Json字符串 通信协议 在传统的单片机应用中&#xff…...

Python基于Django的课堂投票系统的设计与实现【附源码】

博主介绍:✌Java老徐、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇&…...

蓝桥杯 Java 之输入输出

一、输入输出方式:Scanner vs BufferedReader Scanner类 简介:Scanner 是 Java 中一个非常方便的用于读取用户输入的类,它可以从多种输入源(如标准输入、文件等)读取基本数据类型和字符串。 1. Scanner的细节与使用…...

Kubernetes是什么?为什么它是云原生的基石

从“手工时代”到“自动化工厂” 想象一下,你正在经营一家工厂。在传统模式下,每个工人(服务器)需要手动组装产品(应用),效率低下且容易出错。而Kubernetes(k8s)就像一个…...

@emotion/styled / styled-components创建带有样式的 React 组件

一、安装依赖 npm install emotion/styled styled-components 二、使用 import styled from emotion/styled; import styled from styled-components;// 创建一个带样式的按钮 const StyledButton styled.buttonbackground-color: #4caf50;color: white;padding: 10px 20px…...

Android 常用命令和工具解析之Battery Historian

Batterystats是包含在 Android 框架中的一种工具,用于收集设备上的电池数据。您可以使用adb bugreport命令抓取日志,将收集的电池数据转储到开发机器,并生成可使用 Battery Historian 分析的报告。Battery Historian 会将报告从 Batterystats…...

家用报警器的UML 设计及其在C++和VxWorks 上的实现01

M.W.Richardson 著,liuweiw 译 论文描述了如何运用 UML(统一建模语言)设计一个简单的家用报警器,并实现到 VxWorks 操作系统上。本文分两个部分,第一部分描述了如何用 UML 设计和验证家用报警器的模型,以使…...

k8s常见面试题2

k8s常见面试题2 安全与权限RBAC配置如何保护 Kubernetes 集群的 API Server?如何管理集群中的敏感信息(如密码、密钥)?如何限制容器的权限(如使用 SecurityContext)?如何防止容器逃逸&#xff0…...

CSS 伪类(Pseudo-classes)的详细介绍

CSS 伪类详解与示例 在日常的前端开发中,CSS 伪类可以帮助我们非常精准地选择元素或其特定状态,从而达到丰富页面表现的目的。本文将详细介绍以下伪类的使用: 表单相关伪类 :checked、:disabled、:enabled、:in-range、:invalid、:optional、…...

将Deepseek接入pycharm 进行AI编程

目录 专栏导读1、进入Deepseek开放平台创建 API key 2、调用 API代码 3、成功4、补充说明多轮对话 总结 专栏导读 🌸 欢迎来到Python办公自动化专栏—Python处理办公问题,解放您的双手 🏳️‍🌈 博客主页:请点击——…...

【Ollama】一、介绍

介绍 Ollama 是一个开源项目,专注于提供本地化的大型语言模型(LLM)部署和运行解决方案。它允许用户在本地环境中轻松运行和微调各种开源语言模型(如 LLaMA、Falcon 等),而无需依赖云服务或高性能 GPU。Oll…...

ASP.NET Core JWT

目录 Session的缺点 JWT(Json Web Token) 优点: 登录流程 JWT的基本使用 生成JWT 解码JWT 用JwtSecurityTokenHandler对JWT解码 注意 Session的缺点 对于分布式集群环境,Session数据保存在服务器内存中就不合适了&#…...

Java 语言特性(面试系列2)

一、SQL 基础 1. 复杂查询 (1)连接查询(JOIN) 内连接(INNER JOIN):返回两表匹配的记录。 SELECT e.name, d.dept_name FROM employees e INNER JOIN departments d ON e.dept_id d.dept_id; 左…...

R语言AI模型部署方案:精准离线运行详解

R语言AI模型部署方案:精准离线运行详解 一、项目概述 本文将构建一个完整的R语言AI部署解决方案,实现鸢尾花分类模型的训练、保存、离线部署和预测功能。核心特点: 100%离线运行能力自包含环境依赖生产级错误处理跨平台兼容性模型版本管理# 文件结构说明 Iris_AI_Deployme…...

测试markdown--肇兴

day1: 1、去程:7:04 --11:32高铁 高铁右转上售票大厅2楼,穿过候车厅下一楼,上大巴车 ¥10/人 **2、到达:**12点多到达寨子,买门票,美团/抖音:¥78人 3、中饭&a…...

高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数

高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数 在软件开发中,单例模式(Singleton Pattern)是一种常见的设计模式,确保一个类仅有一个实例,并提供一个全局访问点。在多线程环境下,实现单例模式时需要注意线程安全问题,以防止多个线程同时创建实例,导致…...

c++第七天 继承与派生2

这一篇文章主要内容是 派生类构造函数与析构函数 在派生类中重写基类成员 以及多继承 第一部分:派生类构造函数与析构函数 当创建一个派生类对象时,基类成员是如何初始化的? 1.当派生类对象创建的时候,基类成员的初始化顺序 …...

保姆级【快数学会Android端“动画“】+ 实现补间动画和逐帧动画!!!

目录 补间动画 1.创建资源文件夹 2.设置文件夹类型 3.创建.xml文件 4.样式设计 5.动画设置 6.动画的实现 内容拓展 7.在原基础上继续添加.xml文件 8.xml代码编写 (1)rotate_anim (2)scale_anim (3)translate_anim 9.MainActivity.java代码汇总 10.效果展示 逐帧…...

Python实现简单音频数据压缩与解压算法

Python实现简单音频数据压缩与解压算法 引言 在音频数据处理中,压缩算法是降低存储成本和传输效率的关键技术。Python作为一门灵活且功能强大的编程语言,提供了丰富的库和工具来实现音频数据的压缩与解压。本文将通过一个简单的音频数据压缩与解压算法…...

TJCTF 2025

还以为是天津的。这个比较容易,虽然绕了点弯,可还是把CP AK了,不过我会的别人也会,还是没啥名次。记录一下吧。 Crypto bacon-bits with open(flag.txt) as f: flag f.read().strip() with open(text.txt) as t: text t.read…...

写一个shell脚本,把局域网内,把能ping通的IP和不能ping通的IP分类,并保存到两个文本文件里

写一个shell脚本&#xff0c;把局域网内&#xff0c;把能ping通的IP和不能ping通的IP分类&#xff0c;并保存到两个文本文件里 脚本1 #!/bin/bash #定义变量 ip10.1.1 #循环去ping主机的IP for ((i1;i<10;i)) doping -c1 $ip.$i &>/dev/null[ $? -eq 0 ] &&am…...

大数据驱动企业决策智能化的路径与实践

&#x1f4dd;个人主页&#x1f339;&#xff1a;慌ZHANG-CSDN博客 &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; 一、引言&#xff1a;数据驱动的企业竞争力重构 在这个瞬息万变的商业时代&#xff0c;“快者胜”的竞争逻辑愈发明显。企业如何在复杂环…...