计算机网络期末复习
本文最后更新于 2024-12-24 11:37:06
五层体系结构
自上向下:应用层、运输层、网络层、数据链路层、物理层
1.应用层
应用层协议类型
- HTTP(超文本传输协议)
- FTP(文件传输协议)
- SMTP(简单邮件传输协议)
- DNS(域名解析协议)
2.运输层
本小节的主要内容来自:计算机网络总结——运输层
运输层有三个阶段
- 连接建立(三次握手)
- 数据传送
- 连接释放(四次挥手)
运输层向它上面的应用层提供通信服务
在计算机网络中进行通信的真正实体是通信主机中的进程。也就是说,端到端的通信是应用进程之间的通信
网络层为主机之间的通信提供服务,而运输层则在网络层的基础上,为应用进程之间的通信提供服务
运输层主要需要有两种不同的运输协议,即面向连接的TCP和无连接的UDP
2.1 端口号
端口号使用16比特表示,取值范围为0-65535,分为以下两大类:
服务器使用的端口:
熟知端口号:0-1023,IANA把这些端口号指派给了TCP/IP体系中最重要的一些应用协议,如:FTP使用21和20号端口,HTTP使用80号端口,DNS使用53端口号。
登记端口号:1024-49151,为没有熟知端口号的应用进程使用。使用这类端口号必须在IANA按照规定的手续登记,以防止重复,例如微软远程桌面RDP使用的端口号为3389。
客户端使用的端口号:
短暂端口号(别称):49152-65535,留给客户进程暂时使用。通信结束后,这个端口号可供其他客户进程使用。
端口号只具有本地意义,即端口号只是为了标识本计算机中各进程,不同计算机可能有相同的端口号,但是并没有任何关系
2.2UDP和TCP的对比
- UDP可以随时发送数据,也就是无连接的。
- TCP发送数据之前需要先建立连接,也就是面向连接的。
- 在局域网中,UDP可以发送单播,多播,广播数据
- 而TCP只能发送单播数据。
对应用报文的处理方式不同:
- UDP对应用层的应用层报文直接添加一个首部,然后直接进行发送。接收方接收数据报后去掉首部,上交给上层应用层
- TCP把应用层交付下来的数据块仅仅看作是一连串的,无结构的字节流,并将它们进行编号,存储在自己的发送缓存中,TCP根据发送策略,从发送缓存中提取一定数量的字节,构建成TCP报文段进行发送。接收方一方面从所接受的TCP报文段中取出数据载荷部分并存储在接收缓存中,一方面将接收缓存的一些字节交付给应用进程。
- UDP协议向其上层提供的是无连接不可靠传输服务,数据报发生误码仅仅丢弃,并不会采取其他措施。
- TCP协议向其上层提供的是面向连接的可靠服务。
- UDP由于不提供可靠传输服务,首部比较简单。
- TCP由于要实现可靠传输,流量控制,拥塞控制等服务,其首部比较复杂。
注意:TCP 提供了全双工的通信方式
2.3 TCP 首部格式
如上图中的格式:
- 确认号( ack ): 4个字节,是 期望收到对方下一个报文段的第一个数据字节的序号;应当记住:确认号 = N ,则表明:到序号 N - 1 为止的所有数据都已正确收到
- 紧急 URG : 当 URG = 1 时,表明紧急指针字段有效。告诉系统,此报文段中有紧急数据,因尽快传送(相当于高优先级的数据),而不要按照原来的排队顺序传送
- 注意:并不意味着本报文段中的所有数据都是紧急数据,紧急数据的范围从TCP首部中的“紧急指针”字段所指的位置开始,直到报文段结束
- 确认 ACK :仅当
ACK=1
的时候确认号字段才有效,一般只有第一次握手的时候ACK=0
才会成立。TCP 规定,在建立连接后所有传送的报文段都必须把ACK
置为1 - 复位 RST:当
RST = 1
时,表明 TCP 连接中出现严重差错(如主机崩溃),必须释放连接,然后重新建立运输连接。 - 同步 SYN: 当
SYN = 1 && ACK = 0
时,表明这是一个连接请求报文段。若对方同意建立连接,则应在响应的报文段中使用SYN = 1 && ACK = 1
。故: SYN 置为 1 就表示这是一个连接请求或连接接受报文 - 终止 FIN :
FIN = 1
表示此报文段发送方的数据已发送完,并要求释放运输连接 - 窗口 : 2字节。 它表示接收方当前愿意接收的最大数据量(以字节为单位)。发送方会根据这个窗口大小来决定可以连续发送多少数据而不必等待对方的确认。应当记住:窗口字段明确指出了 现在 允许对方发送的数据量,窗口值经常在动态变化着
MSS(最大报文段长度)是TCP协议中的一个重要参数,它表示TCP报文段中数据部分的最大允许长度,不包括TCP头部和IP头部
2.4 连续 ARQ 协议
它允许发送方在未收到确认的情况下连续发送多个数据分组。
连续ARQ协议的基本原理
- 发送窗口:发送方维护一个发送窗口,窗口内的分组可以连续发送,不需要等待每个分组的确认。
- 接收窗口:接收方有一个接收窗口,表示它一次可以接收的数据分组数量。
- 累积确认:接收方通常采用累积确认的方式,即只对按序到达的最后一个分组发送确认,表示直到该分组为止的所有分组都已正确接收。
更多参考:计算机网络总结——运输层
2.5 拥塞控制
假定:以最大报文段的个数为讨论问题的单位,而不是以字节为单位。
控制方法:
慢开始
即由小到大逐渐增大发送窗口,也就是说,由小到达逐渐增大拥塞窗口值
每经过一个传输轮次,拥塞窗口就加倍。
传输轮次:发送方发送完报文段并且接收方进行确认,也就是一个往返时间
拥塞避免
为了防止拥塞窗口cwnd增长过大引起网络拥塞
,还需要设置一个慢开始门限ssthresh状态变量- 当cwnd < ssthresh时,使用上述的
慢开始
算法。 - 当cwnd > ssthresh时,
停止使用慢开始算法而改用拥塞避免算法
。 - 当cwnd = ssthresh时,
既可使用慢开始算法,也可使用拥塞避免算法
。
- 当cwnd < ssthresh时,使用上述的
快重传
如下图所示,接收方收到了M1和M2后都分别及时发出了确认。现假定接收方没有收到M3但却收到了M4。本来接收方可以什么都不做。但按照快重传算法,接收方必须立即发送对M2的重复确认,以便让发送方尽早知道接收方没有收到报文段M3。发送方接着发送M5和M6.接收方收到后也仍要再次分别发出对M2的重复确认
快重传算法规定,发送方只要一连收到3个重复确认,就知道接收方确实没有收到报文段M3,因而应该立即进行重传(即“快重传”),这样就不会出现超时 (如果没有快重传,只要发生超时就执行门限ssthresh / 2,然后慢开始) ,发送方也不就会误认为出现了网络拥塞。使用快重传可以使整个网络的吞吐量提高约20%。
总的来说就是:
- 要求接收方不要等到自己发送数据时才捎带确认,而是要立即发送确认。
- 即使收到了失序的报文段也要立即对已收到报文段的重复确认。
- 发送方一旦收到3个连续的重复确认后,就将相应的报文段立即重传,而不是等该报文段的超时重传计时器超时再重传。
快恢复
发送方一旦收到3个重复确认,就知道现在只是丢失了个别报文段,于是不启动慢开始算法,而执行快恢复算法。
发送方将慢开始门限值和拥塞窗口值调整为当前窗口的一半,开始执行拥塞避免算法。
操作步骤整合如下:
2.5 三次握手
并不是发送了三次,而是在 一次握手的时候,交换了三个报文,类似于:两个人握手,上下挥动了3次
采用三次握手的方法:防止已经失效的连接请求报文段突然又传送到了(并没有丢失,只不过是时间延长了),因而产生的 TCP 连接错误
部分细节:
- 在第一次,A 向 B 发出连接请求报文段,其首部中的同步位 SYN = 1,并选择序号 seq = x,表明传送数据时的第一个数据字节的序号是 x。
- B 收到连接请求报文段后,同意A的请求,发回确认,B 在确认报文段中设置SYN = 1,ACK = 1,确认号ack = x+1(注意确认号的值,所代表的意思) ,自己选择的序号 seq = y
- A收到此报文段后向 B 给出确认,设置 ACK = 1,确认号 ack = y +1,seq=x+1(因为:SYN 报文段不能携带数据,但是 要消耗掉一个序号),然后 A 通知上层应用进程,连接已经建立。
4.6 四次挥手
- 第一步:客户端进程发出断开连接指令,这将导致客户端的
TCP
程序创建一个特殊的TCP
报文段,发送到服务器。这个报文段的FIN
字段被置为1,表示这是一条断开连接的报文; - 第二步:服务器接收到客户端发来的断开连接报文,向客户端回送这个报文的确认报文(
ACK
字段为1
),告诉服务器已经接收到FIN
报文,并允许断开连接; - 第三步:服务器发送完确认报文后,服务器的
TCP
程序创建一条自己的断开连接报文,此报文的FIN
字段被置为1
,然后发往客户端; - 第四步:客户端接收到服务器发来的
FIN
报文段,则产生一条确认报文(ACK
为1
),发送给服务器,告知服务器已经接收到了它的断开报文。服务器接收到这条ACK
报文段后,释放TCP
连接相关的资源(缓存和变量),而客户端等待一段时间后(半分钟、一分钟或两分钟),也释放处于客户端的缓存和变量;
Q: 为什么 TCP 关闭连接为什么要四次而不是三次?
A:服务器在收到客户端的 FIN 报文段后,可能还有一些数据要传输,所以不能马上关闭连接,但是会做出应答,返回 ACK 报文段,接下来可能会继续发送数据,在数据发送完后,服务器会向客户单发送 FIN 报文,表示数据已经发送完毕,请求关闭连接,然后客户端再做出应答,因此一共需要四次挥手。
Q: 客户端为什么需要在 TIME-WAIT 状态等待 2MSL 时间才能进入 CLOSED 状态?
A:按照常理,在网络正常的情况下,四个报文段发送完后,双方就可以关闭连接进入 CLOSED 状态了,但是网络并不总是可靠的,如果客户端发送的 ACK 报文段丢失,服务器在接收不到 ACK 的情况下会一直重发 FIN 报文段,这显然不是我们想要的。因此客户端为了确保服务器收到了 ACK,会设置一个定时器,并在 TIME-WAIT 状态等待 2MSL 的时间,如果在此期间又收到了来自服务器的 FIN 报文段,那么客户端会重新设置计时器并再次等待 2MSL 的时间,如果在这段时间内没有收到来自服务器的 FIN 报文,那就说明服务器已经成功收到了 ACK 报文,此时客户端就可以进入 CLOSED 状态了。
在我们做题的时候,要计算最短时间,那么图中的第二步,第三步是同时发生的,因为没有数据要发送
最短时间为 = 1.5RTT + 2MSL
运输层协议类型
- TCP(传输控制协议)
- UDP(用户数据报协议)
3.网络层
也称为: IP层、网际层
1.网际协议IP
即互联网协议地址,与之配套的还有 ARP、ICMP、IGMP
2.直接交付和间接交付
不需要经过任何路由器的是 直接交付,反之是间接交付
h1 -> R1 -> R2 -> h2
h1到R1,R1到R2,的数据发送为间接,
R2到h2 ,为直接交付
3.IP地址格式和分类
IP地址 = 网络号(n位) 主机号(32-n位)
A类地址(网络号8位)
:第一个字节表示网络地址,范围从1.0.0.0到126.255.255.255。适用于大型网络
B类地址(网络号16位)
:前两个字节表示网络地址,范围从128.0.0.0到191.255.255.255。适用于中型网络
C类地址(网络号24位)
:前三个字节表示网络地址,范围从192.0.0.0到223.255.255.255。适用于小型网络
网络前缀前面的固定数字为网络标识位
4.CIDR无分类编址
CIDR使用斜杠(/)后跟一个数字来表示一个IP地址块,这个数字表示网络前缀的位数,即子网掩码中连续的1的个数
设 n 为主机号
可分配 ip 个数 = 2^n - 2 (网络地址、广播地址)
可接入计算机个数 = 2^n - 3 (多了一个网关)
在计算某个网络包含了多少个C类地址的话,可以用
$$
个数 = 2^{该网络的网络前缀位数 - C类主机号位数}
$$
5.路由聚合
就是寻找需要聚合的CIDR地址块的公共前缀
6.IP地址与MAC地址
上图以HTTP协议为例,具体说明
7.IP数据报头部格式
- 首部长度:单位:字节,最小值为
0101
也就是 20B - 总长度: 单位:字节
最大传送单元 MTU : 在 IP 层的下面的每一种数据链路层协议都规定了一个数据帧中的数据字段的最大长度
IP数据报封装链路层的帧时,此数据报的总长度(首部加上数据部分)一定不能超过下面数据链路层所规定的MTU
在进行分片的时候,数据首部中的”总长度“字段是指分片后的每一个分片的首部长度与该分片的数据部分长度的总和
- 标志:目前之后后两位有意义
- 最低位记为 MF :
MF = 1
即表示后面还有分片的数据报,MF = 0
表示这已是若干个数据报片中的最后一个 - 中间的一位记为 DF : 意思是不能分片,只有
DF = 0
时才允许分片
- 最低位记为 MF :
- 片偏移:相对于用户数据字段的起点,该分片从何处开始。偏位移以8个字节为单位,也就是说,除了最后一个数据报片外,其每个分片的长度一定是8字节的整数倍
片偏移的计算:
将一段数据分片后(不要加入首部地址计算),用每段的第一个数据部分所在的位置除以8,即得到该片的片偏移值
例如: 数据部分为3800字节的数据报,每个分片长度不超多1420字节
则可以分3个数据报片,数据报的数据部分长度为:1400、1400、1000,则每片的片偏移值为 0/8=0, 1400/8=175, 2800/8=350
每片的MF,DF的值为:1,0 ; 1,0 ; 0,0
计算的时候,一定要注意是总长度(加上头部的20B),还是数据部分的长度!!!!!
8.地址解析协议ARP
从 ip 到 mac 的解析;从 mac 到 ip 的解析是 RARP
主机的MAC地址实际上就是其网络适配器的MAC地址
每一台主机都设有一个ARP高速缓存,里面存有本局域网上的各主机和路由器的 IP 地址到 MAC 地址的映射表
ARP 用与解决 同一个局域网上 的主机或路由器的 IP 地址到 MAC 地址的映射问题
IP 地址到 MAC 地址的映射是自动完成的
9.网际控制报文协议ICMP
- 连通性使用
ping
- 路由追踪
tracert
(windows)
10.路由选择协议
- 内部网关协议 IGP:用的最多的是 RIP 、 OSPF
- 外部网关协议 EGP
10.1 内部网关协议RIP
RIP 是一种分布式的 基于距离向量的路由选择协议,是互联网的标准协议。其最大优点是简单。
该协议要求网络中的每一个路由器都要维护从它自己到其他每一个目的网络的距离记录(因此,这是一组距离,即“距离向量”)
从一路由器到直接连接的网络的距离定义为1。
从一主机到非直接连接的网络的距离定为所经过的路由器数加1
该距离也称为跳数
该距离为最短距离,并且 RIP 允许一条路径最多只能包含 15 个网络,因此当距离为 16 时就相当于不可达,可见他只适用于小型互联网
# 路由表的更新
路由表和转发表是两个相似的概念,讨论路由选择原理的时候,往往不区分它们之间的区别
基本原理再次不在叙述,只说一些写题的方法:
- 距离向量算法:对每一相邻路由器发送过来的 RIP 报文,执行以下步骤:
为了更清楚认识,不妨令需要更新的路由器记为 A;
则可看做 X ===> A,X 发给 A 的 RIP 报文
a. 对地址为X的相邻路由器发来的RIP报文,把 下一跳字段中的地址都改为X,并把所有的距离都加1,不妨只讨论一下三个关键的数据: 到目的网络的地址 Net、距离 d、下一跳的路由,在本样例中,下一跳路由为 X。
b. 对修改后的 RIP 报文执行一下步骤:
以下的该项目:修改后 RIP 报文中的内容,即 执行步骤 a 之后的路由表
i. 若原来的路由表(路由表A)中没有目的网络 Net ,则把该项目添加到路由表(路由表A)中
否则,有目的网络 Net ,同时,若下一跳的路由器地址 为 X,则把收到的项目替换原来路由表的项目(即:把该项目替换 A 中的项目)
否则,有目的网络 Net ,同时,下一跳的路由器地址 不是 X,
如果该项目中的距离小于路由表中的距离,则更新
否则,什么也不做
也就是取最短距离更新
- 平常写题的时候,有时并不是都是上面的那种情况,就是单纯的给一个网络拓扑图,然后写出路由表
在分析之前,首先要确定,我们此时写出的路由表的模版:
目的网络地址:写的是网络号
下一跳地址:写的是别的路由器的IP地址
路由器接口:写的是数据从本路由器的哪个端口发出
注意:图中的0.0.0.0
是默认路由,这就是不管目的网络在哪里,都有指定的路由器 R 来处理,上图中路由器 R 的 IP 为192.168.0.65
。我们需要知道:全0 的掩码和任何目的地址进行 AND 运算,结果一定是全0。
- Q:那么也即是说,经过该路由表转发的分组,都会从这个全0 段发出去,那么,其他的目的网络不就不可以用了吗??????
- A:其实,按照最长前缀匹配原则,默认路由的优先级最低,也就是说,当其他网络地址没有匹配上,才会从此地址发出去
最长匹配原则:在路由表查找过程中,路由器会将数据包的目的IP地址与路由表中的条目进行逐位比较,选择与目的IP地址匹配的最长网络前缀的路由条目
我们在写题的时候,要灵活一点,看题目主要是让我们写出什么信息!!!
上述四列不一定都要写
有了上面的解释之后,可看如下图:
Q:假如与R互连的接入Internet的另一台路由器的端口IP为211.84.5.1,R与S连接的端口为E0,写出R的路由表?
目的网络 | 地址掩码 | 下一跳/路由器接口 |
---|---|---|
192.168.1.0 | 255.255.255.128 | E0 |
0.0.0.0 | 0.0.0.0 | 211.84.5.1 |
分析:路由器 R 的下面为同一个网络:192.168.1.0/25
,那么目的网络就为192.168.1.0/25
。
再看一个:
注意:
- 此题目中说明了 尽量使用默认路由简化,故 R1 路由表向右边跳的时候都经过 R2 因此,可以简化
- R2 有3个目的网络,然后,其他3个网络必须经过不同的路由器,故要写出来
- 在没有下一跳的情况下,尽量用 - 这个写,不要用图一[1]种的写法
在不理解深层原理的时候,注意先记住如何写(个人感觉知道怎么写,比原理好理解>_<)!!
首先能写题,然后再去深究原理!!!!!!!!
可参考:
10.2外部网关协议OSPF
开放最短路径优先OSPF,为了克服 RIP 的缺点在 1989 年开发出来的
最短路径优先是因为使用了 Dijkstra 提出的最短路径算法 SPF。
OSPF只是一个协议的名字,他并不表示其他的路由选择协议不是“最短路径优先”。
关于OSPF的其他的知识点并非不重要,只不过没时间写这个了。。。。hhh
11.虚拟专用网 VPN
本地地址: 仅在本机构有效的 IP 地址。这类地址以169.254开头,主要用于设备在无法获取DHCP服务器分配的IP地址时,自动配置网络参数
专用地址,也称为私有地址,是在私有网络中使用的IP地址范围。这些地址不会被路由器或互联网上的其他网络所使用,主要用于局域网或公司内部使用。有如下三块
10.x.x.x
172.16.x.x — 172.31.x.x
192.168.x.x
不过多写了。。。。。
12.网络地址转换 NAT
网络地址转换技术NAT——主要用于实现位于内部网络的主机访问外部网络的功能。当局域网内的主机需要访问外部网络时,通过NAT技术可以将其私网地址转换为公网地址,并且多个私网用户可以共用一个公网地址,这样既可保证网络互通,又节省了公网地址。
NAT是将IP数据报文头部中的IP地址转换为另一个IP地址的过程,主要用于实现内部网络(私有IP地址)访问外部网络(公有IP地址)的功能。
更多可参考:
协议类型
- IP(互联网协议)
- ICMP(互联网控制报文协议)
- ARP(地址解析协议)
4.数据链路层
1.信道类型
- 点对点信道
- 广播信道
2.帧
1、封装成帧
:
在一段数据的前后分别添加首部和尾部
MTU
:帧的数据部分长度上线(最大传送单元)
SOH 数据部分 EOT
: 帧定界使用特殊的字帧定界符
2、透明传输
:
帧使用文本文件组成(文本文件中的字符都是从键盘上输入的)
为了解决数据中同样存在帧界定字符,使用ESC
转移字符加在特殊字符前(这是字节填充,还有一种字符填充)
3、差错检验
CRC
:循环冗余检验
该检验方法为在正常的数据后面添加计算得到的 FCS(帧检验序列)
- 计算步骤如下:
除数P肯定是已知的,一下的运算数据均为二进制下的状态
- 首先在传送的数据M部分后面加上
n个0
,n为除数的位数 - 1- M除以P求出余数(余数的位数一定小于除数,但是我们要保证添加的余数的位数为
n位
,即,位数不够的在前面加0)在进行除法的过程中,减法使用异或运算,减法的过程中不用在差的前面补零 (和书上的不太一样,但是这个方法更好理解)
检验的过程:
将收到的数据除以除数,得到的余数为零,即没有差错
只能判断是否出错,如果出错需要重传
生成多项式:
即除数的值
一般采用:
$$
P(X)=X^3+X+1
$$
的形式出现,上述的除数为1011
,即:从最高次幂开始,如果该次幂存在则该位为1,否则为0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
上述公式:
最高次幂为3,次幂为3存在则该位置为1,
2次幂不存在,该位置为0,
1次幂存在该位置为1,
0次幂存在该位置为1,
即从高位到低位有:1011
4.传输差错分类
比特差错:
举例:数据链路层通过 CRC 检验后,进行接受的数据均无差错,但是,出现差错的帧被丢掉了,可能会导致接受的帧不够
传输差错
举例:帧丢失、帧重复、帧失序属于传输差错,这些帧中均无比特差错
5.PPP点对点协议
设计时的要求:
- 简单
- 封装成帧
- 透明性
- 差错检验
- MTU(一般等于1500B)
- 等
组成
- 一个IP数据报分装到串行链路的方法。IP 数据报在 PPP帧中就是信息部分
- 一个用来建立、配置、测试数据链路连接的链路控制协议 LCP
- 一套网络控制协议 NCP
格式
按照顺序:
首部
1B:
F、 7E(F为字段标志,7E为该字段的值,下同理)1B:
A、FF1B:
C、032B:
协议信息部分(即为,IP 数据报),长度可变,不超过 1500B
尾部
2B:
FCS(帧的检验序列)1B:
F、7E
字节填充
规定:转移字符为
0x7D
填充方法:
0x7E
转为0x7D,0x5E
0x7D
转为0x7D,0x5D
- 如果出现数值小于
0x20
则在他的前面加上0x7D
零比特填充
PPP 在使用同步传输(一连串的比特连续传送)而不是异步传输(逐个字符的发送),做法如下:
- 扫描整个信息字段
- 发现连续的5个1 ,则立即在后面填上一个0
适配器:计算机与外界局域网的连接就是通过适配器实现的。适配器本来是在主机箱内插入的一块网络接口板,这种接口板又称为 网络接口卡 NIC ,简称: 网卡
5.CSMA/CD协议
意思为:载波监听多点接入/碰撞检测
要点:
1.多点接入: 说明这是总线型网络
2.载波监听: 边监听边发送
在发送中检测信道,是为了及时发现如果有其他站也在发送,就立即中断本站的发送,这就是 碰撞检测;他是适配器边发送数据边检测信道上的信号电压的变化情况
电磁波在 1km 电缆的传播时延约为 5us
在局域网的分析中,常把总线上单程端到端传播时延记为 τ (tao,第四声,希腊字符)
取总线两个站之间(这两个站之间的距离最大)的传播时延为端到端的传播时延
这个协议为半双工通信
对于一条具体的信道:
$$
最短有效帧长 = 发送速率 × 2τ
$$
$$
τ = \frac{链路长度}{电磁波在链路上的传播速度}
$$
以太网端到端的往返时间 2τ 称为争用期。争用期又称为碰撞窗口
以太网通过 截断二进制指数退避 算法确定重传时机。
他有如下规定:
- 基本退避时间为争用期 2τ ,具体时间为 51.2us,对于 10Mbit/s以太网在争用期内可发送 512 比特,即 64 字节,也可以称为 512比特时间
- 从集合 [ 0 , 1 , … , $2^k$ -1 ] 中随机取一个数,记为 r,重传应推后的时间是 r 倍的争用期,但是 ,k=min( 重传次数,10 )
- 当重传16次仍不能成功,则丢弃该帧,并向高层汇报
从上面知道:凡是长度小于 64 字节的帧都是由于冲突而异常终止的无效帧
以太网中最短有效帧长为 64 个字节,请从争用信道的角度分析原因?
对于争用信道的以太网,为了减少冲突发生的概率,使用的是 CSMA/CD 协议, 该协议规定了基本退避时间为 51.2µs,对于 10Mbit/s 的以太网,在争用期内可发送 512bit,即 64 字节,凡是长度小于 64 字节的帧都是由于冲突而异常中止的无效帧。
6.以太网的MAC层
在局域网中,硬件地址又称为物理地址或MAC地址(因为这种地址用MAC帧)
发送本站的帧:
- 单播(一对一),收到的帧的MAC地址和本站的相同
- 广播(一对全体),发送给本局域网上所有站点的帧(全1地址)
- 多播(一对多),发送给本局域网上部分站点的帧
MAC帧格式:
7.集线器、路由器
1、集线器
集线器是工作在物理层的设备,当他收到数据以后就把这个数据复制复制以后就把这个数据象所有的接口发送一次。所以集线器所有的接口是一个冲突域和广播域。
2、交换机
交换机就和集线器不一样了,交换机工作数据链路层的设备,他能够识别数据帧和MAC地址,他工作的方式就和集线器有很大的区别。交换机是依靠MAC地址表来转发数据。对于MAC地址表里没有的数据就广播。所以我们说交换机的每个接口都是一个冲突域,交换机的所有的接口都属于一个广播域。
3、路由器
路由器是工作在网络层的设备,路由器转发数据是依靠路由表来转发数据。对于广播流量路由器会处理但是不会转发数据。所以我们说路由器的每个接口都属于同一个冲突域和广播域。路由器可以用来隔离广播。
总结
集线器(HUB)所有端口都在同一个广播域、冲突域内,所以HUB不能分割冲突域和广播域。
交换机(Switch)所有端口都在同一个广播域内,而每一个端口就是一个冲突域,所以交换机能分割冲突域,但分割不了广播域。虚拟局域网(Vlan)技术可以隔离广播域。
路由器(Router)的每个端口属于不同的广播域、冲突域。
也可以这样理解:
HUB属于第一层设备所以分隔不了冲突域;
交换机和网桥属于第二层设备所以能分割冲突域;
路由器属于第三层设备,所以既能分割冲突域又能分割广播域。
1、冲突域(碰撞域)
冲突域是指在一个局域网(LAN)上,当两个或多个设备同时发送数据帧(数据包)时,可能发生冲突的区域。在以太网中,当两个设备同时发送数据帧到同一个物理网络(例如,使用同一根网线)时,它们的数据帧可能会在中途碰撞,导致数据帧损坏,需要重新传输。
2、广播域
广播域是指在一个网络中,广播数据包可以传播到的范围。广播数据包是一种特殊的数据包,它会被发送到网络中的所有设备,而不仅仅是目标设备。通常广播数据包用于网络发现和配置。
8.虚拟局域网(VLAN)
能隔离碰撞域的不一定能隔离广播域,能隔离广播域的一定能隔离碰撞域
VLAN(Virtual Local Area Network,虚拟局域网) 是一种将网络中的设备划分为逻辑子网的技术。与传统的物理局域网不同,VLAN不依赖设备的物理位置,而是基于逻辑划分,将局域网内的设备虚拟地组织到同一组。这种方式允许网络管理员按照不同的需求,将不同区域、不同楼层,甚至不同交换机上的设备,划分到同一个VLAN中,使其表现得像一个独立的子网。
VLAN标识(上图802.1Q标识字段):每个虚拟局域网都有一个唯一的标识符,称为VLAN标识(VLAN ID)。这个标识(具体是VID的12位)可以是一个数字,通常范围在1到4094之间。VLAN标识用于区分不同的虚拟局域网。
插入该标识字段后,FCS要重新进行计算
工作原理:
端口划分:交换机上的每个端口都可以配置为属于一个或多个VLAN。通过配置端口所属的VLAN,可以将该端口上的设备划分到相应的虚拟局域网中。
数据转发:交换机会根据目标MAC地址来转发数据,根据端口配置将数据转发到相应的VLAN。在同一个VLAN内部的设备之间的数据交换是直接进行的,而不同VLAN之间的数据需要经过路由器或三层交换机进行转发。
VLAN隔离:不同的VLAN之间是逻辑上隔离的,设备在一个VLAN中无法直接访问另一个VLAN中的设备。这种隔离可以提高网络的安全性,防止未授权的访问。
关于VLAN的划分,参考:VLAN 划分——基于交换机端口划分VLAN
协议类型
- 以太网协议(帧的生成、传输、接受)
- PPP(点对点协议)
- CSMA/CD(载波监听多路访问/碰撞检测)
5.物理层
1. 特性
机械特性:指明接口所用接线器的形状和尺寸、引脚数目和排列等
电气特性:指明接口电缆的各条线上出现的电压范围
功能特性:指明某条线上出现的某一电平的电压意义
过程特性:指明对不同功能的各种可能事件的出现顺序
2. 信道
- 单向通信(单工通信):只能有一个方向的通信;例如:无线电广播、有线电广播、电视
- 双向交替通信(半双工通信):双方都可以发送信息,但是不能同时发送
- 双向同时通信(全双工通信):双方可以同时发送和接受信息
3. 奈氏准则和香农公式
奈氏准则:在宽带为 W(Hz)的低通信道中,如不考虑噪声影响,则码元传输的最高速率是 2W(码元/s)。传输速率超过此上限,就会出现严重的马间串扰的问题,是接受码元的判决(即识别)称为不可能。
$$
B=2W
$$B
:码元传输速率
$$
M=2^n
$$
$$
n=log_2 M
$$
M
:码元状态数(不同振幅的信号的个数 | 频率 | 相位)
$$
C =Wlog_2(1+\frac{S}{N}) [香农公式]\
= Bn\
= B log_2 M\
= 2Wlog_2M
$$
W
:带宽(Hz)
S
: 信道内所传信号的平均功率
N
:为信道内部的高斯噪声功率
C
:单位 bit/s
协议类型
- EIA/TIA RS-2322
- IEEE 802.3(以太网)
- IEEE 802.11(无线局域网)
附录:
图一 ↩