<网络编程>网络基础

news2024/11/17 1:37:20

目录

计算机网络背景

认识“协议”:

TCP/IP五层模型

网络传输基本流程

不在一个局域网进行通信


了解网络发展背景,对局域网/广域网的概念认识

了解网络协议意义,重点理解TCP/IP五层结构

学习网络传输的基本流程,理解封装和分用

计算机网络背景

世界上是先有的计算机,再有的网络

局域网LAN:计算机数量多了,通过交换机和路由器连接在一起 

广域网WAN:将远隔千里的计算机都连接在一起

所谓的“局域网”和“广域网” 只是一个相对的概念。比如广域网,也可以看做是一个比较大的局域网。

认识“协议”:

“协议”是一种约定。本质的一种原因为了让通信更加高效。 

网络协议初识

不同设备之间要进行通信,需要硬件标准网络协议的行业标准。

协议分层

操作系统要进行协议管理,是通过先描述,在组织的形式。

协议本质就是软件,软件是可以“分层”的

协议在设计的时候,就是被层状的划分的 !

为什么要划分为层状结构呢?一个是应用的场景复杂,通过层状结构进行功能解耦,便于人们去维护。

通信的复杂本质是和距离成正相关的!那么复杂体现在哪里呢?这就是协议栈要解决的问题

应用范畴:

0.如何处理数据 ---- 应用层

通信范畴:

1.丢包 ---- 传输层

2. 定位问题 ---- 网络层

3.解决下一跳主机的问题 ---- 数据链路层

4.硬件保证 ---- 物理层

以上是五层通信必须协议。除开物理层的其他四层称之为基于TCP/IP协议.

网络和系统的对应关系

 

 OSI规定的是七层模型,实际实现的是五层  

TCP/IP五层模型

物理层:

数据链路层:

网络层:

传输层:

应用层:

主机:传输层 -> 网络层

路由器:网络层 -> 物理层

交换机、网卡:数据链路层 -> 物理层

集线器:物理层

网络传输基本流程

同一个网段内的两台主机进行文件传输

TCP/IP通讯过程

 局域网中两台主机是可以直接通信的,上面的每层都有自己的协议定制方案,每层协议都要有自己的协议报头,从上到下交付数据的时候,要添加报头,反之要去掉报头。

什么是协议报头呢?上层将数据交付给下层时,会给数据添加一个报头,报头就是数据传递后多出来的部分

封装的本质:添加报头

解包的本质:去掉报头

下面就是协议栈的结构

局域网是共有的,通信相当于是在一条数据线中发送了数据,这个数据是这个局域网内所有主机共享的,相当于是开了全麦喊话。一般我们是无法破坏的,但是如果我们绕过了数据链路层直接向以太网发射数据,就相当于发送了一堆无法解析的垃圾数据了。(很刑!!!

   局域网中标识主机的唯一性:MAC地址(计算机出厂的时候就已经有了,全球唯一)

 如何查询MAC地址:命令行 ifconfig

不在一个局域网进行通信

MAC地址:源MAC和目标MAC是不断改变的,当前站和下一站的问题,用来标识数据链路层相连的节点。

 IP地址:不在同一个局域网,无法使用MAC地址进行通信,就只能通过IP地址通信,源IP和目的IP是不会改变的,来源和目的的问题,标识不同主机的地址。

在使用TPC/IP协议的网络中,IP及其向上的协议,看到的报文都是一样的

1.报文是要被封装的,如何解包?

2.决定我们的有效载荷交付给上层的哪一个 协议的问题?

每一个协议都有考虑上面两个问题,每一个协议都要有一定的方式解决这两个公共的问题。

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

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

相关文章

gRPC远程调用协议

gRPC 简介 gRPC是一个现代的、高性能、开源的和语言无关的通用 RPC 框架,基于 HTTP2 协议设计,序列化使用PB(Protocol Buffer),PB 是一种语言无关的高性能序列化框架,基于 HTTP2PB 保证了的高性能。 HTTP2.0 grpc采用HTTP2.0&…

NFT Insider #100:The Sandbox 展示泰国 2023 年元宇宙生态系统,​游戏巨头世嘉暂缓链游项目开发

引言:NFT Insider由NFT收藏组织WHALE Members、BeepCrypto联合出品,浓缩每周NFT新闻,为大家带来关于NFT最全面、最新鲜、最有价值的讯息。每期周报将从NFT市场数据,艺术新闻类,游戏新闻类,虚拟世界类&#…

第三章 数据链路层【计算机网络】

第三章 数据链路层【计算机网络】 前言推荐第三章 数据链路层3.1 数据链路层的几个共同问题3.1.1 数据链路和帧3.1.2 三个基本问题 3.2点对点协议PPP3.2.1 PPP协议的特点3.2.2 PPP协议的帧格式3.2.3 PPP协议的工作状态 3.3 使用广播信道的数据链路层3.3.1 局域网的数据链路层3.…

ADManager Plus:企业自动化管理的利器

在当今数字化时代,企业管理面临着越来越多的挑战。为了提高效率、降低成本并确保信息安全,自动化管理成为了企业的首要选择。而在众多自动化管理工具中,ADManager Plus无疑是一款卓越的解决方案。本文将为您介绍ADManager Plus的功能与优势&a…

【Accumulate】Gitee解决每次推送输入账户密码问题

【前言】 每次建立私人仓库后,一推送就得输入账户密码,真的巨烦人啊。 【解决】 step1: 绑定私匙: 配置Git_犟小孩的博客-CSDN博客 step2: 每次绑定远程仓库的时候,使用SSH绑定 如果已经绑定过了&…

虚拟化技术(KVM)基础

如何实现虚拟化技术? 三种类型的虚拟机管理软件Hypervisor KVM(kernrl -bsed v m) 环境检查和部署 一、虚拟化技术概述 虚拟化技术就是对资源的抽象 1.1、从资源提供角度分类 平台虚拟化即硬件平台虚拟化,可以把物理机的CPU和MEM提供给来宾主机做资源…

使用Electron来给若依系统打包成exe程序,出现登录成功但是不跳转页面(已解决)

阿丹: 之前解决了css找不到文件等问题,那么新问题就来了! 问题描述: 进入到登录页面发现问题: 点击登录一直在转圈,但是不进去!!! 更诡异的是!后台相应的很…

vue启动失败;‘vue-cli-service‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件。

问题1: 启动vue项目失败: vue启动失败;‘vue-cli-service‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件。 获或者问题2:npm i 失败: C:\Users\28602\AppData\Roaming\npm-cache_logs\2023-07-07…

一篇看懂web端音频

三方音频录制的库 recorder-core库: github地址:https://github.com/xiangyuecn/Recorder 支持录音格式:mp3 wav ogg webm amr pcm 该库基于Web Audio API(html5)的录音库,支持在大部分已实现getUserMedi…

安装yum源

三个源,httpd的: 首先:安装yum源 关闭防火墙和安全机制 然后访问本机ip 显示出来,删除掉,然后创建本地yum源 挂载,但是test没有 创建test,然后挂载 必须要进入到这个目录下创建挂载才行&…

(vue)el-table表格删除操作加气泡确认框

(vue)el-table表格删除操作加气泡确认框 效果&#xff1a; 代码&#xff1a; <el-table-column fixed"right" label"操作" width"120"><template slot-scope"scope"><el-popconfirm title"确定移除吗&#xff…

Keepalived及其工作原理

目录 一、keepalived概述 1.1.1 管理LVS负载均衡软件 1.1.2 支持故障自动切换&#xff08;failover&#xff09; 1.1.3 实现LVS集中节点的健康检查&#xff08;health checking&#xff09; 1.1.4 实现LVS负载调度器 节点服务器的高可用性&#xff08;HA&#xff09; 二、…

Stable Diffusion 使用lora-scripts WebUI训练LoRA模型

如果对代码使用有困难的小伙伴可以直接使用WebUI版的LoRA模块进行训练操作。不管是训练人物&#xff0c;场景&#xff0c;风格&#xff0c;还是服装都是一套通用的模式&#xff0c;仅仅是使用不同的数据集得到的结果不同。 文章目录 lora-scripts WebUI的安装LoRA训练过程SD切分…

【贪心】CF1845 C

Problem - C - Codeforces 题意&#xff1a; Code&#xff1a; #include <bits/stdc.h>//#define int long longusing namespace std;const int mxn3e510; const int mxe1e510; const int mod1e97; const int Inf0x3f3f3f3f;string s,l,r;int M;void solve(){s.clear…

前端部署--入门Vercel

Vercel Vercel 你可以理解为一个部署工具&#xff0c;支持部署静态网页和Node服务&#xff0c;部署后你还可以访问它自带生成的域名https。 模版支持 Nuxt.js: Vue的SSR框架 Hexo: 快速生成博客网站 Remix&#xff1a; 一款边缘原生的全栈 JavaScript 框架 … Vercel的核心…

免押租赁软件开发|租赁小程序适合各种产品开发

租赁小程序适合各种产品开发&#xff0c;特别是那些可以通过租赁方式提供给用户使用的产品。以下是一些适合开发租赁小程序的产品类型&#xff1a;   租房&#xff1a;租赁小程序可以方便房东和租客之间的房屋租赁交易。租客可以通过小程序浏览房源信息并联系房东&#xff0c…

力扣 | 数组和字符串简介

数组是数据结构中的基本模块之一。因为字符串是由字符数组形成的&#xff0c;所以二者是相似的。力扣LeetBook——数组和字符串 文章目录 &#x1f4da;数组简介&#x1f449;寻找数组的中心索引&#x1f449;搜索插入位置&#x1f449;合并区间 &#x1f4da;二维数组简介&…

adb连接安卓模拟器或真机hook参数加密详细过程(frida)

app逆向时&#xff0c;参数与函数的确定很关键&#xff0c;找到可疑的函数&#xff0c;不确定是否由该函数生成&#xff0c;该怎么解决&#xff1f;hook就应允而生了&#xff0c;首先是要求本地电脑和安卓模拟器&#xff08;网易mumu模拟器支持多系统&#xff0c;该模拟器作为主…

Docker学习笔记23

Docker Swarm架构&#xff1a; Swarm中以集群&#xff08;Cluster&#xff09;为单位进行管理&#xff0c;支持服务层面的操作。 集群是Swarm所管理的对象。 基本概念&#xff1a; 节点&#xff08;Node&#xff09;为Swarm集群中的一个Docker Engine实例。其中管理节点&#…

线程池问题处理

拒绝策略 AbortPolicy&#xff1a;默认的拒绝策略&#xff0c;直接抛出RejectedExecutionException异常。 CallerRunsPolicy&#xff1a;将任务退回给调用者执行。 场景 等线程池里的任务执行完通过future.get的方式获取线程池里的线程执行结果&#xff0c;然后合并到主流程…