以太网学习笔记
以太网工作原理42个知识点
1.CSMA/CD(Carrier Sense Multiple Access withCollision Detection)—载波侦听多路访问/冲突检测,是一种在共享介质条件下实现多点通讯的方法。
其基本规则如下:(1)若介质空闲,发送数据;否则,转(2);(2)若介质忙,一直监听到信道空闲,然后立即发送数据;(3)若检测到冲突,即线路上电压的摆动值超过正常值一倍,则发出一个短小的干扰(jamming)信号,使得所有站点都知道发生了冲突并停止数据的发送;(4)发完干扰信号,等待一段随机的时间后,再次试图传输,回到(1)重新开始。
2.由于CSMA/CD算法的限制,10M半双工以太网帧的帧长不能小于64字节。
3.从共享式以太网发展到交换式以太网过渡时期,出现了中继器和集线器两种互连的网络设备。
4.网络范围扩大后,信号在传送的过程中容易失真,导致误码。
中继器的功能是恢复失真信号,并放大信号。
5.集线器(HUB)和中继器都是物理层上的连接设备。
6.集线器(HUB)就是这样一种基于CSMA/CD机制工作的以太网设备,其工作原理很简单:从任何一个接口收到的数据帧(不管是单播还是广播)不加选择地转发给其它的任何端口(除接收的那个端口外)。
7.故可以这样说集线器(HUB)和中继器仅仅改变了以太网的物理拓扑,其逻辑结构仍然是总线拓扑。
8.HUB没有用MAC地址,只是对数据进行复制转发,没有过滤功能。
9.由集线器(HUB)和中继器组建以太网的实质是一种共享式以太网,故共享式以太网所具有的弊端它基本上都有,存在以下缺陷:a)冲突严重b)广播泛滥c)无任何安全性10.交换机是工作在数据链路层的设备。
以太网交换机网桥需要完成二个基本功能:a)MAC地址学习;b)转发和过滤决定。
11.DMAC代表目的终端的MAC地址,SMAC代表源MAC地址,而LENGTH/TYPE字段则根据值的不同有不同的含义:当LENGHT/TYPE > 1500时,代表该数据帧的类型(比如上层协议类型),当LENGTH/TYPE < 1500时,代表该数据帧的长度。
RK系列以太网卡驱动学习笔记
RK系列以太⽹卡驱动学习笔记RK系列芯⽚已经内置了以太⽹控制器,所以只需要搭配⼀颗以太⽹ PHY 芯⽚就可以实现以太⽹功能!所以不管是PHY ⼚家有多少,基本的功能是都是使⽤ RK 的驱动配置基本就可以实现,就是调⽤RK 的通⽤的驱动接⼝。
10/100M以太⽹ PHY 与 MAC 之间的接⼝主要有 MII 和 RMII。
⽽10/100/1000M 以太⽹ PHY 与MAC 之间的接⼝主要有 RGMII。
在⽤的⽐较多的 RK3288 RK3399 的芯⽚上⾯都是⽀持 RMII 和 RGMII 接⼝的,也就是都可以⽀持 100 M ⽹卡,或者 1000M⽹卡⼀、RK系列以外⽹卡驱动调试1、查看以太⽹设备是否打开;Device Drivers ->[*] Network device support ->-*- PHY Device support and infrastructure-><*> Driver for Rockchip Ethernet PHYs2、修改 dts ⽂件,看你是⽀持什么接⼝的,也就是你只有 100 M ⽹卡,还是 1000M ⽹卡即可。
修改 Y:\RK3399\kernel\arch\arm64\boot\dts\rockchip\ rgf-rk3399.dts3、千兆⽹(1000M PHY)配置clkin_gmac: external-gmac-clock {compatible = "fixed-clock";clock-frequency = <125000000>; /* PHY供给GMAC的时钟⼤⼩ */clock-output-names = "clkin_gmac";#clock-cells = <0>;};&gmac {phy-supply = <&vcc_phy>; /* PHY供电 */phy-mode = "rgmii"; /* PHY接⼝ */clock_in_out = "input"; /*时钟⽅向 */snps,reset-gpio = <&gpio3 15 GPIO_ACTIVE_LOW>; /* 复位IO及有效电平 */snps,reset-active-low;snps,reset-delays-us = <0 10000 50000>;assigned-clocks = <&cru SCLK_RMII_SRC>;assigned-clock-parents = <&clkin_gmac>;pinctrl-names = "default";pinctrl-0 = <&rgmii_pins>;tx_delay = <0x28>; /* TX线上的延时值 */ rx_delay = <0x11>; /* RX线上的延时值 */ status = "okay";};查看原理图⾥供电、复位脚是否正确PMUPHY_RST然后就可以查看⽹卡是否存在rk3399:/ # ifconfig4、百兆⽹(100M PHY)配置clkin_gmac: external-gmac-clock {compatible = "fixed-clock";clock-frequency = <50000000>; //时钟 100M 使⽤ rmii 接⼝固定是50Mclock-output-names = "clkin_gmac";#clock-cells = <0>;};&gmac {phy-supply = <&vcc_phy>;phy-mode = "rmii"; // 说明接⼝是什么 PHYclock_in_out = "output"; // 是 output 的时候,就由 RK芯⽚提供 50M,1000M 的是 inputsnps,reset-gpio = <&gpio3 15 GPIO_ACTIVE_LOW>; // 硬件接⼝看原理图 snps,reset-active-low;snps,reset-delays-us = <0 10000 50000>;assigned-clocks = <&cru SCLK_RMII_SRC>;assigned-clock-parents = <&clkin_gmac>;pinctrl-names = "default";pinctrl-0 = <&rgmii_pins>;。
以太网的基本知识
△ 交换机的分类:
依照交换机处理帧的不同的操作模式,主要可分为两类。
存储转发:交换机在转发之前必须接收整个帧,并进行检错,如无错误再将这一帧发向目的地址。帧通过交换机的转发时延随帧长度的不同而变化。
直通式:交换机只要检查到帧头中所包含的目的地址就立即转发该帧,而无需等待帧全部的被接收,也不进行错误校验。由于以太网帧头的长度总是固定的,因此帧通过交换机的转发时延也保持不变。
集线器的工作特点:
集线器多用于小规模的以太网,由于集线器一般使用外接电源(有源),对其接收的信号有放大处理。在某些场合,集线器也被称为“多端口中继器”。
集线器同中继器一样都是工作在物理层的网络设备。
共享式以太网存在的弊端:由于所有的节点都接在同一冲突域中,不管一个帧从哪里来或到哪里去,所有的节点都能接受到这个帧。随着节点的增加,大量的冲突将导致网络性能急剧下降。而且集线器同时只能传输一个数据帧,这意味着集线器所 有端口都要共享同一带宽。
△ 交换式以太网
交换式结构:
在交换式以太网中,交换机根据收到的数据帧中的MAC地址决定数据帧应发向交换机的哪个端口。因为端口间的帧传输彼此屏蔽,因此节点就不担心自己发送的帧在通过交换机时是否会与其他节点发送的帧产生冲突。
为什么要用交换式网络替代共享式网络:
·减少冲突:交换机将冲突隔绝在每一个端口(每个端口都是一个冲突域),避免了冲突的扩散。
△ 网桥
网桥概述:
依据帧地址进行转发的二层网络设备,可将数个局域网网段连接在一起。网桥可连接相同介质的网段也可访问不同介质的网段。网桥的主要作用是分割和减少冲突。它的工作原理同交换机类似,也是通过MAC地址表进行转发。因此,网桥同交换机没有本质的区别。在某些情况下,我们可以认为网桥就是交换机。
以太网基础知识
3、组播MAC地址(第8位为1),这是一个(逻辑)﹤逻辑or物理﹥
的MAC地址。 例如:00-10-a4-ab-21-ca是(单波)类型的MAC地址? 10-80-00-3d-44-3a是(单波)类型的MAC地址?
. .
交换机接收到数据帧后,根据目的 地址查询CAM,找到出口后,把 数据包从该出口集合发送出去。
文档密级:内部公开
华为文档,未经许可不得扩散
23
全双工就是解放生产力!
实现全双工的物质保证: 支持全双工的网卡芯片+收发线路完全分离物理介质+点 到点的连接(HUB都是半双工的)。 全双工对以太网技术的影响 最大吞吐量达到双倍速率; 从根本上解决了以太网的冲突问题,以太网从此告别 CSMA/CD。 支持全双工的设备 最近10年制造的网卡、L2、路由器,HUB除外。
D S AP S S AP
Ethernet_SNAP 6 目的 MAC 6 源MAC 2 报文长度 1 1 1 CTL 3 OC 2 协议类型 3 8 -- 1 4 9 2 数据 4 FCS
0 x AA 0 x AA
文档密级:内部公开
华为文档,未经许可不得扩散
19
Ethernet_II帧结构
64到1518字节
文档密级:内部公开
华为文档,未经许可不得扩散
15
★ 封建社会
L2的出现 1、以太网基本帧结构 2、L2的基本工作原理 3、STP(生成树)的基本思想
文档密级:内部公开
华为文档,未经许可不得扩散
16
以太网的MAC地址
MAC地址有48位,但它通常被表示为12位的点分十六进制数。 MAC地址举例:00.e0.fc.39.80.34 MAC地址全球唯一,由IEEE对这些地址进行管理和分配。每个地址由两部分 组成,分别是供应商代码和序列号。其中前24位二进制代表该供应商代码。剩下 的24位由厂商自己分配。 例如华为设备的MAC的前24位就是00.e0.fc 如果48位全是1,则表明该地址是广播地址。 如果第8位是1,则表示该地址是组播地址。
以太网基础学习笔记
1.PC机上的cmd命令ping 192.168.1.100 -t (-t表示持续ping)route print (查看PC机的路由表)* ping包可以用wireshark抓取,关键词过滤为icmp协议包,有request与reply。
* ping需要注意PC的防火墙,还要注意ping不通时,检查拓扑网络时,检查ping包发送与接收两个方向的路径是否可行2.路由器不同于PC,没有缺省网关的概念。
默认情况下,路由器上的路由表只知道直连的路由信息。
加入静态路由表的方法,可指定下一跳的端口或者IP地址:(1)Router(config)#ip route 192.168.10.0 255.255.255.0 G0/1(当目的地址为192.168.10.1-254网段时,该数据包的下一跳接口为G0/1端口)(2)Router(config)#ip route 192.168.10.0 255.255.255.0 192.168.20.1(当目的地址为192.168.10.1-254网段时,该数据包的下一跳地址为192.168.20.1)3.默认情况下,网关路由的WAN端口禁ping。
关闭该路由器的防火墙,就能ping了。
4.关于以太网帧(1)以太网最小帧是64字节的原因首先说一下时隙,时隙在一般的数字通信原理中是这样定义的:由各个消息构成的单一抽样的一组脉冲叫做一帧,一帧中相邻两个脉冲之间是时间间隔叫做时隙。
以太网的时隙有它自己的特定意义:a.在以太网CSMA/CD规则中,若发生冲突,则必须让网上每个主机都检测到。
但信号传播到整个介质需要一定的时间。
b.考虑极限情况,主机发送的帧很小,两冲突主机相距很远。
在A发送的帧传播到B的前一刻,B开始发送帧。
这样,当A的帧到达B时,B检测到了冲突,于是发送阻塞信号。
c.但B的阻塞信号还没有传输到A,A的帧已发送完毕,那么A就检测不到冲突,而误认为已发送成功,不再发送。
Cisco Catalyst LAN Switching笔记(红头发)
Cisco Catalyst LAN SwitchingPrefaceyUmi#sh start!Written by yUmis(牛奶咖喱) a.k.a. 红头发Description 欢迎转po,请保留作者信息Contact Me QQ:13030130特别感谢yUmi,是她让我懂得了应该如何生活:)Jul.1st.2004!Pt.1 Switching and Bridging ConceptsEthernetEthernet(以太网)于20世纪70年代中期,由Xerox公司分部Palo Alto研究中心(PARC)开发的.Xerox最早发明的是一个2Mbps的以太网,后来又和Intel和DEC合作开发了出了10Mbps的以太网,俗称(Ethernet II或Ethernet DIX).后来IEEE通过802委员会(802 Committee)把Ethernet 标准化为IEEE 802.3.它和Ethernet II十分相似MAC地址MAC地址用来标识以太网上每个节点(node)的地址,即物理地址.MAC地址为48位(bit)长,即6个字节.如下图:MAC地址是烧录在网卡(Network Interface Controller,NIC)的ROM里的.为了保证MAC地址的唯一性,IEEE规定MAC地址前24位为厂商代码(vendor code),后24位为序列号(serial number) Ethernet帧的格式一些常见的以太网帧的格式,如下图:preamble为前导符,7字节长,由10101010…重复组成,SFD为起始分界符,1字节长,由11组成,如下图:Ethernet DIX帧里有类型(type)字段,用来鉴别层3的协议;而802.3 Ethernet帧把类型字段替换成了长度(length)字段,所以它无法辨别上层协议,这时就要用到802.2 LLC还有2种常见的以太网帧的格式,如下图:Novell的以太网帧只用于传输IPX流量,由于Novell没有想过IP会运行在其他层3协议上,所以它不需要类型字段,而且它也没有LLC802.3 Ethernet Sub-Network Access Protocol(SNAP)的DSAP和SSAP字段的值为AA,OUI字段代表organizational unique identifier,3字节长,用于代表不同的组织.OUI由IEEE分配,Cisco的OUI 为00000cCarrier Sense Multiple Access with Collision Detection(CSMA/CD)以太网使用一种叫做带冲突检测的载波监听多路访问(CSMA/CD)技术进行通信.这是一种比较友好的会话方式.比如你有话要说,但是你很礼貌的先听听看有没有别的人在说话(carrier sense),如果有人在说话,你就等他把话说完,你才开始说;如果没人说话,你就开始说.但是假如有2个人同时说话怎么办?假如有2个人同时说话了,双方一旦听到同时有除自己以外的人在说话的话(collision detection),就停止继续说话,2个人都随机等待一段时间,然后其中1个人再开始继续说话,另外那个人等他说完再接着说Ethernet的通信方式就是这样的,如果双方同时要传输数据的话,将会产生一个collision的信号,由于电压超过正常的值,所以整个网段上的工作站都能注意到这个collision信号,接下来卷入这个collision事件的2个节点发送一个代表拥塞的信号给网段上的所有节点.此时线缆上不会有数据的传输(0Mbps),直到该冲突过程恢复以后.当这2个节点完成拥塞信号的传输以后,它们设置一个随机的计时器开始倒计时,先到0的节点会发现此时网段上没有工作站在进行传输,它就开始传输数据;后到0的那个节点发现之前那个节点已经在传输了,它就等待,等它传输完毕以后再进行传输所以,在采用CSMA/CD机制的介质上,1次只能有1个节点可以进行传输.所以这也是把Ethernet 叫做共享介质(shared medium)的原因Fast Ethernet当随着时间的推移,人们开始发现10Mbps的速率不够用是时候,就开始开发一种以太网的升级版本:Fast Ethernet.快速以太网的速率能够达到100Mbps.虽然基于IEEE 802.3u标准的快速以太网不是市场上第一个出现的100Mbps版本.IEEE 802.3u标准的快速以太网和802.3以太网的帧的格式是兼容的,唯一不一样的就是前者在速度上是后者的10倍,由于兼容性很好,802.3u就成为市场上的主流标准.快速以太网仍然采用CSMA/CD机制.由于以太网(包括快速以太网)都属于共享介质,所以在一个网段上,节点越多,产生冲突的机率就越大Gigabit Ethernet随着网络的发展,人们发现以快速以太网作为骨干介质越来越不能满足需要,而速率为155Mbps-622Mbps的ATM当时实现起来比较困难.IEEE后来又推出了基于802.3z的千兆以太网(Gigabit Ethernet).和之前的一样,帧的格式和Ethernet并无什么大的区别;在接线方面,千兆以太网,快速以太网和以太网的区别在于,千兆以太网没有采用铜线(copper wiring)标准Full-Duplex Ethernet当2个以太网节点通过10baseT互相直连,会有2条通道,其中1条为接收,另1条为发送.由于是直连,中间没有其他节点(比如hub),因此数据可以在没有冲突的情况下来回自由传输,这就叫全双工(full-duplex)以太网.如下图:要实现全双工,2个节点必须直连,而且他们的网卡必须要支持全双工模式.由于采用全双工模式,发送和接收可以由2条通道同时进行,每条通道都为10Mbps,总共是20Mbps,所以有的时候人们又把全双工以太网称为20Mbps介质(快速和千兆以太网也是如此)Physical Segment当1个以太网网段的设备越多,产生冲突的可能性就越大.以太网网段能容纳的设备的数目是根据传输介质所规定的.物理网段,就是连接在传输线缆上的所有的设备的一个范围圈.换句话说就是,在一个物理网段上,所有设备都有产生冲突的可能性.另外1个用来描述物理网段的术语就是冲突域(collision domain).当然可以用某些设备对物理网段进行划分,比如路由器等等Broadcasts and Logical SegmentationTCP/IP使用广播来解析IP地址到MAC地址.一些路由协议也使用广播来对路由进行宣告,比如RIP和IGRP.广播不仅会消耗网络上的带宽,还会降低端用户比如工作站的处理能力.网桥(bridge)和交换机会转发广播,而路由器就不会.能够接收到别人发来的广播的所有节点组成的一个区域范围就叫广播域(broadcasting domain)或逻辑网段(logical segment)Multicasts多播(multicast)和广播类似,但是和广播的发送给所有节点相比,它是发送给一组特定类型的节点.节点类型通过地址来定义,比如一个帧的目标MAC地址为CC的就是发往所有的Cisco设备.网桥和交换机也会对多播进行转发Frame-Forwarding Methods of a SwitchCisco Catalyst对帧的3种转发方式如下图:1.cut-through模式也叫fast forward或real time模式,它读取到帧的目标地址以后就立即进行转发2.fragment free模式也叫modified cut-through模式,它读取到帧数据字段前64字节,然后进行转发3.store-and-forward模式是读取整个帧,并进行FCS计算.由于帧的长短不一样,所以延迟根据帧的长短而变化Pt.2 Transparent Bridging网桥和交换机对帧的转发送采用的机制基本是一样的.网桥单独的根据目标MAC地址来转发帧.所有节点的MAC地址将被学习到,并以表的形式保存在RAM或cache memory中.在以太网环境中,转发帧的决定的过程叫透明桥接(transparent bridging),而在令牌环网络中该过程叫源路由桥接(source route bridging)the Three Functions of a Transparent Bridge透明网桥,如同它的名字,意思是它在以太网环境中对于端用户(end user)来说是透明的.它的3个作用:1.学习2.转发和过滤3.避免环路(loop)Learning网桥要基于目标MAC地址来做转发决定,所以它要能学习到目标节点的MAC地址.当网桥连接到一个物理网段上去,它读取经过它的帧的源MAC地址,并做出推断,如果帧从来自某个它的特定的端口(port),它就认为工作站的位置是和那个端口相连.然后把这些信息放进自己的bridging table中,在放进去之前先计算FCS计算,这样能消除错误的判断.在Cisco Catalyst上,bridging table 也叫做CAM(content address memory)如下图:A发送数据给B,B和网桥都接收到帧.当网桥接收到帧以后,学习到工作站A和port 1相连(因为是这个端口接收到A发来的帧的),于是它把工作站A的MAC地址和端口放进bridging table中反过来,B对A做出应答的时候,如下图:原理和刚才一样,B的MAC地址和端口信息被放进bridging table中去Forwarding and Switching网桥通过之前学习到的bridging table来做转发决定.这个决定是基于帧的目标MAC地址的.转发的过程如下图:当A传输数据到C的时候,C的条目之前已经被学习到了,网桥就把帧转发到C所在的物理网段2过滤的流程图如下:当A发数据给B的时候,网桥根据bridging table判断出B和A在同一个物理网段,网桥就不会把帧发到物理网段2上去Avoiding Loops透明网桥的还有1个功能就是环路的避免.先来看看1个环路的产生,如下图:A发送一个广播帧给Y和X,Y又发给Z,X也发给Z;Z又把从Y接收到的发给X,又把从X接收到的发给Y.这样就产生了一个bridge loop.阻止环路的产生的办法就是破坏掉冗余的链路,这就要考生成树协议(Spanning Tree Protocol,STP)完成STP有几种版本,而且它们之间互不兼容.在交换机和网桥上实现STP之前要先验证下STP的版本,不同版本的STP是不会协同工作的.2种最常使用的STP版本是DEC版本的和IEEE版本的.Cisco的Catalyst在以太网上使用的是IEEE版本的STP,在Token Ring上使用的是IBM版本的STPSpanning Tree Protocol网桥会向其他那些有可能引起环路的交换机发送一种叫做BPDU(bridge protocol data unit)的包.Cisco的Catalyst每10秒从它所有的活跃端口向外发送BPDU,收到BPDU的交换机通过生成树算法(Spanning Tree Algorithm,STA)进行运算来决定需要关闭哪些冗余链路和端口,这一关闭的过程叫blocking.处于blocking状态的端口仍然是活跃的,它仍然能够接收和读取到BPDU,它会等到环路消除以后,才能转发帧.BPDU和STA的目的就是造就一个无环路的交换环境the Root Bridge所有的生成树(tree)都必须要有个根(root),作为根的那个网桥就叫根桥(root bridge),所有的网桥都分配了1个叫做网桥优先级(bridge priority)的数值.默认Catalyst的优先级都为32768.术语bridge ID是由MAC地址决定的,MAC地址最小的网桥就被选举为根桥Which Ports Should Be Blocked?当决定关闭一些产生环路的端口的时候,假如卷入的端口有2个甚至更多,那到底把哪些端口更改为blocking状态呢?这就要根据端口耗费(port cost)来决定.端口耗费一般是基于传输介质的速率来分配的,一般这个耗费的值是用1000除以传输介质的速率得到的,比如100Mbps的快速以太网的端口耗费就是10,以太网的是100与根桥直接相的端口,或到达根桥距离最短的端口,就叫根端口(root port);假如有多条到达根桥的最短的链路,就比较port cost,耗费低的作为根端口;假如耗费一样,就比较bridge ID,ID小的作为根端口还有个术语叫指定端口(designated port),它是在物理网段上,离根端口最近的那个端口STP工作的一些步骤如下:1.决定根桥:在优先级相同的情况下,比较bridge ID,ID小的作为根桥2.决定指定端口:到达根桥的最短的链路的端口port cost低的作为指定端口;假如耗费一样,就比较bridge ID,ID小的作为指定端口.指定端口处于转发(forwarding)状态3.决定根端口:与根桥直接相的端口,或到达根桥距离最短的端口,就叫根端口(root port);假如有多条到达根桥的最短的链路,就比较port cost,耗费低的作为根端口;假如耗费一样,就比较bridge ID,ID小的作为根端口4.决定哪些端口应该被堵塞为blocking状态:只要是非根端口和指定端口的,都进入blocking状态5.决定哪些端口处于转发状态:根端口和指定端口例子如下图,拓扑图给出了已知的MAC地址,并且所有优先级均为32768:注意A的MAC地址最小,优先级均为32768,所以A作为根桥,并且要注意的是根桥的所有端口均作为转发模式(指定端口).接下来决定根端口,直接与根桥相连的作为根端口,而且作为转发模式,所以可以判定出根端口个指定端口,bridge ID决定指定和非指定端口.但是注意D和E之间,由于D的bridge ID小,所以D的为指定端口,E的作为非指定端口,如下图:Spanning Tree Port StatesSTP端口的几种状态如下图:Pt.3 Token Ring and Source-Route BridgingIEEE吸收了原先的Token Ring标准并加以小小的改动,制定了一套IEEE 802.5标准的Token Ring(1985年发布).它主要使用在IBM产品的环境中Token Ring Architecture20世纪70年代中期到末期,LAN技术变的越来越流行.蓝色巨人IBM决定开发1套自用的LAN 介质,当时Ethernet并不能在IBM产品的环境下运做的很好.于是就产生了Token Ring.IEEE的Token Ring能够很好的和IBM的Token Ring兼容Token Ring使用多路访问单元(Multiaccess Unit,MAU)来组建一个环(ring),所有的工作站都连接到MAU上的.其中物理拓扑为星型,逻辑拓扑为环型. Catalyst采用的是5类线缆和RJ-45连接器,物理拓扑如下图:逻辑拓扑如下图:Token Ring采用传递令牌(token)的方式来决定谁发送数据.谁拥有令牌,谁就可以传输帧.数据帧在环上传传输,目标工作站接收到这个帧以后对它进行拷贝,然后设置帧的1个位后继续把它放在环上传输,直到又回到源设备,源设备发现帧中有1位已经变动,说明它发出去的帧已经被目标设备收到.所以它重新生成一个token,并传递给别的工作站.如下图:Token Ring仍然是一种共享介质,因为工作站要等待token的传递.环上的站点越多,等待的时间就越长另外一种特殊的工作站,叫active monitor,是用来维护和保持Token Ring的稳定性的.它保证了token在环上的传递正常与否.如果token出错,active monitor会重新生成一个tokenToken Ring传输数据的速率有2种:4Mbps和16Mbps.4Mbps版本的现金用的很少了,能够支持的产品也不是很多.另外,Token Ring可以以不同的速率传输数据可能会导致一些问题.一些Token Ring的NIC能够支持这2种速率.但是在它自动感应(autosense)之前,它先以默认的4Mbps的速率操作,然后工作站错误的以4Mbps的速率接入到环里去,而环一般都为16Mbps的速率,这样环就会短暂性的失去连接,导致一些问题的发生.所以在把工作站接入到环里的时候要先验证下速率是多少,是否匹配Token Ring Segmentation当环上的站点过多的时候,就需要对Token Ring分段:物理的或逻辑的创建更多的环物理的创建更多的环可以在不影响层3协议的情况下,创建更多的环,产生更多的token,这样就可以有更多的会话.但是广播仍然会传播到整个Token Ring上去.如下图是一个没有分段的大型的Token Ring:假设环的速率为16Mbps,那么总共的吞吐量为16Mbps把环分为3段,如下图:如图一个大环被分成3个单独的环,将会产生3个token,而且总的吞吐量将达到16Mbps*3=48Mbps.这3个环仍然处于同一个IP子网下,所以物理的分段不影响广播域的变化Token Ring的物理分段可以由网桥,交换机和带有Token Ring接口的路由器完成Token Ring的逻辑分段由路由器完成Source-Route Bridging源路由桥接是Token Ring的网桥和交换机使用的桥接方法,它和层3的路由协议十分相似:用数字鉴别物理环,就像用路由协议用网络号鉴别网络一样.每一个处于源路由环境的网桥都接收一个bridge number.如下图:如图,每个环和网桥都有一个号码组成Token Ring帧头部的一个字段叫RIF(routing information field).RIF字段包含了通过源路由桥接环境到达目标设备的选定了的路由信息.源设备为每一个数据包建立RIF字段,同时这也要求端节点设备拥有可以建立RIF字段的软件.源路由网桥读取到RIF字段以后,决定是否转发帧到相连的环上去RIF字段包含2部分:RC字段(route control)为第一部分,16位长第二部分为RD(route designator字段.RD是数目根据帧要到达目标设备所穿越的网桥和环的数目而变化,如下图:RIF字段里最多可以包含14个RD,这也限制了源路由桥接环境的最大跳数为13跳(hop)下图是源路由桥接环境的通信过程:A的RIF字段如下图:Route Discovery在源路由桥接环境里,源设备是如何发现目标设备的呢?为了能够发现目标设备,源节点使用一种叫做explorer packet的包.有几种类型的explorer packet.其中一种叫all-route explorer (ARE) packet.ARE packet会被所有的网桥转发.发现过程如下图:当ARE packet到达目标环以后,ARE packet仍然会被继续转发直到达到RD的最大值或者已经有了RD.ARE packet将继续从R 101传送下去直到回到R 104.所以第一个ARE packet依次经过B1,B2,B3一直到B6,当第一个ARE packet完成一个轮回以后再次回到B1,B1看见已经之前有了RD,所以B1不会把这个包继续转发下去另外一种explorer packet叫做Spanning Tree Explorer(STE) packet,也叫Single-Route Explorer(SRE) packet.ARE packet可以导致多个包到达目标设备,增加了额外的流量.源路由网桥运行STA来计算和转发STE packet,只从指定端口转发出去.源路由网桥所采用的STA多为IBM的版本而不是IEEE版本和老的DEC版本.Cisco Catalyst只使用IBM的版本Source-Route Transparent Bridging在一些环境里,端用户可能不需要使用软件建立RIF,在这样环境下,源路由网桥可以配置成2种形式的桥接:源路由和透明.有时也叫做SRT(Source-Route Transparent)桥接.SRT网桥查找Token Ring帧头部信息中一个特殊的位叫做RII(routing information indicator).RII实际上是目标MAC 地址的第一位.当设置了这个位以后,暗示帧里包含的有RIF,因此帧被源路由桥接相反的,没有设置RII的话,SRT网桥将透明的对这个帧进行桥接Source-Route Translational Bridging当以太网和Token Ring要在同一环境中实现的时候,就要用到路由器.然而一旦用到路由器的话,以太网和Token Ring上的设备就处于不同的逻辑网段了.如果你不想这么做,就可以用SRT/LB(Source-Route Translational Bridge).SRT/LB会很繁忙,因为它要在以太网这边实现透明桥接,又要在Token Ring这边实现源路由桥界如果需要的话SRT/LB还能互相翻译以太网和Token Ring的帧Cisco Catalyst如果没有外部路由器或route-switch模块的话就不能支持SRT/LBPt.4 Virtual LANs随着网络的发展,出现了一种叫做VLAN的新技术.VLAN打破了物理位置的限制,增加了网络的安全性等等.还可以利用trunk把VLAN延伸到多个交换机上去VLAN Defined还可以把VLAN定义为广播域,处于同一个VLAN里的设备就处于同一个广播域,如下图,Catalyst 1900上的2个VLAN,每个VLAN分别为1个广播域:VLAN 1和VLAN 2是不可以互相通信的2种划分VLAN的方法:静态(static)和动态(dynamic)Static VLANs静态VLAN是基于端口划分的.管理员可以根据需要,决定哪些端口处在特定的VLAN里Dynamic VLANs动态VLAN是指端口动态自行决定自己属于哪个VLAN,比如通过VMPS(VLAN Management Policy Server)对MAC地址和VLAN之间做个映射Trunking假如我们要把VLAN延伸到几个交换机上去怎么办?trunk允许多个VLAN流量信息通过一条物理连接相互传送.经过trunk的VLAN信息都被打上tag,标明VLAN ID,如下图:Trunking over Fast Ethernet and Gigabit Ethernettrunk线路至少要是快速以太网(以太网不行),2种tag类型如下:1.Inter-Switch Link(ISL)2.802.1Q(dot1q)ISL是Cisco私有的,802.1Q为IEEE开发,并不是所有的Catalyst都支持802.1Qtrunk是通过线路模块上的ASIC(Application-Specified Integrated Circuit)实现的,是基于硬件的ISL只支持快速以太网和千兆以太网;而802.1Q不仅仅支持这些,还支持FDDI和Token Ring等等VLANs and the Spanning Tree Protocol如果在大型网络中实现多个VLAN的话,STP的随意性可能会造成一些不合需要的拓扑结构.如下图:粗线部分为STP生成的线路,PC 1要访问Server 1的话要经过根桥才能访问;对于PC 2访问Server 2是一样的.这显然是一个不合理的结构.其中一个解决方案是把和Server 1相连的交换机作为根桥,如下图:PC 1访问Server 1的问题得到解决,但是PC 2的问题又出来了.为了解决这个问题,Cisco实现了一套每个VLAN一个STP的版本,它可以根据不同的VLAN选择不同的转发路径.每个VLAN上一个单独是STP实例,这样刚才的问题就得到了很好的解决,如下图:Trunking to RoutersVLAN间(inter-VLAN)通信需要用到层3设备比如路由器,如下图:但是假如你有100个VLAN,路由器没有足够多的接口来提供VLAN间通信怎么办?这时就要用到单臂路由(router on a stick或one-armed routing),优点是节约了路由器的接口,缺点是接口不一定有足够的带宽来处理VLAN间的通信,如下图:Trunking to Servers假如一种全局性的服务比如email服务器,想要为每个VLAN里的用户提供email服务.但是假如你把email服务器放在一个单独的VLAN里的话,其他VLAN想要访问该服务的话,就必须经过路由器的路由,这种情况下将产生延时(latency).如下图:VLAN A的用户必须经过路由器才能访问到VLAN B里的服务器.这样增加了路由器的负担和trunk线路的流量Cisco把ISL技术许可给一些厂商比如Sun,IBM和Intel等,允许它们的产品的NIC上支持ISL.这样,服务器就能够读取帧的ISL标签,允许服务器在一个连接上可以连接多个VLAN.如下图:入图的Email Server安装的有支持ISL的NIC,trunk通过交换端口完成,现在服务器就可以直接和2个VLAN的用户直接通信了.支持ISL的NIC的驱动程序允许你为每个VLAN的连接创建层3地址.假如服务器连接了100个VLAN,那就需要100个层3地址Pt.5 Small and Medium-Sized Catalyst Switches Catalyst 1900Catalyst 1900系列是Cisco Catalyst最低端的产品.1900系列有2种软件版本:常规(regular)版和企业(enterprise)版.常规版只提供些基本的特性,比如VLAN的划分,cut-through交换等;企业版增加了一些高级特性,比如Fast EtherChannel和在快速以太网端口上的ISL trunk等.企业版的在型号后面带有EN标记根据物理版本的划分又有3种不同的型号.每个版本都有1个AUI(attached user interface)和2个快速以太网端口.Catalyst 1912有12个以太网端口(10Mbps);而Catalyst 1924有24个以太网端口;Catalyst 1924C有24个以太网端口和,并且在其中的一个快速以太网端口上使用的是光纤(fiber)SC连接器下图就是Catalyst 1924前端视图:后端视图如下:Catalyst 1900系列的配置是十分简单的,可以通过类似Cisco IOS的CLI(command line interface)进行配置;或者通过基于web浏览的web接口进行配置Catalyst 1900系列的一些特性包括:1.可以升级到企业版2.可以在以太网或快速以太网端口用全双工模式操作3.拥塞控制特性,包括基于IEEE 802.3X的流控制(flow control)4.可以基于web方式的管理5.基于每个端口的广播风暴(broadcast storm)的控制6.支持Cisco 600-W的冗余AC电源系统,提供备份电源7.bridge table中可以支持多达1024个MAC地址8.支持Telnet和SNMP(Simple Network Management Protocol)9.支持4组嵌入式的远程监视(RMON):history,alarm,event和statistics等等Catalyst 2820Catalyst 2820系列和Catalyst 1900系列拥有相似的结构,但是它在高度上是Catalyst 1900系列的近2倍,它有24个10Mbps的RJ-45的以太网端口和1个AUI的10Mbps的以太网端口,并且具有高速的up-link bay目前Catalyst 2820系列有2种型号:Catalyst 2822和Catalyst 2828.区别是Catalyst 2822的bridge table支持2048个MC地址,而Catalyst 2828支持8192个MAC地址Catalyst 2820系列和Catalyst 1900系列最明显的区别是前者具有uplink bay.它能接受FDDI,CDDI 和ATM等端口和100Mbps模块Catalyst 2820系列拥有的特性和Catalyst 1900系列拥有的特性差不多Catalyst 2900XL SeriesCisco介绍Catalyst 2900XL系列是在Catalyst 5000系列之后Catalyst 5000系列其中的一种型号叫Catalyst 2900,但是这个Catalyst 2900和Catalyst 2900XL系列无任何关系.Catalyst 2900XL系列运行的软件是Cisco IOS;而Catalyst 5000系列用的是它自己的操作系统Catalyst 2900XL系列有3.2Gbps的背板(backplane,即机箱内部,在接口处理器或接口卡与数据总线和能源分布总线之间的物理连接);Catalyst 5000系列的背板为 1.2Gbps.如下图,就是Catalyst 2900XL系列后端视图:Catalyst 2924XL的前端视图如下图:下面是Catalyst 2900XL系列的一些汇总信息:Catalyst 2900XL系列和之前的Catalyst 1900系列,Catalyst 2820系列相比更为高级,但是价格比它们更贵,比Catalyst 5000系列稍为便宜Catalyst 2900XL系列根据物理版本可以划分为模块化型号和非模块化型号.模块化的带有字母M标记Catalyst 2900XL系列可以通过基于web的方式或在IOS下配置Catalyst 2900XL系列的特性如下:1.10BaseT/100BaseTX端口2.拥有4Mb的共享内存3.100BaseT上的全双工操作4.Fast EtherChannel技术5.基于web管理的接口6.支持Telnet和SNMP7.支持IOS管理8.默认配置存储在闪存(flash memory)中9.基于端口的广播风暴的管理10.背板速率为3.2Gbps,可以每秒转发近120万的包(packet)Catalyst 3000 SeriesCatalyst 3000系列采用的架构和其他系列有很大的区别.多个Catalyst 3000系列的交换机可以堆叠(stack) 在一起形成一个更大的交换机Catalyst 3000系列有3种型号,它们都是模块化(modular)的.有2种modular bay类型:regular expansion bay,而flexslot expansion bay可以接受regular expansion bay或一个3011 WAN模块Catalyst 3000有16个以太网端口和2个expansion bay;Catalyst 3100有24个以太网端口和1个flexslot;而Catalyst没有固定(fixed)端口,1个flexslot和6个regular expansion slot所有的Catalyst 3000系列的底盘(chassis)在堆叠端口模块(Stackport Module)背后都有1个modular bay.堆叠端口模块有1个私有的端口用做堆叠用途,这个端口看上去有点像SCSI-2连接器.假如只有2个交换机需要堆叠,它们可以通过堆叠模块端口连接在一起;如果多于2个(最大8个)要堆叠,就要购买Catalyst Matrix,Catalyst Matrix是带有SCSI-2 端口的一个盒子3011 WAN模块可以放置在Catalyst 3100和Catalyst 3200的flexslot上.它是基于Cisco 2503路由器的,有2个高速串行接口(serial interface)和1个ISDN BRI接口.使用的是Cisco 2500系列的路由器的IOS镜象文件,IOS Release 11.1(6)或更高.3011 WAN模块对于需要串行连接但是又不想购买费用稍高的路由器的小型办公室是十分有用的Catalyst 3900 SeriesCatalyst 3900有20个固定的Token Ring端口和一个double-wide expansion bay,它能装下2个single-wide expansion card或者1个double-wide expansion card.另外,Catalyst 3900也是一种可堆叠的交换机,支持4到8个交换机的堆叠.Catalyst 3900拥有源路由桥接(SRB),源路由交换(source-route switching,SRS)和源路由透明桥接(SRT)的能力.Catalyst 3900还支持TokenChannel.TokenChannel有点类似Fast EtherChannel和EtherChannel,把端口捆绑在一起,所以可以产生256Mbps的吞吐量Catalyst 3900的double-wide expansion slot能够接收ISL uplink模块,这就允许Token Ring VLAN 被trunk到更大型的Catalyst 5000系列或者另一个Catalyst 3900上去.另外还有一个双端口的ATM expansion module用来连接到ATM骨干上去另外一种型号Catalyst 3920是最后一款Catalyst Token Ring交换机,它有24个固定的Token Ring 端口和一个集成的Stackport Module.这就允许可以堆叠8个Catalyst 3920,多达192个Token Ring 端口Catalyst 4000 Series。
交换机学习笔记
交换技术一、 以太网以太网技术标准主要定义了数据链路层和物理层的规范。
同一层次的技术标准包括令牌环网等等。
TCP/IP 协议本身是与数据链路层和物理层无关的,TCP/IP 协议栈可以架构在以太网技术上,也可以是令牌环网。
LLCMAC物理层数据链路层以太网技术范围以太网是广播网。
半双工传输时采用CSMA/CD 技术,全双工模式不需要。
在采用CSMA/CD 传输介质访问的以太网中,任何一个CSMA/CD LAN 工作站在任何一时刻都可以访问网络。
发送数据前,工作站要侦听网络是否堵塞,只有检测到网络空闲时,工作站才能发送数据。
工作站在发送数据帧时需要等待一个时间片的时间,用来检测刚才发送出去的帧是否发生冲突。
冲突发生时,采用时间指数退避算法,延后一段时间后在发送数据包。
一层设备:代表设备是HUB ,作用于7层网络模型的第1层,物理层,主要用于电信号的放大,以增加传输距离。
一层设备不存在交换。
以太网HUB 工作于半双工状态,HUB 连接的所有主机同时只能有一台主机发送以太帧,并且所有的主机都能够接收到这个帧,所有的端口处于同一个冲突域,一个广播域。
以太网帧结构:最小以太帧为64字节,若小于64字节,则需要“填充”。
二、 交换机基本结构目前的L2/L3交换芯片一般采用分布式交换的体系结构,主要包括:CPU (带管理的交换机)或者EEPROM (不带管理的交换机)、交换结构、MAC 芯片、物理层芯片几个部分,如果是提供光口还需要光模块。
其中的核心是MAC 芯片,实现了MAC 源地址学习和L2层以太帧转发,以及流量控制功能,如果是L3芯片,则在MAC 层芯片中还有路由模块。
所有的2层地址学习、2层转发和3层路由都是分散在各个MAC芯片中完成的。
虽然地址学习是分散在各个芯片中完成的,但是系统中的所有MAC芯片会通过内部通讯协议通过交换结构互相交换地址学习信息,使得整个系统中的地址学习表是统一的。
图中所示的是一个L2/L3层交换的MAC芯片,它主要包括了L2交换模块、L3路由模块、流分类模块和转发引擎等几个部分:1、L2交换模块主要进行MAC地址学习和L2层转发判断2、L3路由模块主要根据路由表进行L3层路由转发,如果是L2芯片则没有这个模块3、流分类模块主要是对进入以太帧做QOS方面的调整或者流量限制。
NPORT串口转以太网 学习笔记
MessageBox.Show("NPORT打开成功" + Environment.NewLine + "portID = " + portID.ToString(), "NPOR操作提示");
今天和大家分享一下一款摩莎的串口转以太网模块——NPORT,在这里我不会介绍摩莎公司,也不去 刻意介绍 NPORT。这次我主要和大家分享一下,如何使用 C#编写 NPORT 的上位机程序(型号 NPORT5510, 单串口)。虽然摩莎给了非常详细的范例,使用 VC,VB,Delphi 三种不同的平台演示如何调用 NPORT 的 DLL 文件,但这些平台都是上个世纪的“版本”,现在比较流行的 C#却只字未提,在摩莎的官网上也有人 问如何使用 C#调用这些 DLL 文件,但是官方的回答也很官方“你可以去访问 MSDN 寻找答案”。实在没 有办法,只好搜集资料研究这个 NPORT 的 DLL 中调用了,那么我就来详细说说在 C#中如何使用这个 DLL 文件。
由于 NPORT 是非托管的代码,说白了不是用.Net 开发的,所以使用这个命名空间才可以把 DLL 文件中的函数载入进来,载入则使用 DllImport 方法。具体的代码如下: using System; using System.Text; //调用非托管的DLL文件 using System.Runtime.InteropServices; namespace IPSerial {
具体的代码如下: private void buttonOpen_Click(object sender, EventArgs e) {
计算机网络学习笔记概述网络技巧 电脑资料
计算机网络学习笔记概述网络技巧电脑资料1、计算机网络向用户提供的两个最重要的功能:(1)连通性;(2)共享2、网络、互联网以及因特网(1)网络(work):由假设干结点(node)和连接这些结点的链路(link)组成,(2)互联网:将网络和网络通过路由器互连起来。
因而也是“网络的网络”。
(3)因特网(Inter):世界上最大的互连网络。
主机(host)是指连接在因特网上的计算机。
综上:网络把许多计算机连接在一起,而因特网那么把许多网络连接在一起。
3、因特网开展的三个阶段:第一阶段:从单个网络 ARPANET 向互联网开展的过程。
1983 年TCP/IP 协议成为 ARPANET 上的标准协议。
第二阶段:建成三级构造的因特网:主干网、地区网和校园网(或企业网)。
第三阶段:形成多层次的ISP(Inter Service Provider 因特网效劳提供者)构造的因特网4、Inter 和 Inter 的区别:inter:通用名词,它泛指由多个计算机网络互连而成的网络。
Inter:专用名词,它指当前全球最大的、开放的、由众多网络相互连接而成的特定计算机网络,它采用 TCP/IP 协议族作为通信的规那么,且其前身是美国的 ARPANET。
5、制订因特网的正式标准要经过以下的四个阶段:因特网草案(非RFC文档),建议标准,草案标准,因特网标准6、因特网的组成:(1)边缘部分,用户直接使用,用来进展通信(传送数据、音频或视频)和资源共享;(2)核心部分,由大量网络和连接这些网络的路由器(边缘部分,称端系统(end system))组成。
提供连通性和交换。
7、在网络边缘的端系统中运行的程序之间的通信方式通常可划分为两大类:(1)客户效劳器方式(C/S 方式),即Client/Server方式。
(客户是效劳的请求方,效劳器是效劳的提供方)(2)对等方式(P2P 方式),即 Peer-to-Peer方式。
(对等连接中的每一个主机既是客户又同时是效劳器。
网络学习笔记(协议篇)
))))))))网络学习笔记(协议篇)协议概况:TCP/IP 协议簇TCP/IP(Transmission Control Protocol/Internet Protocol)已成为一个事实上的工业标准。
TCP/IP是一组协议的代名词,它还包括许多协议,组成了TCP/IP协议簇。
TCP/IP协议簇分为四层,IP位于协议簇的第二层(对应OSI的第三层),TCP位于协议簇的第三层(对应OSI的第四层)。
TCP和IP是TCP/IP协议簇的中间两层,是整个协议簇的核心,起到了承上启下的作用。
1、接口层(物理层)TCP/IP的最低层是接口层,常见的接口层协议有:Ethernet 802.3、Token Ring 802.5、X.25、Frame reley、HDLC、PPP等。
2、网络层网络层包括:IP(Internet Protocol)协议、ICMP(Internet Control Message Protocol)控制报文协议、ARP(Address Resolution Protocol)地址转换协议、RARP(Reverse ARP)反向地址转换协议。
IP是网络层的核心,通过路由选择将下一跳IP封装后交给接口层。
IP数据报是无连接服务。
ICMP是网络层的补充,可以回送报文。
用来检测网络是否通畅。
Ping命令就是发送ICMP的echo包,通过回送的echo relay进行网络测试。
ARP是正向地址解析协议,通过已知的IP,寻找对应主机的MAC地址。
RARP是反向地址解析协议,通过MAC地址确定IP地址。
比如无盘工作站和DHCP服务。
3、传输层传输层协议主要是:传输控制协议TCP(Transmission Control Protocol)和用户数据报协议UDP(User Datagram rotocol)。
TCP是面向连接的通信协议,通过三次握手建立连接,通讯时完成时要拆除连接,由于TCP是面向连接的所以只能用于点对点的通讯。
以太网培训教程
以太网培训教程以太网是当前最常见的网络技术之一,广泛运用于各行各业。
因此,学习以太网技术对于网络从业人员来说至关重要。
本文将为大家介绍以太网培训教程。
一、以太网基础知识首先,了解以太网应具备的基础知识是必要的。
以太网是指一种局域网技术,它能够快速、准确地在网络中传输大量的数据。
以太网最早是由Xerox、Intel和Digital三家公司于20世纪70年代合作开发出的。
关于以太网标准,最初的10BASE-T规格使用了双绞线,最高可传输10 Mbps 的数据,而现在常用的100BASE-TX规格则使用的是双绞线,最高可传输100 Mbps 的数据。
同时还有更高速的千兆以太网(Gigabit Ethernet)等规格。
除了了解以太网的技术规格,还应该掌握以太网中的常用术语。
如“MAC地址”、“交换机”、“路由器”等。
二、以太网的拓扑结构以太网的拓扑结构是指连接在网络设备上的节点之间的物理布置。
常见的以太网拓扑结构包括总线型、星型、树型、环形等。
每种不同的拓扑结构都有其适用的场景。
以太网各种拓扑结构的特点、优缺点和适用场景对于网络工程师来说是重要的知识点。
例如,星型拓扑结构具有易于管理、检修的优点,但是它仅能在交换机故障时受到影响;而相比之下,总线型拓扑结构则更加容易扩展,但拓扑结构较为复杂,且易受到噪声和干扰的影响。
三、以太网的传输介质以太网的传输介质主要包括双绞线、同轴电缆、光纤等。
其中,双绞线是最为常见的一种传输介质。
双绞线在以太网中的应用十分广泛,其中,最为常见的是用于传输100 Mbps 数据的100BASE-TX双绞线。
同时,双绞线的质量和性能因素也会影响整个以太网的稳定性和传输速度。
因此,学习双绞线的相关知识和技巧,如如何识别双绞线类别、如何接线,对于网络从业人员来说至关重要。
四、以太网的网络设备以太网的网络设备主要包括交换机、路由器、网桥等。
其中,交换机是以太网中最为重要的网络设备之一。
车载以太网学习笔记1——车载以太网的DHCP协议
车载以太网学习笔记1——车载以太网的DHCP协议常见DHCP过程1、DHCP DISCOVER当DHCP客户端计算机DHCP DISCOVER广播消息:2、DHCP OFFER所有接收到DHCP客户端发送的DHCPDISCOVER广播消息的DHCP服务器会检查自己的配置,如果具有有效的DHCP作用域和富余的IP地址,则DHCP服务器发起DHCPOFFER广播消息来应答发起DHCPDISCOVER广播的DHCP客户端3、DHCP REQUEST当DHCP客户端接受DHCP服务器的租约时,它将发起DHCPREQUEST广播消息,告诉所有DHCP服务器自己已经做出选择,接受了某个DHCP服务器的租约。
4、DHCP ACK提供的租约被接受的DHCP服务器在接收到DHCP客户端发起的DHCPREQUEST广播消息后,会发送DHCPACK广播消息进行最后的确认,在这个消息中同样包含了租约期限及其他TCP/IP选项信息。
5、租约续约DHCP服务器将IP地址提供给DHCP客户端时,会包含租约的有效期,默认租约期限为8天(691200秒)。
除了租约期限外,还具有两个时间值T1和T2,其中T1定义为租约期限的一半,默认情况下是四天(345600秒),而T2定义为租约期限的的7/8,默认情况下为7天(604800秒)。
当到达T1定义的时间期限时,DHCP客户端会向提供租约的原始DHCP服务器发起DHCP REQUEST请求对租约进行更新,如果DHCP服务器接受此请求则回复DHCP ACK消息,包含更新后的租约期限;如果DHCP服务器不接受DCHP客户端的租约更新请求(例如此IP已经从作用域中去除),则向DHCP客户端位于回复DHCP NACK消息,此时DHCP客户端立即发起DHCP DISCOVER进程以寻求IP地址。
如果DHCP客户端没有从DHCP服务器得到任何回复,则继续使用此IP地址直到到达T2定义的时间限制。
Step7中ProfiNet接口学习笔记
Step7中ProfiNet接口学习笔记1、ProfiNet总线概述:2002年PROFIBUS国际组织(PI)推出了一种基于以太网的、开放的、用于自动化的工业以太网标准—PROFINET。
它使用开放的IT标准,与以太网TCP/IP标准兼容,并提供实时功能,还能与现有的现场总线系统有机的集成,从而较好地保护原有投资。
PROFINET规范将现有的PROFINET协议与微软的自动化对象模型COM/DCOM标准、TCP/IP通信协议以及工控软件互操作规范OPC技术等有机地结合成一体。
PROFINET试图实现所有的自动化装置都是透明的、面向对象的和全新的结构体系。
基于标准以太网的任何开发可直接应用在ProfiNet网络中,数据传输方式为全双工,传输带宽为100Mbp,一致性数据最大为254byte,用户数据最大为1400byte,设备之间的的总线长度为100m。
(一致性数据是指在过程映像的更新过程中,操作系统一致性地传输的,可使用加载和传送指令访问的过程映像中的数据。
)ProfiNet相对于Profibu而言,引导轴可以运行在任意的SIMOTION 中,任意数量的控制器可以在网络中运行,多个控制器不会影响IO的响应时间。
对于Profibu一个接口只能做主站或从站,而对于ProfiNet,所有的数据类型可以并行使用,一个接口可以既做控制器又做IO设备。
2、西门子伺服驱动器:SINAMICS系列是西门子新一代驱动器的统一名称,用以替代以前的SIMODRIVE(数控领域)和MaterDrive(高性能)、MicroMater(通用变频器)等系列的变频器。
SINAMICS系列包括G系列(普通应用:G120,G130等),S系列(高性能:S120等)。
本次暂选S120系列作为学习对象。
3、在Step7中配置ProfiNet接口的方法:1)在Step7中添加一个S7-300的工作站,选择带有以太网接口的CPU型号(CPU315F-2PN/DP),在Hardware中进行硬件配置,对Ethernet的属性设置如下图所示,包括对IP地址和子网掩码(默认)等的设置;2)伺服驱动器的配置:b.添加完成之后,Hardware的配置目录PROFINETIO>>Drive>>SINAMICS就可以看到Sinamic系列的驱动控制器版本了;c.选择一个驱动器(SINAMICSS120CU310PNV2.6)拖到Ethernet总线上,为其分配的IO地址为192.168.0.2;d.在Step7的Network中就形成了如下连接:3)伺服控制器接口配置根据控制的需求,可以自由配置与伺服控制器通信的字长,也可以使用西门子标准的通信长度,如下图中所示,添加完模块之后,就有了对应的I地址和Q地址,在程序中进行通信模块的编写时要和此地址对应。
学习笔记-以太网基础和CRC心得
以太网基础和CRC心得1.以太、以太网1.1.先上凉菜,闲扯以太(就不留作案底了)1.2.局域网(LAN)1.2.1.局域网主要特点(范围__、站点数__、信道误码率__、传送速率__)1.2.2.局域网与以太网(IEEE 802.3)triple1.3.网络层次结构概念1.3.1.一个简单的网络叠罗汉示意1.3.2.交换芯片的作用:在数据链路层(MAC子层)和物理层之间作数据交换。
FPGA只要关心数据链路层的东西。
1.4.以太网帧结构及数据传送顺序1.4.1.以太网帧结构以太网帧结构图1.4.1.1.数据同步部分(包括Preamble和SFD)1)数据同步意义:可以从一串数据流中准确地找到所需数据包的始末位置,然后可以定位包内各字段位置,从此就我为刀俎,包为鱼肉,庖丁解包,绰绰有余了。
2)数据同步的常见方式:a)增加同步信号线,具体例子可参见PDH设备中CU和TU的两根同步信号线。
另加自以为是的见解优点:同步处理方便缺点:增加了一条信号线,相当于可以提供两倍信号速率,但现在只用了一倍,效率较低。
适用情况:在信号传送距离较短,走线资源比较丰富的情况下,如芯片内部,单板内部以及同一设备各板之间也可以考虑。
b)信号数据流中插入特定同步码,如以太网帧结构中的Preamble和SFD部分。
另加自以为是的见解优点:带宽浪费较少,数据传送效率得到提高,具体传送效率和同步码长度及数据包长度有关。
缺点:同步处理相对复杂,同步时间变长,并需要一定缓存存储数据。
适用情况:远距离通信。
3)以太网帧数据同步部分简介:a)P reamble: 前同步码,共七个0x55字节。
b)S FD: 包头指示,一个字节,值为0xD5。
1.4.1.2.路由相关部分(包括DA和SA)1)DA(目的地址):指示数据帧发送的目的地,路由设备根据DA及内部存储的路由表决定收到该包后从哪个端口转发。
FF-FF-FF-FF-FF-FF为广播地址,而如果DA的第一字节最低位为1的地址保留为组播地址。
以太网基础知识
以太网是当今现有局域网采用的最通用的通信协议标准,组建于七十年代早期。
Ethernet(以太网)是一种传输速率为10Mbps的常用局域网(LAN)标准。
在以太网中,所有计算机被连接一条同轴电缆上,采用具有冲突检测的载波感应多处访问(CSMA/CD)方法,采用竞争机制和总线拓朴结构。
基本上,以太网由共享传输媒体,如双绞线电缆或同轴电缆和多端口集线器、网桥或交换机构成。
在星型或总线型配置结构中,集线器/交换机/网桥通过电缆使得计算机、打印机和工作站彼此之间相互连接。
以太网具有的一般特征概述如下:共享媒体:所有网络设备依次使用同一通信媒体。
广播域:需要传输的帧被发送到所有节点,但只有寻址到的节点才会接收到帧。
CSMA/CD:以太网中利用载波监听多路访问/冲突检测方法(Carrier Sense Multiple Access/Collision Detection)以防止 twp 或更多节点同时发送。
MAC 地址:媒体访问控制层的所有 Ethernet 网络接口卡(NIC)都采用48位网络地址。
这种地址全球唯一。
Ethernet 基本网络组成:共享媒体和电缆:10BaseT(双绞线),10Base-2(同轴细缆),10Base-5(同轴粗缆)。
转发器或集线器:集线器或转发器是用来接收网络设备上的大量以太网连接的一类设备。
通过某个连接的接收双方获得的数据被重新使用并发送到传输双方中所有连接设备上,以获得传输型设备。
网桥:网桥属于第二层设备,负责将网络划分为独立的冲突域获分段,达到能在同一个域/分段中维持广播及共享的目标。
网桥中包括一份涵盖所有分段和转发帧的表格,以确保分段内及其周围的通信行为正常进行。
交换机:交换机,与网桥相同,也属于第二层设备,且是一种多端口设备。
交换机所支持的功能类似于网桥,但它比网桥更具有的优势是,它可以临时将任意两个端口连接在一起。
交换机包括一个交换矩阵,通过它可以迅速连接端口或解除端口连接。
IFIX学习笔记之快速入门
IFIX学习笔记之快速入门网风整理版1.MBE为sCHNEIDER MODICON PLC以太网驱动程序2.独立节点和网络节点安装IFIX时,如果上位机与其他机器相连,则此上位机配置为网络节点,否则配置为独立节点。
3.SAC S -扫描C- 控制A-报警D-数据库4.IFIX项目备份备份dynimics目录下三个文件夹HTR-历史数据PDB-数据库PIC-画面(修改者对此有疑议)LOCAL文件夹下为系统配置,可作备份,但只能在原机器上使用。
5.快捷键Crtl+W运行/编辑切换6.工作台-用户首选项-常规-永远创建备份拷贝(在PIC目录下,建立名为backup的文件夹,保存最近使用的画面。
-动画数据错误默认值(一般不变)-环境保护(安全性)-环境自定义(第一次画出的图形的属性)-后台启动(一般不用)7.插入-数据连接(TAG名)-图表(实时趋势)-OLE对象(控件),举例为插入动画-报警一览(作报警表)-操作员(权限)-过滤(显示报警的条件)8.格式-图形编辑(对齐等)-相同尺寸(以后选物体为参照)9.专家工具栏-为动画服务填充专家-显示为背景色,填充色为前景色。
替换画面专家-做画面切换按钮,打开一个画面,关闭一个画面。
切换数字量标签专家-将数字量由1变0,或由0变1。
10.系统配置MBE驱动地址类型:一般6位-SCADA使能-历史数据(一般更改路径)-网络配置(远程节点名-远程计算机名)-安全(图形界面下5个工具箱同编辑菜单)-用户帐户(建立帐户、分配权限)-配置(使能安全)-安全区域-任务(必须配历史,增加HTC.EXE文件,进行历史数据采集)具体可参考电子书任务-IFIX后台任务11.数据库编辑器显示可用节点列表,可打开别的机器上的数据库数据库—导出(可用EXECL编辑)显示-属性(选择数据库可看到的项目)块-初级块二级块初级块(可直接连接现场模块,可有下级块)AI块-I/O地址:包括D11:300001-扫描设置-例外处理(AI值变化才采集)AR块-模拟量寄存器可读可写DR块-数字量寄存器可做一个地址代替100个相邻地址,此100个地址只能是开关点,只能显示,不能报警。
《计算机网络谢希仁》学习笔记
《计算机⽹络谢希仁》学习笔记1.1计算机⽹络在信息时代的作⽤三⽹:电信⽹络,有线电视⽹络,计算机⽹络计算机⽹络的重要功能:1)连通性彼此连通,交换信息2)共享信息共享,软硬件共享1.2因特⽹概述我们先给出关于⽹络,互联⽹,因特⽹的⼀些最基本概念.⽹络:许多计算机连接在⼀起互联⽹:internet许多⽹络连接在⼀起因特⽹:Internet全球最⼤的,开放的,有众多⽹络相互连接⽽成的计算机⽹络(⼀个互联⽹),其采⽤TCP/IP协议因特⽹发展的三个阶段:1.单个⽹络ARPANET向互联⽹发展的过程.1983年,TCP/IP协议成为ARPANET上的标准协议.⼈们把1983年看成是现在因特⽹的诞⽣时间.2.三级结构的因特⽹.分为主⼲⽹,地区⽹,校园⽹(企业⽹).3.多层次ISP结构的因特⽹.ISP称为因特⽹服务提供商.1.3英特⽹组成从⼯作形式上分为两⼤块:1)边缘部分由所连接在因特⽹上的主机组成.这部分使⽤户直接使⽤的.2)核⼼部分由⼤量⽹络和连接这些⽹络的路由器组成,这部分是为边缘部分提供服务的.在往⾥边缘的端系统之间的通信⽅式可划分为两⼤类:客户-服务器⽅式(C/S⽅式)和对等⽅式(P2P⽅式)1.客户-服务器⽅式特征:客户是服务的请求⽅,服务器是服务的提供⽅.服务请求⽅和服务提供⽅都要使⽤⽹络核⼼部分所提供的的服务2.对等连接(peer-to-peer,简写P2P)指两个主机在通信时并不区分哪⼀个是服务请求⽅还是服务提供⽅.因特⽹的核⼼部分1.电路交换从通信资源的分配⾓度来看,交换(switching)就是按照某种⽅式动态地分配传输线的资源.在使⽤电路交换打电话之前,必须先拨号请求连接.这种必须经过”建⽴连接(占⽤通信资源)?通话(⼀直占⽤通信资源)?释放资源(归还通信资源)”三个步骤的交换⽅式称为电路交换.其⼀个重要特点:在通话的全部时间内,通话的两个⽤户是指占⽤端到端的通信资源.2.分组交换分组交换采⽤存储转发技术.把要发送的的整块数据称为⼀个报⽂(message).在发送之前,先把其分为⼀个个⼩的等长数据段.在每⼀个数据段前⾯加上⼀些必要控制信息组成的⾸部(header)后,就构成了⼀个分组(packet),其⼜称为包.分组是在因特⽹中传送的数据单元,分组中的⾸部包含了如⽬的地址和原地址等重要信息,每⼀个分组才能在因特⽹中独⽴地选择传输路径,并最终正确地交付到分组传输的终点.位于⽹络边缘的主机和⽹络核⼼部分的路由器都是计算机,但它们的作⽤却不⼀样.主机是为⽤户进⾏信息处理的,并且可以和其他主机通过⽹络交换信息.路由器是⽤来转发分组的,即进⾏分组交换的.优点:⾼效灵活迅速可靠缺点:分组在各路由器存储转发时需要排队,这就会造成⼀定时延.另外,各分组必须携带的控制信息也造成了⼀定的开销.3.报⽂交换整个报⽂先传送到相邻结点,全部存储下来后查找转发表,转到下⼀个结点.1.5计算机⽹络的类别1.按照作⽤范围分类:⼴域⽹WAN(运⽤了⼴域⽹技术)城域⽹MAN局域⽹LAN(运⽤了局域⽹技术)个⼈区域⽹PAN1.6计算机⽹络性能7个性能指标.速率带宽吞吐量时延时延带宽积往返时间利⽤率1.速率:连接在计算机⽹络上的主机在数字信号道上传送数据位数的速率,单位b/s,kb/s,Mb/s 2.带宽计算机领域中,带宽来表⽰⽹络的通信线路传送数据的能⼒,表⽰单位时间内从⽹络中的某⼀点到另⼀点所通过的”最⾼数据率”数据通信领域中,数字信道所传送的最⾼数据率单位b/s,kb/s,Mb/s3.吞吐量即在单位时间内通过某个⽹络的数据量;单位b/s,Mb/s等4.时延是指数据从⽹络的⼀端传送到另⼀端所需的时间(1)发送时延是主机或路由器发送数据帧所需要的时间发送时延=数据帧长度(b)发送速率(b/s)=数据长度信道带宽(2)传播时延是电磁波在信道中传播⼀定的距离需要发费的时间传播时延=信道长度(m)电磁波在信道上的传播速率(m/s)(3)处理时延主机或路由器在收到分组是要花费⼀定的时间进⾏处理,例如分析分组的⾸部,从分组中提取数据部分.(4)排队时延分组在经过⽹络传输时,要经过许多路由器.但分组在进⼊路由器后要先在输⼊队列中等待处理.在路由器确定了转发接⼝后,还要在输出队列中排队等待转发.这就产⽣了排队延时.5.时延带宽积时延带宽积=传播时延×带宽表⽰这样的链路可容纳多少个⽐特.⼜称以⽐特为单位的链路长度6.往返时间RTT表⽰从发送⽅发送数据开始,到发送⽅收到来⾃接收⽅的确认,总共经历的时间.7.利⽤率信道利⽤率:有数据通过时间(有+⽆)数据通过时间⽹络利⽤率:信道利⽤率加权平均值,D⽹络空闲时的时延,D表⽰⽹络当前的时延,U表⽰⽹络利⽤率D=D0 1?D1.7计算机⽹络体系结构开放系统信息交换涉及的⼏个概念实体(entry):交换信息的硬件或软件进程协议(protrocol):控制两个对等实体通信的规则服务(service):下层向上层提供服务,上层需要下层提供的服务来实现本层功能服务访问点(SAP):相邻两层实体间交换信息的地⽅开发系统胡来年基本参考模型OSI/RM(OpenSystemsInterconnectionReferenceModel)七层应⽤层能够产⽣流量能够和⽤户交互的应⽤程序表⽰层加密压缩开发⼈员会话层服务和客户端建⽴的会话查⽊马netstat–nb传输层可靠传输(要建⽴回话的)不可靠传输流量控制⽹络层IP地址编址选择最佳路径数据链路层输⼊如何封装添加物理层地址MAC物理层电压接⼝标准⽹络排错从底层到⾼层⽹络安全和OSI参考模型物理层安全数据链路层安全ADSL⽹络层安全应⽤层安全SQL注⼊漏洞上传漏洞TCP/IP四层模型应⽤层运输层(TCP或UDP)⽹际层IP⽹络接⼝层综合OSI和TCP/IP的优点,采⽤⼀种五层协议的体系结构应⽤层?应⽤层(传输数据单元PDU)运输层?运输层报⽂⽹络层?IP数据报(IP分组)数据链路层?数据帧物理层?2.1物理层的基本概念物理层解决如何在连接各种计算机的传输媒体上数据⽐特流,⽽不指具体的传输媒体.可以将物理层的主要任务描述为确定与传输媒体的接⼝有关的⼀些特性.机械特性接⼝形状,尺⼨,引脚数⽬和排列2.2数据通信的基础知识⼀个数据通信系统可划为三⼤部分:原系统(或发送端,发送⽅)传输系统(传输⽹络)⽬的系统(接收端,接收⽅)相关术语通信的⽬的是传送消息.数据(data)——运送消息的实体信号(signal)——数据⼆等电⽓的或电磁的表现“模拟信号”——代表消息的参数的取值是连续的“数字信号”——代表消息的参数的取值是离散的码元(code)——在使⽤时间域的波形表⽰数字信号时,则代表不同离散数值的基本波形就形成码元有关信道的⼏个基本概念信道⼀般表⽰⼀个⽅向传送信息的媒体。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
摘要:本文主要介绍我学习使用DM9000以太网模组以及TCP/IP协议过程中的一些心得体会,希望能对接触此模块及网络相关领域的伙伴们提供一些参考。
1 TCP/IP协议体系简单认识简单理解,TCP/IP协议族是一整套把各种系统连接在一起并保证数据数据准确快速传输的规定和格式。
通常我们把TCP/IP协议族抽象成为一种具有四层结构的模型:链路层、网络层、运输层、应用层。
每层各负责一个或一系列独立的功能。
接下来将简单介绍各层的功能。
其中需要注意的一点是——地址标识的概念。
协议族中每一层都会有自己特有的身份识别方式。
如同我们要读取某个存储器单元的数据需要有地址一样,对等的层与层之间也是依靠某些标志性信息识别传输对象的。
这一点在各层的简单介绍中都会提及。
1) 应用层:应用层直接面向用户,必须具有清晰的会话过程。
如常见的HTTP协议、FTP协议等。
直观来说,就是为用户提供有特定的功能的一些应用实例。
2) 运输层:运输层提供的服务可以让应用层的程序或者进程可以通过特定的通道或特定的标志(如端口)获取流入本机的网络数据或者将应用层的数据加上这些特定的标识信息后送入发送队列中。
如,A机器的某个应用程序进程PA需要传输一个文件给B机器的一个应用程序进程PB,则进程PA可以通知运输层需要占用某个端口PortA来进行通讯,并告知其需要送到的目的地址与端口号PortB。
那么,进程PA通过端口PortA写入给运输层的数据就会被准确的传送到目的地B主机的PortB端口。
此时,如果主机B上的进程PB已经将PortB设置为自己的监听端口,那么运输层就会将此数据送给进程PB,从而完成端到端的数据传输。
可以看出,运输层就是依靠这种端到端的身份识别实现的通讯。
TCP协议和UDP协议是该层中的主要协议。
其中,TCP协议是基于连接、确认机制的协议,可以提供可靠的传输服务,两个进程通讯之前必须建立一条TCP连接通道,每次发送数据,对方接收到之后必须回传确认信号以表示数据的接收成功,从而保证数据从某台主机的某个端口准确传输到另一台主机的某个端口;UDP协议提供不可靠的传输服务,它仅提供最大努力的端口到端口的交付服务,并不保证数据的正确,也没有数据到达的确认机制。
3) 网络层:网络层让信息可以发送到TCP/IP网络上的任一主机上,IP协议是该层中传送数据的主要协议。
该层实现了主机到主机的通信,使得TCP/IP网络上任意两台主机之间可以准确传递数据,为上层协议的端到端通信提供了基础。
事实上,站在应用层的角度,TCP/IP网络的几乎所有的数据报都是以IP数据报的形式传递的。
IP协议依靠主机的IP地址传递数据。
另外,网络层还包含另外两个协议:ICMP(Internet 控制报文协议)和IGMP(Internet组管理协议)。
其中,ICMP协议传递差错报文以及一些其他需要注意的信息。
这些差错报文被交付给IP协议或上层协议使用以便实现差错控制等。
4) 链路层:控制着同一物理网络上的不同网络设备之间相互传递数据。
链路层包含网络接口设备的驱动程序以及ARP(地址解析协议)、RARP(逆地址解析协议)等协议,依靠网络设备的硬件地址(MAC地址)传输数据。
它实现的是网络接口设备之间的直接通信。
以太网的数据传输格式如图1所示:图 1 以太网帧格式其中“目的地址”和“源地址”均为网络接口设备的MAC地址;“帧类型”表示数据的类型,如0x0800表示IP数据报,0x0806宝石ARP 请求/应答等;“数据”部分一般是IP数据报文、ARP请求/应答、RARP 请求/应答等。
ARP协议负责将IP数据报中的IP地址转换成实际的网络设备的MAC地址。
因为链路层从网络层得到的数据都是IP数据报,里面仅含有目的主机的IP地址信息,而最终网络接口设备发送数据是要依靠目的设备的硬件地址做为身份标识,故需要该协议的支持,以便将IP数据报准确送到对应的网络接口设备。
RARP协议负责将MAC地址转换成IP地址。
如何理解这个过程呢?实际上,该协议最先主要用在无盘系统启动时候的网络接口配置上。
因为无盘系统不能保存自己的IP地址等信息,当系统启动后,唯一可以得到的是自己的网络接口设备的MAC地址。
然后RARP协议会发送RARP请求报文,以便通知服务器分配IP地址给自己,从而完成网络接口设备的配置。
接下来我们看看网络接口设备发送和接收数据的过程(以DM9000为例):发送的时候:DM9000接收SPCE061A传递的数据(用户填充数据),并在这些数据前面加上一个用于同步的8byte的前导,在后面加上4byte的CRC校验,然后以串行方式将这一串bit流变成物理链路上的传输电平信号发送出去。
当然,这个发送的过程还可能包含许多其他的工作,比如,检测当前物理链路是否空闲,能否允许发送数据;检测当前发送的数据是否与其他设备发送的数据发生碰撞等等。
接收的时候:大多数情况下,DM9000都在不断检测物理链路上的电平信号,从物理链路上拾取信号并转换成bit数据流。
一旦发现接收到的是8byte的前导,则认为接下来是一帧数据的开始。
如果不考虑中间的用户数据的格式,此时DM9000应该一直接收直到这一帧数据接收完毕。
事实是,DM9000在接收的同时会将“目的地址”与自己的MAC地址比对,如果匹配的话,则会继续接收数据,否则,将丢弃该帧数据。
我们再来看一下下面的图2,希望能帮助我们理解数据在各层之间传递的过程以及各层的作用:图 2 数据进入TCP/IP协议栈时的封装过程面向最终用户的实际有用的数据(用户数据)被应用层添加了一些应用层协议规定的控制信息(Appl 首部),然后交付运输层;运输层收到来自应用层的数据,添加一些必要的控制信息(如TCP首部),如应用程序的端口号(以便标识是哪个进程需要发送数据)、目的端口号(以便使远端主机能够根据此端口号找到需要接收此数据的应用程序进程)、必要的连接控制信息等,送入网络层发送;网络层将运输层的数据再次打包,加入源、目的地址、数据包控制信息等,送至链路层转换成实际的可以用于网络接口设备之间通信的数据帧格式发送。
接收数据的过程与此相反。
图3清晰的反应出各层的各个协议之间的数据分用过程:图 3 以太网帧数据在TCP/IP协议栈中的分用过程网络接口设备接收到的与自己的MAC地址匹配的数据帧,根据其帧类型标识,将拆掉以太网帧头和帧尾的数据送至IP协议或ARP协议、RARP协议处理。
如果数据为IP数据报,IP协议将根据首部的协议类型把拆掉IP首部后的数据送入相应的运输层协议或ICMP、IGMP协议处理。
运输层协议(如TCP协议)接收到来自于IP协议的数据,根据其中包含的端口号将该数据送入对应的应用程序进程处理。
该层是与应用层关系最大的,站在编程的角度该层的接口函数也是最为常用和有用的。
大多数情况下应用层都是从该层得到与远端主机的连接请求或通过该层发起连接请求、得到远端主机传递过来的数据或通过该层向远端主机发送数据等。
这里,推荐参考的资料为《TCP/IP协议详解——卷一:协议》与《TCP/IP协议详解——卷二:实现》。
其中,《卷一》站在感性认识的角度介绍了TCP/IP协议族的整个运行体系,有助于我们理解TCP/IP 模型的工作流程,并对应用层编程建立一定的认识。
《卷二》是站在具体编程实现的角度来讲解TCP/IP 协议族。
如果想更好的运用目前工作于嵌入式平台的TCP/IP协议栈来开发自己的应用层协议,建议了解此部分的内容。
2 HTTP协议简单理解(网页交互的实现)HTTP协议是一个简单的应用层协议。
客户进程建立一条同服务器进程的TCP连接,然后发出请求并读取服务器进程的响应。
同时,HTTP协议是一种无状态的协议。
即是说,当一个客户端向服务器端发出请求,然后Web服务器返回响应(response),连接就被关闭了,在服务器端不保留连接的有关信息。
HTTP遵循请求(Request)/应答(Response)模型。
Web浏览器向Web服务器发送请求,Web服务器处理请求并返回适当的应答。
所有HTTP连接都被构造成一套请求和应答。
客户端首先向服务器发起TCP连接请求,服务器端接受这个请求后,客户端和服务器端即建立起一条通信管道。
此时,客户端使用TCP协议向服务器端发送请求报文。
格式大致如下:GET /sample.jsp HTTP/1.1Accept:image/gif.image/jpeg,*/*Accept-Language:zh-cnConnection:Keep-AliveHost:localhostUser-Agent:Mozila/4.0(compatible;MSIE5.01;Window NT5.0)Accept-Encoding:gzip,deflateusername=jinqiao&password=1234这些数据表现在图2中就是的所有内容。
其中的“用户数据”部分可能仅仅是我们输入浏览器的这个地址:“/sample.jsp”,以及一些表征客户端环境的信息,如客户端浏览器版本、操作系统、连接类型等信息。
而HTTP协议的客户端程序(浏览器)则将这些用户信息加上必要的HTTP 协议请求信息后送给运输层的TCP协议发送到远端服务器。
至于TCP协议如何准且可靠的传输这些信息,HTTP协议不需要考虑。
服务器端TCP层接收到这些数据,将其送入HTTP进程处理。
这个处理的过程就是我们做Web Server需要做的工作的一部分。
关于HTTP协议的请求与响应的更多介绍可以参考附录中的“HTTP协议深入浅出”以及“通过HTTP 协议上传文件”,在此不做过多说明。
3 unIP协议栈与HTTP协议开发unIP协议栈是运行于μ’nSP平台的一个精简TCP/IP协议栈。
利用此协议栈我们可以方便的开发基于TCP协议的应用层协议。
简单理解,协议栈提供了将以太网接口设备接收到的以太网数据包进行逐层拆包、分用,将属于特定协议的数据送入该协议处理的一套机制。
有关unIP协议栈的API函数的详细说明请参考附录中的“unIP协议栈API函数说明”。
首先说明一下下面提到的TCP协议控制块的概念。
在一台终端上,往往运行着不止一个基于TCP 协议的网络进程,类似于我们在电脑上同时运行不同的程序。
简单理解,可以将TCP协议控制块看成是对于每个进程的标识。
TCP/IP协议栈接收到以太网数据包后,经过层层解包将TCP数据包分离出来,并根据端口号来识别这个TCP数据包属于哪个TCP协议控制块,并将这个数据包交付给拥有这个协议控制块的进程来处理。
接下来我们就来看一下,我们的TCP服务器应该如何建立起来:首先使用DM9000创建一个网络接口,然后为服务器进程申请一个TCP协议控制块,并将其配置为监听本机80端口(Web服务的默认端口),同时设置好TCP协议接受连接的回调函数。