计算机网络-链路层和局域网

链路层提供的服务

基本服务:
将数据报通过单一通信链路从一个节点移动到相邻节点.
链路层协议能提供的可能服务:
(1). 成帧
帧结构由链路层协议规定.
(2). 链路接入
媒体访问控制协议规定了帧在链路上传输的规则.
(3). 可靠交付
通过确认,重传取得,常用于高差错率链路.目的是本地纠正一个差错,而非依赖上层.
(4). 差错检测和纠正
链路层差错检测和纠正用硬件实现.

差错检测和纠正

在这里插入图片描述
差错检测和纠正是以一定概率保证错误识别与纠正.

奇偶校验

在这里插入图片描述
添加一个额外检验位,使所有位中1的个数为偶数为偶校验,为奇数为奇校验.
可以检测出数据位发生了奇数个变化的情况.
在这里插入图片描述
接收方检测和纠正差错的能力被称为前向纠错(Fec),可减少重发次数,允许立即纠错.

检验和方法

在检验和技术中,图6-4比特数据被作为一个比特整数的序列处理,一个简单检验和方法是将这k比特整数加起来,用得到的和作为差错检测比特.
一般运输层使用检验和,链路层使用CRC,运输层差错检测用软件实现,检验和方案简单快速.链路层差错检测在适配器中用专用硬件实现,能快速执行复杂的CRC

多路访问链路和协议

点对点链路:
由链路一端的单个发送方和链路另一端的单个接收方组成.
广播链路:
能让多个发送和接收节点都连接到相同的,单一的,共享的广播信道上.
例如:以太网,无线局域网,此时协调多个发送和接收节点对一个共享广播信道的访问.

多路访问协议:
节点通过这些协议来规范它们在共享的广播信道上的传输行为,可将任何多路访问协议划分为3种类型之一:
(1). 信道划分协议.
(2). 随机接入协议.
(3). 轮流协议.

信道划分协议-时分,频分

时分多路复用,频分多路复用是两种能用于在所有共享信道节点间划分广播信道带宽的技术.
设一个支持N个节点的信道且信道的传输速率为R bpsTDM将时间划分为时间帧,进一步划分每个时间帧为个时隙,每个时隙分配给个节点中的一个.
无论何时,某个节点在有分组要发送时,它在循环的TDM帧中指派给它的时隙内传输分组比特.
每个节点在每个帧时间得到专用传输速率R/N bps

FDMR bps信道划分为不同的频段,把每个频段给个节点中一个.

随机接入协议-具有碰撞检测的载波侦听多路访问(CSMA/CD)

节点检测到碰撞后放弃继续传输.
分析CSMA/CD协议前,从与广播信道相连的适配器角度总结它的运行.
(1). 适配器从网络层一侧获得数据报,准备链路层帧,将其放入帧适配器缓存.
(2). 适配器侦听到信道空闲,开始传输帧.适配器侦听到信号忙,等待,直到侦听到空闲,开始传输.
(3). 传输过程中,适配器监视来自其他使用该广播信道的适配器的信号能量的存在.
(4). 如适配器传输整个帧而未检测到其他适配器的信号能量,该适配器就完成了该帧的传输.另一方面,如适配器在传输时检测到来自其他适配器的信号能量,它中止传输.
(5). 中止传输后,适配器等待一个随机时间量,返回步骤2

二进制指数后退:
当传输一个给定帧时,该帧经历了一连串的n次碰撞后,节点随机地从(0,1, ... , 2^n-1)中选择一个值k
对以太网,一个节点等待的实际时间量是k*发送512比特到以太网所需时间

轮流协议-轮询,令牌

(1). 轮询协议
要求这些节点之一要被指定为主节点,主节点以循环方式轮询每个节点.
(2). 令牌传递协议
无主节点,一个称为令牌的小的特殊帧在节点间以某种固定次序交换.当一个节点收到令牌时.仅当它有一些帧要发送时,才持有该令牌.否则,向下一个节点转发该令牌.

链路层寻址和ARP

主机和路由器的适配器(网络接口)都具有链路层地址,即MAC地址.ARP用于将IP地址转换为链路层地址.

MAC地址

链路层地址可称为LAN地址/物理地址/MAC地址.
对多数局域网,Mac地址长度为6字节,每个适配器的Mac地址唯一.
Mac广播地址:所有比特位皆为1

地址解析协议

在这里插入图片描述
假设IP地址为222.222.222.220的主机要向主机222.222.222.222发送IP数据报.为发送数据报,该源必须向它的适配器不仅提供IP数据报,且提供目的主机的MAC地址.

在发送主机的ARP模块将取在相同局域网上的任何IP地址作为输入,返回相应的MAC地址.
ARP只为在同一个子网上的主机和路由器接口解析IP地址对应的MAC地址.

每台主机或路由器在内存有一个ARP表:
这张表包含IP地址到MAC地址的映射关系.一个表项放置到某ARP表中开始,一个表项通常的过期时间是20分钟.
在这里插入图片描述
222.222.222.220向它的适配器传递一个ARP查询分组,且指示适配器用MAC广播地址来发送这个分组.
适配器在链路层帧中封装这个ARP分组,用广播地址作为帧的目的地址,将帧传输进子网中.包含该ARP查询的帧可被子网上的所有其他适配器接收到,每个适配器都把在该帧中的ARP分组向上传递给ARP模块.每个ARP模块检查它的IP地址是否与ARP请求分组中的目的地址匹配.匹配时给查询主机发送回一个带有所希望映射的响应ARP分组.查询主机更新它的ARP表,之后可正常发送IP数据报.

发送数据报到子网以外

在这里插入图片描述
路由器的每个接口有一个IP地址,一个适配器(有一个MAC地址).
考察111.111.111.111222.222.222.222发送一个IP数据报,发送主机帧的目的地MAC地址为路由器接口111.111.111.110的适配器地址(发送主机可通过ARP获得),发送主机帧中目的IP地址仍为222.222.222.222

路由器查询其转发表,将帧由接口111.111.111.110进入的帧转发到接口222.222.222.220,接口222.222.222.220把数据报封装到一个新的帧,目的MAC地址设为最终MAC地址(通过ARP获得).

以太网

以太网是目前最流行的有线局域网技术.
使用总线拓扑的以太网是广播局域网,所有传输的帧传送到与该总线连接的所有适配器并被其处理.
集线器是一种物理层设备,作用于各个比特而不是作用于帧.表示一个0或一个1的比特到达一个接口时,集线器只是重新生成这个比特,将其能量强度放大,将该比特向其他所有接口传输出去.采用基于集线器的星形拓扑的以太网也是一个广播局域网.集线器在多个接口收到帧时,发生碰撞.
交换机用于替代集线器,运行在第二层.可以多个接口同时接收帧和转发,不会碰撞.

以太网帧结构

在这里插入图片描述
考虑从一台主机向另一台主机发送一个IP数据报且两台主机在相同的以太局域网,以太网帧的6个字段.
(1). 数据字段
这个字段承载了IP数据报,以太网的最大传输单元是1500字节.如IP数据报超过了1500字节,主机必须将该数据报分片.数据字段的最小长度是46字节.
IP数据报首部的长度字段准确记录了数据报长度(可用于去除链路层填充).
(2). 目的地址(6字节)
包含目的适配器的MAC地址.
(3). 源地址(6字节)
(4). 类型字段(2字节)
类型字段允许以太网复用多种网络层协议,IP和其他链路层协议都有各自的,标准化的类型编号.
(5). CRC4字节)
CRC字段的目的是使得接收适配器(适配器B)检测帧中是否引入了差错.
(6). 前同步码(8字节)
以太网帧以一个字节的前同步码字段开始,该前同步码的前7字节的值都是10101010,最后一个字节是10101011.前7个字节用于使接收适配器的时钟和发送方的时钟同步.

所有以太网技术向网络层提供无连接服务,以以太网技术都向网络层提供不可靠服务.适配器B收到来自适配器A的帧,对该帧进行CRC校验.通过时,不发送确认帧.没通过,也不发送否定确认帧,只是丢弃.

以太网技术

以太网的CSMA/CD协议很好解决了多路访问问题.
今天多数安装中,节点经点对点的由双绞铜线,光纤线缆构成的线段与一台交换机相连.
在这里插入图片描述
在总线拓扑和基于集线器的星形拓扑技术时代,以太网是广播链路,用CSMA/CD解决共享冲突.
今天基于交换机的星形拓扑,采用的是存储转发分组交换.交换机协调其传输,任何时候不会向相同接口转发多个帧,交换机是全双工的.基于交换机的以太局域网无碰撞,不需要CSMA/CD协议.

链路层交换机

交换机自身对子网中的主机和路由器是透明的,某主机/路由器向另一个主机/路由器寻址一个帧,顺利将帧发进局域网,不知道某交换机将会接收该帧并将它转发到另一个节点.

交换机转发和过滤

过滤是决定一个帧应转发到某个接口还是应当将其丢弃.转发是决定一个帧应被导向那个接口,并把该帧移动到那些接口的交换机功能.
交换机的过滤和转发借助于交换机表完成.交换机表的一个表项包含:
一个MAC地址,通向该MAC地址的交换机接口,表项放置在表中的时间.
在这里插入图片描述
假定目的地址为DD-DD-DD-DD-DD-DD的帧从交换机接口到达,交换机用MAC地址DD-DD-DD-DD-DD-DD索引它的表.有3种可能的情况:
(1). 表中没有对应DD-DD-DD-DD-DD-DD的表项
交换机向除接口外的所有接口转发该帧的副本.
(2). 表中有一个表项将DD-DD-DD-DD-DD-DD与接口联系起来
丢弃.
(3). 表中有一个表项将DD-DD-DD-DD-DD-DD与接口(!=x)联系
转发到接口

自学习

交换机的表是自动,动态和自治地建立的.交换机的自学习以如下方式实现:
(1). 交换机表初始为空
对于在每个接口接收到的每个入帧,该交换机在其表中存储
a. 该帧源地址字段中的MAC地址.
b. 该帧到达的接口.
c. 当前时间.
(2). 如果在一段时间后,交换机没收到以该地址作为源地址的帧,就在表中删除这个地址.

链路层交换机的性质

(1). 消除碰撞
交换机缓存帧,不会在网段上同时传输多于一个帧.交换机的最大聚合带宽是该交换机所有接口速率之和.
(2). 异质的链路
局域网的不同链路能以不同速率运行在不同媒体,连接到同一交换机.
(3). 管理
自己配置和管理,收集带宽使用的统计数据,碰撞率,流量类型,使这些信息为网络管理者使用.

回顾:Web页面请求历程

在这里插入图片描述

6.7.1 准备:DHCP, UDP, IP和以太网

Bob启动它的便携机,用一根以太网电缆连到学校的以太网交换机,交换机又与学校的路由器相连.学校的路由器与一个ISP连接
.本例中ISPcomcast.netcomcast.net为学校提供DNS服务,假设DHCP服务器运行在路由器中.

(1).获取本机IP地址.
Bob首先将其便携机与网络连接时,Bob便携机采取的一个网络相关动作是运行DHCP协议,以从本地DHCP服务器获得一个IP地址及其他信息.
DHCP过程:
a. Bob便携机上的操作系统生成一个DHCP请求报文,将这个报文放入具有目的端口67DHCP服务器)和源端口68DHCP客户)的UDP报文段.该UDP报文段,被放置在一个具有广播IP目的地址(255.255.255.255)和源IP地址(0.0.0.0)的IP数据报中.
b. 包含DHCP请求报文的IP数据报被放置在以太网帧中,该以太网帧具有目的MAC地址FF:FF:FF:FF:FF:FF,使该帧将广播到与交换机的所有设备(如顺利,包括DHCP服务器).该帧的源MAC地址是Bob便携机的MAC地址00:16:D3:23:68:8A
c. 包含DHCP请求的广播以太网帧是第一个由Bob便携机发送到以太网交换机的帧,该交换机在所有的出端口广播入帧,包括连接到路由器的端口.
d. 路由器在它的具有MAC地址00:22:6B:45:1F的接口接收到该广播以太网帧,该帧中包含DHCP请求,且从该以太网帧中抽取出IP数据报.该数据报的广播IP目的地址和路由器的ip匹配.因此数据报的载荷被分解,向上到达UDPDHCP请求报文从此UDP报文段抽取出来
e. DHCP服务器有了DHCP请求报文
设运行在路由器中的DHCP服务器以CIDR68.85.2.0/24分配IP地址,所以本例中,学校内使用的所有IP地址都在comcast地址块中.
假设DHCP服务器分配地址68.85.2.101Bob的便携机.DHCP服务器将这个分配的IP地址,DNS服务器的IP地址(68.87.71.226),默认网关路由器的IP地址(68.85.2.1)和子网块(68.85.2.0/24)等信息写入一个DHCP ACK报文.该DHCP报文被放入一个UDP报文段,UDP报文段被放入一个IP数据报中,IP数据报再被放入一个以太网帧中.这个以太网帧的源MAC地址是路由器连到归属网络时接口的MAC地址(00:22:6B:45:1F:1B),目的MAC地址是Bob便携机的MAC地址(00:16:D3:23:68:8A).
f. 包含DHCP ACK的以太网帧由路由器发送给交换机,交换机是自学习的,且先前从Bob便携机收到(包含DHCP请求的)以太网帧,所以该交换机知道寻址到00:16:D3:23:68:8A的帧,仅从通向Bob便携机的输出端口转发.
g. Bob便携机接收到包含DHCP ACK的以太网帧,从该以太网帧中抽取IP数据报,从IP数据报中抽取UDP报文段.从UDP报文段抽取DHCP ACK报文.BobDHCP客户端则记录下它的IP地址和它的DNS服务器的IP地址,及其IP转发表中会安装的默认网关的地址.

Bob便携机会向该默认网关发送目的地址为其子网68.85.2.0/24以外的所有数据报.此时,Bob便携机已经初始化好它的网络组件,并准备开始处理Web网页获取.

仍在准备:DNS和ARP

Bobwww.google.comURL键入其Web浏览器时,他开启了一长串事件,这将导致谷歌主页最终显示在其Web浏览器上.
BobWeb浏览器通过生成一个TCP套接字开始了该过程,套接字用于向www.google.com发送HTTP请求.为了生成该套接字,Bob便携机将需要知道www.google.comIP地址,使用DNS协议提供这种名字到IP地址的转换服务.

DNS过程:
(1). Bob便携机上的操作系统因此生成一个DNS查询报文,将字符串www.google.com放入DNS报文的问题段.该DNS报文则放置在一个具有53号(DNS服务器)目的端口的UDP报文段中.该UDP报文段则被放入具有IP目的地址68.87.71.226(在第5步中DHCP ACK返回的DNS服务器地址)和源IP地址68.85.2.101IP数据报中.Bob便携机将包含DNS请求报文的数据报放入一个以太网帧中,该帧将发送到Bob学校网络中的网关路由器,Bob便携机经过上述第5中中的DHCP ACK报文知道了学校网关路由器的IP地址(68.85.2.1
但仍然不知道该网关路由器的MAC地址.

路由转发前,需先将帧传递到网关路由器.若只知道网关路由器的IP地址,不知其MAC地址.需借助ARP得到其MAC地址.
为获得网关路由器的MAC地址,Bob便携机将需要使用ARP协议.
(1). Bob便携机生成一个具有目的IP地址68.85.2.1(默认网关)的ARP查询报文,将该ARP报文放置在一个具有广播目的地址(FF:FF:FF:FF:FF:FF)的以太网帧中,向交换机发送给以太网帧,交换机将该帧交付给所有连接的设备,包括网关路由器.链路层广播会将帧通过交换机发给子网内每个对象.
(2). 网关路由器在通往学校网络的接口上接收到包含该ARP查询报文的帧,发现在ARP报文中目标IP地址68.85.2.1匹配其接口的IP地址,网关路由器因此准备一个ARP回答.指示IP地址68.85.2.1对应的MAC地址为00:22:6B:45:1F:1B.它将ARP回答放在一个以太网帧中,其目的地址为00:16:D3:23:68:8A,并向交换机发送该帧,再由交换机将帧交付给Bob便携机.
(3). Bob便携机接收包含ARP回答报文的帧,并从ARP回答报文中抽取网关路由器的MAC地址00:22:6B:45:1F:1B
(4). Bob便携机现在能使包含DNS查询的以太网帧寻址到网关路由器的MAC地址,该帧的IP数据报有IP目的地址68.87.71.226DNS服务器),该帧具有目的地址00:22:6B:45:1F:1B(网关路由器).Bob便携机向交换机发送该帧,交换机将该帧交付给网关路由器.

仍在准备:域内路由选择到DNS服务器

(1). 网关路由器接收该帧并抽取包含DNS查询的IP数据报,路由器查找该数据报的目的地址(68.87.71.226),并根据其转发表决定该数据报应当发送到图6-23Comcast网络中最左边的路由器.IP数据报放置在链路层中,该链路适合将学校路由器连接到最左边Comcast路由器且该帧经过这条链路发送.
(2). 在Comcast网络中最左边的路由器接收到帧,抽取IP数据报,检查该数据报的目的地址(68.87.71.226),并根据其转发表确定出接口,经过该接口朝着DNS服务器转发数据报,而转发表已根据Comcast的域内协议(如RIP, OSPFIS-IS)及因特网的域间协议BGP所填写.
(3). 最终包含DNS查询的IP数据报到达了DNS服务器,DNS服务器抽取出DNS查询报文.在它的DNS数据库中查找名字www.google.com,找到包含对应www.google.comIP地址(64.233.169.105)的DNS源记录.这种缓存数据源自于google.com的权威DNS服务器,该DNS服务器形成一个包含这种主机名到IP地址映射的DNS回答报文.将该DNS回答报文放入UDP报文段,该报文段放入寻址到Bob便携机的IP数据报中.该数据报将通过Comcast网络反向转发到学校的路由器并从这里经过以太网交换机到Bob便携机.
(4). Bob便携机从DNS报文抽取出服务器www.google.comIP地址.

Web客户-服务器交互:TCP和HTTP

(1). Bob便携机有了www.google.comIP地址,它能够生成TCP套接字,该套接字将用于向www.google.com发送HTTP GET报文.当Bob生成TCP套接字时,在Bob便携机中的TCP必须首先与www.google.com中的TCP执行三次握手.Bob便携机因此首先生成一个具有目的端口80(针对HTTP的)的TCP SYN报文段,将该TCP报文段放置在具有目的IP地址64.233.169.105www.google.com)的IP数据报中,将该数据报放置在MAC地址为00:22:6B:45:1F:1B(网关路由器)的帧中并发送该帧.
(2). 在学校网络,Comcast网络和谷歌网络中的路由器朝着www.google.com转发包含TCP SYN的数据报,使用每台路由器中的转发表,支配分组经Comcast和谷歌网络间域间链路转发的路由器转发表项,由BGP协议决定.
(3). 包含TCP SYN的数据报到达www.google.com,从数据报抽取出TCP SYN报文并分解到与端口80相联系的欢迎套接字.对谷歌HTTP服务器和Bob便携机间的TCP连接生成一个连接套接字,产生一个TCP SYNACK报文段.将其放入向Bob便携机寻址的一个数据报中,最后放入链路层帧中,该链路适合将www.google.com连接到其第一跳路由器.
(4). 包含TCP SYNACK报文段的数据报通过谷歌,Comcast和学校网络,最终到达Bob便携机的以太网卡.数据报在操作系统中分解到相应的TCP套接字,从而进入连接状态.
(5). 借助于Bob便携机上的套接字,现在准备向www.google.com发送字节了,Bob浏览器生成包含要获取的URLHTTP GET报文.HTTP GET报文则写入套接字,其中GET报文称为一个TCP报文段的载荷,该TCP报文段放置进一个数据报中,并交付到www.google.com
(6). 在www.google.comHTTP服务器从TCP套接字读取HTTP GET报文,生成一个HTTP响应报文,将请求的Web页内容放入HTTP响应体中,并将报文发送进TCP套接字中.
(7). 包含HTTP回答报文的数据报通过谷歌,Comcast和学校网络转发,到达Bob便携机.BobWeb浏览器程序从套接字读取HTTP响应,从HTTP响应体中抽取Web网页的html,最终显示了Web网页.

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

raindayinrain

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值