计算机网络世界(知识扫盲二)
OSI模型
OSI模型提供了一个标准的描述或“参考模型”,用于描述如何在电信网络中的任意两点之间传输消息。
图1.OSI模型
它由七个层组成,每个层描述通信的状态,如以太网。
图2比较了OSI模型与TCP/IP模型及其协议。
图2。OSI与TCP/IP模型的比较
TCP / IP模型
TCP/IP模型由四个层组成。
网络接口层
网络层结合了数据链路层和物理层,包括双绞线、物理层设备(PHY)和以太网介质访问控制器(MAC)。
网络层
Internet层主要由软件实现组成。IP报头由软件计算或生成。
传输层
传输层定义了应该对数据做什么。这个层基于以下两个流行的协议:
UDP是一个非常简单的协议,非常适合流序列(如音频或视频)。
TCP是用于受控连接的高度可靠的主机对主机协议。TCP适用于需要保证交付的应用程序。
应用程序层
应用层包括所有可用的软件实现(如FTP、HTTP、SMTP、DNS等),它们构成了较低层。这些应用程序只能与TCP或UDP的API结合使用,后者构成了传输层的软件实现。
TCP / IP协议
图2的第三列显示了可能的方法(子协议和物理介质)来构建堆栈。例如,FTP、HTTP或SMTP应用程序可以使用TCP、IP、以太网IEEE 802.3和双绞线作为一种方式。
如图2所示,建立了更多的协议。
rfc
RFCs(征求意见)是以太网社区中非常流行的一种管理系统。RFCs描述了许多互联网协议以及通信和网络领域的标准、程序、规则、算法和策略。RFC从推荐开始;经过成功的讨论,它随后被互联网社区批准。该建议发表后,市场将普遍接受。例如,IAB (Internet Architecture Board)的决策总是以RCFs的形式发布。
最重要的协议是:
RFC 768用户数据协议
RFC 793传输控制协议RFC 791 Internet协议
RFC 792 Internet控制按摩协议RFC 826地址解析协议
RFCs是以太网成功的主要因素之一。
以太网的家谱
以太网系谱树(图3)提供了关于类的概述,其中引用了传输介质。这个EE-Note只描述了10Base-T和100Base-TX以太网。
图3。以太网的家谱
光纤中继链路
物理层
本节将深入探讨OSI模型的物理和数据链路层。它还描述了RJ45插孔、磁、以太网电源(PoE)和媒体独立接口(MII)接口。所有的频率都详细的显示给读者提供了信号链在物理层和数据链路层的感觉。
概述
图4详细显示了层1和层2,并描述了PHY的所有子层。有关更多信息,请参阅规范IEEE802.3-2002。
通常,PHYs在第1层工作,以太网mac放在第2层。
图4。PHY和MAC层100 mbit网络
* MII对于10mb /s DTEs和100mb /s系统是可选的,而对于1mb /s系统则不指定。
** PMD仅为100BASE-X指定;100BASE-T4不使用这个层。
***自主是可选的。
MAC和PHY之间的标准连接是媒体独立接口(MII)。在描述PHY任务之后,本文稍后将描述MII接口。对于10Mbit/s网络,PHY与曼彻斯特编码解码机制工作。在100兆比特/秒的网络中,支持任务是4B/5B的编码和解码、置乱、非归零/反转(NRZI)编码和MLT-3转换。自动协商是基于自治的水平,并一直工作。
编码方法
图4 (PHY和MAC层)详细显示了layer 1,它包括PCS、PMA、PMD和自动协商单元。所有这些单位都由物理所支持。的活性成分
仅取决于介质,如10BaseT和100BaseTX(速度)或100BaseTX和100BaseFX(双绞线-光学),等等。
这个EE-Note描述的重点是10BaseT和100BaseTX标准。这些标准使用以下编码机制。
10Mbit/s = Manchester编码100Mbit/s = 4B/5B编码
曼彻斯特:
802.3以太网采用Manchester Phase Encoding (MPE)作为10BaseT系统的支持介质。
一级编码信号的数据位“1”由主时钟倒转信号的一个完整周期表示,与相位编码信号的“0”到“1”上升相匹配(即,前半段为-V,后半段为+V。
从水平编码信号的数据位'0'由主时钟的一个完整的正常周期表示,它给出了'1'到'0'的相位编码信号下降(即,前半段+V,后半段-V。
图5。曼彻斯特编码阶段
图5显示了MPE是如何工作的。图表底部的示例说明了数字比特流10110是如何编码的。
在每个比特中间的转换使同步发送方和接收方成为可能。在任何时刻,它可以处于三种状态之一:传输0位(-0.85V)、传输1位(0.85V)或空闲(0伏特)。有一个正常的时钟信号和一个倒转的时钟信号会导致定期的转换,这意味着即使有一系列0或1,时钟的同步也很容易实现。这导致了高度可靠的数据传输。曼彻斯特编码的主时钟速度总是与数据速度匹配。这就决定了载波信号的频率;因此,对于10Mbit/s以太网,载波是10mhz .[11]
NRZI(PMA层)
随着新的100Base-TX标准的引入,编码方法从曼彻斯特编码转向非归零/反向(NRZI)编码。
逻辑1现在用信号边表示。如果信号极性没有改变,则表示逻辑上为0。
在NRZI中,根据之前的电平,1比特由0伏特或+V伏特表示。如果之前的电压为0伏特,1比特用+V伏特表示;然而,如果先前的电压是+V伏特,1比特将用0伏特表示。0位由先前使用的电压等级表示。这意味着只有1比特可以“反转”电压,而0比特对电压没有影响(无论电压是多少,它都与前一比特相同)。
这可以在以下二进制模式10110和11111的示例中演示。
图6。NRZI编码
注意,1是电压的倒数,0是电压的倒数。这意味着同一二进制模式的编码是不同的,这取决于电压起点。
使用NRZI可以最小化带宽使用,时钟同步需要频繁的电压变化。
对于光纤,功率输出没有问题,可以使用更高的时钟频率。对于铜,NRZI是不可接受的。[1]
4B/5B编码方法(PCS层)
显然,NRZI方法比Manchester编码产生更少的信号边缘。当将比特率从10Mbit/s提高到100Mbit/s时,这种情况是受欢迎的。零数据没有信号边缘,给接收机端时钟同步带来了新的挑战。
为了保证接收端获得最小的信号边缘,数据不直接转换为NRZI形式。更确切地说,每一个4比特的咬一口首先被转换成一个5比特的单词。5位单词提供了25(32)种不同的位模式,而不仅仅是24(16)种。如表1所示,16个模式用于数据编码,另外7个模式具有特殊意义。小于2个1的模式完全不使用。这种所谓的4B/5B编码方案保证每个5位单词至少有两个信号边。
表1。4 b / 5 b编码
如果我们对100Mbit/s系统使用与10Mbit/s系统相同的方法,由于4B/5B编码增加了5,频率将增加到125 MHz。非归零/反向(NRZI)特性的附加实现将最大频率降低到62.5 MHz。
图10显示了所有可能频率的概览(理论上的PHY - tx模式下的PHY框图)。
图7中的数据序列显示了没有转换和扰(即,不作任何改动)。
由于4位数据到5位数据的变化,我们得到了额外的组。这些组要么是16个数据(从0到F),要么是I到H的命令(见表1),所有其他5位组合都是v的无效代码,有些可能是预留的候选代码,以表示未来的新代码。
河流的起点和终点
除了帧分隔符命令(SFD)的开始之外,10Mbit以太网不承认任何其他位星座为数据。使用100Mbit以太网,有更多的控制命令(见表1),可以减少直流部分,同时向线路发送空闲符号“1111”。对于有效数据包的声明,始终嵌入“流的开始”和“流的结束”命令。该增益是减少直流部分的线路和空闲符号将用于同步。图7显示了该行上的完整数据流,其中有空闲符号、流的开始(SSD)、带SFD的序言、MAC层上的数据以及流数据的结束(ESD).[1]
图7。行上的字节,100Mbit/s
MLT3和置乱(PMD层)
100Base-TX在行上使用多级门限3 (MLT3)机制传输数据。从NRZI信号中可以编码三个值(+1、0和-.1),反之亦然。MLT3方法的好处是将NRZI转移频率的一半从62.5 MHz降低到31.25 MHz。
在100Base-TX传输中,需要扰频以减少双绞线上的辐射排放,但扰频器和除扰器在10Base-T操作中禁用
侧流扰码多项式是由物理介质依赖(PMD)产生的,它有以下方程
gM (x) = 1+ x13 + x33为主gM (x) = 1+ x20 + x33为从gM
利用线性反馈移位寄存器实现了主从侧流式置乱器。要实现此功能,请参考您最喜欢的PHY.[12]的数据表
比较Manchester Code, 4B/5B Code, MLT-3
所有位都将通过NRZI、MLT-3和置乱方法进行转换;因此,你不能在线路上测量它(例如,用示波器)。
图8。曼彻斯特对nrzicode [9]
曼彻斯特代码在信号的每一个比特之后都改变了它的值。NRZI代码也做了同样的事情,它的有限的后续零数量改变了比特的确定性。4B/5Bit编码方法仅使用两个后续零豁免的“流的开始”(见表1)。
NRZI和MLT-3方法的结合再次降低了频率,使最大频率降至31.25 MHz。
使用这些编码方法的行为,时钟恢复总是可能的。因此,对于10/100Mbit/s网络(曼彻斯特或4B/5B与MLT-3),不需要额外的时钟源。
造成10/100Mbit/s以太网链路性能问题的最常见原因之一是,链路上的一个端口以半双工方式运行,而另一个端口以全双工方式运行。
CSMA / CD
CSMA/CD由PHY支持,在多路访问时需要联网。
如果有交通,载波感应控制线路。如果CS检测到线路是免费的,可以开始数据传输。
如果其他设备同时启动,MA被设计成产生一个稳定的网络。以太网网络的设计使多路访问变得正常。
CD检测到这个多重访问,等待一个时间(随机数),并给出命令重新启动新的数据传输过程。
模式:半双工和全双工
半双工
半双工是一种使用CSMA/CD支持局域网(LAN)的操作模式,在局域网中,数据终端设备(DTEs)争夺对共享介质的访问权。在半双工模式的CSMA/CD LAN中,多个同时传输会导致干扰,这需要通过CSMA/CD访问控制协议来解决。
全双工
全双工是支持IEEE 100中定义的双工传输的网络或物理介质附件(PMA)的操作模式。在本标准的范围内,这种操作模式允许两个工作站同时通信,
只要物理层能够支持不受干扰的同时传输和接收(不含CSMA/CD)。
在这些IEEE规范中描述了不同的模式:
半双工:10mbit /s (IEEE 802.3)
全双工:100mbit /s (IEEE 802.3u)
全双工:千兆以太网(IEEE 802.3ab)
全双工传输是全部四对吗
自动协商
自动协商功能根据连接伙伴的能力自动将PHY配置为最优的链接参数。自那时起,标准802.3-2002第28条中定义的双绞线自动协商系统被扩展到包括双绞线上支持的所有三种以太网速度:10Mbit/s 10Base-T、100Mbit/s 100Base-TX和1000 Mbit/s 1000Base-T。三个双绞线对系统的物理信令部分使用相同的自动协商信令标准。虽然在10Base-T和100Base-TX链路上可以禁用自动协商,但是在1000Base-T系统上需要禁用自动协商,因为千兆以太网系统使用自动协商来建立使链路运行所需的主从信号定时控制。
图9。链接脉冲
有了自动协商,双对以太网的所有三种速度都可以确定一对“链路伙伴”之间支持的公共选项集。双绞线的伙伴可以
例如,使用自动协商来计算它们各自支持的最高速度,如果两端都支持该模式,则自动设置全双工操作。
自动协商使用快速链路脉冲(FLP)信号进行。这些信号是用于验证链路完整性的普通链路脉冲(NLP)信号的修改版本。FLP信号在通电时自动生成,或者通过自动协商设备的管理界面手动选择。FLP信号用于发送有关设备功能的信息。自动协商协议包含基于此信息的设备配置规则。[10]
自动协商优先
如果两个具有多种功能的自动协商设备连接在一起,它们会发现基于优先级表2的最高性能操作模式,因为这两个变体都与第一个脉冲兼容。
优先级列在表2中,从高到低排列。全双工操作模式比原来的半双工以太网优先级更高,因为全双工系统比以相同速度运行的半双工链路能发送更多的数据。因此,如果连接两端的设备都能支持全双工操作,并且两者都支持这种自动协商功能,他们将自动配置自己为更高性能的全双工模式。
表2。自动协商优先解决
自动协商协议包含一组优先级,这些优先级导致设备选择它们最高的通用能力集。例如,如果链路上的两个设备都支持10Base-T和100Base-TX,那么两端的自动协商协议将使用100Base-TX模式连接,而不是10Base-T.[10]
物理量的理论框图
MII和PHY信号链包含一些不同的频率和数据转换。图10显示了所有可能的频率以及所有数据块的变化。这只是一幅理论图,但总体上代表了100Base-TX数据流的信号链。
图10。100Base-TX模式下的理论物理量方框图
与mii兼容的PHY的寄存器
每个PHY都有多个寄存器用于它的配置。这些寄存器分为符合IEEE的寄存器和特定于供应商的寄存器。例如,前16个寄存器是符合IEEE的,但是它取决于支持的特性包括多少个寄存器。这对于特定于供应商的寄存器也是有效的;这意味着所包含寄存器的数量取决于设备支持的功能。通常,特定于供应商的寄存器从地址16到地址32开始。
寄存器可通过MII接口使用站管理插脚访问。它是一个具有时钟(MDC)和数据(MDIO)线的同步串行接口。有关更多信息,请参阅EE-Note后面的MII接口。
指示灯
PHY可以用led显示系统的状态。通过设置适当的寄存器,led将显示有用的系统信息(例如,表示速度、链路、传输、接收、碰撞、双工状态等)。
一些PHYs双工这些引脚与PHY地址,以减少引脚计数。在这种情况下,内部逻辑会在启动/重置期间找出PHY地址。
RJ45和双绞线
图4所示的介质依赖接口(Medium Dependent Interface, MDI)采用双绞线或光缆作为传输介质。RJ45千斤顶与绞合电缆配合使用,因其柔韧性好,价格高,速度快,经久耐用。由于光学开关、光缆等方面的需求,光学变型更加昂贵。
图11。RJ45连接器
RJ45连接器是为全双工传输而设计的,这意味着同时传输传输和接收数据。这是可能的,因为连接器有两对导线,并且一个方向总是需要一对导线(差分电压原理)。图11详细显示了RJ45 jack
交叉电缆
两个设备(如服务器和客户端连接)之间的直接连接需要一根交叉电缆,不需要开关。图12显示了普通电缆和交叉电缆的引脚和颜色描述。有了这些颜色,就很容易区分普通电缆和交叉电缆。例如,两台pc之间的直接连接(或一些集线器连接)需要交叉电缆。导线是交叉的,因此传输接口可以到达接收接口,反之亦然。
图12。交叉电缆与普通电缆
使用双绞线有什么好处?
该系统基于差分电压原理。这意味着数据被分成两个信号。双绞线是传输介质。最后,比较器电路将信号组合在一起。下式表明噪声将被消除。
图13。双绞线的原理
(数据(+)+(+噪音))-((拼)-(+噪声))= 2 x数据
双绞线产生放大后的数据信号,噪声不影响数据质量。
10Mbit和100Mbit以太网可以使用相同的双绞线吗?
网络结构设计为10Mbit/s和100Mbit/s以太网使用双绞线。这是可能的,因为协议改变为4/5编码,增加了100Mbit/s以太网的NRZ-I和MLT-3转换,因此,工作频率在线路上下降到额定31.25 MHz。
磁学
IEEE标准要求每个RJ45连接器都有隔离磁。这种磁隔离和偏移信号电压从MAC和RJ45,以保护MAC和其他设备(如开关)在线路上被高电压损坏。一些RJ45千斤顶已经包括磁性的。例如,光环电子提供FastJack™连接器与集成的高性能磁学。这些连接器有一个小型的行业标准连接器设计和工作在一些EZ-KIT精简子卡。图14显示了集成磁性材料的RJ45连接器的pin描述
图14。磁学的RJ45连接器(光环FastJack™系列)
通过以太网供电
以太网电源(PoE)适用于低功耗设计的系统(如网络摄像头和传感器)和指定的最大供电电压48 V dc (IEEE802.3af)。PoE系统包含电力采购设备(PSE)和电力设备(PD),建议最大电缆长度为100米。最大功耗为15.4 W,每台设备的最大电流为350 mA。建议使用RJ45千斤顶的CAT-5电缆类型。PoE是可能的,因为RJ45千斤顶的两个引脚对被保留在10BaseT(10兆比特/秒)和100BaseTX(100兆比特/秒)系统中。这四个引脚将用于PoE,如图15所示
图15。POE连接图
电阻功率发现
电阻功率发现是一种保护PDs的方法,而PSE则定期控制25k欧姆终端电阻和当前电流的线路。如果最小电流小于5ma - 10ma, PSE会识别这是不插电的PoE设备,并立即停止电源支持。
表3。功率图
MII接口
媒体独立接口(MII)是一个18引脚的接口,设计用于在10Mbit和100Mbit以太网网络中PHY和MAC层之间的通信。收发信机(PHY)可以直接连接或与电缆和连接器(最大距离为50cm)。
MII连接器:尺寸和类型:
该标准描述了MII的一个微型d型连接器,它有40个引脚,50毫米x15毫米。图16显示了这个连接器。有关此连接器的详细描述,请参阅IEC 1076-3-1001:1995。
图16。Miniature-D MII连接器
表4显示了一个超小型d连接器的引脚描述。
表4。MII连接器引脚说明
图17。MII描述
以太网MAC的标准MII接口(图17)有三个块(传输、接收和管理)。管理块仅用于配置PHY,其他块用于数据传输,如10BaseT(10兆比特/秒)和100BaseTX(100兆比特/秒)标准中定义的那样。
TX_CLK信号是由PHY生成的。协调子层在MAC子层每组4个数据事务后生成TXD[3:0]和TX_EN信号,请求在物理介质上传输4个数据位或停止传输。PHY与调节子层之间通过RX_CLK信号实现同步(参见IEEE802.3)。
以太网MAC与外接PHY之间的数据传输方向各为4位(小点),时钟频率(TCLK和RCLK)为:
收发器有两个用于通信的状态信号:传输启用(TX_EN)和传输错误(TX_ER)。这些信号如表5所示。
表5。传输状态信号
另一方面,接收接口有更多的状态信号,如表6所示。
表6所示。接收状态信号
RMII (reduce MII)仅使用两条数据线进行传输(TXD[1:0])和两条数据线进行接收(RX[1:0])。这需要两倍的转化率:
协议结构
层的概述
本节将深入探讨以下几层的结构和描述:
图18。标题结构和前言
要理解以太网数据流,必须知道每个层都有自己的头和数据结构。所有实现的层都分析或生成头和传递
这取决于堆栈是处于接收模式还是传输模式。
在传输模式下,堆栈从上层获取数据,并围绕此构建其头文件。然后它将这些信息传递给下层,下层执行与上层相同的过程,以此类推。
在接收模式下,层从底层获取数据,分析数据,提取数据,并将其传递到上层,以此类推。
对于当前层,灰色字段总是数据(参见图18)。由于概述和理解,它仍然使用标题名进行描述。
物理层
图19显示了前言长度。它包含8个字节来准备数据流。前7个字节提供PHY和第8个字节(SFD)的同步。位组合“11”表示值数据的开始。
在物理层中,DST字段(MAC header)的前面是一个7字节的前导和帧分隔符(SFD)的1字节开始。
图19序言
MAC头
图20。MAC头
图20描述了MAC头的长度。在14字节的MAC头中,前六个字节是目标地址,后六个字节是源地址,最后两个字节包括服务的长度或类型。以太网II将此字段用于类型信息(注意,IEEE802.3-2002标准为长度信息保留了此字段)。这两帧之间的区别非常明显,因为0-1500的数字是长度数字,与IEEE802.3-2002相关。1500以上的数字与以太网II有关。表7提供了流行协议的概述。
表7所示。概述的TYP/长度字段在MAC头[13]
MAC层的预告片
拖车字段(图21)包含FCS字段和扩展字段。这包括
验证数据流的校验和。拖车的循环冗余校验(CRC)长度字段为4字节,由MAC.[8]生成
通常,扩展字段的内容为零,除非minFrameSize小于slotTime(参见图22)。
图21。物理层拖车
帧检查序列(FCS)字段
传输和接收算法使用循环冗余校验(CRC)为FCS字段生成CRC值。帧检查序列(FCS)字段包含一个4- 8位(32位)循环冗余检查(CRC)值。此值作为源地址、目标地址、类型/长度和数据(即,除前言、SFD、FCS和扩展之外的所有字段)。编码由以下多项式定义。
G(x) = x32 + x26 + x23 + x22 + x16 + x12 + x11 + x8 + x7 + x5 + x4 + x2 + x + 1
数学上,给定坐标系对应的CRC值,定义如下:
1.帧的前32位被补全。
2.这个坐标系的n位被认为是n - 1次的多项式M(x)的系数。
(目标地址字段的第一个位对应x(n-1)项,数据字段的最后一个位对应x0项。)
3. M(x)乘以32,除以G(x),产生一个余数R(x)程度≤31。
4.R(x)的系数被认为是一个32位序列。
5.对位序列进行补全,得到CRC。
CRC值的32位被放在frame check sequence字段中,因此x31项是前一个八隅体的最左位,x0项是最后一个八隅体的最右位。(因此,CRC的位按x31、x30、……、x1、x0的顺序传输)。有关详细信息,请参阅IEEE802.3-2002规范。
帧检查序列验证
FCS验证与FCS生成本质上是相同的。如果传入帧的位(不包括FCS字段本身)不生成与接收到的CRC相同的CRC值,则发生错误,框架被标识为无效。
扩展字段
扩展字段在FCS字段之后,由一系列扩展位组成,这些扩展位很容易与数据位区分开来。字段的长度在0到(slotTime-minFrameSize)位之间,包括在内。扩展字段的内容不包含在FCS计算中。这些扩展位是必需的,因为CSMA/CD媒体访问机制要求传输最小帧长度的minFrameSize位。如果
其中的slotTime小于minFrameSize
CSMA/CD以八字节为单位附加额外的比特。载波扩展只在半双工模式下使用。
当slotTime小于时,扩展字段的长度可能大于零
minFrameSize。在所有其他条件下,扩展字段的长度都为零。为
详细信息,请参阅IEEE802.3-2002规范。
图22。载流子延长架
无效的MAC帧
如果MAC框架满足以下条件之一,则视为无效:
帧长度与长度/类型字段中指定的长度值不一致。如果length/type字段包含超过1536 (0x600)的类型值,则认为框架长度与该字段一致,因此不应将其视为无效的框架。
它不是长度为8的整数倍。
传入帧的位(不包括FCS字段本身)不会生成与接收到的值相同的CRC值。无效MAC帧的内容不能通过MAC控制子层。无效MAC帧的出现可能会被告知网络管理。[12]
图23。数据流字节
网络层
地址分辨协议
OSI模型的第三层也包括ARP,它是基本网络系统的一部分。ARP通过堆栈组织MAC地址组。堆栈表包含具有熟悉的mac地址的IP地址。系统管理员指定MAC地址的存在时间(停留时间)。在堆栈中停留的时间是有限的,通常是两天。当这一次到达时,MAC地址及其IP地址将被删除。通过这种行为,堆栈总是被最小化。
基本功能如下所示。如果有人以“URL”开始请求,MAC地址通常不为人所知。在名称服务器的帮助下,“URL”被分解为IP地址,但报头仍然不包含MAC地址;相反,值0xFFFFFF被放在它的位置。接下来,路由器开始向IP地址显示的子层广播,每个设备在这些子层中接受这个请求。只有正确的设备能够识别这个请求(因为它的IP地址是合适的)并返回它的IP和MAC地址。[5]
ICMP (Internet控制消息协议)
通常,ICMP消息报告数据报处理中的错误,并使用IP的基本支持,就好像它是一个更高级别的协议一样。然而,ICMP实际上是IP的一个组成部分,必须由每个IP模块实现,ICMP从网关到主机(以及主机之间)用于报告错误并提出路由建议
IP(互联网协议)
图24。IP报头
版本:4位
Version字段指示Internet标头的格式。这个文档显示了版本4。
IHL:4位
Internet报头长度是32位单词中Internet报头的长度;因此,它指向数据的开始。注意,正确的标头的最小值是5。
服务类型:8位
服务类型提供了所需服务质量的抽象参数的指示。这些参数将用于指导通过特定网络传输数据报时实际服务参数的选择。
总长度:16位
总长度是数据报的长度,以八字节为单位,包括Internet头和数据。这个字段允许数据报的长度达到65535个字节。对于大多数主机和网络来说,这样长的数据报是不切实际的。所有主机都必须准备好接受多达576个字节的数据报(无论它们是完整到达还是进入片段)。建议主机只发送大于576字节的数据报,前提是它们确信目的地准备接受较大的数据报。
标识:16位
这是发送方为帮助组装数据报片段而分配的标识值。
国旗:3位
表9所示。各种控制标志片段偏移:13位
此字段指示此片段在数据报中的位置。
活下来的时间:8比特
此字段表示允许数据报停留在Internet系统中的最长时间。如果该字段包含值为0,则必须销毁数据报。
协议:8位
此字段指示Internet数据报数据部分中使用的下一级协议。各种协议的值用“指定的数字”来指定。
头校验和:16位
这只是头上的校验和。由于一些标头字段会发生变化(例如,生存时间),因此在处理Internet标头的每个点上都会重新计算和验证。
校验和算法
校验和字段是报头中所有16位单词的补码和的16位补码。
源地址:32位
例如,类A,本地主机;127.0.0.0
目标地址:32位
例如C类;192.168.0.0到
TCP/IP(传输控制协议和互联网协议)
TCP是一种高度可靠的主机对主机协议。它运行在IP之上,并在发送方和接收方之间提供面向连接的服务。TCP提供了有保证的传递,确保包按顺序传递。底层网络IP非常不可靠,不为TCP提供任何保证。为了在发送方和接收方之间提供可靠性,TCP使用各种机制,如***、确认、三向握手和计时器。表10列出了所有状态。图25详细描述了状态机。
表10。TCP状态
图25显示了在RFC793中描述的TCP连接状态图。箭头是必需的方向,其描述符号表示IP报头的控制位,如图24所示。只有控制位和正确的确认号才有可能到达下一个状态。这个确认号也包括IP报头。
图25。TCP状态图
下一节介绍握手机制的原理。
三方握手
大多数网络协议遵循传统的三向握手方式,在不可靠的链路上建立或终止连接。“A”通过发送消息启动到“B”的连接。“B”回答时表示感谢。此时,“A”向“B”发送另一条消息,确认“A”收到了“B”的确认。当“B”收到第二个消息来自“A”(确认B的ACK)、“A”和“B”连接成功。TCP使用三向握手来建立连接和终止连接。当主机“A”和“B”想要使用TCP进行通信时,它们必须使用三向握手建立连接。终止或关闭连接也使用三方握手执行。
两端的主机使用ip地址和端口号的组合来标识它们与另一端的TCP连接。在接收到远程主机的第一个段创建了一个表条目,其中包含标识连接所需的所有参数。
连接设置
TCP使用三种方式握手来建立成功的连接。当主机“A”想要打开到主机“B”的连接时,“A”向“B”发送一个初始段。此初始段具有“B”向“A”发送数据所需的初始***。这个初始段由TCP报头中的SYN位设置为1来标识。如果设置了SYN位,则将报头中的32位***解释为“不是”。在所有其他情况下(当SYN位未设置时),32位***标识该段中包含的第一个数据字节的***。收到“A”发送的SYN信号后,“B”必须用另一个SYN信号进行响应,并确认“A”发送的SYN信号。这由状态机图中的SYN+ACK表示。
图26。初始连接建立
连接释放
TCP中的连接释放也使用三向握手。连接释放使用FIN代替同步机。
图27所示。TCP中的连接释放
一些TCP/IP堆栈在发送重置位时释放连接的方式不同。这导致命令释放该连接并立即再次移动到关闭状态。
TCP计时器
计时器与TCP状态紧密连接。一些值(但不是全部)是由RFC指定的。有些计时器对个别实现开放。本文档将检查与讨论相关的计时器,包括连接建立时的计时器和连接终止时的计时器。
连接建立计时器
此计时器与连接的打开相关联。在初始连接设置期间发送SYN时启动。在大多数TCP实现中,这个计时器的值设置为75秒。如果超时发生,连接将中止。
FIN_WAIT计时器
当从FIN_WAIT_1状态转换到FIN_WAIT_2状态时,将启动FIN_WAIT_2计时器。这个计时器的值是10分钟。在FIN_WAIT_2状态中预期会有一个具有FIN位集的TCP段。如果接收到带有FIN位设置的数据包,则计时器将被取消。计时器到期时,它将以75秒的值重新启动。如果没有包
当FIN的数据位在此期间到达时,连接中断。
TIME_WAIT计时器
当连接进入等待时间状态时,将启动等待时间计时器。这允许从网络中删除所有在运输中的部分。计时器的值通常设置为2分钟。计时器到期时,连接终止。
KEEP_ALIVE计时器
通常,当没有数据要发送时,TCP不会通过连接传输任何内容。没有办法将这种沉默与断开连接时的情况区分开来。可以设置一个keep-alive计时器,以便TCP定期检查连接的另一端是否仍然活动。这个计时器的默认值是2小时。计时器过期后,探测器被发送到远程端。如果远程不响应探测,则断开连接。
TCP状态机的问题
TCP状态机如图25所示,所有连接的状态都是固定的。每个连接逻辑上从关闭状态开始,并进行转换,如图所示。连接终止后,TCP返回到关闭状态。有关状态机的详细描述,请参阅RFC 793。很容易利用状态机中的一些缺陷,并创建拒绝服务攻击。所有拒绝服务攻击都试图使TCP状态机处于一种特定的状态,不是无限期就是有限的时间
TCP数据报结构
图28。TCP报头
标准的TCP报头包含20字节,但是可以通过“选项”字段增加到最多60字节。
源端口:16位
这是源端口号。
目的端口:16位
这是目的端口号。
***:32位
这是该段中第一个数据八位元的序号(SYN除外)。如果有SYN,序号是初始序号(is),第一个数据八位是+1。
确认号码:32位
如果设置了ACK控件位,则该字段包含段的发送方希望接收。一旦建立了连接,就会发送该连接。
数据偏移量:4位
这是TCP报头中32位单词的数量。它指示数据从哪里开始。TCP报头(甚至包括选项)是一个32位的整数。
保留:6位
这些都是为将来使用预留的,并且必须为零。
控制位:6位(从左到右):
URG:紧急指针字段显着
ACK:确认字段重要的PSH: Push函数
重置连接
同步***FIN:没有来自发件人的更多数据
亮点:16位
这是数据八位元组的数量,以在确认字段中表示的数据八位元组开始,这个段的发送者愿意接受这个八位元组。
校验和:16位
校验和字段是头和文本中所有16位单词的补码和的16位补码。如果段中包含奇数个要校验和的头和文本八位元,那么右边最后一个八位元将用零填充,以形成一个16位的字元来进行校验和。该发射台不作为部分部分传输。在计算校验和时,校验和字段本身被替换为零。
紧急指针:16位
此字段将紧急指针的当前值作为与此段***的正偏移量进行通信。紧急
指针指向紧急数据后面的八位字节的序号。此字段仅在使用URG控制位集的段中解释。
选择:变量
选项可能占用TCP报头末尾的空间,是长度为8位的倍数。所有选项都包含在校验和中。
UDP
用户数据报协议(UDP)只提供最小的传输服务、非担保的数据报传递,并让应用程序直接访问IP层的数据报服务。UDP被那些不需要TCP服务水平或者希望使用TCP无法提供的通信服务(例如,多播或广播传输)的应用程序使用。
UDP几乎是一个空协议;它通过IP提供的唯一服务是数据的“校验和”和端口号的多路复用。因此,在UDP上运行的应用程序必须直接处理端到端通信问题,这些问题是面向连接的协议在需要时能够处理的(例如,为可靠的交付而进行的重传、“包化”和重新组装、流控制、避免拥塞等)。IP和TCP之间相当复杂的耦合将反映在UDP和许多使用UDP.[2]的应用程序之间的耦合中
UDP数据报的结构
图29。UDP头源端口
源端口是一个可选字段。有意义时,它指示发送进程的端口。
目的端
目的端口在特定Internet目的地地址上下文中具有含义。
长度:
长度是这个用户数据报的八字节长度,包括这个头和数据。(这意味着长度的最小值是8。)
校验和
校验和是IP报头、UDP报头和数据的伪报头的补和的16位的补和,在最后(如果必要的话)填充0个八位,以使两个八位的倍数。
应用程序层协议
随着越来越多的新兴应用程序的出现,不同的需求和各种各样的互联网协议应运而生。例如,FTP用于数据传输,HTTP用于显示某些Web页面,SMTP用于发送电子邮件。图2仅仅显示了几个应用程序协议,因为由于应用程序的多样性,所有协议的列表在这里没有任何意义。通常,您可以区分服务器应用程序和客户机应用程序。服务器被描述为守护进程(例如HTTPd),而客户端通常不包含字符“d”(例如HTTP)。这一点很重要,因为服务器和客户机必须理解相同的协议,但是它们的任务非常不同。一般来说,服务器需要服务更多的客户端;作为一个管理系统,服务器应该提供信息的来源,就像一种数据库,有文件系统等等。因此,源代码的大小比客户机应用程序大。
以下是一些有用的超链接,可以帮助您设计以太网应用程序:
参考文献
[1]数据编码技术(http://www.rhyshaden.com/encoding.htm)。东苏塞克斯的里斯·哈登。
[2]用户数据报协议(RFC 768)。1980年8月。ISI 28。
[3]互联网控制消息协议(RFC 792)。1981年9月。J. Postel,网络工作组。
[4]传输控制协议(RFC 793)。1981年9月。南加州大学信息科学研究所。
[5]以太网地址解析协议(RFC 826)。1982年11月。David C. Plummer,网络工作组。
[6] TCP/IP安全(http://www.linuxsecurity.com/resource_files/documentation/tcpip-security.html)。卫报数字,公司[7]RFC源代码书
[7] (http://www.networksorcery.com/enp/default0602.htm)。网络巫术
[8]以太网引用(http://www.geocities.com/SiliconValley/Haven/4824/ethernet.html)。威廉·f·亚历山大。[9] Grundlagen Computernetzwerke (http://www.netzmafia.de/skripten/netze/)。
于尔根·普兰特,慕尼黑应用科学大学。
[10]自动协商(http://www.ethermanage.com/ethernet/autoneg.html)。司布真Bellereti。
[11]数据通信原理:曼彻斯特相位编码(http://www.it.jcu.edu.au/Subjects/cp3070/2002-)
2 /资源/讲座/ 2 _directlinknetworksnotes - 2. - pdf)。詹姆斯库克大学信息技术学院。
[13]以太网。2002年1月。Jorg Rech, Verlag Heinz Heise。
[14]FastJack™单独的端口10/100BASE-TX RJ45连接器。
[15]LAN83C185数据表。牧师0.8,2004年11月。SMSC。
[16]黑鳍处理器硬件参考。Prelim Rev 1.1, 2005年1月。模拟设备公司。
[17]以太网网络接口ADSP-BF535黑鳍处理器(EE-214)。2003年12月。模拟设备公司
[18]L80227 10BASE-T/100BASE-TX Ethernet技术手册。2002年10月。大规模集成电路逻辑公司。
网络嗅探器
这个工具准确地显示了网络流量的数据。这对于使用二进制文件的人来说是非常理想的。
o http://www.ethereal.com是一个免费的Windows和Unix软件TCPDUMP
o http://www.tcpdump.org, Unix WINDUMP的免费网络分析器
o http://netgroup-serv.polito。它/windump/,一个免费版的tcpdump用于Windows机器分析器
o http://analyzer.polito。免费的Windows软件(Netgroup, Pilotecnico di Torino)
RFC源书
这些网页对于搜索rfc非常有用。通常,您会发现每个RFC的一小部分描述,以及原始版本的下载. txt文件。
o http://www.rfc-editor.org
o http://www.networksorcery.com
图及表参考
数据
1 -以太网历史
比较OSI和TCP/IP模型3 -以太网的历史
4 - PHY和MAC层100 mbit网络5 -曼彻斯特相位编码
6 - NRZI编码
7 -行字节,100Mbit/s
8 -曼彻斯特对nrzicode[9] 9 -链路脉冲
10 - 100Base-TX模式11- RJ45连接器的理论物理量框图交叉电缆与普通电缆13 -双绞线的原理
14 -磁学的RJ45连接器(光环FastJack™系列)
15 - PoE连接
16 -微型d MII连接器17 -描述MII