计算机网络期末复习笔记

时隔许久的更新

Posted by Lin_Xuan on May 11, 2021

指南

复习指南(参照覃振权最后一节课)

一边听一边总结,由于自身水平和语音清晰度问题,可能有错误,仅作参考

第一章 概要

时延等概念很重要

RTT是怎样的概念

TCP、IP、OSI的模型 五层 or 七层 为什么要去分层

名词英文名称的记忆(如文件传输协议-FTP)

分层,每一层的功能和服务,每一层是如何进行交互的?

分组:帧、数据报、报文等不同的名称

第二章 应用层

术语比较多,考简答题。基本解释要知道。如:FTP是怎样的

协议都比较重要,如HTTP(持久性、非持久性、流水线)。编程相关可以忽略。

2.2 2.3 2.4 2.5,专业术语要知道,一般考选择题和名词解释。

第三章 传输层

最最最重要的部分之一,选择题、名词解释、简答题、综合体都会出现。

UDP和TCP的功能,细节。

多路复用和分解,通过端口/其他技术。

UDP的基本特性,有链接,无连接特性的选择。

UDP、TCP、IP的数据报的首部格式,基本域的格式和意思3.3 、3.5.2 、4.4.1必须要知道。

checksum的功能,计算的范围不同,强调过的。

RDP(可靠数据传输) 流水线、回退N、选择重传等知识。很重要的基础。

TCP的连接和释放,序列号,位的变化(掌握到 第一次作业的题目的程度)。

TCP可靠数据与RDT的区别和联系需要知道。

流量控制和拥塞控制的区别和各自的特点,强调过很多遍,涉及到快速重传和快速回复。不需要太详细给关注具体每一步是怎么做的,但是要知道基本概念。

第四章 网络层

重要的概念——转发和路由。

路由器的具体学习不太重要,但是路由器、网桥、交换机的工作层、联系和区别需要掌握。

4.4 IP数据报的格式强调过,很重要。

编址:有类别(8,16,24位的网络地址各个类别的范围、网段)、无类别(子网掩码,可编程掩码,无类预先路由 需要注意一下)

无类别,网络位址可以变化。如果32位全部是网络位,是什么概念?——路由器的路由表按照网段去寻路。可以添加主机路由。可以没有一位是网络位**默认路由 **。

数据报过大时:MTU、分片怎么处理。

IPv4和IPv6的一些区别,如新特性要知道。同时,现在的互联网再过度时使用了那些技术。

ICMP协议:在老师看来在互联网管理中地位很重要。PS:学校对软件学院的定位:软件+传统学科

选路:基本概念要知道。

RIP,OSPF、(I+E)BGP基本概念,基本区别,内部选路,外部选路,这三个协议的联系与区别,具体的工作原理不是重点。

最后 链路层和局域网

CRC的计算,不一定会考,但是肯定是重点。

多路访问的协议每一个的联系、区别、递进的关系,需要知道。

5.4 MAC地址的编址:与IP地址的联系与区别。MAC地址和IP地址之间的转换,ARP的转换过程

以太网CSMA、为什么要引入\CD,在无线中引入到\CA,之间有什么区别。

最小帧的计算,有公式。

交换机和路由器、网桥的各自的差异(前面已经提到过了)

CSMA\CD是最重要的。

802.11的MAC协议,整个数据RTSL,CTSL,数据,ACK(听不清楚)的发送流程,怎样调整,通过那些packet来调整的流程。

对于考试:上面讲的都会考,没讲的可能会忽略一下。会出大题的地方就都包括了。

选择题20分+名词解释20道题+5~6道简答题30+大题30分左右(上课讲过那些会出……我哪知道啊)

不考了:IP地址和MAC地址的联系和区别?要答3~4点。

RTT知道概念即可。不需要知道怎么算的。

路由算法不需要具体了解,但是要知道区别。三种路由算法:静态、链路状态、距离向量。

第一章

时延:

Process delay:节点处理延时。路由器检查包有没有错误,决定发送方向时,花费的时间。

Queuing delay:排队延时。包到达分组交换机的缓冲区是,需要排队的时间。

Transmission delay:传输延时,发送延迟。在分组交换机发送一定大小的包需要时间。长短视带宽而定。

Propagation delay:传播延时。数据在物理线路上传播消耗的时间。长短视物理距离而定。

分组交换和电路交换的时延计算

电路交换:在电路交换网络中,维持一条提供端到端系统之间通信的路径所需要的所有资源被专门占有来维持会话的连续。

分组交换:资源不会被专门占有,采用存储转发的策略,会话临时申请资源,因此可能会产生等待。其中,分组交换是使用分组交换机来实现的,主要包括路由器和链路层交换机。

例题: 试在下列条件下比较电路交换和分组交换。要传送的报文共 x(bit)。从源点到终点共经过 K 段链路,每段链路的传播时延为 d(s),数据率为 b(b/s)。在电路交换时电路的建立时间为 s(s)。在分组交换时分组长度为 p(bit),且各结点的排队等待时间可忽略不计。问:在怎样的条件下,分组交换的时延比电路交换的要小?

解答: \(对于电路交换,延时只有提前建立连接,在节点的传输和传播。总时长为:\\ T_{Circuit} = s+\frac{x}{b}+kd \\ 而对于分组交换,由于忽略节点处理延时和排队延时,总时长由传播延时和中间多个节点的传输延时组成。\\为到达目的地,我们仅考虑尾部,即最后一个节点在中间k-1个节点的转发传播时延 \\ T_{Switch} = kd+\frac{x}{p}\times\frac{p}{b}+(k-1)\frac{p}{b}\\ 最后解方程得到结果即可\)

OSI分层

分层的目的

  • 明确的结构可以更好的识别复杂系统中不同部分的关系
  • 使系统的维护和更新更简答

原本的OSI设计是七层模型,但是实际中在用的是五层模型。在应用层下面的表示层(Presentation)和会话层(Session)没有实现。

数据在不同层的名称:

Message 消息/报文(应用层):应用层,主机发送的消息经过封装形成消息/报文。

Segment 报文段:传输层,报文经过传输层封装形成报文段。

Datagram 数据报:网络层,在封装,得到数据报。

Frame 数据帧/帧:数据链路层,再封装,得到数据帧。

不同层的功能:

网络协议栈:

  • 应用层:为用户提供程序接口(API)
  • 传输层:实现端到端(进程到进程)的通信
  • 网络层:实现主机之间的通信
  • 数据链路层:实现相邻节点间的数据传输
  • 物理层:完成物理介质上比特流的传输

OSI七层网络模型

  • 物理层:包含物理联网媒介,是计算机联网的基础
  • 数据链路层:在不可靠的物理线路上进行可靠的数据传递
  • 网络层:完成主机到主机的通信服务
  • 传输层:在中断用户之间提供透明的数据传输
  • 会话层:负责网络中两节点之间的建立和维护通信
  • 表示层:为不同终端的上层用户提供数据和信息的格式化
  • 应用层:负责对软件体统接口使程序能够使用网络服务

第二章

具体参考网课/学习笔记,内容太多,重点在于记忆概念。

HTTP

基于TCP,不保存信息,Cookie,RTT,代理服务器(有条件的get),使用80端口

会话过程:1. 建立连接 2. 发送请求 3. 响应请求 4. 断开连接。

是否持久

  • 持久:建立一次TCP连接,传送所有需要的资源
  • 非持久:每个连接只能传送一个文件

HTTP是state-less的,不会保存连接信息,但是会使用cookie来保存一些信息储存用户的一些状态和信息。

RTT: Round-trip Time一个包从客户端到服务器再回来的时间。

FTP

基于TCP,同时建立两条链接,使用21端口传输控制信息,20端口来传输文件。

TCP在连接过程中必须保存用户的状态,跟踪用户信息。具体在过程中,21端口的控制连接是持续连接的,但是20端口的文件传输连接每次只传输一个文件就关闭。

例题:FTP 协议主要包括一个主进程和若干从属进程,请简述主进程的工作步骤。

解答:

  • 打开熟知端口(端口号为21),使客户进程能够连接上
  • 等待客户进程发出连接请求
  • 启动从属进程来处理客户发来的请求。从属进程对客户进程的请求处理完毕后即终止,但从属进程在运行期间根据需要还可能创建其他一些子进程
  • 回到等待状态,继续接受其他客户进程发来的请求。主进程与从属进程的处理并发地进行

Email

SMTP(简单邮件传输协议)传送,POP(邮局协议),IMAP(因特网消息访问协议),HTTP接受,User Agent(windows邮件)+Mail Servers(outlook)

DNS

Root、Top-Lebel、Authoritative 、迭代查询(服务器)和递归查询(客户端和服务器)

其他还有Pear-to-pear、socket

重点再提一个:传输方式

in-band: 带内的,指控制信息和数据同时传输,如TCP和HTTP的头部信息和数据部分。

out-of-band: 带外的,数据和控制信息不是通过同一个连接传输的,而是通过独立的网络来传输。

第三章 传输层 Transport layer

多路分解、多路复用

运输层提供端到端的连接,是通过socket(嵌套字)实现的。

多路复用实质上是在可以使得“多个模拟信号或数字数据组合成一个信号,在一个共享的信道内传输”的方法。TDM和FDM是常用的两种方法。

多路分解:在接收端,运输层检查报文段中设置的字段,并识别是接受socket,然后将报文段指向该socket,将报文段中的数据正确传递给socket。

多路复用:从源主机的不同socket接受数据块,并为每个数据块疯涨首部信息生成报文段,然后将报文段发送到网络层。

为了实现多路复用和多路分解,要求 1. socket有唯一识别符 2. 每个报文段有特殊字段来指示需要传递给的socket。在实际中,特殊字段是 源端口号和目的端口号。 端口号:16bits(2字节)的数字。

UDP(无连接)的socket是二元组,由目的IP和目的端口组成。来自不同IP和端口的报文段segment通过相同的socket指向相同的进程。 TCP(有链接)的socket是四元组,增加了源IP和源端口号。不同IP或端口号的报文段将通过不同的socket指向不同的进程。

UDP

UDP,无连接,不提供不必要服务,仅有进程间的数据交付差错检查两个功能。因此具有优势:

  • 应用层可以更好的控制发送的数据和时间
  • 无需建立连接。
  • 无连接状态
  • 分组首部开销小。

报文段格式

UDP的报文段头部很小,只有8个字节(四个字段,每个字段2字节)。其中,destination port(目的端口) 被用来多路分解。length指的是整个UDP报文段的大小(包含头部)。

Checksum

以16bits为单位,把所有的数据求和,最后取反作为checksum码。

在计算时要注意回卷,即最高位的仅为要加到最低为上。

问:UDP、TCP、IP的checksum的区别?

答:UDP和TCP的checksum检查所有的数据,而IP的checksum只检查了IP报文(Datagram)的头部20+字节。

RDT 可靠数据连接

逐层考虑更多的情况,得到相对完善的RDT(Reliable Data Transport)服务。

RD1.0:直接传送,不考虑IP层不可靠

RD2.0:考虑到有比特差错,因此增加ACK(Acknowledge)和NCK(Negative Acknowledge)来对发送的数据包进行确认。但是没有考虑ACK和NCK的受损问题,会有冗余的数据包(发送方以为自己发错了)

ED2.1:对数据包分组并标号

RD2.2:去除NCK,使用对上一个收到的数据包的ACK来代替NCK功能。收到5号分组的ACK两次后,说明5号之后的数据报就可能已经出错了。但是,这些都没有考虑到丢包问题

RD3.0:在收到ACK前,发送端设置定时器等待一段时间。超时就重传,冗余数据包在RD2.1就已经解决。

流水线可靠数据传输

RD3.0的等待时间太长,吞吐量太低。采用流水线的方式。有回退N步选择重传两种方法。

回退N (Go-Black N)

GBN算法也被称为滑动窗口算法,并采用累计确认超时重传的方法。

即:收到编号为N的ACK,代表N以前的所有包已经按需到达。此时,窗口向右移动到第一个已发送未确认的标号处。新加入窗口的数据包都可以发送。 所有的分组共享一个计时器。收到任意ACK,则重新启动。不存在未确认分组则停止计时。超时则重新发送所有发送未确认的分组。

对于接收方,丢弃所有乱序的分组,只按序接受分组。

选择重传(Select Repeat)

接收方缓存并接受已经收到的,乱序的分组,且分别发送ACK。每个分组都有自己的计时器,分别在超时后重传。窗口在连续的分组都确认后滑动,而不是每次ACK滑动。

这就要求,窗口的长度必须小于等于序号空间的一半。

TCP

报文段格式

TCP的报文头部一般是20字节,可以扩展。

SYN用于连接,FIN用于断开连接,各占1bits,占据序列号。head length标识头部长度,为4bits。

TCP和IP报文种的head length都是以4字节为单位指示大小的。

可靠数据传输

不同于UDP,TCP是面向连接的,可靠的数据传输方式。但是TCP的可靠数据传输是使用了类似GBN和SR的混合体的方式。

一方面,TCP采用累计确认的方式,即对编号为N的序列的ACK视为之前的所有分组都已经正确接受,因此只设置了一个当前计时器。但是,TCP不像GBN一样对其失序的分组,而是会缓存起来,同时发送有序的下一个分组的ACK(比如02及以前以前的数据都收到并确认过了,现在没有收到03而是收到了04,05,则会有两次对03的ACK发送回去,即存在冗余ACK)。但是,缓存的片段不会逐个确认。因此当发生超时时,TCP只重传发生超时的当前的一个分组片段。

另外,TCP的分组有标号,标号为其字节长度。且ACK永远为想要收到的下一个分组的首地址的字节数。

快速重传:当收到连续三个对同一个分组的ACK时,即便计时器还没有超时,也会迅速重传该序号对应的分组。

超时 时间间隔加倍:当某个分组超时后,重新发送后,计时器的过期时间就会增加一倍,知道彻底发送失败(类似以太网中的CMSA/CD算法)

流量控制:TCP是接收方维护一个接收窗口来执行流量控制,指示自己还剩下的缓存空间大小。由于全双工,TCP的双方实质上都维护了接收窗口。

TCP可靠数据传输和RDT有什么区别与联系?

答(自己的想法):

连接管理

三次握手建立连接

四次挥手断开连接。

例题:在client发送FIN,且被server确认后,client和server还可以互相发送信息吗?为什么

答:在前两步完成后,server认为来自client处的连接已经断开,将不会接收到那个方向的数据。但是仍然何以向client发送数据,client也还也已接受来自server的数据。因为TCP在正常连接时是全双工的。

拥塞控制原理

TCP有拥塞控制窗口大小cwnd和接受窗口大小rwnd,发送的速度取二者的最小值。

首先,主机需要知道当前链路是否发生拥塞。即,当收到ACK时,说名分组正常到达,畅通;当发生丢包(出现冗余ACK或者定时器超时)说明当前网络存在拥塞。而TCP的拥塞控制算法包括三方面:

  1. 慢启动。TCP使用MSS(最大报文长度)来作为单位。一开始的cwnd(控制窗口大小)为一个MSS。在慢启动阶段,每收到一个ACK,就把cwnd的大小增加一,因此实质上是指数增长,因为每过一个RTT,cwnd都会翻倍。到达阙值后进入拥塞避免
  2. 拥塞避免。每过一个RTT,只增加一个MSS。当出现一个超时或连续三个冗余ACK后,cwnd设置为1,同时ssthresh(阙值)设置成cwnd的一半。
  3. 快速恢复。推荐而非必须,新版以实现。在发生丢包后,ssthresh减小为一般,但是并不进入慢启动阶段,而是把cwnd值设置为ssthresh减半后的数值,然后开始执行拥塞避免算法(“加法增大”),使拥塞窗口缓慢地线性增大。

例题:TCP拥塞控制和流量控制有什么区别?

答: 拥塞控制:防止过多的数据注入到网络中,这样可以使网络中的路由器或链路不致过载。拥塞控制所要做的都有一个前提:网络能够承受现有的网络负荷。拥塞控制是一个全局性的过程,涉及到所有的主机、路由器,以及与降低网络传输性能有关的所有因素。 流量控制:指点对点通信量的控制,是端到端正的问题。流量控制所要做的就是抑制发送端发送数据的速率,以便使接收端来得及接收。


例题:补充完整(TCP的运行流程)

网络层

路由和转发

问:简述路由器的路由功能和转发功能

答: 转发即当一个分组到达时所采取的动作,在路山器中每个分组到达时对它进行处理,它在路由表中查找分组所对应的输出线路。通过查得的结果,将分组发送到正确的线路上。 路由算法是网络层软件的一部分,它负责决定一个进来的分组应该被传送到哪条输出线路上。 路由算法负责填充和更新路由表。转发功能则根据路由表的内容来确定当每个分组到来的时候应该采取什么动作(如从哪个端口转发出去)。

IP数据报格式

IP数据包的头部固定部分大小为20字节,可扩展。到这一层,对于进程传送的原始数据,已经有了20+20/8的头部大小。

由于IP头部可扩展,使用4 bits的head length来标识。而length代表的是总长度。

第二行的标识、flag和offset都是为分片做准备的。flag有三位,分别代表是否允许分片是否是分片的最后一位和不知道。

数据报分片:链路层帧有MTU——最大传输单元,因此在有些地方需要进行分片操作。flag为1的数据报可以分片,分片后,多有分片的identifier位是相同的,拥有不同的offset来实现重组。offset有13为,以8byte为单位管理。并且最后一个分片的flag位置为0,其余为1。 分片时,只切分data块,因此每个分片会拥有完整的20+字节的首部。

第三行TTL标识寿命,每经过一个路由器就减1。变成0则抛弃该数据包,防止数据包循环传递造成网络风暴。

上层协议标识数据是什么报文,如TCP or UDP等。禁言和仅仅是头部的检验和。IP层提供尽力而为的服务,不可靠。

IP编码

旧的编制方法是分为5类(如图)

\[A类地址127\times(2^{24}-2)个\\ B类地址63\times(2^{16}-2)个\\ C类地址31\times(2^8-2)个\\ D、E类地址不分网络位和主机位,D前缀都为1110、E都为11110\]

现行的地址编码是CIDR,无类别域间路由选择,由点分十进制表示为a.b.c.d/x,x表示前多少位是网络位,不在固定划分。 一般来说,将连续的网段如a.b.c.d/x分配给组织或公司,剩下的32-x位让其自主分配,外部路由器不考虑主机地址,只是将信息传递到该公司所属的网段即可。子网内部传输时使用剩下的32-x位。 这时,就存在一些特殊的网络地址。若x=32,即所有地址是网络地址,则该地址是主机路由,代表该主机直接接入互联网。若x=0,则为默认路由,在路由器找不到吓一跳的位置是,就使用默认路由传递到另一个路由器,同时TTL-1。

每个网段中,有两个地址是不允许分配的。一个是主机位全为0的地址,指代的是本网络,常用在路由器的路由表中,代之本网段的地址。;一个是主机位全为1的地址,指代本网段中的广播地址。

NAT 网络地址转换技术

缓解IPV4枯竭的技术之一。发送到路由器的数据报是同的都是相同的地址,路由器使用端口号识别内部地址,把数据报发送到正确的内部主机上。

IPV6

IPV6的地址位数变为128bits,极大的扩展了IP地址的个数。数据报头部大小40字节,不可扩展

同时,IPV6不支持分片操作,MTU过小则放弃传送,返回失败信息。IPV6还去除了对头部的检验和操作。

问:简述IPV4到IPV6的过度技术

答:

  1. 双协议栈技术:即每个路由器同时支持两种协议的传输。 双协议栈技术易于实现,互通性好,但是每个节点需要同时获得ipv4地址,没有解决ipv4地址紧张的问题。同时,维护两套协议栈的代价比较⾼。
  2. 隧道技术:IPv6数据报在需要穿过IPv4网络是,封装成IPv4数据报传输,对IPv6网络隐藏IPv4。
  3. 网络地址转换技术:所有的ipv6客户端使用同⼀个ipv4地址与ipv4节点进⾏通信,使用端⼝号进⾏识别。 但是,在需要加密的环境下不能⼯作。

路由协议

三种路由算法

静态路由算法:随着时间的流逝,节点的变化是非常缓慢的,通常采用人工干预的方式进行调整,如手动编写路由表。

链路状态算法 Link State: 具有全局状态的统计信息,执行类似Dijskra的操作,计算最短路径。

距离向量算法 Distance Vector: 采用迭代的、分布式的放吧进行计算,每个节点从邻居出得到信息,然后更新自己的信息并向邻居发送,直到收敛。

Count-Intinity 无穷技术问题:在DV算法中,链路故障想要收敛会导致近似无穷次计算。因此增加毒性逆转,即z选择通过y到x,则会告诉y,自己到x的距离为正无穷。即链路不允许通过原路径返回。

自治系统内部:RIP协议

使用距离向量DV算法,用跳数来作为费用的尺度,大小为从源路由器到目的子网(包括)所经过的子网数量。

条数最大为15,超过15视为断开,因此适用于小范围。每台路由器维护路由选择表

| 目的子网 | 下一跳路由器 | 目的地跳数 | | ——– | ———— | ———- |

30S向周围发送一次相应信息。

自治系统内部:OSPF

应用洪泛(Flooding)传递链路状态信息,周期性(至少每30分钟一次)或在状态改变时广播自己的链路状态。直接使用IP数据报发送OSPF报文。

自治系统间:BGP协议

作用:

  1. 从相邻AS出获得子网的可达性信息
  2. 向该AS内部的路由器传播这些信息
  3. 给予可达性信息和AS册罗,决定到达子网的好路由。

一个系统在通告其他AS自己的地址时,使用内部子网的CIDR格式(即/x记法)点最长前缀和发送。除此信息外,还会包含一些额外属性。前缀和属性一起构成一条“路由”信息。


问:三种路由协议的联系与区别是什么?

答:

数据链路层

CRC校验码的计算

通信双方定义一个共同的k阶多项式G(例如$P(x)=x^4+x+1$ ),对应k+1位的二进制码R(10011)。

  • 对于发送方:

设要发送的数据有n位,则将n左移k位后,除以R得到k为的余数,就是校验位。这里的除指的是模2除法。发送放将n位数据和k位校验码一起发送出去。

  • 对于接收方:

将接受到的所有的数据除R(模2除法),所得余数为0,则代表没有差错。否则说明发生差错。

二进制模2除法

加法不进位,减法不借位,实质上是一种异或操作。距离如图示:

多路访问协议 Multiple Access

信道划分协议

TDM时分多路复用FDM频分多路复用两种

随机接入协议 Random Access

Slotted 时隙 ALOHA

  • 所有帧长度为L比特

  • 时间被划分为L/R秒的间隙,即传送一帧的时间
  • 节点只在时隙开始时传输,且所有节点同步开始时间
  • 如果一个时隙内有多个帧碰撞,则所有节点在时隙结束前可以检测到碰撞事件。

则每个节点的行为很简单:有帧时就发送,发送出去,没有检测到碰撞则成狗,否则以概率p在后续的每个时隙传输,直到传输成功。

ALOHA 非时隙的ALOHA

不在划分时隙,而是分散的。仍然在帧到来是立刻传输。在检测到冲突后,等待一个帧传输的时间,后以概率p重新传输,概率1-p再等待一个传送时间。

CSMA 载波侦听多路访问

设备监听其它设备是否忙碌,只有在线路空闲时才发送。分为工作在无线网的CSMA/CA带冲突避免的~和以太网的CSMA/CD带冲突检测的~。

有几种类型:

1-persistent:1坚持:想要发送帧时,立刻持续侦听信道,直到空闲。

non-persistent:非坚持,不空闲时等待一个固定的时间后再监听。

p-persistent: p坚持,空闲时,以概率p直接发送,概率1-p再进行监听。

CSMA/CD:
问:请简述CSMA/CD的工作原理

答:

  1. CSMA/CD 协议即载波监听,多点接入,碰撞检测。(2 分)
  2. 首先,每个站点发送数据之前必须侦听信道的忙、闲状态。如果信道空闲,立即发送数据,同时进行冲突检测;如果信道忙,站点继续侦听总线,直到信道变成空闲。(2 分)
  3. 如果在数据发送过程中检测到冲突,将立即停止发送数据并等待一段随机长的时间,然后重复上述过程。(1 分)
  4. 即:先听后发,边听边发;冲突检测,延时重发。(1 分)
CAMA/CA

CSMA/CA (Carrier Sense Multiple Access with Collision Avoidance) 即载波侦听多路访问/冲突避免。采用该协议要求设备要主动避免冲突而非被动侦测的方式来解决冲突问题。

工作流程如下:

  1. 首先检测信道是否有使用,如果检测出信道空闲,则等待一段随机时间后,才送出数据。
  2. 接收端如果正确收到此帧,则经过一段时间间隔后,向发送端发送确认帧ACK。
  3. 发送端收到ACK帧,确定数据正确传输,在经历一段时间间隔后,再发送数据。

问:CSMA/CS和CSMA/CA的区别?

答:

  1. CSMA/CD主要着眼点在冲突的侦测,当侦测到冲突时,进行相应的处理,要求设备能一边侦测一边发送数据。
  2. CSMA/CA主要着眼点在冲突的避免,协议里也看到经常是等待一段时间再做动作,通过退避尽量去避免冲突,还有就是先发送一些特别小的信道侦测帧来测试信道是否有冲突。

轮流协议 Take turns

Polling 轮询协议

有一个节点被选定作为主节点。主节点轮流询问其他节点,告诉它可以传输帧的数量,进行控制。缺点是只有一个节点活跃,同时主节点故障,整个信道损坏。

Token-passing 令牌环协议

没有主节点,称为令牌的特殊帧在节点之间一次交换,得到令牌的节点何以发送帧。

最小帧的计算

在一帧发送完毕之前,发送方必须要检测到是否有冲突发生,如果有则按照相应算法检测后重新发送该帧。因此,发送一个帧的时间必须要大于检测一个冲突的最长时间。而检测冲突的最长时间等于电信号在最长的线路上跑一个来回的时间。

问:电缆长度为1000米,数据传输率为100Mbps的,信号在电缆上的传播速度为200,000km/s, 问帧的最小长度为多少?

答: 电缆的单向延迟为5微秒,2倍的单向电缆延迟为10微秒。 则最小帧长度为: 10微秒* 100Mbps= 1000位=125字节。

同时,IP层限制了IP数据报的MTU位1500bits,加上链路层的18bits,最大帧长位1518bits。

总结:

IP层:46~1500

数据链路层:64~1518

MAC编址

MAC地址有48位,前24位有统一组织进行管理、分配,后24位由分配到的厂家进行自主分配。

ARP 地址解析协议

在一直目的地IP地址的情况下,由ARP协议获得目的地的MAC地址。

如果目的IP与本身IP在同一子网内:

每台主机/路由器都储存有ARP table,储存了映射关系。当表中有目的IP时,直接查询、发送即可。

但是,如果表中没有,则发送一个ARP分组,包含发送放的地址和接收方的IP地址,以广播的形式发送。接收方在收到含有自己IP地址的ARP询问分组后,返回以个包含自己MAC地址的ARP分组,来更新发送主机的ARP table。

如果目的IP与本身不在同一子网

由于路由器负责转发不在同一子网内的IP数据报,因此ARP查询分组会被连接到目的IP子网的路由器响应,并返回路由器的MAC地址。在路由器转发时,会进行替换。

路由器、网桥和交换机

问:网桥、以太网交换机和路由器的区别?
  1. 网桥、以太网交换机都是工作在链路层的设备用来转发数据帧Fram,而路由器是工作在网络层的设备,转发数据报Datagram。
  2. 网桥、交换机都可以隔离冲突域,但是不可以隔离广播域;路由器可以隔离广播域。
  3. 以太网交换机实质上是一个硬件实现的多端口的网桥,以太网交换机通常有十几个端口,而网桥一股只有 2 到 4 个端口,常用软件实现;
  4. 它们都工作在数据链路层:网桥的端口一般连接到局域网的网段,而以太网交换机的每个端口一般都直接与主机相连,也可连接到 HUB;
  5. 交换机允许多对计算机间能同时通信,而网桥最多允许每个网段上的一台计算机同时通信;
  6. 网桥采用存储转发方式进行转发,而以太网交换机还可采用直通方式转发。以太网交换机采用了专用的 ASIC 交换机构硬件芯片,转发速度比网桥快。