1.物联网IWIP网络,TCP/IP协议簇

news2024/12/29 9:01:26

一。TCP/IP协议簇

1.应用层:FTP,HTTP,Telent,DNS,RIP

2.传输层:TCP,UDP

3.网络层:IPV4,IPV6,OSPF,EIGRP

4.数据链路层:Ethernet,FrameRelay,Is-Is

注意:IWIP是完全按照TCP/IP协议来创建

2.OSI七层模型与TCP/IP协议模型

3.通讯过程

应用层:FTP协议

传输层:TCP协议

网络层:IP协议

链路层:以太网驱动程序

4.全双工vs半双工

半双工同时只能一方传输消息,否则冲突

全双工两方可以同时传递消息

 5.以太网的帧格式

就是在发送数据时,需要知道目标地址原地址,甚至是哪一个应用程序等这些信息都需要记录。

6.C/S与B/S架构

C/S架构;

        百度网盘客户端与服务器端。

B/S架构:

        百度网盘网页端与服务器端。

二者的区别:

        C/S是直接与服务器端相连,优点是可以传输大容量的文件,缺点是相对于B/S架构来说,需要下载一个客户端不方便。其次是开发软件时需要对不同的操作系统开发,例如Windows,Linux,Android等等,开发困难。

        B/S是通过网页连接服务器端,所以容易连接,但是同时有大量的人加入服务器端,信息会难以传递。这也是在百度网盘网页版在下载大容量任务时,会要求用户下载客户端的一个原因。

具体区别如下图:

二。IWIP物理层设计

1.系统连线图

MII:称为m-two

RMII:称为r-m-two 

上述两个就是接口,是物理层模块连接stm32的接口

2.MII与RMII

MII为8数据线,6控制线,2时钟线,2PHY线

RMII为4数据线,3控制线,1时钟线,2PHY线 

(1)上述接口的解释

MII_TX_CLK:发送数据使用的时钟信号,对于10M位/s的数据传输,此时钟为2.5MHz,对于100M位/s的数据传输,此时钟为25MHz。 
MII_RX_CLK:接收数据使用的时钟信号,对于10M位/s的数据传输,此时钟为2.5MHz,对于100M位/s的数据传输,此时钟为25MHz。 
MII_TX_EN:传输使能信号,此信号必需与数据前导符的起始位同步出现,并在传输完毕前一直保持。                                 
MII_TXD[3:0]:发送数据线,每次传输4位数据,数据在MII_TX_EN信号有效时有效。MII_TXD[0]是数据的最低位,MII_TXD[3]是最高位。当MII_TX_EN信号无效时,PHY忽略传输的数据。 
MII_CRS:载波侦听信号,仅工作在半双工模式下,由PHY控制,当发送或接收的介质非空闲时,使能此信号。 PHY必需保证MII_CRS信号在发生冲突的整个时间段内都保持有效,不需要此信号与发送/接收的时钟同步。 
MII_COL:冲突检测信号,仅工作在半双工模式下,由PHY控制,当检测到介质发生冲突时,使能此信号,并且在整个冲突的持续时间内,保持此信号有效。此信号不需要和发送/接收的时钟同步。 
MII_RXD[3:0]:接收数据线,每次接收4位数据,数据在MII_RX_DV信号有效时有效。MII_RXD[0]是数据的最低位,MII_RXD[3]是最高位。当MII_RX_EN无效,而MII_RX_ER有效时,MII_RXD[3:0]数据值代表特定的信息  
MII_RX_DV:接收数据使能信号,由PHY控制,当PHY准备好数据供MAC接收时,使能该信号。此信号必需和帧数据的首位同步出现,并保持有效直到数据传输完成。在传送最后4位数据后的第一个时钟之前,此信号必需变为无效状态。为了正确的接收一个帧,有效电平不能滞后于数据线上的SFD位出现。 
MII_RX_ER:接收出错信号,保持一个或多个时钟周期(MII_RX_CLK)的有效状态,表明MAC在接收过程中检测到错误。具体错误原因需配合MII_RX_DV的状态及MII_RXD[3:0]的数据值。

以下为四种MII接口

(1)一个 25Mhz 外部晶振 MII接口

(2)一个 25Mhz 外部晶振 + 一个50Mhz外部晶振 RMII接口

(3)一个50Mhz外部晶振 RMII接口

(4)一个 25Mhz 外部晶振 RMII接口

3.PHY,称为pai

(1)DP83848CVV功能框图

        图的上方interfaces与MII等接口连接,与stm32通信,下方为数据输入输出与外设接口连接。 

以下是PHY的一些功能

 以下是stm32f407的原理图

以下是stm32f407的网络变压器接口。

一。以太网

1.nc模拟UDP

(1)COMMBOX通信调试工具

(2) 控制台输入nc -u 127.0.0.1 8000,此时串口也可以获得数据

 (3)串口调试程序发送字符串,电脑控制台也会展示同样字符串(说明UDP双向通信)

 2.nc模拟TCP

(1)串口调试助手创建Socket服务器

(2)相互发送数据

输入: nc 127.0.0.1 8001创建TCP连接(TCP的端口号是8001,UDP端口号设置为8000)

(3)在控制台中按Ctrl+C会导致错误

 综上得出结论:

        TCP在连接和断开时,会有连接与释放。UDP是无连接的。所以在控制台强制中断连接时(按Ctrl+c),TCP连接的任务发送数据会报错,而UDP的传输任务会继续发送数据,不会管是否有没有对象接受。

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

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

相关文章

3.微服务概述

1.大型网络架构变迁 SOA与微服务最大的差别就是服务拆分的细度,目前大多数微服务实际上是SOA架构,真正的微服务应该是一个接口对应一个服务器,开发速度快、成本高; 微服务SOA能拆分的就拆分是整体的,服务能放一起的都…

Docker Compose的入门与使用

Docker Compose的概念在上一篇Docker的介绍中有讲解,现在说一下怎么使用 安装Docker Compose 从官网上下载,速度会比较慢 执行 sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname …

【《深入浅出计算机网络》学习笔记】第2章 物理层

内容来自b站湖科大教书匠《深入浅出计算机网络》视频和《深入浅出计算机网络》书籍 目录 2.1 物理层概述 2.1.1 物理层要实现的功能 2.1.2 物理层接口特性 2.1.2.1 机械特性 2.1.2.2 电气特性 2.1.2.3 功能特性 2.1.2.4 过程特性 2.2 物理层下面的传输媒体 2.2.1 导向…

mac录屏工具,录屏没有声音的解决办法

mac录屏工具,录屏没有声音的解决办法 在使用macbook录制屏幕时,发现自带的录屏工具QuickTime Player没有声音,于是尝试了多款录屏工具,对其做一些经验总结(省流:APP Store直接可以免费下载使用Omi录屏专家…

互联网发展历程:保护与隔离,防火墙的安全壁垒

互联网的快速发展,不仅带来了便利和连接,也引发了越来越多的安全威胁。在数字时代,保护数据和网络安全变得尤为重要。然而,在早期的网络中,安全问题常常让人担忧。 安全问题的困扰:网络威胁日益增加 随着互…

对话 4EVERLAND:Web3 是云计算的新基建吗?

在传统云计算的发展过程中,数据存储与计算的中心化问题,对用户来说一直存在着潜在的安全与隐私风险——例如单点故障可能会导致网络瘫痪和数据泄露等危险。同时,随着越来越多 Web3 项目应用的落地,对于数据云计算的性能要求也越来…

GaussDB 实验篇+openGauss的4种1级分区案例

✔ 范围分区/range分区 -- 创建表 drop table if exists zzt.par_range; create table if not exists zzt.par_range (empno integer,ename char(10),job char(9),mgr integer(4),hiredate date,sal numeric(7,2),comm numeric(7,2),deptno integer,constraint pk_par_emp pri…

docker compose部署zookeeper

单机部署 新建docker-compose.yaml version: 3 services:zookeeper:image: zookeeper:3.5.7container_name: base-zookeeperhostname: zookeeperprivileged: truerestart: alwaysports:- 2181:2181environment:TZ: "Asia/Shanghai"volumes:- ./volumes/zookeeper/d…

Docker实战专栏简介

🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 &a…

【开源项目】Stream-Query的入门使用和原理分析

前言 无意间发现了一个有趣的项目,Stream-Query。了解了一下其基本的功能,可以帮助开发者省去Mapper的编写。在开发中,我们会编写entity和mapper来完成业务代码,但是Stream-Query可以省去mapper,只写entity。 快速入…

JVM中对象和GC Root之间的四种引用关系

1. 强引用 只有所有 GC Roots 对象都不通过【强引用】引用该对象&#xff0c;该对象才能被垃圾回收 由GC Root直接new出来的对象是强引用&#xff0c;只有当GC Root不再引用该对象的时候&#xff0c;才会被回收 例子&#xff1a; List<String> list new ArrayList<&…

安防监控视频云存储平台EasyNVR通道频繁离线的原因排查与解决

安防视频监控汇聚EasyNVR视频集中存储平台&#xff0c;是基于RTSP/Onvif协议的安防视频平台&#xff0c;可支持将接入的视频流进行全平台、全终端分发&#xff0c;分发的视频流包括RTSP、RTMP、HTTP-FLV、WS-FLV、HLS、WebRTC等格式。为了满足用户的集成与二次开发需求&#xf…

uni-app引入sortable列表拖拽,兼容App和H5,拖拽排序。

效果: 拖拽排序 背景&#xff1a; 作为一名前端开发人员&#xff0c;在工作中难免会遇到拖拽功能&#xff0c;分享一个github上一个不错的拖拽js库&#xff0c;能满足我们在项目开发中的需要&#xff0c;下面是我在uniapp中使用SortableJS的使用详细流程&#xff1b; vue开发…

小程序体验版不存在 无法体验

1、权限问题&#xff1a; 1、开发者有所有权限。 2、小程序访问路径也是正确的。 该有的权限都有了。 2、解决办法&#xff1a; 打开微信公众平台&#xff0c;左侧菜单【设置】- 【第三方设置】&#xff0c;取消授权即可。

设计模式十七:迭代器模式(Iterator Pattern)

迭代器模式&#xff08;Iterator Pattern&#xff09;是一种行为型设计模式&#xff0c;它提供了一种访问聚合对象&#xff08;例如列表、集合、数组等&#xff09;中各个元素的方法&#xff0c;而无需暴露其内部表示。迭代器模式将遍历元素和访问元素的责任分离开来&#xff0…

jenkins一键部署github项目

个人目前理解jenkins部署分为两步&#xff1a; 构建项目&#xff0c;如生成jar自动执行sh脚本 如果没有jenkins&#xff0c;我们可能需要将jar移动到服务器&#xff0c;然后执行java -jar跑程序&#xff0c;jenkins可以替代我们执行这些东西&#xff0c;下面从0开始&#xff0…

近 2000 台 Citrix NetScaler 服务器遭到破坏

Bleeping Computer 网站披露在某次大规模网络攻击活动中&#xff0c;一名攻击者利用被追踪为 CVE-2023-3519 的高危远程代码执行漏洞&#xff0c;入侵了近 2000 台 Citrix NetScaler 服务器。 研究人员表示在管理员安装漏洞补丁之前已经有 1200 多台服务器被设置了后门&#x…

Command Injection

Command Injection Command Injection&#xff0c;即命令注入&#xff0c;是指通过提交恶意构造的参数破坏命令语句结构&#xff0c;从而达到执行恶意命令的目的。PHP命令注入攻击漏洞是PHP应用程序中常见的脚本漏洞之一。 PHP命令注入漏洞的函数 systme()、exec()、shell_ex…

强化学习:用Python训练一个简单的机器人

一、介绍 强化学习&#xff08;RL&#xff09;是一个令人兴奋的研究领域&#xff0c;它使机器能够通过与环境的交互来学习。在这篇博客中&#xff0c;我们将深入到RL的世界&#xff0c;并探索如何使用Python训练一个简单的机器人。在本文结束时&#xff0c;您将对 RL 概念有基本…

基于令牌级 BERT 嵌入的趋势生成句子级嵌入

一、说明 句子&#xff08;短语或段落&#xff09;级别嵌入通常用作许多 NLP 分类问题的输入&#xff0c;例如&#xff0c;在垃圾邮件检测和问答 &#xff08;QA&#xff09; 系统中。在我上一篇文章发现不同级别的BERT嵌入的趋势中&#xff0c;我讨论了如何生成一个向量表示&a…