打怪升级之从零开始的网络协议

序言

三个多月过去了,我又来写博客了,这一次从零开始学习网络协议。

总的来说,计算机网络很像现实生活中的快递网络,其最核心的目标,就是把一个包裹(信息)从A点发送到B点去。下面是一些共同的游戏规则:
1.同快递一样,你只能在寄出包裹的那一时刻写明你的邮寄地址(目的地)、使用的运输种类(空运或者车运;电信号传输或者光信号传输)、使用的快递公司种类(顺丰还是韵达;使用TCP/IP或者IPX)。
2.快递寄出后,由快递公司(运营商如中国移动或者中国联通)负责将你的包裹送到目的地,当然,如果你填写的地址有问题,会告知你的包裹有问题的(即会有报错的报文回来)。
3.同快递一样,你最核心的任务是填写正确的地址;你在填写地址的时候需要遵循从大到小的原则,比如中国-北京-朝阳区-XXX街道-XX路XX号(端口号-子网网段-IP地址-VLAN-MAC地址)。
如果你填写了正确的地址,并且你买下了运营商的服务,那么你发出的报文就能像快递一样寄到你所描述的目的地中去。

在这里插入图片描述

网络协议继续同快递相同的地方是,他们都遵循着某种地方到中央的收拢转发方式。比如长沙寄北京的快递,就会在长沙的快递中心汇集,统一发到北京的快递中心后再分发。这一种分层级的汇聚,转发,分发的架构,在计算机网络中称为OSI七层模型。

OSI七层

OSI七层(Open Systems Interconnection)图:

在这里插入图片描述

这里的每一层都有对应的协议来实现在该层的功能。让我们在以后的博客中一篇一篇的讲述OSI七层中的各种故事。

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

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

相关文章

Linux学习之ssh和scp

ls /etc/ssh可以看到这个目录下有一些文件,而/etc/ssh/ssh_config是客户端配置文件,/etc/ssh/sshd_config是服务端配置文件。 cat -n /etc/ssh/sshd_config | grep "Port "可以看一下sshd监听端口的配置信息,发现这个配置端口是22…

git分支

一、引言 分支的命名规范以及管理方式对项目的版本发布至关重要,为了解决实际开发过程中版本发布时代码管理混乱、冲突等比较头疼的问题,我们将在文中阐述如何更好的管理代码分支。 二、总览 从上图可以看到主要包含下面几个分支&#xff…

【是C++,不是C艹】 手把手带你实现Date类(附源码)

💞💞欢迎来到 Claffic 的博客💞💞 👉 专栏:《是C,不是C艹》👈 前言: 恍惚间,已经两个月没更新了 (;д`)ゞ 我忏…

Redis 持久化的手段有哪些 ?RDB 和 AOF 有什么区别 ?

目录 1. Redis 持久化的手段有哪些 2. RDB 和 AOF 有什么区别 2.1 RDB 持久化 2.2 AOF 持久化 2.2.1 AOF 持久化策略有哪些 3. 混合持久化是如何执行的(了解) 1. Redis 持久化的手段有哪些 Redis 持久化的手段有三种: 快照方式&#…

开源数据库Mysql_DBA运维实战 (总结)

开源数据库Mysql_DBA运维实战 (总结) SQL语句都包含哪些类型 DDL DCL DML DQL Yum 安装MySQL的配置文件 配置文件:/etc/my.cnf日志目录:/var/log/mysqld.log错误日志:/var/log/mysql/error.log MySQL的主从切换 查看主…

什么是程序化交易接口?执行三步曲是什么?

在股市中的发展过程中,通过不断的更新迭代,从手动交易到自动交易的过程就有了历史的蜕变,那么对于程序化交易接口(Application Programming Interface, API)其实就是指为程序化交易提供的一组定义和规范,允…

物联网工程应用实训室建设方案

一、物联网工程应用系统概述 1.1物联网工程定义 物联网工程(Internet of Things Engineering)是一种以信息技术(IT)来改善实体世界中人们生活方式的新兴学科,它利用互联网技术为我们的日常生活活动提供服务和增益&am…

时序预测 | MATLAB实现基于CNN-LSTM卷积长短期记忆神经网络的时间序列预测-递归预测未来(多指标评价)

时序预测 | MATLAB实现基于CNN-LSTM卷积长短期记忆神经网络的时间序列预测-递归预测未来(多指标评价) 目录 时序预测 | MATLAB实现基于CNN-LSTM卷积长短期记忆神经网络的时间序列预测-递归预测未来(多指标评价)预测结果基本介绍程序设计参考资料 预测结果 基本介绍 MATLAB实现基…

线程面试题-1

看的博客里面总结的线程的八股文 1、线程安全的集合有哪些?线程不安全的呢? 线程安全的: Hashtable:比HashMap多了个线程安全。 ConcurrentHashMap:是一种高效但是线程安全的集合。 Vector:比Arraylist多了个同步化…

安装Vue_dev_tools

Vue控制台出现Download the Vue Devtools extension for a better development experience: 下载Vue_dev_tools,这里给出网盘链接,有Vue2和Vue3的,dev_tools 以Google浏览器为例 点击设置(就是那三个点)->扩展程序->管理扩…

游戏服务端性能测试

导语:近期经历了一系列的性能测试,涵盖了Web服务器和游戏服务器的领域。在这篇文章中,我将会对游戏服务端所做的测试进行详细整理和记录。需要注意的是,本文着重于记录,而并非深入的编程讨论。在这里,我将与…

C# Windows登录界面进行截图,控制鼠标键盘等操作实现(一)

首先常规的账户进程是没办法获取登录界面的信息的,因为登录界面已经不在某个账户下了,登录界面显示了每一个账户的切换。所以得使用System权限的进程。 那么Windows系统究竟是怎么将登录界面与用户桌面隔离开的呢?首先先通过一些Windows操作系…

很好的启用window10专业版系统自带的远程桌面

启用window10专业版系统自带的远程桌面 文章目录 启用window10专业版系统自带的远程桌面前言1.找到远程桌面的开关2. 找到“应用”项目3. 打开需要远程操作的电脑远程桌面功能 总结 前言 Windows操作系统作为应用最广泛的个人电脑操作系统,在我们身边几乎随处可见。…

vite初始化vue3项目(配置自动格式化工具与git提交规范工具)

初始化项目 vite构建vue项目还是比较简单的,简单配置选择一下就行了 初始化命令 npm init vuelatest初始化最新版本vue项目 2. 基本选项含义 Add TypeScript 是否添加TSADD JSX是否支持JSXADD Vue Router是否添加Vue Router路由管理工具ADD Pinia 是否添加pinia…

Nginx反向代理配置流式响应

Nginx 是通过缓存响应内容来处理请求的。也就是说,当 Nginx 接收到完整的响应后,才会将其发送给客户端,所以默认不支持流式响应,这里讲讲 Nginx 反向代理中怎么配置流式响应? 一、使用背景 最近使用 Egg.js 搭建自动化…

【腾讯云 TDSQL-C Serverless 产品测评】全面测评TDSQL-C Mysql Serverless

全面测评TDSQL-C Mysql Serverless 文章目录 全面测评TDSQL-C Mysql Serverless前言什么是TDSQL-C Mysql Serverless初始化 TDSQL-C Mysql Serverless新建数据库建立数据表开启外网访问 兼容性SQL文件 导入导出navicat 直接在线传输 构建测试环境准备Python测试脚本准备 Jmeter…

下载安装并使用小乌龟TortoiseGit

1、下载TortoiseGit安装包 官网:Download – TortoiseGit – Windows Shell Interface to Githttps://tortoisegit.org/download/ 2、小乌龟汉化包 在官网的下面就有官方提供的下载包 3、安装

Electron入门,项目运行,只需四步轻松搞定。

electron 简单介绍: 实现:HTML/CSS/JS桌面程序,搭建跨平台桌面应用。 electron 官方文档: [https://electronjs.org/docs] 本文是基于以下2篇文章且自行实践过的,可行性真实有效。 文章1: https://www.cnbl…

Django学习笔记(2)

创建app 属于自动执行了python manage.py 直接在里面运行startapp app01就可以创建app01的项目了 之后在setting.py中注册app01 INSTALLED_APPS ["django.contrib.admin","django.contrib.auth","django.contrib.contenttypes","django.c…

合并jar包导致gradle传递依赖失效

目录 零、背景一、合并jar包1.1、自定义一组jar包1.2、自定义合并jar的任务1.3、定义打包jar的任务 二、发布jar包2.1、未合并jar包之前的合并方式2.2、合并jar包之后的合并方式 三、发现问题3.1、确定gradle中的依赖关系3.2、对比maven是否缺失依赖3.3、对比合并前后的pom.xml…