计算机网络读书笔记6
链路层和局域网
链路层提供的服务
- 成帧.在每个网络层数据报经链路层传送前,几乎所有的链路层协议都要将其用链路层帧封装起来.
- 链路接入.媒体访问控制(MAC)协议规定了帧在链路上的传输规则.
- 可靠交付.当链路层协议提供可靠交付服务时,它保证无差错的经链路层移动每个网络层数据报.链路层的可靠交付服务通常是通过确认和重传取得的.
- 差错检测和纠正.链路层的差错纠正,接收方不进能检测帧中出现的比特差错,而且能够准确地明确帧中的差错出现的位置(并因此纠正这些差错).
差错检测的三种技术:奇偶校验/检验和方法/循环冗余检测
奇偶校验:发送的信息有d个比特,发送方附加一个附加比特,使得这这d+1比特中1的总数总是偶(奇)数
二维奇偶校验,D中的d个比特被换分成了i行j列。对每行每类计算就只。产生的i+j+1奇偶比特构成了链路层帧的差错校验比特。
如果d比特中才出现了单个的比特差错,二维奇偶校验包含比特值改变的行和列的校验值都会出现差错。因此街搜房不但可以检测到出现单个比特差错的事实,还可以利用存在奇偶校验差错的列和行的索引来实际识别发生差错的比特并纠正它。
接收方监测和纠正差错的能力成为前向纠错(FEC).这项技术通常被用于音频CD这样的音频存储和回放设备中。
FEC避免了不得不等待的往返时延,而这些时延是发送方收到NAK分组冰箱接收方重传分组所需要的,这对实时网络应用或者具有长传播时延的链路可能是一种非常重要的有点。
检测和 方法:d比特数据被作为一个k比特整数的序列处理。一个简单的校验和方法就是将这k比特整数加起来,并用得到的和作为差错检验比特。因特网校验和就是基于这种方法,即数据的字节作为16比特的整数对待并求和。
循环冗余检测(CRC):发送方和接收方首先必须协商一个r+1比特模式,成为生成多项式,我们将其表示为G。G的最高有效位比特(最左边)是1。对于一个给定的数据段D,发送方要选择r个附加比特R,并将它们附加到D上,使得得到的d+r比特模式(被解释为一种二进制数)用模2算术恰好能被G整除(没有余数)。接收方用G去除接收到的d+r比特。如果余数为非0,接收方就知道出现了差错,否则认为数据正确。
两种网络链路类型:
- 点对点链路:由链路一段的单个发送方和链路另一端的单个接收方组成。
- 广播链路:它能让多个发送方和接收节点都连接相同的、单一的、共享的广播信道上。
多路访问协议,即节点通过这些协议来规范他们在共享的广播信道上的行为。
多路访问协议的三种类型:信道划分协议、随机接入协议、轮流协议。
信道划分协议
- 时分多路复用(TDM)和频分多路复用(FDM)是两种能够用于在所有共享信道节点之间划分广播信道贷款的技术。TDM和FDM有相同的优缺点。它避免了碰撞,在N个节点之间公平的划分了带宽;但是闲着了一个节点只能使用R/N的带宽,及时它是唯一一个有分组要发送的节点时。
- 码分多址(CDMA):CDMA对每个节点分配一种不同的编码。然后每个节点用它唯一的编码来对他发送的数据进行编码。不同的节点能够同时传输,并且它们各自相应的接收方仍然能够正确接收发送方编码的数据比特,而不在乎其他节点的干扰传输。
随机接入协议。
在随机接入协议中,一个传输节点总是以信道的全部速率(即R bps)进行发送。当有碰撞时,涉及碰撞的每个节点反复的重发它的帧(也就是分组),到该帧无碰撞地通过为止。但是当一个节点经历一次碰撞时,它不必立刻重发该帧。相反,它在重发该帧之前等待一个随机时延。
时隙ALOHA
这个协议的优点在于,当只有一个节点在传输的时候,它可以独占信道,即R bps。缺点为,它的最大效率为1/e=0.37,当有大量节点有很多帧要传输时,则最多仅有37%的时隙在做有用的工作,即 0.37R bps。
载波侦听多路访问协议(CSMA)与具有碰撞检测的CSMA(CSMA/CD)
以太网是一种流行并广泛部署的CSMA协议。
两个协议的规则如下:
- 说话之前先听。即载波侦听,一个节点在传输之前先听信道。当来自另一个节点的帧正在传输时,节点等待知道检测到一段时间内没有传输再开始传输。
- 如果与他人同时说话,停止说话。即碰撞检测,当一个节点在传输时一直在侦听此信道。如果它检测到另一个节点正在传输,它就停止传输,等待一个随机时间(采用二进制指数后退)后再执行载波监听。
轮流协议
- 轮询协议。轮询协议要求这些节点之一被制定为主节点。主节点以循环的方式轮询每个节点。
- 令牌传递协议。这种协议中没有主节点。一个成为令牌(token)的小德特殊帧在节点之间以某种固定的次序进行交换。
链路层地址:事实上,并不是主机或者路由器具有链路层地址,而是它们的适配器(即网络接口)具有链路层地址。这个地址被称为LAN地址、物理地址、或MAC地址。特别的,链路层交换机并不具有 与它们的接口(这些接口与主机和路由器相连的)相关联的 链路层地址。链路层交换机的任务是主机和路由器之间承载数据报,交换机透明地执行该项任务,主机或路由器不必明确地将帧寻址到其间的交换机。
IEEE分配2^24个MAC地址的方式是:固定一个MAC地址的钱24比特,让公司自己为每个适配器生成后24比特的唯一组合。
MAC广播地址为48个连续的1,16进制表示法为FF-FF-FF-FF-FF-FF。
地址解析协议(ARP):将网络地址(如IP)和链路层地址(MAC地址)进行转换。
DNS为互联网中任何地方的主机解析主机名,而ARP只为在同一子网上的主机和路由器接口解析IP地址。
每台主机或路由器在其内存中具有一个ARP表,这张表包含IP地址到MAC地址的映射关系。
查询ARP保卫是在广播帧中发送,而相应ARP报文是在一个标准帧中发送;ARP是即插即用的,一个ARP表是自动建立的,不需要系统管理员来配置,如果某主机与子网断开,它的表项最终会从留在子网的节点中删除。
ARP可以看成是跨越链路层和网络层边界两边的协议。
以太网成功的原因:
- 以太网是第一个广泛部署的高速局域网。
- 相较于其他协议(令牌环、FDDI、ATM)简单。
- 产生与其他协议相同或者更高的数据速率。
- 以太网硬件已经成为一个普通商品,极其便宜。
集线器(hub)是一种物理层设备,它作用于各个比特而不是帧。当表示一个0后者一个1的比特到达一个接口时集线器只是重新生成这个比特,将其能量强度放大,并将该比特向其他所有接口传输出去。
21世纪初,集线器被交换机取代。交换机仅运行于第二层。
以太网帧结构:
- 数据字段(46~1500字节):这个字段承载了IP数据报。以太网的最大传输单元(MTU)是1500字节。这意味着IP数据报不能超过1500字节,则主机必须将数据报分片。数据字段的最小长度为46字节。这意味着如果IP数据报小鱼46字节,数据报就被填充到46自己。
- 目的地址(6字节):这个字段包含目的适配器的MAC地址。当适配器接收到一个以太网帧,如果目的地址是本身的MAC地址或者广播地址,它将该帧的数据字段的内容传递给网络层,否则丢弃。
- 源地址(6字节):这个字段包含了传输该帧到局域网上的适配器的MAC地址。
- 类型字段(2字节):类型字段允许以太网复用多种网络层协议。
- CRC(4字节)。CRC(循环冗余检测)字段的目的是使得接收适配器检测帧中是否引入了差错。
- 前同步码(8字节)。以太网帧以一个8字节的前同步码字段开始。该前同步码的前7个字节值都是10101010;最后一个字节是10101011。前同步码的前7个字节用于唤醒接收适配器,并且将它们的时钟与发送方的时钟同步。
所有的以太网技术都向网络层提供无连接服务。
以太网技术都想网络层提供不可靠服务。
经过30的发展,在现行的基于交换机的以太局域网中,交换机协调传输,不会有碰撞,因此没有必要使用MAC协议了(CSMA/CD协议)。但是以太网的帧格式保留下来。
交换机对于子网中的主机和路由器是透明地。
交换机输出接口设有缓存。
交换机转发和过滤
- 过滤:决定一个帧应该转发到某个接口还是应当将其丢弃的交换机功能
- 转发。决定一个帧应该被导向 哪个接口,并把该帧移动到那些接口的交换机功能。
交换机表。交换机的过滤和转发是借助于交换机表完成的。交换机表包含:1.一个MAC地址;2.通向该MAC地址的交换机接口;3.表项放置在表中的时间。
交换机为自学习的、即插即用设备。
- 交换机表初始为空。
- 对于每个接口接收的每个入帧,该交换机在其表中存储:1.在该帧源地址字段中的MAC地址;2.该帧到达接口;3.当前时间。
- 如果在一段时间(称为老化期(aging time))后,交换机没有接收到以该地址作为源地址的帧,就在表中删除这个地址。
链路层交换机的性质
- 消除碰撞。交换机缓存帧并且决不会在网段上同时传输一个帧
- 异质的链路。交换机将链路彼此隔离,因此局域网中的不同链路能够以不同的速率运行并且能够在不同的媒体上运行。
- 管理。除了提供强化的安全性,交换机也易于进行网络管理。
交换机和路由器的比较
- 交换机的优点
- 交换机是即插即用的
- 交换机能够具有相对高的分组过滤和转发。(交换机只需要处理到第二层的帧,路由器必须处理高至第三次的数据报)
- 交换机的缺点
- 为了防止广播帧循环,交换网络的活跃拓扑限制为一棵生成树。
- 一个大型网络将要求主机和路由器中有大的ARP表,这将生成可观的ARP流量和处理量。
- 交换机对于广播风暴不提供任何保护措施,可能使得整个以太网崩溃。
- 路由器的优点:
- 路由器没有生成树限制,允许以丰富的拓扑结构构建因特网。
- 路由器对第二层的广播风暴提供防火墙保护
路由器的缺点
- 非即插即用的,需要人为配置IP地址。
- 路哟器对每个分组的处理时间更长。
通常,由几百台主机组成的小网络通常有几个局域网网段。对于这些小网络,交换机就足够了。几千台主机组成的更大的网络,路由器能够提供更健壮的流量隔离方式和对广播风暴的控制。
- 交换机的优点
虚拟局域网(Virtula Local Network,VLAN):支持VLAN的交换机允许经过一个单一的物理局域网基础设施定义多个虚拟局域网。
多协议标签交换(MPLS)目标:对于基于固定长度的标签和虚电路技术,在不放弃基于目的地IP数据报转发的基础设施的前提下,当可能时通过选择性地表示数据报并允许路由器基于固定长度的标签(而不是目的地IP地址)转发数据报来增强其功能。
多协议标签交换可以改善IP路由器的转发速度。
一个MPLS加强帧仅能在两个均为MPLS使能的路由器之间发送。
一个MPLS路由器通常被称作标签交换路由器,因为它功过在其转发表中查找MPLS标签,然后立即将数据报传递给适当的输出接口赚翻MPLS帧。因此MPLS使能的路由器不需要提取目的IP地址和在转发表中执行最长前缀匹配的查找。
MPLS能够并且已经被用于实现所谓的虚拟专用网(VPN)
WEB页面请求历程
假设Bob携带便携机以一根以太网电缆连接到学校的以太网,并且下载一个web页面(www.google.com),经历如下过程。
准备DHCP、UDP、IP和以太网。
- Bob的便携机生成一个DHCP请求报文(应用层协议),该报文被放入了包含目的端口67(DHCP服务器)和源端口68(DHCP客户)的UDP报文段(运输层),该UDP报文段被放入了具有广播IP目的地址(255.255.255.255)和源IP地址0.0.0.0(当前IP待分配)的IP数据报中(网络层)。
- 包含DHCP请求报文的IP数据报被放入以太网帧中(链路层)。该以太网帧具有目的MAC地址FF:FF:FF:FF:FF:FF(广播地址)和源MAC地址(Bob的便携机的MAC地址,00:16:D3:23:68:8A)
- 包含DHCP请求的广播以太帧是第一个由Bob便携机发送到以太网交换机的帧,该交换机在所有出端口广播入帧,包括连接到路由器的端口。
- 路由器在它的具有MAC地址00:22:6B:45:1F:1B的接口接收到包含DHCP请求的广播以太帧,并从该帧中提取IP数据报。该数据报的广播IP目的地址指示了IP数据报应由该节点的高层协议处理,所以IP数据报的载荷(UDP报文段)被分解上达UDP。DHCP请求报文被从UDP报文段抽取出来。DCHP服务器有了DHCP请求报文
- DHCP服务器决定分配68.86.2.101给Bob的便携机。DHCP服务器生成DCHP ACH报文,该报文包括:分配给Bob的IP地址(68.86.2.101)、DNC服务器的IP地址(68.87.71.226)、默认网关路由器的IP地址(68.85.2.1)和子网块(68.85.2.0/24)(等价于子网掩码)。该报文被放入一个UDP报文段中,UDP报文段被放入一个IP数据报中,IP数据报被放入一个以太网帧中。这个以太网帧的源MAP地址是路由器连接到归属网络时的接口MAC地址(00:22:6B:45:1F:1B),目的地址是Bob便携机的MAC地址(00:16:D3:23:68:8A).
包含DHCP ACK的以太网帧由路由器发送给交换机。因为交换机是自学习的,交换机将该帧转发给通向Bob便携机的输出端口。
- Bob便携机接收到包含DHCP ACK的以太网帧,从该帧中抽取IP数据报,从IP数据报中抽取UDP报文段,从UDP报文段中抽取DHCP ACK报文。Bob的DHCP客户端记录下它的IP地址和他的DNS服务器的IP地址,并在其IP转发表中安装默认网关的地址。此时,Bob便携机已经从初始化好了它的网络组建,并开始准备处理Web网页的获取。
准备DNS和ARP
Bob在讲www.google.com键入web浏览器,开启一连串时间,最终谷歌的页面显示在web浏览器上。
- Bob便携机上单操作系统生成一个DNS查询报文,将字符串www.google.com放入DNS报文的问题段中。该报文被放置在一个具有53号(DNS服务器)目的端口的UDP报文段中。该报文段则被放入具有IP目的地址68.87.71.226(DHCP ACK中的DNS服务器IP地址)和源地址68.86.2.101(便携机IP)的IP数据报中。
- Bob便携机将包含DNS请求报文的数据报放入一个以太网帧中,准备发送给(链路层)Bob学校的路由器。但是,当前只知道学校网管路由器的IP地址,MAC地址未知。所以需要进行ARP查询。
- Bob便携机生成一个具有目的地址68.85.2.1(默认网关)的ARP查询报文,将该报文放置在一个具有广播目的地址(FF:FF:FF:FF:FF:FF)的以太网帧中,向交换机发送该帧,叫环境将该帧交付给所有设备。
- 网关路由器在与学校连接的接口上接收到包含该ARP报文的帧,发现其中的目标地址匹配其接口的IP地址。网关路由器准备一个ARP回答,指示它的MAC地址为00:22:6B:45:1F:1B对应IP 68.85.2.1。它将该ARP回答放入以太网帧中,并将目的地址设置为Bob便携机,向交换机发送该帧,交换机将该帧交付给Bob便携机。
- Bob便携机接收到包含ARP回答报文的帧之后,从该帧中抽取网关的MAC地址。
- Bob将包含DNS查询的以太网帧发送给交换机,并由交换机交付给路由器。该帧中的IP数据报的目的地址是68.87.71.226(DNS服务器),而该帧的目的地址是00:22:6B:45:1F:1B(网关路由器)。
仍在准备:域内路由选择到DNS服务器。
- 学校的网关路由器从该帧中抽取DNS查询报文的IP数据报,获取其目的地址68.87.71.226(DNS服务器)。路由器通过查询自己的转发表,决定该数据报应当发送到图中Comcast网络的最左边路由器。IP数据被放置到链路层帧中,该链路连接学校路由器和Comcast最左边路由器,发送给Comcast最左边的路由器。
- Comcast接收到该帧,并提取IP数据报,检查数据报的目的地址(DNS服务器地址),根据转发表确定存储接口,经过该接口向DNS服务器转发数据报。
- 最终DNS查询的IP数据报到达了DNS服务器。DNS服务器抽取出DNS查询报文,在它的DNS数据库中查找包含www.google.com的IP地址的DNS源记录。这个缓存记录源自google.com的权威DNS服务器。DNS服务器生成一个DNS回答报文,将DNS回答报文放入UDP报文段中,将报文段放入寻址到Bob便携机的IP数据报中,将该数据报通过Comcast网络反向转发到学校的路由器中,再通过以太网交换机到Bob便携机
- Bob便携机从DNS回答报文中臭气www.google.com的IP地址。
Web客户-服务器交互:TCP和HTTP
- Bob便携机获取www.google.com的IP地址之后,就能够生成TCP套接字,用于向www.google.com发送HTTP GET报文。在Bob便携机生成TCP套接字时,它的TCP必须先与www.google.com的TCP执行三次握手。Bob便携机首先生成一个具有目的端口80(针对HTTP)的TCP SYN报文段,将该报文的放置在具有目的IP地址64.233.169.105(www.google.com)的IP数据报中,将该数据报放在MAC地址为学校网关路由器的地址的帧中,向交换机发送该帧。
- 在学校网络、Comcast网络和谷歌网络中的路由器朝着www.google.com转发把汗TCP SYN的数据报,使用每台路由器中的转发表。
- 最终包含TCP SYN的数据报到达www.google.com。从数据报中抽取TCP SYN报文并分解到与端口80相联系的欢迎套接字。产生一个TCP SYNACK报文段,将其放入想Bob便携机寻址的一个数据报中,最后放入链路层帧中,该链路适合将www.google.com连接到第一跳路由器。
- 包含TCP SYNACK报文段的数据报通过谷歌、Comcast和学校网络,最终到达Bob便携机的以太网卡。数据报在操作系统分解,生成TCP套接字,进入连接状态。
- Bob的浏览器生成包含要获取URL的HTTP GET报文。HTTP GET报文写入套接字,其中GET报文生成一个TCP报文段的载荷。该TCP报文段被放置在一个数据报中,并交付给www.google.com。
- 在ww.google.com的HTTP服务器从TCP套接字中读取HTTP GET报文,生成一个HTTP相应报文,将请求的Web页内容放入HTTP相应体重,并将报文发送进TCP套接字中。
- 包含HTTP回答报文的数据报通过谷歌、Comcast和学校网络抓饭,到达Bob便携机。Bob的浏览器从套接字中读取HTTP相应,从HTTP相应中抽取Web页面的HTML,最终显示了Web页面。