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

Linux网络_网络协议_网络传输_网络字节序

一.协议

1.概念

协议(Protocol) 是一组规则和约定,用于定义计算机网络中不同设备之间如何进行通信和数据交换。协议规定了数据的格式、传输方式、传输顺序等详细规则,确保不同设备和系统能够有效地互联互通。

在网络通信中,协议起到了“语言”的作用,确保不同的设备可以理解彼此的“话”。例如,在互联网中,计算机通过协议来传输网页、文件、邮件等数据。

计算机之间的传输媒介是光信号和电信号. 通过 "频率" 和 "强弱" 来表示 0 和 1 这样的
信息. 要想传递各种不同的信息, 就需要约定好双方的数据格式.

2.协议分层

协议本质也是软件,在设计上为了更好的进行模块化,解耦合,也是被设计成为层状结构的。它将通信协议分为不同的层级,每一层负责特定的功能和任务,层与层之间通过接口进行交互。

什么是分层呢?

比如说打电话,我们可以把它分为两层,第一层 语言层通过语言协议不同人间进行交流。

第二层 通信设备层通过电话协议不同电话间进行交流。

复杂任务分解成一系列相对简单的、互不干扰的层,每层都有对应的协议进行约定。

协议分层的好处

模块化设计:每个层只关注其特定的功能,避免了复杂性,易于管理。
便于维护:当出现通信问题时,可以通过定位某一层来快速排查,简化了故障诊断
灵活性:某一层的协议可以独立改变,不必影响到其他层。
兼容性和标准化:不同厂商和设备可以使用相同的协议层标准,确保互联互通。

二.OSI 七层模型

OSI(Open System Interconnection,开放系统互连)七层网络模型称为开放式系统互联参考模型,是一个逻辑上的定义和规范;
把网络从逻辑上分为了 7 层. 每一层都有相关、相对应的物理设备,比如路由器,交换机;
OSI 七层模型是一种框架性的设计方法,其最主要的功能使就是帮助不同类型的主机实现数据传输;
它的最大优点是将服务、接口和协议这三个概念明确地区分开来,概念清楚,理论也比较完整. 

在网络角度,OSI 定的协议 7 层模型其实非常完善,但是在实际操作的过程中,会话层、表示层是不可能接入到操作系统中的,所以在工程实践中,最终落地的是 5 层协议。

三.TCP/IP 五层(或四层)模型

TCP/IP 是一组协议的代名词,它还包括许多协议,组成了 TCP/IP 协议簇.
TCP/IP 通讯协议采用了 5 层的层级结构,每一层都呼叫它的下一层所提供的网络来完
成自己的需求.

物理层: 负责光/电信号的传递方式
数据链路层: 负责设备之间的数据帧的传送和识别.

网络层: 负责地址管理和路由选择.

传输层: 负责两台主机之间的数据传输. 

应用层: 负责应用程序间沟通

物理层我们考虑的比较少,我们只考虑软件相关的内容. 因此很多时候我们直接称为
TCP/IP 四层模型.

四.TCP/IP协议

1.为什么要有 TCP/IP 协议?

1.首先,即便是单机,你的计算机内部,其实都是存在协议的,比如:其他设备和
内存通信,会有内存协议。其他设备和磁盘通信,会有磁盘相关的协议
,比如:
SATA,IDE,SCSI 等。只不过我们感知不到罢了。而且这些协议都在本地主机各自
的硬件中,通信的成本、问题比较少。

2.其次,网络通信最大的特点就是主机之间变远了。任何通信特征的变化,一定会
带来新的问题
,有问题就得解决问题,所以需要新的协议咯。

所以,为什么要有 TCP/IP 协议?本质就是通信主机距离变远了,出现了新的问题需要解决。

2.什么是TCP/IP协议?

TCP/IP 协议的本质是一种解决方案

TCP/IP协议和操作系统的关系

不同主机的操作系统不同,但可以相互通信,就是因为所有主机的协议栈都是按标志进行相同实现的。

传输层最著名的协议TCP 网络层最著名的协议IP

而传输层 网络层两层必须实现在内核中,无论OS再怎么不同,这部分都要遵守协议,必须一样。因此,传输层和网络层协议在不同操作系统中确实必须遵循相同的标准,无论操作系统如何实现,它们的核心行为和协议功能应保持一致。

问题:主机 B 能识别 data,并且准确提取 a=10,b=20,c=30 吗?
回答:答案是肯定的!因为双方都有同样的结构体类型 struct protocol。也就是说,用同样的代码实现协议,用同样的自定义数据类型,天然就具有”共识“,能够识别对方发来的数据,这不就是约定吗?
关于协议的朴素理解:所谓协议,就是通信双方都认识的结构化的数据类型
因为协议栈是分层的,所以,每层都有双方都有协议,同层之间,互相可以认识对方的协议。

五.网络传输基本流程

1.局域网(以太网为例)通信原理

首先回答,两台主机在同一个局域网,是否能够直接通信?是的
原理类似上课
每台主机在局域网上,要有唯一的标识来保证主机的唯一性:mac 地址

比如说局域网中连接了5台电脑,其中有一台A电脑向B电脑发信息,会把消息放入局域网中,其它电脑其实也可以接收到,但只要B会处理。为什么,因为每天电脑都有自己唯一的mac地址(MAC 地址用来识别数据链路层中相连的节点),通过比对mac地址来判断是否要处理该消息。

以太网中,任何时刻,只允许一台机器向网络中发送数据
如果有多台同时发送,会发生数据干扰,我们称之为数据碰撞
所有发送数据的主机要进行碰撞检测和碰撞避免
没有交换机的情况下,一个以太网就是一个碰撞域
局域网通信的过程中,主机对收到的报文确认是否是发给自己的,是通过目标mac 地址判定

通过 ifconfig 查看 MAC 地址
在大多数 Unix-like 系统(包括 macOS 和 Linux)中,执行 ifconfig 命令后,你可以看到类似以下的输出:

en0: flags=8863<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet 192.168.1.2 netmask 0xffffff00 broadcast 192.168.1.255ether 00:1a:2b:3c:4d:5e  txqueuelen 1000  (Ethernet)media: autoselect 100baseTX  status: active...

在这个输出中:

ether 00:1a:2b:3c:4d:5e 就是 MAC 地址,它位于每个网络接口的硬件部分。
MAC 地址是 48 位的十六进制数,通常由六对十六进制数字(如 00:1a:2b:3c:4d:5e)组成。

2.数据包封装和分用

初步明白了局域网通信原理,再来看同一个网段内的两台主机进行发送消息的过程

而其中每层都有协议,所以当我进行进行上述传输流程的时候,要进行封装和解包。

数据包封装:在向下交付的时候每一层都会添加自己的报头,报文 = 报头 + 有效载荷,再把报文向下交付。
数据包分用:在向上解包时,因为同一层有相同的协议,所以能识别报头,它会解开报头,把有效载荷在向上解包。这样就形成了对称的结构。

下面我们明确一下概念:
封装:将自顶向下进行交付的过程称为封装,封装就是添加报头的过程。

解包:每一层协议接收到数据后,都会去除该层报头,并将剩余的有效负载交给上一层。

分用:正是将解包后的数据准确地分发给对应的上层协议进行处理。(报头内部,必须包含一个字段,叫做交给上层谁的字段--分用)

报文:是整个数据传输单元,包含报头和有效载荷(数据部分)。
报头:是报文的一部分,包含与数据传输、路由、错误检测等相关的控制信息。

报文=报头+有效载荷

六.网络中的地址管理

我们知道在同一个局域网的主机间传输信息,把信息放入局域网中,再根据mac地址的唯一性找到目标主机。但如果两个主机不在同一个局域网中,怎么进行信息交流呢?

当两个主机不在同一个局域网中时,它们无法直接通过 MAC 地址进行通信,因为 MAC 地址仅在同一局域网内有效。为了在不同局域网的主机之间进行通信,我们需要依赖 路由器IP 地址

1. IP 地址和路由器

每个主机都具有唯一的 IP 地址IP 地址用于确定主机在网络中的位置当两个主机处于不同局域网时,它们的 IP 地址必定不在同一个子网范围内。因此,它们无法直接通过 MAC 地址进行通信。

路由器负责将来自一个局域网的流量转发到另一个局域网,并确保数据能够跨越不同的子网、不同的网络进行传输。

2.跨网传输过程

1.A向B发信息,主机A从上层不断把信息进行封装(其中包含src:源IP地址 dst:目标IP地址),到了网络层后会检查B的IP是否在同一子网中。

2.如果不在,将封装后数据包发送到其默认网关(即路由器)。

3.路由器对报文进行解包,到了网络层中再检查B的IP地址是否直接连接。

4.如果目标主机B的网络直接连接到默认网关,那路由器把信息再进行封装后,直接发给B。

不直接连接到默认网关的网络,那么信息就必须通过多个路由器进行转发,直到信息到达目标主机B。

1.A怎么把信息发送到默认网关?

在网络层中对报文添加的报头中有src:A主机mac地址 dst:默认网关mac地址

对比 IP 地址和 Mac 地址的区别
IP 地址在整个路由过程中,一直不变(目前,我们只能这样说明,后面在修正)
Mac 地址一直在变
目的 IP 是一种长远目标,Mac 是下一阶段目标,目的 IP 是路径选择的重要依
据,mac 地址是局域网转发的重要依据

3.端口号

但是这里要思考一个问题:数据传输到主机是目的吗?不是的。

比如说:我用qq给你发信息,目的是让你收到消息。而我们用的qq就是进程,所以:数据传输到主机不是目的,而是手段。到达主机内部,再交给主机内的进程,才是目的。

但是系统中,同时会存在非常多的进程,当数据到达目标主机之后,怎么转发给目标
进程?这就要在网络的背景下,在系统中,标识主机的唯一性。

1.认识端口号:

端口号(port)是传输层协议的内容.
端口号是一个 2 字节 16 位的整数;
端口号用来标识一个进程, 告诉操作系统, 当前的这个数据要交给哪一个进程来处理;
IP 地址 + 端口号能够标识网络上的某一台主机的某一个进程;
一个端口号只能被一个进程占用.

2.端口号范围划分:

0 - 1023: 知名端口号, HTTP, FTP, SSH 等这些广为使用的应用层协议, 他们的
端口号都是固定的.
1024 - 65535: 操作系统动态分配的端口号. 客户端程序的端口号, 就是由操作
系统从这个范围分配的

3.理解 "端口号" 和 "进程 ID"

端口号和进程ID都是标识进程唯一性的,为什么还有创建端口号呢?直接套用进程ID不好吗?

进程 ID 属于系统概念,技术上也具有唯一性,确实可以用来标识唯一的一个进程,但是这样做,会让系统进程管理和网络强耦合,实际设计的时候,并没有选择这样做。

4.理解  套接字 socket

IP 地址用来标识互联网中唯一的一台主机port 用来标识该主机上唯一的一个网络进程
IP+Port 就能表示互联网中唯一的一个进程
所以,通信的时候,本质是两个互联网进程代表人来进行通信,{srcIp,srcPort,dstIp,dstPort}这样的 4 元组就能标识互联网中唯二的两个进程
所以,网络通信的本质,也是进程间通信
我们把 ip+port 叫做套接字 socket

七.传输层的典型代表

TCP协议

TCP协议 的关键特点包括:

  • 传输层协议:为应用层提供端到端的可靠通信服务。
  • 有连接:数据传输之前需要建立连接,建立过程为三次握手。
  • 可靠传输:通过确认、重传、流量控制、序列号等机制保证数据可靠到达。
  • 面向字节流:将数据视为连续的字节流进行传输,不关注具体的应用层数据结构。

这些特性使得TCP适合用于对数据完整性和可靠性有较高要求的应用,如文件传输、Web浏览等。

UDP协议

UDP协议 的关键特点包括:

  • 传输层协议:负责在源主机和目标主机之间传输数据。
  • 无连接:不需要建立连接,传输过程简单、延迟低。
  • 不可靠传输:没有确认、重传机制,丢包或乱序的情况可能发生。
  • 面向数据报:每个数据包是独立的,彼此之间没有顺序或依赖关系。

UDP 的这些特点使它适合用于对传输速度要求高、对数据完整性要求不高的应用,比如视频流、语音通话和实时游戏等。

八.网络字节序

我们已经知道,内存中的多字节数据相对于内存地址有大端和小端之分, 磁盘文件中的多字节数据相对于文件中的偏移地址也有大端小端之分, 网络数据流同样有大端小端之分. 那么如何定义网络数据流的地址呢?

大端:数据的高字节存储在低地址端,低字节存储在高地址端。

小端:数据的低字节存储在低地址端,高字节存储在高地址端。

对于同样的整数 0x12345678,在小端存储方式下,内存中的存储顺序如下:

地址:      | 0x00  | 0x01  | 0x02  | 0x03
数据:      | 0x78  | 0x56  | 0x34  | 0x12

发送主机通常将发送缓冲区中的数据按内存地址从低到高的顺序发出;
接收主机把从网络上接到的字节依次保存在接收缓冲区中,也是按内存地址从低到高的顺序保存;
因此,网络数据流的地址应这样规定:先发出的数据是低地址,后发出的数据是高地址.
TCP/IP 协议规定,网络数据流应采用大端字节序,即低地址高字节.
不管这台主机是大端机还是小端机, 都会按照这个 TCP/IP 规定的网络字节序来发送/接收数据;
如果当前发送主机是小端, 就需要先将数据转成大端; 否则就忽略, 直接发送即可;

为使网络程序具有可移植性,使同样的 C 代码在大端和小端计算机上编译后都能正常运
行,可以调用以下库函数做网络字节序和主机字节序的转换。

h代表主机字节序 n代表网络字节序 ,l 表示 32 位长整数,s 表示 16 位短整数。
例如 htonl 表示将 32 位的长整数从主机字节序转换为网络字节序,例如将 IP 地址转换后准备发送。

相关文章:

Linux网络_网络协议_网络传输_网络字节序

一.协议 1.概念 协议&#xff08;Protocol&#xff09; 是一组规则和约定&#xff0c;用于定义计算机网络中不同设备之间如何进行通信和数据交换。协议规定了数据的格式、传输方式、传输顺序等详细规则&#xff0c;确保不同设备和系统能够有效地互联互通。 在网络通信中&#…...

浅谈网络 | 应用层之流媒体与P2P协议

目录 流媒体名词系列视频的本质视频压缩编码过程如何在直播中看到帅哥美女&#xff1f;RTMP 协议 P2PP2P 文件下载种子文件 (.torrent)去中心化网络&#xff08;DHT&#xff09;哈希值与 DHT 网络DHT 网络是如何查找 流媒体 直播系统组成与协议 近几年直播比较火&#xff0c;…...

css vue vxe-text-ellipsis table 实现多行文本超出隐藏省略

分享 vxe-text-ellipsis table grid 多行文本溢出省略的用法 正常情况下如果需要使用文本超出隐藏&#xff0c;通过 css 就可以完成 overflow: hidden; text-overflow: ellipsis; white-space: nowrap;但是如果需要实现多行文本溢出&#xff0c;就很难实现里&#xff0c;谷歌…...

基于hexo框架的博客搭建流程

这篇博文讲一讲hexo博客的搭建及文章管理&#xff0c;也算是我对于暑假的一个交代 &#xff01;&#xff01;&#xff01;注意&#xff1a;下面的操作是基于你已经安装了node.js和git的前提下进行的&#xff0c;并且拥有github账号 创建一个blog目录 在磁盘任意位置创建一个…...

数据结构-简单排序

一.前提 二.冒泡排序 三.插入排序 #include<iostream> using namespace std; typedef int ElemengType; void Bubble_Sort(ElemengType A[], int N) {for (int p N - 1; p > 0; p--) {int flag 0;for (int i 0; i < p; i) {if (A[i] > A[i 1]) {swap(A[i], …...

三十一:HTTP多种重定向跳转方式的差异

在现代网站开发中&#xff0c;HTTP 重定向是一种常见的技术&#xff0c;用于将用户的请求从一个 URL 跳转到另一个 URL。重定向机制广泛应用于网站迁移、SEO 优化、以及内容管理系统中。不同的 HTTP 状态码代表不同的重定向方式&#xff0c;每种方式的行为和适用场景各有不同。…...

利用Python爬虫精准获取淘宝商品详情的深度解析

在数字化时代&#xff0c;数据的价值日益凸显&#xff0c;尤其是在电子商务领域。淘宝作为中国最大的电商平台之一&#xff0c;拥有海量的商品数据&#xff0c;对于研究市场趋势、分析消费者行为等具有重要意义。本文将详细介绍如何使用Python编写爬虫程序&#xff0c;精准获取…...

架构师的英文:Architect

中文版 软件架构师 的英文是 “Software Architect”。 Software: 软件Architect: 架构师&#xff0c;通常指的是设计和规划某种系统或结构的人。 Software Architect 通常负责软件系统的整体设计、技术选型、架构规划&#xff0c;确保系统的可扩展性、可维护性和高效性等。…...

数据结构 ——— 计数排序算法的实现

目录 计数排序算法的思想 计数排序算法的实现 计数排序算法的思想 遍历数组&#xff0c;找出数组中的最大值 max 和 最小值 min 最大值 max 减去最小值 min 再加 1 得出数组元素的范围 range 利用 range 的大小 malloc 一个 count 数组用来计数 再对 count 数组进行初始化…...

k8s搭建Istio环境,案例pod一直处在Init:CrashLoopBackOff

1 部署calico网络环境&#xff0c;网上去找k8s版本对应的calico的配置文件&#xff0c;k8s2.8.0我用的3.28 2 安装istio环境 curl -L https://istio.io/downloadIstio | sh - # 省略istioctl生效的步骤 source <(istioctl completion zsh) istioctl install --set profile…...

Jenkins升级到最新版本后无法启动

1. 场景还原 最近在web界面将jenkins升级到最新版本后&#xff0c;后台无法启动jenkins服务&#xff0c;服务状态如下&#xff1a; 运行jenkins命令提示invalid Java version jenkins --version jenkins: invalid Java version: java version "1.8.0_202" Java(TM)…...

用户界面创建一个新的运动类型

● 现在我们需要根据我们之前规划的架构步骤来实现在用户界面创建一个运动类型 ● 首先我们在要获取用户在表单中输入的数据 //从表单中获取数据const type inputType.value;const distance inputDistance.value;const duration inputDuration.value;● 然后针对与不同的运动…...

ubuntu防火墙入门(一)——设置服务、关闭端口

本机想通过git clone gitgithub.com:skumra/robotic-grasping.git下载代码&#xff0c;firewall-config中需要为当前区域的防火墙开启SSH服务吗 是的&#xff0c;如果你想通过 git clone gitgithub.com:skumra/robotic-grasping.git 使用 SSH 协议从 GitHub 下载代码&#xff0…...

分治算法——二分查找(c++)(详解)

大家好&#xff0c;今天进入一个实用算法&#xff1a;分治算法。 1.分治算法介绍 分治算法&#xff0c;大概就是将一个大问题拆解成若干个小问题&#xff0c;将小问题一一解决&#xff0c;大问题也就迎刃而解。它包含了多种算法&#xff0c;比如递归、递推等。这里就讲解一下其…...

Binder架构

一、架构 如上图&#xff0c;binder 分为用户层和驱动层两部分&#xff0c;用户层有客户端&#xff08;Client&#xff09;、服务端&#xff08;Server&#xff09;、服务管理&#xff08;ServiceManager&#xff09;。 从用户空间的角度&#xff0c;使用步骤如下&#xff08;…...

大数据治理:解锁数据价值,引领未来创新

目录 引言 一、大数据治理的定义 二、大数据治理的重要性 三、大数据治理的核心组件 四、大数据治理的实践案例 1. 数据标准化 2. 数据质量管理 案例一&#xff1a;医疗行业的大数据治理——智能医疗助手守护健康 引言 在数字化时代&#xff0c;数据已成为企业最宝贵的…...

解决windows下php8.x及以上版本,在Apache2.4中无法加载CURL扩展的问题

本文已首发于&#xff1a;秋码记录 若你也想搭建一个个人博客&#xff0c;可参考&#xff1a;国内 gitee.com Pages 下线了&#xff0c;致使众多站长纷纷改用 github、gitlab Pages 托管平台 在日新月异的信息化下&#xff0c;软件也在跟随着互联网的脚步&#xff0c;逐步推进…...

【韩顺平老师Java反射笔记】

反射 文章目录 基本使用反射机制java程序在计算机有三个阶段反射相关的主要类 反射调用优化Class类的常用方法获取Class对象的6种方式哪些类型有Class对象类加载类加载时机类加载过程图 通过反射获取类的结构信息第一组&#xff1a;java.lang.Class类第二组&#xff1a;java.la…...

Arrays.asList()新增报错,该怎么解决

一、前言 在 Java 开发中&#xff0c;Arrays.asList() 是一个常用的工具方法&#xff0c;它允许开发者快速将数组转换为列表。尽管这个方法非常方便&#xff0c;但许多开发者在使用时可能会遭遇一个常见的错误&#xff1a;尝试向由 Arrays.asList() 返回的列表中添加元素时抛出…...

【热门主题】000072 分布式数据库:开启数据管理新纪元

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;今天给大家分享一篇文章&#xff01;并提供具体代码帮助大家深入理解&#xff0c;彻底掌握&#xff01;创作不易&#xff0c;如果能帮助到大家或者给大家一些灵感和启发&#xff0c;欢迎收藏关注哦 &#x1f495; 目录 【热…...

基于Springboot开发的云野旅游平台

一、功能介绍 云野旅游平台包含管理员、用户两个角色以及前后台系统。 前台系统功能 用户登录成功后&#xff0c;可以进行查看旅游路线、最新线路、旅游资讯、个人中心、后台管理、购物车、客服等功能模块。进行相对应操作。 后台系统功能 管理员或用户登录成功后&#xf…...

2024金盾信安杯线上赛 MISC ezpng[wp]

下载题目发现给了个password和png 图片发现损坏的 password丢随波逐流一键解 base64 给出解码的结果是 cimbar搜索发现在Github有工具 然后对附件中的图片进行小厨房xor 得到一张新图片 利用工具进行跑出答案...

搭建业务的性能优化指南

这是一篇搭建业务优化的心路历程&#xff0c;也是写给搭建业务的性能优化指南。 前言 直到今天&#xff0c;淘内的页面大多都迁移到了 SSR&#xff0c;从我们终端平台 - 搭建研发团队的视角看&#xff0c;业务大致可以分为两类 —— 搭建派 和 源码派。 这两者互不冲突&#xf…...

电脑提示报错“Directx error”怎么解决?是什么原因导致的?游戏软件提示“Directx error”错误的解决方案

DirectX Error&#xff08;DX错误&#xff09;通常指的是在使用基于DirectX技术的应用程序&#xff08;尤其是游戏&#xff09;时遇到的问题。这个问题可能由多种因素导致&#xff0c;以下是一些可能的原因及相应的解决方案&#xff1a; 可能的原因 DirectX版本不匹配&#x…...

Linux——自定义简单shell

shell 自定义shell目标普通命令和内建命令&#xff08;补充&#xff09; shell实现实现原理实现代码 自定义shell 目标 能处理普通命令能处理内建命令要能帮助我们理解内建命令/本地变量/环境变量这些概念理解shell的运行 普通命令和内建命令&#xff08;补充&#xff09; …...

基于matlab程序实现人脸识别

1.人脸识别流程 1.1.1基本原理 基于YCbCr颜色空间的肤色模型进行肤色分割。在YCbCr色彩空间内对肤色进行了建模发现&#xff0c;肤色聚类区域在Cb—Cr子平面上的投影将缩减&#xff0c;与中心区域显著不同。采用这种方法的图像分割已经能够较为精确的将人脸和非人脸分割开来。…...

Unity跨平台基本原理

Unity跨平台基本原理 Unity跨平台基本原理微软的.Net是什么微软做 .Net平台的目的如何实现的.Net跨语言&#xff1f;总结 .Net Framework.Net Framework的体系结构CLR总结 如何实现的跨平台&#xff1f;.Net Core.Net FrameWork 到 .Net CoreMonoMono如何实现跨平台总结如何实现…...

【前端开发】小程序无感登录验证

概述 封装的网络请求库&#xff0c;主要用于处理 API 请求并支持自动处理 token 过期 和 token 刷新&#xff0c;适用于需要身份验证的应用场景&#xff0c;特别是在移动端中。 主要功能 自动附加 Token 在每个请求中自动附加 Authorization 头部&#xff0c;使用存储的 acces…...

Flink常见面试题

1、Flink 的四大特征&#xff08;基石&#xff09; 2、Flink 中都有哪些 Source&#xff0c;哪些 Sink&#xff0c;哪些算子&#xff08;方法&#xff09; 预定义Source 基于本地集合的source&#xff08;Collection-based-source&#xff09; 基于文件的source&#xff08;…...

spark同步mysql数据到sqlserver

使用Apache Spark将数据从MySQL同步到SQL Server是一个常见的ETL&#xff08;Extract, Transform, Load&#xff09;任务。这里提供一个基本的步骤指南&#xff0c;以及一些代码示例来帮助你完成这项工作。 ### 前提条件 1. **安装Spark**&#xff1a;确保你的环境中已经安装了…...

毕设做网站类型/湖南省人民政府

关键词优化难度预估关键词优化难度预估即根据某个关键词的多项数据&#xff0c;通过算法算出该关键词的优化难度。优化难度数值越高&#xff0c;则说明该关键词优化难度越大。关键词指数关键词指数即关键词搜索次数数值&#xff0c;其反映出该关键词的用户搜索频率。日搜索量越…...

化州市建设局网站/怎样制作网页新手自学入门

随着社会的发展&#xff0c;以手机为代表的数码产品在我们的生活中扮演者越来越重要的角色&#xff0c;以至于很多人彻底依赖上他们。与之配套的一些小物件也开始走入我们的生活&#xff0c;从小巧精致的充电宝&#xff0c;到外观酷炫的机械键盘&#xff0c;这些设计感和实用性…...

云存储做网站/中国最好的营销策划公司

2019独角兽企业重金招聘Python工程师标准>>> 1. 快速添加新行 Command Enter可以在当前行下新建一行。Command Shift Enter可以在当前行上面添加一行2. 快速跳转到某一行 Ctrl G&#xff0c;输入行号&#xff0c;可以快速跳转到该行。3. 多行缩进 选中多行后按C…...

网站建设公司开发企业北京网站/石家庄新闻最新消息

已经有人写出一些工具了,但是感觉不怎么好用,就自己写了个。参数&#xff1a;1.可直接getshell2.爆管理账号密码3.爆表前缀如果表前缀不是默认的cdb_ 只需更改代码中的 $table即可,方便快捷。 下载地址&#xff1a;DZ7.2 附代码&#xff1a; <?php/*** author: xiaoma* blo…...

天津市武清区建设银行网站/网络营销网站平台有哪些

《五邑大学--2015专插本_C语言程序设计_考卷》由会员分享&#xff0c;可在线阅读&#xff0c;更多相关《五邑大学--2015专插本_C语言程序设计_考卷(7页珍藏版)》请在人人文库网上搜索。1、考生注意1、姓名、准考证号填在密封线内指定位置&#xff0c;字体要规范工整&#xff0c…...

网站开发设计报告/制作网站的步骤和过程

1.declaration:告诉编译器某个标识符的name和type&#xff0c;同时略去具体细节。 extern int x; //对象&#xff08;object&#xff09;声明式 std::size_t numDigits( int number);//函数(function)声明式 class Widget; //class 声明式 template <template T>…...