IP与以太网的包收发操作
在以太网中,有一种叫做广播的方法,刻意把包发给连接在同一以太网中的所有设备。ARP就是利用广播对所有设备提问:“XX这个IP是谁的?如果是你的,请把你的网卡MAC地址告诉我。”然后就会收到目标IP的回答:“这个IP地址是我的,我的MAC地址是XXXX。”

网卡驱动从IP模块取包之后,会将其复制到网卡的缓冲区,然后向MAC模块发送发送包的指令。MAC模块将包从缓冲区取出,并在开头记上报头和起始帧分界符,在末尾加上用于检测错误的FCS(帧校验序列)。

最后,在数据信号之外再发送一组用来区分比特间隔的时钟信号,把数据信号和时钟信号叠加后发送出去。接收方检测到时钟信号周期变化,采用和发送数据叠加过程相反的方式从数据信号中读取相应的电压和电流值,将其转换成为0、1。
IP与以太网的包收发操作的更多相关文章
- TCP/IP协议的数据传输过程详解——IP与以太网的包收发操作
MTU:一个网络包的最大长度,以太网中一般是1500字节:(含有头部长度,包括IP头部,TCP头部,不包括MAC头部) MSS:除去头部后,一个网络包所能容纳的TCP的数据的最大长度 下图为TCP/I ...
- 在 shell 脚本获取 ip、数字转换等网络操作
在 shell 脚本获取 ip.数字转换等网络操作 ip 和数字的相互转换 ip转换为数字 :: function ip2num() { local ip=$1 local a=$(echo $ip ...
- 标准的TCP/IP工业以太网-EtherNet/IP
标准的TCP/IP工业以太网-EtherNet/IP 徐智穹以太网具有传输速度高.兼容性好.应用广泛等方面的优势,支持几乎所有流行的网络协议,其中 ...
- 网络数据包收发流程(四):协议栈之packet_type
进入函数netif_receive_skb()后,skb正式开始协议栈之旅.先上图,协议栈大致过程如下所示:跟OSI七层模型不同,linux根据包结构对网络进行分层.比如,arp头和ip头都是紧跟在以 ...
- 网络数据包收发流程(三):e1000网卡和DMA
一.硬件布局每个网卡(MAC)都有自己的专用DMA Engine,如上图的 TSEC 和 e1000 网卡intel82546.上图中的红色线就是以太网数据流,DMA与DDR打交道需要其他模块的协助, ...
- js获取访问IP、地区、、当前操作浏览器
js获取IP.地区.当前操作浏览器有什么用呢? 我的回答是用处很多,比如现在的异地登录和对用户常用浏览器做数据分析等. 源代码如下:index.html <!DOCTYPE html> & ...
- mysql设置指定ip访问,用户权限相关操作
基础语法GRANT priv_type ON database.table TO user[IDENTIFIED BY [PASSWORD] 'password'] [,user [IDENTIFIE ...
- 网络数据包收发流程(二):不配置NAPI的情况
一.no NAPI 数据结构不配置NAPI的时候,网络设备不使用自己的napi_struct结构,所有网络设备驱动都使用同一个napi_struct,即cpu私有变量__get_cpu_var(sof ...
- Python 第九篇:队列Queue、生产者消费者模型、(IO/异步IP/Select/Poll/Epool)、Mysql操作
Mysql操作: grant select,insert,update,delete on *.* to root@"%" Identified by "123456&q ...
随机推荐
- VHDL之concurrent之operators
Using operators Operators can be used to implement any combinational circuit. However, as will becom ...
- Android进度条控件ProgressBar使用
ProgressBar有四种样式,圆形的(大,中,小)和直条形的(水平) 对应的style为 <LinearLayout xmlns:android="http://schemas.a ...
- Eclipse 插件ibeetl
启动Eclipse 打开菜单栏按一下菜单路径依次打开 Help -> Install New Softwave… ->点击Add按钮弹出一个对话框 弹出的对话框中Name随意填写,如填写“ ...
- sturts2 回顾
第一个简单的struts2例子: 1. 创建一个web project 2. 导入jar包 具体jar包在struts 的例子中的lib文件夹中copy
- console.log、toString方法与js判断变量类型
Java调用system.print.out()是会调用toString方法打印js里的console.log也是控制台打印,很多时候,我们以为也是调用toString方法,其实并不是.我们在chro ...
- H3C交换机配置常用命令(转)
1.配置文件相关命令 [Quidway]display current-configuration //显示当前生效的配置 [Quidway]display saved-configuration / ...
- PAT_A1150#Travelling Salesman Problem
Source: PAT A1150 Travelling Salesman Problem (25 分) Description: The "travelling salesman prob ...
- eas之KDPrinter控件
初始化打印控件KDPrinter ctrlPrinter = new KDPrinter(); 增加列 // 指定插入位置table.addColumn(index);// 插入到最后table.ad ...
- LA 3363
Run Length Encoding(RLE) is a simple form of compression. RLE consists of the process for searching ...
- mybatis使用-高级用法(二)
新建学生表和学生证表 --学生表 CREATE TABLE student( id INT NOT NULL PRIMARY KEY AUTO_INCREMENT COMMENT 'id', `nam ...