《ASCE1885的网络编程》の以太网接口堆栈

以太网链路聚合与交换机堆叠、集群(浅谈、总结) 目录: 网络可靠性需求 链路聚合技术原理与配置 堆叠/集群概述 网络可靠性需求 目的:避免单点故障,避免因某个链路或者某个设备发生故障而导致整个数据通信中断 解决方法: 方法一: 链路聚合 方法二: 设备的堆叠和集群 网络可靠性可以从单板、设备、链路多个层面实现 单板 ——备份(已下图交换机为例) 主控板 主用主控板、备用主控板 ... 阅读详情

网络工作在通信协议上,现在非常普遍的是使用TCP/IP的以太局域网(Ethernet LAN)。在局域网中,计算机可以用同轴电缆、双绞线或光纤连接起来。现在大多数网络使用双绞线连接。

以太网包含以下几层:

 

1)介质访问控制(MAC)层

以太网的最底层是硬件层,称为介质访问控制(Media Access Control)层。网卡属于该层,它包含了串行网络接口和一个控制器,控制器将原始数据转换成电子信号,并发送到正确位置。

以太网接口的各层有不同的寻址方法,在最下面的MAC层,寻址是通过MAC号进行的。

MAC号是一个48位的标识,它被硬性分配到每一个网络接口单元,这些号码是由IEEE注册权威分配的,他们保证每个以太网分点都有全世界唯一的号码。MAC号通常用以冒号分割的16进制数表示,如:14:74:A0:17:95:D7。

为了将封包发送到其他网络接口,封包应该包含MAC号。LAN使用非常简单的方法,即广播发送封包到正确接口。这意味着网卡发送封包到它所能到达的每个接口,每个接收到封包的接口查看封包的目的MAC号,仅在自己的MAC号相同时处理。这个方法在局域网内容易实现,效率很高,但在更大的网络(WAN,internet)上,很明显不能使用这个方法,WAN使用更好的路由机制。这里强调一点的是,在最底层寻址是通过MAC号进行的。

 

2)网际协议层(IP)

硬件层之上是IP层,IP层使用的当然是IP地址的寻址方式了。最广泛使用的是Ipv4,它是一个32位值,以众所周知的点分十进制格式表示,如209.217.52.4。与MAC地址不同,IP地址没有集成到硬件中,它是在自己的软件层设置的。

互联网使用IP地址来唯一标识一个计算机,IP地址可以通过软件分配给网络接口,此时,会把IP地址和网络接口的MAC地址关联在一起。为了使用IP寻址,关联的MAC地址需要保存起来,这由ARP(Address Resolution Protocol,地址解析协议)负责。每个主机都维护了一个记录IP和MAC地址对的清单,如果用户使用的IP地址不在此清单上,主机发出一个询问包到局域网的其他计算机,以获取与之相匹配的MAC地址。如果此局域网有计算机可以识别此IP地址,它送回对应的MAC地址;如果没有,封包就会被送到网关(gateway)---发送封包到外部网络的计算机。

IP到MAC的转化实际上是在数据链接层进行的。

IP协议添加源地址和目的地址到封包,同时也添加其他封包属性,如TTL hops(time to live hops,生存时间),使用的协议版本、校验头等。

 

3)传输控制协议(TCP)层

IP层之上是TCP层(或者UDP层)。TCP为寻址增加了最后一个限制---端口号。

IP地址用来寻址指定的计算机或者网络设备,而端口号用来确定运行在目的设备上的哪个应用程序应该接收这个封包。端口号是16位,范围在0~65535之内。在设备上寻址端口号时经常使用的符号使“IP:portnumber”,例如209.217.52.4:80。

IP层不关心传输是否成功,但TCP层关心。如果一个封包在到达目的的路途中丢失了,TCP重发此封包;如果封包到达的顺序与原始顺序不同,TCP会重新为它们排序。

 

4)软件层

TCP层之上是网络软件。在Windows中,应用程序不直接访问TCP层,而是通过Winsock API访问。软件层提供了非常方便的访问网络的方式,由于所有下层协议的存在,在软件层不必担心封包、封包大小、数据错误、对丢包的重发等。

 

以太网接口堆栈:


软件层包含了用户请求发送的数据,有时这块数据会有固定的格式(如HTTP、FTP协议)。用户数据首先取得包含源端口号和目的端口号的TCP头,然后添加IP头,它包含发送者和接收者的IP地址。最后数据链路层添加以太网头,它指定了发送者和接收者的MAC地址,这是真正通过电缆发送的数据。



 

 

SAP ABAP MIGO增强实战:自定义页签与字段的完整实现指南 本文详细介绍了SAP ABAP中MIGO增强的实战指南,包括自定义页签与字段的完整实现步骤。通过BADI增强技术,开发者可以快速满足企业个性化需求,如添加供应商批次号等特殊字段。文章涵盖数据存储结构设计、BADI框架实现、核心方法编写及数据持久化方案,帮助用户高效完成MIGO屏幕增强开发。 阅读详情

相关推荐

计算机网络实验——入侵检测系统实验

在图1所示的网络结构中,此方案的具体实施:在路由器Router1的接口1出方向配置入侵检测策略,在收到ICMP ECHO请求包时,丢弃并同步向日志服务器报告警告,此时,终端PC2和PC3无法对终端PC0和PC1执行ping操作,并且日志服务器将记录相应的警告信息;在实验一的基础上,添加扩展分组过滤器,指定需要进行检测的信息流的类别,将扩展分组和对应的入侵检测规则进行绑定,使得只对特定的信息流进行入侵检测。加载指定类别的特征库,这里的指定类别是 ios_ips 类别中的 basic 子类别。

放放的博客 1563

《ASCE1885的网络编程》---地址解析协议

<br />TCP/IP协议族分为四层,其中在数据链路层传输的数据帧只能识别网卡物理地址,常用的以太网就是48位的MAC地址。TCP/IP协议族专门设计了用于地址解析的协议ARP(Address Resolution Protocol),它可以把一个IP地址映射成对应的物理地址。另外,对于无法保存IP地址的主机(如无盘工作站),TCP/IP协议族也提供了从物理地址到IP地址映射的反向地址解析协议RARP(Reverse Address Resolution Protocol):<br /><br /><br

ASCE1885 1877

AI大模型驱动的智能座舱研发体系重构

AI大模型正重构智能座舱研发体系的核心逻辑,需以场景认知为起点、混合架构为支柱、AI原生生态为落脚点。未来,研发体系需持续融合认知科学、边缘计算与开放生态理论,推动座舱从“工具”进化为“伙伴”。

我的专栏 1916

2.以太网接口堆栈

图中为以太网堆栈中每个协议的封装形式,它们都是从软件层开始的。 软件层包含了用户请求发送的数据,有时这块数据会有固定的格式 (如HTTP,FTP协议)。 用户数据首先取得包含源端口号和目的端口号的TCP头,然后添加IP头,它包含发送者和接收者的IP地址。最后数据链路层添加以太网头,他指定了发送者和接受者的MAC地址,这是真正通过电缆发送的数据。 ...

q873412892的博客 2142

[Vue][面试]谈谈你对MVC、MVP和MVVM的理解

谈谈你对MVC、MVP和MVVM的理解 答题思路:此题涉及知识点很多,很难说清楚,说透彻,因为MVC,MVP这些我们前端程序员自己甚至都没用过。但是恰恰反映了前端这些年从无到有, 从有到优的变迁过程,因此沿此思路回答将十分清除。 Web1.0时代 在web1.0时代,并没有前端的概念。开发一个web应用多数采用ASP.NET/Java/PHP编写,项目通常由多个aspx/jsp/php文件构成,每个文件中同时包含了HTML、CSS、JavaScript、C#/Java/PHP代码, 系统整体架构可能如下图所

你好,欢迎光临! 723

网络设备调试指南:如何用MDIO Clause22/45协议读写Marvell MV88E6390寄存器

本文深入解析了如何通过MDIO Clause 22/45协议对Marvell MV88E6390交换芯片进行寄存器读写调试。文章详细对比了两种协议的本质区别与适用场景,并重点阐述了MV88E6390的直接与间接寻址策略,提供了实战代码示例与关键调试技巧,帮助网络工程师高效解决配置与通信问题。

tequila的博客 517

10.1 网络基础知识

10.1 网络基础知识

qq_36314864的博客 1349

Windows下RISC-V开发环境搭建:xpack-riscv-none-elf-gcc安装配置全攻略

本文详细介绍了在Windows平台下搭建RISC-V开发环境的完整流程,重点讲解xpack-riscv-none-elf-gcc工具链的安装配置方法。从环境变量设置到VSCode集成开发环境搭建,涵盖汇编程序和C程序开发实践,为开发者提供一站式解决方案,助力快速掌握RISC-V架构开发技能。

weixin_26765287的博客 437

栈和队列、堆、堆栈的区别?

队列是先进先出,有出口和入口,先进去可以先出来。栈就像一个箱子,后放上去的,可以先出来堆是在程序运行时,而不是在程序编译时,申请某个大小的内存空间。即动态分配内存,对其访问和对一般内存的访问没有区别。{堆是指程序运行是申请的动态内存,而栈只是指一种使用堆的方法(即先进后出)。栈是先进后出的,但是于堆而言却没有这个特性,两者都是存放临时数据的地方。 对于堆,我们可以随心所欲的进行增加变量和删除变量,...

前端的路上 4万+

SpringBoot+Vue+kkFileView实现文档管理(文档上传、下载、在线预览)

上面在使用OpenOffice实现doc、excel、ppt等文档的管理和预览。除此之外可用kkFileView实现包括且更多文档的预览。

BADAO_LIUMANG_QIZHI的博客 1万+

基于深度学习YOLOv8的花卉检测与识别系统(附完整资源+PySide6界面+训练代码)

通过本项目,我们成功实现了基于YOLOv8的花卉检测与识别系统,涵盖了数据预处理、模型训练、推理与实时检测、以及GUI界面的实现。YOLOv8在花卉检测中的高效性和准确性为实际应用提供了强有力的支持。

斌擎科技 716

以太网编程的理解

以太网通信,编程实现有四种方式:ISAPI、CGI、WinInet、Winsock 。 其中Winsock类即socket套接字编程,无论是在windows还是Linux,都是最方便实用的不二选择。 socket概念 socket的中文名字是套接字,是支持TCP/IP协议的网络通信的基本操作单元。形象的来说就是TCP/IP网络中建立连接的两端。 socket位于应用层和传输层之间,算是一个...

CODE实验室 2744

4.Simulink基础建模操作——加减乘除运算

加减乘除运算

FPGA/MATLAB学习教程/源码/项目合作开发 9549

完成端口 堆栈溢出_Zephyr使用的堆栈保护技术

在Zephyr中每个线程的堆栈大小在创建时就已经指定,运行过程中无法再做改变,线程运行的上下文是存放在线程的堆栈中,一旦堆栈被破坏意味着线程的执行上下文被破坏,这将导致线程执行出现不可预期的异常,Zephyr针对可能造成线程破坏的情况提供了保护,监控,预防手段。本文将介绍比较通用的一些堆栈保护技术,这些技术除了在Zephyr上出现外,其它OS也广泛的采用了这些技术。Zephyr线程堆栈结...

weixin_39885469的博客 651

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

堆栈的工作原理

声明:以下均为个人见解,错漏地方还请指正 每一个使用c语言的都应该知道栈的重要性,我们能够使用C/C++语言写出诸多复杂的程序,很大功劳一部分有归于栈的实现,因为它可以帮助我们实现函数间的嵌套调用。 汇编程序的运行是不需要栈的,所以注定它函数的嵌套层数不会太多,一般是父函数调用子函数,然后在子函数就返回了,很少见到子函数还会调用孙子函数的情况。这是由它的语言特性决定的。因为每当汇编语言

奔跑的路 2万+

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

完成端口 堆栈溢出_函数调用之堆栈原理(终章)--缓冲区溢出

现在你已经很好地掌握了堆栈的操作方式,所以让我们来看看有史以来最臭名昭著的一个BUG:堆栈缓冲区溢出。示例程序如下:Vulnerable Program - buffer.cvoid doRead() { char buffer[28]; gets(buffer); } int main(int argc) { doRead(); }上面示例程序是...

weixin_42522669的博客 244

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

以太网接口和框图详细讲解

https://wenku.baidu.com/view/2f410152fd0a79563d1e7269.html点击打开链接

wocao1226的专栏 7548

Tomcat 远程调试端口开放以及详细堆栈信息

远程端口开放: -Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=7899,suspend=n 内存溢出详细堆栈信息:-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=./heap_dump.bincatalina.sh中CATALINA_OPTS末尾增加:CATALINA_OPTS="$C...

问天丶天问 572

网络应用编程接口

1、引言 上一篇着重讲述了网络的一些概念方面的问题,本章将重点放在编程应程序的网络接口的学习。 上图中位蓝色字体处才网络编程的重点。 2、TCP协议 前面说过它是一种面向连接的,可靠的, 基于IP实现的传输层协议,能偶实现对数据精确收发的控制。 当应用层向TCP层发送8位字节为单位的数据流时,TCP通常会安静数据流分割成适当长度数据报文段,紧接着TCP会将数据报传递给IP层。 TCP为了达到数据的

GPF的博客 1154

《ASCE1885的网络编程》---Winsock APIのIP地址转换函数

在进行网络程序设计时,常常需要从键盘上输入用点分十进制记法表示的主机IP地址,这种IP地址在程序中一般是用ASCII字符串的形式存储的。在网络程序中,要把这种用点分十进制字符串表示的IP地址转换为用网络字节顺序表示的IP地址。如果在程序中需要输出IP地址时,要把用二进制表示的网络字节顺序的IP地址转化为点分十进制形式表示的主机IP地址,用户才可以识别。在Winsock API中提供了这样的函数,这种函数以inet开头。1)点分十进制表示的IP地址转换为网络字节顺序的IP地址---inet_addr()Ine

ASCE1885 2417

《ASCE1885的网络编程》---IP数据报格式

IP协议提供不可靠无连接的数据报传输服务,IP层提供的服务是通过IP层对数据报的封装与拆封来实现的。IP数据报的格式分为报头区和数据区两大部分,其中报头区是为了正确传输高层数据而加的各种控制信息,数据区包括高层协议需要传输的数据。IP数据报的格式如下:注意,上图表示的数据,最高位在左边,记为0位;最低位在右边,记为31位。在网络中传输数据时,先传输0~7位,其次是8~15位,然后传输16~23位,最后传输24~31位。由于TCP/IP协议头部中所有的二进制数在网络中传输时都要求以这种顺序进行,因此把它称为网

ASCE1885 2248

《ASCE1885的网络编程》の套接字select模型

套接字Select模型使得Windows Sockets应用程序可以在同一时间内管理和控制多个套接字。该模型的核心是select()函数,在使用该函数时,还需要用到FD_SET、FD_ZERO、FD_ISSET和FD_CLR四个宏。 套接字的select模型,能够使得Windows Sockets应用程序同时对多个套接字进行管理。调用select()函数检查当前各个套接字的当前状态。并且根据该函

ASCE1885 2133

《ASCE1885的网络编程》---Winsock APIの套接口I/O处理函数

<br />在Windows环境下,套接口的通信方式分为两种:阻塞方式和非阻塞方式。阻塞方式下工作的套接口在进行I/O操作时,函数要等待到相关操作完成以后才能返回;非阻塞方式下工作的套接口在进行I/O操作时,无论操作是否成功,调用都会立即返回。<br />阻塞方式和非阻塞方式各有优缺点,阻塞方式的套接口编程简单,易于实现。因此,一个套接口默认操作模式被设置为阻塞方式。如果要使套接口工作在非阻塞方式下,就要使用ioctlsocket()函数进行设置。阻塞方式的套接口在下面几种情况下显得难于管理:<br />1

ASCE1885 2004

《ASCE1885的网络编程》---Winsock API基本函数の数据传输

<br />在Winsock中,用于数据发送和接收的系统调用分为两组:一组是有连接的数据发送和接收系统调用;一组是无连接的数据发送和接收系统调用。这里我们先弄清与数据发送和接收关系密切的“带外数据”的概念。<br /> <br />1)带外数据概念:<br /> <br />有时我们可能要传输一些相对来说比较重要的数据,如果按普通数据进行传送,那么在传输过程中要受流量、拥挤等控制的影响。对于这些比普通数据重要的数据,在传输过程中可以标记为带外数据(Out-Of-Band,OOB)。<br />对于带外数据,

ASCE1885 1830
上一篇: 《ASCE1885的IT 笔试面试题》-- 0000 0000
下一篇: 《Windows核心编程》---HOOK API基础
ACE1985
博客等级 码龄17年 1307粉丝 308原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值