当前位置: 首页 > news >正文

常用网站推广方法的适用性旅游网站建设经济评价

常用网站推广方法的适用性,旅游网站建设经济评价,排名点击软件怎样,双语版网站引导页目录 1. 以太网协议 1.1 MAC地址 1.2 以太网帧格式 2. 局域网转发原理 2.1 数据碰撞和交换机 2.2 最大传输单元MTU 3. ARP协议 3.1 ARP协议格式 3.2 模拟APR协议工作过程 3.3 ARP缓存表 4. 重看TCP/IP四层模型 本篇完。 1. 以太网(MAC帧)协议 网络层的IP协议并不是…目录 1. 以太网协议 1.1 MAC地址 1.2 以太网帧格式 2. 局域网转发原理 2.1 数据碰撞和交换机 2.2 最大传输单元MTU 3. ARP协议 3.1 ARP协议格式 3.2 模拟APR协议工作过程 3.3 ARP缓存表 4. 重看TCP/IP四层模型 本篇完。 1. 以太网(MAC帧)协议 网络层的IP协议并不是将数据报直接发到了网络中而是将数据报继续向下交付交付到了数据链路层。 如上图所示每一个红色的圈就是一个局域网假设现在主机A要将数据发送到主机D这个数据要经过多个局域网要一跳一跳到达主机D。 所以说网络传输的本质就是多个局域网子网转发的结果。 数据链路层负责数据在一个局域网中的传送我们主要研究数据链路层的以太网协议也被叫做MAC帧协议。 一个局域网中有多台主机这些主机之间通过以太网等网络连接进而可以直接通信 如上图所示便是局域网通信示意图多台主机处于一个局域网中通过以太网连接主机名称从MAC1~MAC7其中MAC1是该局域网的入口路由器也可以看成是一台主机因为它也有网卡具有网络通信的能力。 “以太网” 不是一种具体的网络而是一种技术标准既包含了数据链路层的内容也包含了一些物理层的内容。以太网规定了网络拓扑结构访问控制方式传输速率等而且网线必须使用双绞线传输速率有10M, 100M, 1000M等。以太网是当前应用最广泛的局域网技术和以太网并列的还有令牌环网无线LAN等。 不管是什么类型的网络都是用来组成局域网进行网络通信的。 1.1 MAC地址 每台主机都至少有一张网卡每个网卡都有一个唯一的序列号sn这个序列号被叫做MAC地址Medium Access Control媒体访问控制该地址全球范围内具有唯一性。 MAC地址是一个6字节的十六进制序列号形如1A:2B:3C:4D:5E:6F。 我们不是已经有了IP地址了为什么还要有MAC地址呢 IP地址描述的是整个数据传送过程中的起点和终点。MAC地址描述的是数据传送过程中每一跳一个区间的起点和终点。 IP地址指引着方向MAC地址则是投石问路一步一步来比如现在要从北京到上海路途中会经过石家庄南京苏州…等地这个过程中上海就相当于IP地址途中经过的城市就相当于MAC地址。 具体在网络中IP地址就是目标主机MAC地址就是两个相连路由器只有一跳一跳经过多个路由器数据才能被送到目标主机。 MAC地址严格来说并不需要全球唯一只需要保证同一个局域网中的唯一性即可。 但是制造厂商在制造的时候将其设置成了全球唯一主要是因为网卡制造厂商非常多无法保证不同厂商制造的网卡不会出现在同一个局域网中所以就直接一刀切了让MAC地址成为全球唯一。 不同厂商可用的MAC地址参照了子网划分的方式保证不同厂商之间的MAC地址不会重复。 1.2 以太网帧格式 上图所示MAC帧协议格式与之前的TCP/UDP以及IP协议相比简单了许多报头只有三个字段 源地址和目的地址是指网卡的硬件地址MAC地址长度是48位是在网卡出厂时固化的不可以修改。帧协议类型字段有三种值分别对应IP、ARP、RARP也就是向上交付时要交付的协议类型。帧末尾是CRC校验码用来校验数据是否正确和校验和是一样的作用。 如上图类型0800表示要分用给IP协议0806表示要分用给ARP协议8035表示要交给RARP协议后两个协议在后面会介绍。 MAC帧协议同样要面临解包和分用的问题它非常的简单粗暴采用的是定长报头的方式。 目的MAC地址是6字节大小源MAC地址也是6字节大小帧协议协议类型字段2字节大小末尾校验和CRC是4字节大小有效载荷的大小是46~1500字节。 所以在解包的时候从整个数据帧读取前14个字节然后再从最后读取4个字节剩下的就是有效载荷如此就完成了解包过程。 在分用的时候根据帧协议类型交给对应的上层协议即可如0800就交给网络层的IP协议去处理有效载荷。 2. 局域网转发原理 如上图所示主机MAC1发了送一个数据帧给MAC7当数据从IP层交给数据链路层后数据链路层给数据报加上了报头成为了数据帧然后发送出去这次是真正的发送出去数据帧在网线中跑。 而局域网中存在多台主机这些主机都和以太网相连都能够看到以太网故而也能看到以太网中跑的数据。 网络通信本质上就是进程间通信而网络就是临界资源。 所以局域网中的所有主机都能收到主机MAC1发送的数据每台主机在收到数据后数据链路层会对比数据帧报头中的目的MAC地址如果和自己的MAC地址相同则进行解包分用交给下一层。 如果数据帧报头中的目的MAC地址和自己的MAC地址不符那么直接在数据链路层就丢弃该数据上层根本不知道曾经有过这个数据。 2.1 数据碰撞和交换机 上图中主机MAC7在数据链路层对比发现报头中的目的MAC地址和自己的MAC地址相同所以进行解包分用交付给网络层然后再逐层交付到应用层。 应用层在处理完以后将响应封装并向下交付最终交付给数据链路层此时数据链路层将MAC1作为目的地址将MAC7作为源地址打包成数据帧后发送到以太网中数据帧如下图 同样的以太网中的所有主机的数据链路层都能收到MAC7的响应数据只是发现目的地址和自己不符丢弃了最终只有主机MAC1接收了该响应并解包分用给上层。 既然主机MAC1可以发送数据那么其他主机也可以发送数据。而以太网又是一个共享资源多台主机同时向以太网中发送数据也会导致数据不一致问题体现在以太网中就是数据碰撞。 数据在以太网中是以光电信号的形式传输的也就是一段波。当不同的光电信号发生碰撞时就会产生波的叠加或者衰减导致原本的光电信号发生变化进而导致数据传输出错。 而令牌环网就是为了解决数据碰撞产生的在局域网中存在一张令牌只有持有令牌的主机才能向网络中发生数据就像我们多线程中的互斥锁一样。 但是主流的网络仍然是以太网以太网采用碰撞检测和碰撞避免的算法来避免碰撞带来的影响。 假设主机MAC1发送了一个数据帧主机MAC7也发送了一个数据帧互相发送给对方这两个数据帧在以太网中发生了碰撞。 主机MAC1收到主机MAC7发送的数据后发现CRC校验值和主机MAC7封装数据帧时的值不一样。 说明该数据发生了碰撞而主机MAC1自己刚刚也发生了一个数据帧所以为了避免再次碰撞主机MAC1等待一段时间后再重发刚刚的数据。 主机MAC7采用同样的策略。这就是碰撞检测和碰撞避免算法的大概原理有兴趣的可以自行研究。 如果此时主机MAC2不断向局域网中发送垃圾数据并且不执行碰撞检测和碰撞避免那么就会导致其他主机无法发送数据一直处于碰撞检测和碰撞避免的状态。 交换机 如上图所示一个局域网中存在很多台主机此时向网络中发送数据的主机也就多了起来进而导致发生碰撞的概率增加。只要主机足够多概率性事件就会成为必然事件。 所以在比较大的局域网中通常情况下局域网都不会很大会有交换机的存在如上图蓝色框所示它将局域网分成了两部分交换机左边是一部分右边是一部分。 假设左边的主机MAC1向右边的主机MAC100发生数据这个数据在局域网中传送时会先经过交换机由交换机转发给主机MAC100。如果主机MAC1向主机MAC2发生数据则不通过交换机转发直接发送同理交换机右边也是一样的。 当主机MAC1向主机MAC100发送数据时数据帧在左边部分发生了碰撞那么当数据经过交换机时交换机便不再转发这个数据而是直接丢弃。 交换机能识别局部碰撞对碰撞数据不做转发。交换机将局域网划分成了多个碰撞域从而减少了局域网中的数据碰撞。 2.2 最大传输单元MTU 对于以太网来说既然会存在碰撞那么发生的数据帧是长了好还是短了好呢 太长和太短都不行太短会导致数据帧无法校验因为CRC校验是需要数据帧中有一定数量的有效载荷的所以MAC帧协议规定有效载荷的长度要大于等于46字节。如果最终交付到数据链路层的有效载荷太小小于46字节MAC帧协议会在后面补充到46字节。 如果太长的话数据在以太网中传输的时间就会变长从而增加了数据碰撞的概率也不合适所以MAC帧协议规定有效载荷的最大值是1500字节也被叫做以太网的最大传输单元MTUMaximum Transmission Unit。 不同的网络类型有不同的MTU。如果IP层的数据报大于MTU了则需要分片然后再交给数据链路层。不同数据链路层的标志MTU也是不同的。 MAC帧的有效载荷在46~1500字节的范围内也会发生碰撞啊这样规定貌似并没有解决这个问题。 数据在以太网中是以光电信号的形式传输的只要有效载荷在规定范围内那么碰撞的概率就很小。光的传播速度是非常快的。 MTU对IP协议的影响 由于数据链路层MTU的限制, 对于较大的IP数据包要进行分包将较大的IP包分成多个小包并给每个小包打上标签每个小包IP协议头的16位标识id都是相同的。 每个小包的IP协议头的3位标志字段中第2位置为0表示允许分片, 第3位是更多分片标志位在上篇文章中有详细介绍。 到达对端时再将这些小包按顺序重组拼装到一起返回给传输层一旦这些小包中任意一个小包丢失接收端的重组就会失败。 但是IP层不会负责重新传输数据是由TCP负责的当TCP没有收到对方的确认应答时就会触发超时重传。 MTU对IP协议的影响就向上图快递类型对发货量的影响。发货人在东京使用的是FDDI快递该快递一次运输的快递上限是4200kg发送方在IP报头中填好IP地址等内容后交给快递公司发往仓敷。 快递首先从东京发往了大阪快递重量是4200kg在大版换成了以太网快递公司该快递一次运输的快递上限是1400kg所以原本4200kg的快递需要分成三趟去发。 最终在仓敷的收件人收到的快递是3个1400kg的包裹将这几个包裹组装后得到一个4200kg的包裹。 这个过程中FDDI和以太网是两个不同类型的局域网所以MTU也不同将快递看成是数据从东京到仓敷的过程需要跨越两个局域网要通过两个局域网的转发。 如上图网络传输示意图中从东京到大版的局域网中MTU是4200从大版到到仓敷的局域网中MTU是1400所以数据原本4200的数据到了大版路由器以后被拆分成了3个1400的数据发往仓敷。 路由器有数据链路层和网络层俩层网络层是主要就是IP协议能够屏蔽网络底层的差异。路由器有将IP数据报进行分片的能力。 至于具体是如何分片和组装的上篇博客讲解过了。从上面这个例子中可以看出MTU的大小决定着IP协议是否进行分片不同局域网有着不同的MTU而路由器可以针对不同MTU采取相应的对策。 MTU对UDP协议的影响 如上图所示发送端主机向MTU为4352的FDDI局域网中发送数据该数据帧中包含4324字节的UDP有效载荷8字节的UDP报头20字节的IP报头。 当局域网中的路由器接收到该数据帧后发现接收主机所在的局域网为MTU 1500的以太网所以在路由器中将IP数据报进行分片如上图所示分成了三片然后发送给接收主机。 接收主机接收到以后进行组装然后将完整的数据交付给上层。 一旦UDP携带的数据超过1472(1500 - 20(IP首部) - 8(UDP首部))那么就会在网络层分成多个IP数据报。 这多个IP数据报有任意一个丢失都会引起接收端网络层重组失败 而且UDP没有重传机制这就意味着这个数据丢了。 MTU对UDP的影响和TCP类似只是对于UDP丢包时的影响更加严重。 MTU对TCP协议的影响 TCP的一个数据报也不能无限大还是受制于MTUTCP的单个数据报有效载荷的最大消息长度称为MSSMax Segment Size最大段尺寸。TCP在建立连接的过程中, 通信双方会进行MSS协商最理想的情况下MSS的值正好是在IP不会被分片处理的最大长度这个长度仍然是受制于数据链路层的MTU。双方在发送SYN的时候会在TCP头部写入自己能支持的MSS值然后双方得知对方的MSS值之后选择较小的作为最终MSS。MSS的值就是在TCP首部的40字节变长选项中kind2。 如上图所示便是MSS和MTU之间的关系由于IP报头和TCP报头长度固定所以MTU的大小直接关系到MSS的大小。 使用ifconfig可以看到当前机器所在局域网的MTU 如上我的Linux机器所在局域网的MTU 1500字节。 3. ARP协议 Address Resolution Protocol 地址解析协议 如上图所示主机A向主机B发送数据数据一跳一跳经过多个局域网转发最终到达了主机B所在的局域网。 主机将数据交付给下一跳时下一跳可能是主机也可能是路由器节点。前提是该数据帧一定被网络层路由过所以才能知道下一跳要去哪里。 当数据帧第一次到达主机B所在的局域网入口路由器时路由器就迷茫了路由器的数据链路层解包分用后只能从网络层中得到主机B的IP地址但是在局域网中是通过MAC地址来识别主机的但是路由器并不知道主机B的MAC地址。 要有一个过程让路由器设备认识主机B获取主机B的MAC地址。 此时就用到了ARP协议ARP不是一个单纯的数据链路层的协议而是一个介于数据链路层和网络层之间的协议 如上图所示ARP协议处于数据链路层MAC帧协议在分用的时候可以将有效载荷分用给ARP协议PARP协议还有网络层的IP协议。 前面讲解MAC帧协议格式的时候报头中的协议类型字段0800表示IP协议0806表示ARP协议8035表示RARP协议。 3.1 ARP协议格式 如上图所示便是ARP协议的格式它的长度是固定28字节且没有有效载荷。 硬件类型指链路层网络类型1为以太网通常情况下都是1相当于一个固定参数。协议类型指要转换的地址类型0x0800为IP地址通常情况下都是这个值也相当于一个固定参数。硬件地址长度对于以太网地址为6字节也相当于是一个固定参数。协议地址长度对于和IP地址为4字节也相当于是一个固定参数。op字段为1表示ARP请求op字段为2表示ARP应答。发送端以太网地址和发送端IP地址以及目的以太网地址和目的IP地址顾名思义不解释。 ARP协议的数据也并不是直接发送到局域网中而是交付给MAC帧协议进行封装然后再发送到局域网中 ARP协议被交付给MAC帧协议后给ARP协议封装了报头如上图以太网首部所示。 注意到源MAC地址、目的MAC地址在以太网首部和ARP请求中各出现一次。对于链路层为以太网的情况是多余的但如果链路层是其它类型的网络则有可能是必要的。 3.2 模拟APR协议工作过程 ARP协议建立了主机IP地址和MAC地址的映射关系 在网络通讯时源主机的应用程序知道目的主机的IP地址和端口号却不知道目的主机的MAC地址。数据包首先是被网卡接收到再去处理上层协议的如果接收到的数据包的硬件地址与本机不符则直接丢弃。 因此在网络通信前必须通过ARP协议获得目的主机的MAC地址假设下图IP1要给IP7数据 如上图所示自己稍微填了报头主机MAC1在收到一个数据帧以后它只能从IP协议中找到目标主机的IP地址并不知道目标主机的MAC地址。  所以主机MAC1先构建一个ARP请求其中硬件类型协议类型两个长度字段都是固定参数op字段填1表示这是一个ARP请求发送端就是自己所以发送端MAC地址为MAC1发送端IP地址为IP1目的MAC地址并不知道使用0xFFFFFFFFFFFF全1目的IP填IP7。 然后交给MAC帧协议封装MAC帧首部中MAC目的地址并不知道所以使用0xFFFFFFFFFFFF填充源MAC地址就是自己的MAC1因为这是一个ARP请求所以协议类型为0806然后将这个数据帧发送出去。 局域网中主机号都是1的IP地址是一个广播地址如192.168.1.255。发送给广播IP地址的数据帧局域网中的所有主机都要接收并且进行处理。正常的数据帧其他主机也能看到但是在数据链路层就丢弃了而广播地址的不会丢弃会交付给上层做进一步处理。 主机MAC1广播了这个数据帧后因为以太网目的地址不知道所以是广播局域网中的所有主机都接收这个数据帧首先在数据链路层发现这个数据帧中的MAC目的地址是0xFFFFFFFFFFFF它无法处理所以解包后根据帧类型0806交付给了上面的IP层。 IP层拿到ARP数据以后首先看op字段不考虑固定参数发现该字段的值是1说明这是一个ARP请求然后再看目的IP地址和自己主机的IP地址是否相符。 如果不符则直接抛弃不作响应如果相符则构建响应。此时其他主机都将这个ARP请求抛弃了只有主机MAC7发现目的IP地址和自己的IP地址相符都是IP7说明这是有人要获取它的MAC地址。 主机MAC7构建ARP响应 此时主机MAC7知道这是给主机MAC1的ARP响应MAC1就知道了将对应字段填充好此时是一个ARP响应所以op字段是2其他字段这里不解释。然后交给MAC帧协议进行封装。 MAC帧协议中将头部中的目的MAC地址和MAC源地址以及帧类型填充为0806后发送给主机MAC1。 看到上图此时局域网中的所有主机仍然能看到这个数据帧但是在数据链路层对比时发现目的MAC地址是MAC1所以都将其抛弃了不再向上分用给IP层。 主机MAC1收到这个数据帧后通过对比自己的MAC地址和数据帧中的目的MAC地址发现这是给自己的所以进行解包然后根据帧类型0806将有效载荷分用给ARP协议。 ARP协议首先看op字段发现这是一个ARP响应说明这是自己曾经要获取MAC地址请求的响应然后将发送端的MAC地址MAC7和发送端的IP地址IP7取出来放入ARP缓存表中。 然后在将IP层的数据交给MAC帧协议进行封装按照ARP缓存表中的映射关系填充报头将MAC7填到目的MAC地址帧再发送出去给主机MAC7。 此时主机MAC1就能成功将数据准确的发送给主机MAC7成功完成网络通信。 每个主机在收到ARP数据以后必须先看op字段。通过op字段可以区分这是别人向自己发起的ARP请求还是自己曾经发起ARP请求的响应。 ARP协议虽然处于数据链路层但是它的字段内容却涉及到数据链路层MAC地址和网络层IP地址所以说它工作在数据链路层和网络层之间。 3.3 ARP缓存表 通过指令arp -a可以查看当前机器上的ARP缓存表 这里没有操作所以缓存表内容很少实际就是每一个IP地址都对应一个MAC地址这些主机都位于一个局域网内根据缓存表的对应关系就可以在IP层路由后准确的将数据发送到指定MAC地址处的主机上。 每一个节点都会有这样的一个ARP缓存表。缓存表中的表项有过期时间一般为20分钟如果20分钟内没有再次使用某个表项,则该表项失效。下次还要发ARP请求来获得目的主机的硬件地址。 我们知道在子网划分中的规则下只有入网的设备才有IP地址如果某一个主机断网很久了另一台新主机使用这个IP地址在其他主机给这个新主机发送数据的时候ARP缓存表中的MAC地址仍然是旧主机的MAC地址所以这台新主机收不到数据。 所以ARP缓存表必须每隔一段时间就更新一次如果是第一次给某台主机发送数据则必须先进行ARP请求获取MAC地址。 在MAC协议帧类型中还有一个8035的RARP协议这是一个反向的ARP协议。 有时候发送方主机可能会只知道对方的MAC地址而不知道对方的IP地址此时就发送一个RARP请求获取目标MAC地址主机的IP地址。都已经知道源MAC地址和目的MAC地址了所以这个过程非常简单。 RARP协议使用的情况非常少局域网中大部分跑的还是使用ARP协议。 对于数据链路层重点理解数据帧在局域网中是如何传送的局域网中的主机又是如何处理数据帧的以及如何通过ARP协议获取目的主机的MAC地址进而建立ARP缓存表的。 4. 重看TCP/IP四层模型 上图就是主机A给主机B发送数据的整个网络协议栈的主脉络。 主机A 用户在应用层写好数据以后通过HTTP或者HTTPS协议封装将报文交付给传输层的TCP或者UDP协议。 如果是使用TCP协议则报文被先放到了发送缓冲区中操作系统在合适的时候将其封装并交付给网络层IP协议。如果使用的是TCP协议则将报文封装并直接交付给网络层的IP协议。 网络层的IP协议在收到数据段后再将其封装在IP报头中填充目的IP源IP等字段然后将数据报交给数据链路层的MAC帧协议。 路由器 MAC帧协议将数据帧通过局域网交给下一跳路由器路由器的数据链路层收到数据帧后进行解包分用给上层网络层的IP协议IP层根据目的地址进行路由然后再将新的数据报封装重新交给数据链路层。 MAC协议再将数据报交给下一跳路由器如此往复最终将数据帧交到了目标主机所在的局域网路由器处。该路由器根据ARP缓存表中的映射关系将数据发送给目标IP对应的MAC地址处的主机。 主机B 主机B的数据链路层收到数据后通过对比发现MAC帧报头中的目的MAC地址和自己的MAC地址相符所以进行解包然后根据帧类型的0800将有效载荷分用给网络层的IP协议。 IP协议发现该数据报中的目的IP地址和自己的相符所以进行解包去掉IP报头根据报头中的协议类型将有效载荷分用给传输层的UDP或者TCP协议。 传输层收到数据段后将报头解包并且根据报头中的目的端口号将有效载荷交给应用层的HTTP或者HTTPS协议。 应用层收到报文后进行解包将报头和有效载荷分离对发送过来的数据进行处理。 这就是依靠协议栈的整个网络通信过程每一层中的细节都有对应的文章在详细讲解这里仅仅是一个宏观上的描述。 本篇完。 对于整个网络通信的过程便讲解完毕了虽然讲解的协议不多但是这些都是每一层中最重要的协议。网络是非常复杂的充斥着多种多样的协议和规则有兴趣可以继续深入了解。 下一篇还有一些收尾的概念然后就是高级IO和Sock编程及代码了。 下一篇网络和Linux网络_12网络其他协议和技术DNSICMPNAT代理服务器。
http://wiki.neutronadmin.com/news/152007/

相关文章:

  • 深圳招聘网站唯美网站建设
  • 怎么建设自己的网站博客做资讯类网站
  • 深圳集团网站建设手机如何强制下载网页视频
  • 丹徒网站建设咨询asp+php+mysql+aspx环境搭建与6种网站安装2
  • access建网站专业的聊城网站建设
  • 帝国网站开发做网站 php j2ee
  • 网站建设记入什么科目网站备案下来以后怎么做网页
  • 各地信息推广平台电脑系统优化软件十大排名
  • 吉林省住房建设保障厅网站公司的网站建设与维护论文
  • 网站的建设会计入哪个科目网站套餐可以分摊吗吗
  • 哪些网站做的比较好的学网站建设工作
  • 黑河网站制作动效做的好的网站
  • 大连网站制作公司曲靖珠江网最新消息
  • 鄱阳做网站上饶便宜的做网站公司
  • 什么叫网站开发应用框架全国工商企业查询网
  • 传媒类网站模板鸣蝉小程序制作平台
  • 专业网站建设维护是什么wordpress取消邮箱
  • 手机怎样建立网站七牛图片样式wordpress
  • 保定哪个公司做网站好怎样进入小程序入口啊
  • 两学一做网站答题网址在网站建设中什么用于搭建页面结构
  • 建设一个很大的视频网站需要多少钱哪里学网站开发好
  • h5手机网站建设哪家好wordpress 调用discuz
  • asp.net建立网站吗网站维护中
  • 专业做曝光引流网站去国外做非法网站吗
  • 什么是网站建设技术网站怎样做301跳转
  • 网站上职业学校排名 该怎么做龙口网站建设公司哪家好
  • 国外个人网站域名注册网站建设的工具
  • 京东客网站怎么做的山东省住房和城乡建设厅网站6
  • 地方网站盈利模式济宁网站建设怎么样
  • 湛江企业自助建站做网站模板 优帮云