【Linux 网络(一)】初识网络,理解TCP/IP五层模型

VIO实战前传:手把手教你解读Kalibr双目IMU标定报告与参数应用 本文详细解析Kalibr双目IMU联合标定报告的核心参数与应用方法,涵盖重投影误差分析、IMU误差指标解读、关键变换矩阵原理及VINS-Fusion实战配置。通过手把手教学帮助开发者准确理解标定结果,解决VIO算法落地中的参数配置难题,提升视觉惯性里程计的系统稳定性与精度。 阅读详情

一、网络诞生背景及产生的诸多问题

1. 1 网络诞生背景

 计算机最初一定是相互独立的。但我们由很多工作需要相关协作完成,当时的解决办法是用某些硬件将数据进行拷贝交给其他人。但该过程中设计到人力,一旦设计到人力必然导致效率下降。这也为网络的诞生埋下伏笔!
在这里插入图片描述

 后来网络的诞生,让多台计算机连接在一起,数据共享,实现网络互联。随着计算机的数量越来越多,我们通过交换机和路由器将众多的计算机全部链接起来,构成了局域网LAN。但随着局域网的产生,我们来需要将相隔千里的计算机链接起来,比如将中国和美国的一些计算机连接起来,由此广域网的概念诞生!

1.2 网络诞生面临的困境

 网络的诞生本质上还是用于不同的主机间的相互通信。而在每台计算机内部,硬件之间的数据拷贝交换本身就是一种通信行为,而每台计算机中硬件的个数是有限的,并且由OS管控!而不同机器间通信,就是不同机器上的网卡间的相关通信。两者也是硬件间的通信,根本在于后者通信的距离变长,并且中间会经过其他众多设备!

在这里插入图片描述
 距离变长,经过众多设备比如会导致如下问题:

  1. 如何保证数据准确的由一跳交给下一跳?
  2. 在转发过程中,如何查找路径,定位目标主机?
  3. 如果转发过程中发生数据丢包,如何解决?
  4. 向目标设备发送数据成功后,目标设备如何使用接收到的数据?即如何处理接收到的数据?(即接收到的信息很杂,如何分辨处理这些信息)

二、网络协议栈(OSI七层模型、TCP/IP五层模型)

 为了解决上述问题,OSI(Open System Interconnection,开放系统互连)定义出了相关协议 —— 网络协议栈!而协议本质上就是一种约定,每一种约定对于上述一种问题的解决办法!软件上,绝大部分优秀的软件都是分成的,这不仅可以完成不同软件间的解耦合,未来也非常方便对软件进行维护、更新、替换和优化等!每一层协议解决不同问题,从而将网络进行分层。网络从逻辑上分为了7层. 每一层都有相关、相对应的物理设备!

 OSI定义成了七层,但实践一般分为5层!
在这里插入图片描述

  1. OSI 七层模型是一种框架性的设计方法,其最主要的功能使就是帮助不同类型的主机实现数据传输,它的最大优点是将服务、接口和协议这三个概念明确地区分开来,概念清楚,理论也比较完整!
  2. 但实际过程中,应用层、表示层、会话层三层很难单独分开,因此将这三层统称为应用层。即右边CP/IP五层模型!!

 每一层协议解决的问题如下:

在这里插入图片描述

2.1 TCP/IP五层(或四层)模型

 由于TCP/IP在OS中,处于核心地位,因此我们将TCP/IP作为一组协议的代名词,它还包括许多协议,组成了TCP/IP协议簇。TCP/IP中,各层功能如下:

  1. 物理层: 负责光/电信号的传递方式. 比如现在以太网通用的网线(双绞 线)、早期以太网采用的的同轴电缆(现在主要用于有线电视)、光纤, 现在的wifi无线网使用电磁波等都属于物理层的概念。物理层的能力决定了最大传输速率、传输距离、抗干扰性等. 集线器(Hub)工作在物理层.
  2. 数据链路层: 负责设备之间的数据帧的传送和识别. 例如网卡设备的驱动、帧同步(就是说从网线上检测到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就自动重发)、数据差错校验等工作. 有以太网、令牌环网, 无线LAN等标准. 交换机(Switch)工作在数据链路层.
  3. 网络层: 负责地址管理和路由选择. 例如在IP协议中, 通过IP地址来标识一台主机, 并通过路由表的方式规划出两台主机之间的数据传输的线路(路由). 路由器(Router)工作在网路层.
  4. 传输层: 负责两台主机之间的数据传输. 如传输控制协议 (TCP), 能够确保数据可靠的从源主机发送到目标主机.
  5. 应用层: 负责应用程序间沟通,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等. 我们的网络编程主要就是针对应用层

三、网络和系统关系

 对于一台主机,网络部分核心物理设备为网卡,数据链路层工作在网卡的驱动程序中。在往上,网络层和传输层则是工作在操作系统中!再网上就到了用户层!

 所以对于一个合格的OS,不仅要实现内存管理、进程管理、文件管理以及驱动管理等工作,还需实现网络协议栈中的两层:网络层和传输层!当用户需要进行网络通信时,不能直接访问网卡设备,而需要贯穿操作系统;而贯穿操作系统本质就是在贯穿网络协议栈。而网络最核心的网络层和应用层是在OS中实现的,所以用户需要使用协议栈,本质就是在使用操作系统!所以OS要基于tcp/ip为我们提供网络对应的系统调用接口!

 不同的操作系统的内核实现可能差别很大,但对于网络协议的实现是基本一样的,尤其是传输层和网络层!相当于每台计算机都遵循相同的协议,相关的约定,从而保证所有计算机之间都能顺利通信,使得不同操作系统的主机能够进行可靠的通信!

在这里插入图片描述

四、网络传输流程

 在实际生活中,我们收到的快递除了物品本身外,还包含快递单。快递单中回填从相关信息:有谁发的,从哪里发给哪里…这些数据收和发两者都知道认识,更多的是给物流体系知道,指导快递的发送!所以长距离运输,快递 = 内容 + 快递单。而快递单本身就是一种约定,为接收双发知道,是一种协议,我们将之称为报头!

 收快递的过程中,实际收到的要比期望收到的东西要多,多出来的部分称为报文。而在计算机通常是由一个结构化字段表征,这个结构化字段定义的对象称为协议报头!
在这里插入图片描述

4.1 同一个局域网中的两台主机进行文件传输

1)两台主机通信原理

 在同一个作用域中,两台主机是可以直接发消息的!每台主机都存在一个网卡设备,在全球中每台计算机的网卡Mac地址都是唯一的。主机A向主机B发送消息"你好"时,除了内容本身,还包含相关协议。而协议中包含接收主机的Mac地址和发送主机的Mac地址。

 当主机A将数据发到局域网中时,当前局域网中的所有主机网卡设备都会收到该消息。但其他网卡收到消息后,发现接收方的Mac地址不是自己后会直接丢弃!但某一时刻,可能多台主机同时向局域网中发送消息,此时数据会发送碰撞,导致数据失效,而此时的局域网也被称为碰撞域。此时发送方会执行碰撞监测算法(在随机时间后重新发送)。即要正确的发送数据,任何时刻局域网中只允许一台主机在局域网中发送消息!

在这里插入图片描述

  • 这种基于碰撞域、碰撞监测、碰撞避免的通信方式,并且碰撞是概率的。我们将这种局域网称为以太网!
  • 碰撞域本身就是一个临界资源,而碰撞监测、避免和重发完成的就是互斥访问临界资源!

2)两台主机通信过程

 两台主机通信发送消息“你好”时,是通过网卡设备通过以太网推送给另一台主机的网卡设备的。所以需要贯穿网络协议栈,然后从上往下依次添加对应层的协议报头。当目标主机网卡接收到消息后,会从下往上依次解析,将报头和有效载荷进行分离,将有效载荷逐次传给上一层进行分用。
在这里插入图片描述

  1. 报文 = 报头 + 有效载荷。应用层报文称为request&response;传输层报文称为数据段;网络层报文称为数据报;数据链路层报文称为数据帧。

4.2 跨网段的主机的文件传输

在这里插入图片描述

五、数据包封装和分用

 不同的协议层对数据包有不同的称谓,在应用层报文称为request&response;在传输层报文称为数据段;在网络层报文称为数据报;在数据链路层报文称为数据帧!

 应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据首部(header),称为封装!疯转一定要考虑后续解包过程:①如何将报文中有效载荷和报头分开②如何将自己的有效载荷交给上一层那个协议。所以首部信息中包含了一些类似于首部有多长, 载荷(payload)有多长, 上层协议是什么等信息。

 数据封装成帧后发到传输介质上,到达目的主机后每层协议再剥掉相应的首部, 根据首部中的 “上层协议字段” 将数据交给对应的上层协议处理!

1) 数据封装的过程

在这里插入图片描述

2) 数据分用的过程

在这里插入图片描述

六 ip地址 VS Mac地址

  1. ip地址在网络层使用,用来标识互联网中不同主机的地址,主要用于网络通信中的路由选择。ip地址是一个4字节整数,通常用点分十进制表示。如:192.168.0.1
  2. Mac地址应用于数据链路层,用来识别数据链路层中相连节点,主要用于局域网中数据包如何从当前节点传输到下一个节点。MAc地址是长度为6字节,通常用16进制加冒号表示。如: 08:00:27:03:fb:19
    3.port是2字节16位大小。
解决pd.read_json报错ValueError: Trailing data问题 首先,我们使用open函数打开JSON文件,然后使用json.load函数将JSON文件数据解码为Python对象。在使用Python进行数据处理中,我们经常需要将JSON格式的数据读入到DataFrame中进行处理。而使用pandas库的read_json函数,就可以方便地将JSON数据读入到DataFrame中。但是有时候在读取JSON数据时,会遇到一个非常常见的错误:ValueError: Trailing data。这个错误的解决方案并不难,只需要在read_json中添加一个参数即可。 阅读详情

相关推荐

libero烧录信号抓取

提示:如果改了东西需要重新烧录,需要把这两个界面都关闭再libero打开。两个红色的要关闭掉。然后返回libero开始烧录,观测信号(如果只烧录观测从这一步开始就行)等到下面的messige出现以下信息表示run好了。在下图中右侧可以自己设置,设置完之后记得保存一下。run一下,耐心等待,有警告就ok,run完之后。run成功会变绿色,然后点下面的这个看波形。设置抓取信号:在libero打开。打开的就是烧录界面,直接run。

qq_34047965的博客 1421

【Linux】网络基础知识

实际的网络通信中,必然有一端主机的地址和端口是固定的,同时是让所有人都知道的,这端称为服务器端(为用户提供服务的一端),网络应用提供商,都会搭建自己的服务器,向外发布的客户端程序中都封装了自己的服务器地址信息在里面。IPv6,uint8_t ip[16],数据非常的大,但是并不向前兼容IPv4,即若直接使用IPv6进行通信,那么原来基于IPv4的设备程序都用不了,所以推广很慢,当前主要的网络通信还是基于IPv4的通信。其端口只有两个,即输入端和输出端,将输入的信号进行放大再发送出去。

m0_69597277的博客 2404

手把手教你用EG2153搭建开关电源:SOP-8封装驱动芯片的5个设计技巧

本文详细介绍了使用EG2153自振荡半桥驱动芯片搭建开关电源的五个核心设计技巧。内容涵盖从深入理解芯片工作机制、频率编程计算误区、SOP-8封装的热管理方案,到死区时间评估与外部保护电路设计,以及实战调试与故障排查指南,旨在帮助工程师实现稳定可靠的小功率电源设计。

weixin_29200485的博客 378

网络入门基础

文章目录计算机网络背景网络发展认识“协议”网络协议初始协议分层OSI七层模型TCP/IP五层(或四层)模型网络传输基本流程网络传输流程图数据包封装和分用网络中的地址管理认识IP地址认识MAC地址 计算机网络背景 网络发展 认识“协议” 网络协议初始 协议分层 OSI七层模型 TCP/IP五层(或四层)模型 网络传输基本流程 网络传输流程图 数据包封装和分用 网络中的地址管理 认识IP地址 认识MAC地址 ...

2021dragon的博客 1万+

EDF Browser使用说明和技巧

edf browser使用说明和一些小技巧

Erhu_666的博客 8321

C++版Cesium实战:从OpenGL到3DTiles的全流程开发指南

本文提供了一份C++版Cesium全流程开发指南,详细阐述了如何利用OpenGL和Qt从零构建高性能、可离线部署的三维GIS应用。内容涵盖开发环境搭建、OpenGL渲染引擎初始化、Cesium核心坐标系与场景管理移植,并重点解析了3DTiles数据的解析、异步加载与渲染优化等硬核实战技术,旨在帮助开发者实现与现有C++工业软件的深度集成。

weixin_28077113的博客 164

Linux网络基础

从本篇开始将进入介绍 Linux 中的网络知识,本篇是先对网络中的一些基础概念做介绍。其中主要介绍了 OSI 七层协议(TCP/IP 五层协议),以及网络传输的流程,其中主要介绍了局域网传输和广域网(跨网络)传输,其中很重要的一点是关于数据包的封装和分用,最后介绍了关于端口号和 socket,得出了网络间通信的本质是进程间通信。

m0_74830524的博客 1605

Ubuntu本地部署CodeX编程助手:CLI配置全指南

本地AI编程助手是当前开发者关注的核心技术趋势,指在不依赖云端API、保障代码隐私前提下,于本地环境运行具备代码理解、多语言补全与知识库检索能力的智能辅助工具。其技术原理涉及模型加载、API网关编排、向量数据库集成及系统级资源调度,关键价值在于可控性、低延迟与合规性。典型应用场景包括企业内网DevOps提效、边缘设备嵌入式开发支持,以及敏感代码场景下的离线编程增强。本文聚焦Ubuntu系统下基于CLI的手动配置路径,深入解析Ollama服务注册、Node.js版本锁定、API Key环境隔离及Qwen2.5

weixin_26804345的博客 594

Linux网络:网络基础

人们在利用计算机工作时,通常都需要多人协作,所以免不了要进行数据交互。没有网络的话数据就需要人来拷贝,这样效率大大降低,所以慢慢的网络就出来了。上图就是计算机网络的雏形,一台机器用来共享数据,其他人通过网线连接到该机器。

yourfriendyo的博客 1498

国赛数学建模高教社杯历届优秀论文全集

包含了2004到2023年高教社的赛题及优秀论文。

BanDeng001的博客 3286

Challenge 4 - OSCP A

在c盘下发现一个windows.old,在里面可以找到SYSTEM和SAM文件,下载到本地,利用samdump2解密发现没解出来,再来试试pwdump.py(https://github.com/CiscoCXSecurity/creddump7)得到压缩包密码bludecode,解压之后发现一个比较特殊的文件configuration.php,里面有两个类似密码的字符串。登录之后在/opt/backups/下发现几个特殊文件,其中sitebackup3.zip是个正常的压缩包。但是这个压缩包是有密码的。

羽的博客 5784

Linux:计算机网络基础

网络协议;局域网、以太网;OSI、TCP/IP结构模型;数据包封装、分用;交换机、路由器;IP地址和MAC地址.....

kimsaul的白给岁月 1419

[密码学实战]商密TLCP协议抓包解析与深度分析(二十九)

[密码学实战]商密TLCP协议抓包解析与深度分析(二十九)

曼岛_的博客 631

【Linux网络编程】初识网络,理解TCP/IP五层模型

本文介绍了计算机网络协议的基本概念和分层模型。

2301_80349538的博客 2417

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

【Linux网络】Linux网络基础入门:初识网络,理解网络协议

在数字化时代,网络已成为连接世界的桥梁,而Linux,这一开源、灵活且强大的操作系统,无疑是构建和管理这些网络的重要基石。无论你是IT专业的学生、网络管理员,还是对Linux技术充满好奇的爱好者,掌握Linux网络基础都将为你打开一扇通往广阔技术世界的大门

EterNity_TiMe_的计算机学习之路 9037

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

【linux网络(一)】初识网络, 理解四层网络模型

本篇文章着重讲解了Linux网络的基础概念,以及网络四层模型.最后讲解了网络数据流动的一般流程

杭电码农-NEO的博客 2669

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

LINUX网络基础 [一] - 初识网络,理解网络协议

计算机网络在现代社会中发挥着举足轻重的作用。它打破了数据的孤立状态,使得不同计算机之间能够高效地交换信息和共享资源。无论是工作、学习还是生活,计算机网络都已经成为人们不可或缺的一部分。它让人们能够随时随地访问互联网,获取各种信息和服务,极大地提高了工作效率和生活质量协议(Protocol)是一种约定,是指一组用于规定计算机之间进行通信时,如何传输数据和处理信息的规则和约定。协议是网络通信的基础,它定义了数据传输、错误检测、数据压缩、数据加密等多个方面的细节,以确保不同设备能够顺利、高效地进行通信。

2402_83315537的博客 1723

【Linux网络】初识网络,网络的基础概念

本文介绍了计算机网络的基础知识,包括网络发展历史、协议概念和分层架构。网络从最初的局域网逐渐发展为广域网,最终形成全球互联的互联网。协议是通信双方必须遵守的约定,由国际组织如ISO、IETF等制定标准。重点讲解了OSI七层模型和实际应用的TCP/IP五层(或四层)协议栈,包括物理层、数据链路层、网络层、传输层和应用层的功能。通过局域网和跨网络传输流程,解释了MAC地址和IP地址的作用差异,以及数据封装解包的过程。最后说明了路由器在跨网络通信中的关键作用,实现不同网络间的数据转发。

记录学习与成长 4054

【Linux系统化学习】网络基础初识网络

本片文章介绍了Linux网络部分基础知识。

qq_55119554的博客 978

【Linux网络编程】网络基础一

本篇博文重点 : 1. 了解网络发展背景, 对局域网/广域网的概念有基本认识; 2.了解网络协议的意义, 重点理解TCP/IP五层结构模型; 3. 学习网络传输的基本流程, 理解封装和分用;

fight_p的博客 1816

[Linux] 网络协议之TCP/IP五层模型

OSI(Open System Interconnection,开放系统互连)七层网络模型称为。协议是一种“约定”,网络协议是计算机之间能够进行通信的一种标准。

Darling_sheeps的博客 844

【Linux网络#1】:初识网络

本篇文章主要是关于计算机网络协议的,讲述了其发展背景及协议的相关知识,还讲了网络传输的流程

island1314的博客 4200

【Linux】网络基础

至此,我们已系统梳理了网络编程中的四大核心支柱 ——端口号与进程 ID 的关联逻辑、TCP 与 UDP 的传输特性差异、网络字节序的统一标准,以及常用Socket接口的使用规范。这些概念并非孤立存在,而是相互衔接、共同支撑起网络通信的完整流程:从进程通过Socket绑定端口获取通信 “身份”,到遵循网络字节序解决跨架构数据解析难题,再根据业务需求选择TCP的可靠传输或UDP的实时高效,最终通过标准化的接口实现数据的发送与接收。

2401_86449430的博客 1万+

《Linux 网络实战手册:从 TCP/IP 协议栈到 UDP网络通信》

Linux 是服务器领域的主流系统,其网络能力直接决定服务的稳定性与通信效率。想要真正掌握 Linux 网络,光懂理论不够 —— 从 TCP/IP 协议的分层逻辑,到 Socket 编程的系统调用,再到实际场景中的数据封装与解包,实战是打通知识的关键。本系列将带着你从协议原理落地到代码实践,手把手搞定 Linux 网络通信的核心技能。

月亮永悬不落,剑指巅峰 3960

Linux->初识计算机网络

本篇当中没有任何关于网络编程的讲解,全部是对网络的宏观理解,毕竟只有理解了网络实际的走向,后续学习才会更加轻松。

weixin_52345097的博客 2138

Linux网络管理OSI和TCP/IP

本篇文章分享一下网络管理知识:OSI和TCP/IP,并且学习两者之间的区别。

s1429583654的博客 3708
上一篇: Linux 操作系统:基于环形队列的生产者消费者模型
下一篇: C++11新增特性:列表初始化(std::initializer_list)& decltype、auto、nullptr、范围for
小白debug~
小白debug~ 新星创作者: C/C++技术领域 新星创作者: C/C++技术领域
博客等级 码龄4年 3510粉丝 128原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小白debug~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值