物联网lwIP网络开发(以太网基础知识)

本文介绍了OSI参考模型的七层结构及其功能,详细讨论了以太网技术(如MAC地址、物理层、网络接口、PHY等),涵盖了TCP/IP协议族(包括IP、ARP、ICMP、ping等)以及UDP和TCP的特性。还提到了网络诊断工具如ping和NC命令的应用。
摘要由CSDN通过智能技术生成

#学习记录

osi参考模型:物数网传会表应

物 网卡 wifi 4g模块...

数 抽象化网卡使之能上网

网 网络访问的协议

OSI的七层模型及各个功能层的功能_12657170的技术博客_51CTO博客

所有网络协议(已知汇总)_网络协议有哪些-CSDN博客

Mac地址

6个字节,前三个表示哪个机构,该机构下有多少类型

以太网硬件设计

物理层接口

系统连接框图

CPU                                      协议            物理层芯片(PHY)         网变           水晶头

STM32 以太网连接图

以太网接口框图

一个 25Mhz 外部晶振 MII接口

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

一个50Mhz外部晶振 RMII接口

一个 25Mhz 外部晶振 RMII接口

PHY

DP83848CVV功能框图

PHY REGISTER

开发板原理图分析

STM32以太网外设

以太网外设逻辑框图

MAC 802.3

MAC 帧格式

帧填充和CRC计算

以太网外设FIFO&DMA

FIFO

DMA

DMA 描述符结构

DMA 描述符格式

链模式机制

以太网外设初始化

TCP/IP协议簇初体验上

ARP协议

将 IP 地址转为 Mac 地址的一个 TCP/IP 协议

为什么需要ARP

ARP协议工作原理

ARP流程

ARP协议测试

C:\Windows\system32>arp -help
​
显示和修改地址解析协议(ARP)使用的“IP 到物理”地址转换表。
​
ARP -s inet_addr eth_addr [if_addr]
ARP -d inet_addr [if_addr]
ARP -a [inet_addr] [-N if_addr] [-v]
​
  -a            通过询问当前协议数据,显示当前 ARP 项。
                如果指定 inet_addr,则只显示指定计算机
                的 IP 地址和物理地址。如果不止一个网络
                接口使用 ARP,则显示每个 ARP 表的项。
  -g            与 -a 相同。
  -v            在详细模式下显示当前 ARP 项。所有无效项
                和环回接口上的项都将显示。
  inet_addr     指定 Internet 地址。
  -N if_addr    显示 if_addr 指定的网络接口的 ARP 项。
  -d            删除 inet_addr 指定的主机。inet_addr 可
                以是通配符 *,以删除所有主机。
  -s            添加主机并且将 Internet 地址 inet_addr
                与物理地址 eth_addr 相关联。物理地址是用
                连字符分隔的 6 个十六进制字节。该项是永久的。
  eth_addr      指定物理地址。
  if_addr       如果存在,此项指定地址转换表应修改的接口
                的 Internet 地址。如果不存在,则使用第一
                个适用的接口。
示例:
  > arp -s 157.55.85.212   00-aa-00-62-c6-09.... 添加静态项。
  > arp -a                                  .... 显示 ARP 表。

ICMP协议

ping和网络诊断

ping命令

C:\Windows\system32>ping
​
用法: ping [-t] [-a] [-n count] [-l size] [-f] [-i TTL] [-v TOS]
            [-r count] [-s count] [[-j host-list] | [-k host-list]]
            [-w timeout] [-R] [-S srcaddr] [-c compartment] [-p]
            [-4] [-6] target_name
​
选项:
    -t             Ping 指定的主机,直到停止。
                   若要查看统计信息并继续操作,请键入 Ctrl+Break;
                   若要停止,请键入 Ctrl+C。
    -a             将地址解析为主机名。
    -n count       要发送的回显请求数。
    -l size        发送缓冲区大小。
    -f             在数据包中设置“不分段”标记(仅适用于 IPv4)。
    -i TTL         生存时间。
    -v TOS         服务类型(仅适用于 IPv4。该设置已被弃用,
                   对 IP 标头中的服务类型字段没有任何
                   影响)。
    -r count       记录计数跃点的路由(仅适用于 IPv4)。
    -s count       计数跃点的时间戳(仅适用于 IPv4)。
    -j host-list   与主机列表一起使用的松散源路由(仅适用于 IPv4)。
    -k host-list    与主机列表一起使用的严格源路由(仅适用于 IPv4)。
    -w timeout     等待每次回复的超时时间(毫秒)。
    -R             同样使用路由标头测试反向路由(仅适用于 IPv6)。
                   根据 RFC 5095,已弃用此路由标头。
                   如果使用此标头,某些系统可能丢弃
                   回显请求。
    -S srcaddr     要使用的源地址。
    -c compartment 路由隔离舱标识符。
    -p             Ping Hyper-V 网络虚拟化提供程序地址。
    -4             强制使用 IPv4。
    -6             强制使用 IPv6。
ping测试
C:\Windows\system32>ping www.baidu.com
正在 Ping www.a.shifen.com [61.135.169.121] 具有 32 字节的数据:
//TTL表示经过了几次路由,初始值为255,每经过一个路由器,就减一
来自 61.135.169.121 的回复: 字节=32 时间=6ms TTL=57
来自 61.135.169.121 的回复: 字节=32 时间=5ms TTL=57
来自 61.135.169.121 的回复: 字节=32 时间=7ms TTL=57
来自 61.135.169.121 的回复: 字节=32 时间=13ms TTL=57
    
来自 192.168.1.1 的回复: 字节=32 时间=2ms TTL=64
    
​
    

DHCP

DNS

TCP/IP协议簇初体验下

IP协议

IP协议特性

缺点:容易丢包 容易重复 发送数据无序

IP地址分类

子网划分

ipconfig命令

用法:
    ipconfig [/allcompartments] [/? | /all |
                                 /renew [adapter] | /release [adapter] |
                                 /renew6 [adapter] | /release6 [adapter] |
                                 /flushdns | /displaydns | /registerdns |
                                 /showclassid adapter |
                                 /setclassid adapter [classid] |
                                 /showclassid6 adapter |
                                 /setclassid6 adapter [classid] ]
​
其中
    adapter             连接名称
                       (允许使用通配符 * 和 ?,参见示例)
​
    选项:
       /?               显示此帮助消息
       /all             显示完整配置信息。
       /release         释放指定适配器的 IPv4 地址。
       /release6        释放指定适配器的 IPv6 地址。
       /renew           更新指定适配器的 IPv4 地址。
       /renew6          更新指定适配器的 IPv6 地址。
       /flushdns        清除 DNS 解析程序缓存。
       /registerdns     刷新所有 DHCP 租用并重新注册 DNS 名称
       /displaydns      显示 DNS 解析程序缓存的内容。
       /showclassid     显示适配器允许的所有 DHCP 类 ID。
       /setclassid      修改 DHCP 类 ID。
       /showclassid6    显示适配器允许的所有 IPv6 DHCP 类 ID。
       /setclassid6     修改 IPv6 DHCP 类 ID。
​
​
默认情况下,仅显示绑定到 TCP/IP 的每个适配器的 IP 地址、子网掩码和
默认网关。
​
对于 Release 和 Renew,如果未指定适配器名称,则会释放或更新所有绑定
到 TCP/IP 的适配器的 IP 地址租用。
​
对于 Setclassid 和 Setclassid6,如果未指定 ClassId,则会删除 ClassId。
​
示例:
    > ipconfig                       ... 显示信息
    > ipconfig /all                  ... 显示详细信息
    > ipconfig /renew                ... 更新所有适配器
    > ipconfig /renew EL*            ... 更新所有名称以 EL 开头
                                         的连接
    > ipconfig /release *Con*        ... 释放所有匹配的连接,
                                         例如“有线以太网连接 1”或
                                             “有线以太网连接 2”
    > ipconfig /allcompartments      ... 显示有关所有隔离舱的
                                         信息
    > ipconfig /allcompartments /all ... 显示有关所有隔离舱的
                                         详细信息
无线局域网适配器 WLAN 2:
​
   连接特定的 DNS 后缀 . . . . . . . :
   描述. . . . . . . . . . . . . . . : Intel(R) Dual Band Wireless-AC 8260
   物理地址. . . . . . . . . . . . . : 44-85-00-9D-4D-C9
   DHCP 已启用 . . . . . . . . . . . : 是
   自动配置已启用. . . . . . . . . . : 是
   IPv6 地址 . . . . . . . . . . . . : 2408:8207:186a:1780:5978:61c:e4cd:a431(首选)
   临时 IPv6 地址. . . . . . . . . . : 2408:8207:186a:1780:1c9:32f7:1124:3205(首选)
   本地链接 IPv6 地址. . . . . . . . : fe80::5978:61c:e4cd:a431%14(首选)
   IPv4 地址 . . . . . . . . . . . . : 192.168.1.6(首选)
   子网掩码  . . . . . . . . . . . . : 255.255.255.0
   获得租约的时间  . . . . . . . . . : 2019年12月9日 13:57:40
   租约过期的时间  . . . . . . . . . : 2019年12月10日 13:57:26
   默认网关. . . . . . . . . . . . . : fe80::1%14
                                       192.168.1.1
   DHCP 服务器 . . . . . . . . . . . : 192.168.1.1
   DHCPv6 IAID . . . . . . . . . . . : 239371520
   DHCPv6 客户端 DUID  . . . . . . . : 00-01-00-01-23-B7-3A-EE-68-F7-28-40-E5-BF
   DNS 服务器  . . . . . . . . . . . : fe80::1%14
                                       192.168.1.1
                                       fe80::1%14
   TCPIP 上的 NetBIOS  . . . . . . . : 已启用

UDP协议

对ip的进程进行划分,方便任务有序进行

UDP协议特性

简单、轻量  但容易丢包、重复、乱序(继承ip缺点)

TCP协议

也基于ip

有一个应答、握手机制

会忽略重复包

有序的传输

NC命令

C:\Users\Think>nc -h
[v1.12 NT http://eternallybored.org/misc/netcat/]
connect to somewhere:   nc [-options] hostname port[s] [ports] ...
listen for inbound:     nc -l -p port [options] [hostname] [port]
options:
        -d              detach from console, background mode
​
        -e prog         inbound program to exec [dangerous!!]
        -g gateway      source-routing hop point[s], up to 8
        -G num          source-routing pointer: 4, 8, 12, ...
        -h              this cruft
        -i secs         delay interval for lines sent, ports scanned
        -l              listen mode, for inbound connects
        -L              listen harder, re-listen on socket close
        -n              numeric-only IP addresses, no DNS
        -o file         hex dump of traffic
        -p port         local port number
        -r              randomize local and remote ports
        -s addr         local source address
        -t              answer TELNET negotiation
        -c              send CRLF instead of just LF
        -u              UDP mode
        -v              verbose [use twice to be more verbose]
        -w secs         timeout for connects and final net reads
        -z              zero-I/O mode [used for scanning]
port numbers can be individual or ranges: m-n [inclusive]

  • 29
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值