计算机网络考纲复习笔记
计算机网络考纲复习
第一章 计算机网络和英特网:
计算机网络的定义:
两台以上具有独立操作系统的计算机通过某些介质连接成的相互共享软硬件资源的集合体。
协议的定义和基本要素:
定义了两个或多个通信实体间所交换报文的格式和次序,以及在报文发送和/或接收或者其他事件方面所采取的行动(响应)。
基本要素:
- 语法:报文格式
- 语义:各字段的含义
- 同步(时序):报文传输的先后顺序
Internet的构成描述:
具体构成:
硬件上:
数以亿计的计算互连设备、通信链路(link)、分组(packet)交换。
服务上:
提供网络应用基础架构、为分布式应用程序提供通信服务接口(无连接服务和面向连接服务)。
网络交换方式:
电路交换
多路复用(Multiple Access)
分片分配到会话
分片没有被会话使用的情况下,分片空载(不共享)
电路级性能(有保证)要求呼叫建立--建立一个专门的端到端线路(意味着每个链路上预留一个线路)
(1)预先建立连接,预留资源,发送方以恒定速度发送数据
(2)电路和通信链路的区别
(3)链路带宽和一条电路的传输速率的关系
(4)频分多路复用和时分多路复用(会计算)
(5)电路交换的优缺点:电路级的性能,时延小;效率低;创建连接过程复杂
设文件长640kb,链路采用时隙数为24的TDM,传输速率1.536Mb/s,主机之间创建一条端到端电路需500ms。
每条电路的传输速率:(1.536Mb/s) /24=64kb/s
传输文件时间:640kb/(64kb/s)=10s
A到B的总发送时间:10s+0.5s=10.5s
分组交换
(1)报文:应用程序要传输的信息,包含控制或数据
(2)分组:报文拆分成若干的数据块,每个数据块加上头部信息,构成分组
(3)特点:所有分组共享网络资源、每个分组使用全部链路带宽、资源按需使用;
优点:适合大量的突发数据传输,资源共享、简单, 不需要建立连接
缺点:过渡竞争导致分组延迟与丢失,需要可靠数据传输、拥塞控制协议
分组交换网络分类:
数据报网络:
TCP/IP分组目的地址决定下一跳
会话期间路由可以改变
比方: 驱车逐段问路
虚电路网络: X.25,FR,ATM
每个分组有1个标签 (虚电路号,virtual circuit ID), 标签决定下1跳
连接建立时确定固定的路径, 并且将保持于整个会话期间
路由器必须为每个连接维护状态信息
企业(和家庭)接入网络 :
(1)LAN( Ethernet 技术)
(2)WIFI(无线局域网技术,802.11)
分组延迟的4种类型
(1)节点处理时延:差错检测、选择输出链路,微秒级
(2)排队时延:等待被发送到输出链路上的时间,取决于路由器的拥塞程度
(3)传输时延:R=链路带宽 (bps),L=分组长度 (bits),发送分组比特流的时间 = L/R
(4)传播时延:d = 物理链路的长度,s = 介质的信号传播速度,传播延迟 = d/s
排队时延:流量强度(traffic intensity) = La/R,其中a为平均分组到达速率, L为分组长度, R为链路带宽
- La/R ~ 0: 分组稀疏到达,无队列,平均排队延迟极小接近于0
- La/R -> 1: 分组猝发到达,形成队列,队列长度迅速增加,排队延迟大幅增大
- La/R > 1: 输出队列平均位到达速率超过送走这些位的极限速率,输出队列持续增长,排队延迟趋于无穷大
TCP/IP分层模型:
TCP/IP 各层 | PDU名称 |
---|---|
应用层 | APDU |
运输层 | 段 |
网络层 | 分组 |
数据链路层 | 帧 |
物理层 | 比特流 |
应用层application: 支持网络应用,报文传送FTP, SMTP, STTP …
传输层transport: 主机进程间报文段传送,TCP, UDP
网络层network: 主机(源目标节点)间分组(数据报)传送主要是IP协议, 路由协议
链路层link: 相邻网络节点间的数据帧传送,PPP, Ethernet …
物理层physical: 物理介质上的比特传送
常见的网络攻击:
被动攻击和主动攻击(篡改、伪造消息)
(1)植入恶意软件(病毒、蠕虫、僵尸网络):自我复制
(2)DoS攻击(弱点攻击【向目标主机上易受攻击的应用程序和操作系统发送精细的报文】、带宽洪泛【向目标主机发送大量分组】、连接洪泛【利用目标主机创建半开或全开的TCP连接】)
(3)嗅探分组(无线网络和以太网LAN):数据加密
(4)伪装(IP哄骗):采用端点鉴别机制
(5)中间人攻击(攻击者与通讯的两端分别创建独立的联系,并交换其所收到的数据;虚拟专用网(VPN)、SSL证书)
第二章 应用层:
Web应用和HTTP协议:
基本术语(网页、URL等)、
网页(Web页,或称文档)由许多对象组成。
对象就是文件,可以是HTML文件, JPEG图像, Java applet, 音频文件…
多数网页由单个基本HTML文件和若干个所引用的对象构成
每个对象被一个URL(Uniform Resource Locator统一资源定位符)寻址
HTTP: 超文本传输协议(HyperText Transfer Protocol)
Web的应用层协议
client/server模式
client: 浏览器browser请求, 接收, “解释显示” Web对象
server: Web服务器响应请求,发送 Web对象
HTTP的特性及其区别(无状态、非持久和持久等)
特性:HTTP是一个无状态的协议:HTTP服务器不维护客户先前的状态信息
非持久HTTP连接:每个TCP连接上只传送一个对象,下载多个对象需要建立多个TCP连接,HTTP/1.0使用非持久HTTP连接
持久HTTP连接:一个TCP连接上可以传送多个对象,HTTP/1.1默认使用持久HTTP连接
例:假设该页面含有一个HTML基本文件和10个JPEG图形, 并且这11个对象位于同一台服务器上。
进一步假设该HTML文件的URL为:http://www.someSchool.edu/someDepartment/home.index
(1) HTTP客户进程在端口号80发起一个到服务器 www.someSchool.edu 的TCP连接,该端口号是HTTP的默认端口。在客户和服务器上分别有一个套接字与该连接相关联。
(2) HTTP客户经它的套接字向该服务器发送一个HTTP请求报文。请求报文中包含了路径名/someDepartment/home.index。
(3) HTTP服务器进程经它的套接字接收该请求报文,从其存储器(RAM或磁盘)中检索出对象 www.someSchool.edu/someDepartment/home.index ,在一个HTTP响应报文中封装对象,并通过其套接字向客户发送响应报文。
(4)HTTP服务器进程通知TCP断开该TCP连接。
(5)HTTP客户接收响应报文,TCP连接关闭。该报文指出封装的对象件,客户从响应报文中提取出该文件,检查该HTML文件,得到对10个JPEG图形的引用。
(6) 对每个引用的JPEG图形对象重复前4个步骤。
COOKIE技术
Cookies作用,如何实现
(1)Cookies: 跟踪用户,提高用户和服务器的交互性
(2)cookie头部行在HTTP请求消息(或响应消息)中
(3)cookie文件 保存在用户主机中并被用户浏览器管理
(4)cookie也保存在Web站点的后端数据库
(5)应用场景:身份认证/虚拟购物车/推荐广告/用户会话状态
(6)优点:cookies允许网站更加了解你,你可以提供名字和e-mail给网站 ,广告公司通过网站获得信息,Cookies不适合游动用户
Web缓存的作用、实现基本原理
Web缓存目标:在不访问服务器的前提下满足客户端的HTTP请求
实现基本原理:
- 用户设定浏览器通过缓存进行Web访问
- 浏览器向缓存/代理服务器发送所有的HTTP请求
- 如果所请求对象在缓存中,缓存器返回对象
- 否则缓存器向起始服务器发出请求,接收对象后转发给客户机
- 缓存既充当客户端,也充当服务器
电子邮件:组成及其使用的协议
组成:
用户代理user agents 邮件服务器mail servers 简单邮件传送协议和邮件接收协议
使用的协议:SMTP
- 客户使用TCP来可靠传输邮件消息到服务器端口号25
- 传输的3个阶段:握手 (问候)、邮件消息的传输、结束
- 发送服务器到接收服务器采用直接传送
- 使用持久连接
- 命令/应答的交互,服务器使用 CRLF.CRLF 来判断邮件消息的结束
- 命令: ASCII文本格式
- 应答: 状态码及其短语
- 邮件消息必须是7-bit ASCII
DNS的功能、实现和查询方式
功能:
- 主机名到IP地址的转换
- 主机别名:一个主机可以有一个规范主机名和多个主机别名
- 邮件服务器别名
- 负载分配
- DNS实现冗余服务器:一个IP地址集合可以对应于同一个规范主机名。
实现:
- 分布式数据库:一个由分层DNS服务器实现的分布式数据库
- 应用层协议:DNS服务器实现域名转换 (域名/地址转换)
查询方式:
内容分发网络(CDN)要解决的基本问题和实现的简单原理
挑战: 如何从海量的视频中,挑选出某些内容,采用流的方式发送给成千上万的用户?
CDN: 将内容的拷贝存储在CDN节点中 用户向CDN请求内容被定向到附近的拷贝,取得内容如果网络路径拥塞,则可能选择其他的拷贝
第三章 运输层:
UDP协议
UDP 是面向报文的
面向报文的传输方式是应用层交给UDP多长的报文,UDP就照样发送,即一次发送一个报文。因此,应用程序必须选择合适大小的报文。若报文太长,则IP层需要分片,降低效率。若太短,会是IP太小。UDP对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界。即应用层交给UDP多长的报文,UDP就照样发送,即一次发送一个报文。
基于Internet IP协议
- 复用/分用
- 简单的错误校验
“尽最大努力”服务,报文段可能:
- 丢失
- 会传递失序的报文到应用程序无连接
- 在UDP接收者发送者之间没有握手
- 每个UDP 报文段的处理独立于其他报文段
无连接:
- 在UDP接收者发送者之间没有握手
- 每个UDP 数据段的处理独立于其他数据段
为什么有 UDP?
- 不需要建立连接 (减少延迟)
- 简单: 在发送者接受者之间不需要连接状态
- 很小的报文段首部
- 没有拥塞控制: UDP 能够用尽可能快的速度传递
常用于流式多媒体应用:丢包容忍/速率敏感
其他UDP应用:DNS/SNMP/RTP
经UDP的可靠传输 : 在应用层增加可靠性/应用程序特定的差错恢复!
可靠数据传输原理:掌握可靠数据传输的基本原理和使用的主要技术。GBN和SR两种可靠传输技术的特点和原理。
可靠数据传输的基本原理:
Rdt1.0: 完全可靠信道上的可靠数据传输
Rdt2.0: 具有bit错误的信道
- 下层信道可能让传输分组中的bit受损:利用校验和检测bit位错误
- 问题: 如何从错误中恢复
- 确认(ACKs): 接收方明确告诉发送方分组接收正确
- 否认 (NAKs):接收方明确告诉发送方分组接收出错
- 发送方收到NAK后重发这个分组
- 在 rdt2.0中的新机制 (在 rdt1.0中没有的):
- 差错检测
- 接收方反馈: 控制信息 (ACK,NAK) rcvr->sender
- 重传
停等协议:发送方发送一个报文,然后等待接受方的响应
rdt2.0: 缺陷
如果ACK/NAK发生错误/被破坏(corrupted)会怎么样?
- 为ACK/NAK增加校验和,检错并纠错
- 发送方收到被破坏ACK/NAK时不知道接收方发生了什么,添加额外的控制消息
- 如果ACK/NAK坏掉,发送方重传
- 不能简单的重传:产生重复分组
如何解决重复分组问题?
- 序列号(Sequence number): 发送方给每个分组增加序列号
- 接收方丢弃重复分组
rdt2.2: 无NAK的消息协议
我们真的需要两种确认消息(ACK + NAK)吗?
- 同 rdt2.1一样的功能, 但只用 ACKs
- 如何实现?
- 接收方通过ACK告知最后一个被正确接收的分组
- 在ACK消息中显式地加入被确认分组的序列号
- 发送方收到重复ACK之后,采取与收到NAK消息相同的动作
- 重传当前分组
rdt3.0: 具有出错和丢失的信道
新假设: 下层信道还要丢失报文 (数据或者 ACKs)
校验和, 序号, 确认, 重发将会有帮助,但是不够
方法: 发送者等待“合理的”确认时间
- 如果在这个时间内没有收到确认就重发
- 如果报文(或者确认)只是延迟 (没有丢失):
- 重发将导致重复,但是使用序号已经处理了这个问题
- 接受方必须指定被确认的报文序号
- 要求倒计时定时器:只有在定时器超时时才触发重发
rdt3.0的性能分析
GBN协议:
Go-Back-N(GBN)协议: 发送方
- 分组头部包含k-bit序列号
- 窗口尺寸为N,最多允许N个分组未确认
- ACK(n): 确认到序列号n(包含n)的分组均已被正确接收
- 可能收到重复ACK
- 对第一个发送未被确认的报文定时(timer)
- timeout(n):若超时,重传窗口中的分组n及所有更高序号的分组
Go-Back-N(GBN)协议: 接收方*
只有ACK: 对接收的分组总是发送具有最高按序序号的ACK
- 可能产生冗余的ACKs
- 仅仅需要记住期望的序号值(expectedseqnum)
对失序的分组:
- 丢弃 (不缓存) -> 没有接收缓冲区!
- 重新确认具有按序的分组
SR协议:
接收方分别确认已经收到的分组:必要时,缓冲报文, 最后按序提交给上层
发送者只重发没有收到确认的分组:对每个没有确认的报文发送者都要启动一个定时器(每个未被确认的报文都有一个定时器)
发送窗口:N 个连续序号/限制被发送的未确认的分组数量
发送方
- 从上层收到数据 :如果下一个可用的序号在发送方窗口内,则将数据打包并发送,启动定时器
- 超时(n):重发分组n, 重启定时器
- 收到ACK(n)在[sendbase,sendbase+N-1]内:
- 标记分组n被接收
- 如果n是最小的未确认分组,则增加窗口基序号到下一个未被确认的序号
接收方
- 分组n的序号在[rcvbase, rcvbase+N-1]内
- 发送ACK(n)
- 失序分组: 缓冲
- 有序分组: 交付上层 (包括已经缓冲的有序分组), 提高窗口到下一个没有接收的分组
- 分组n在[rcvbase-N,rcvbase-1]内
- 发送ACK(n)
- 其他:忽略
TCP协议及TCP可靠数据传输原理
TCP是面向面向连接传输
TCP是面向字节流,虽然应用程序和TCP的交互是一次一个数据块(大小不等),但TCP把应用程序看成是一连串的无结构的字节流。TCP有一个缓冲,当应用程序传送的数据块太长,TCP就可以把它划分短一些再传送。如果应用程序一次只发送一个字节,TCP也可以等待积累有足够多的字节后再构成报文段发送出去。
有可能将多条数据当成一条数据进行处理,因此需要在应用层进行数据的边界管理
- 点到点:
- 一个发送者,一个接收者
- 可靠按序的字节流:
- 没有“信息边界”
- 流水线:
- TCP 拥塞和流量控制设置窗口大小
- 收发缓冲区
- 全双工数据:
- 同一个连接上的双向数据流
- MSS: 最大报文段长
- 面向连接:
- 在数据交换前握手(交换控制信息)
- 连接状态只在连接的两端中维护,在沿途节点中并不维护状态。
- TCP连接包括:两台主机上的缓存、连接状态变量、socket等
- 流量控制:
- 发送方不会淹没接收方
掌握TCP拥塞控制方法
TCP连接的接收方有一个接收缓冲区:
速度匹配服务:发送速率和接收应用程序的提取速率匹配
流量控制:发送方不能发送的太多太快,让接收缓冲区溢出
应用程序可能从这个缓冲区读出数据很慢
(假设 TCP 接收方丢弃失序的报文段)
- 缓冲区的剩余空间= RcvWindow= RcvBuffer-[LastByteRcvd - LastByteRead]
- 接收方在报文段接收窗口字段中通告其接收缓冲区的剩余空间
- Sender限制自己已经发送的但还未收到ACK的数据不超过接收方的空闲RcvWindow尺寸
- Receiver告知Sender,RcvWindow=0,会出现什么情况?
第四章 网络层:
网络层提供的服务和功能:转发和路由。网络层数据平面和控制平面各自完成的功能。
转发(forwarding): 将分组从路由器的输入端口转移到正确的路由器输出端口
路由(routing): 确定分组从发送方传输到接收方(目的主机)所经过的路径(或路由)
类比:
路由: 类似于从发送方到接收方计划旅行路线的过程
转发: 类似于驾车通过一个立交桥的过程
数据平面:
- 本地的,每个路由器自身的功能
- 决定抵达路由器输入端口的数据包如何转发到输出端口
控制平面:
整个网络范围
决定数据报在端到端路径上的路由器之间如何路由
两种数据平面的实现方式:
传统的路由算法: 在路由器内实现
软件定义网络(software-defined networking, SDN): 在远程服务器上实现
路由器工作原理。
路由器的两个核心功能
- 运行路由算法/协议(OSPF, RIP, BGP)
- 将分组从路由器的输入链路传送到正确的输出链路。
路由器查表方法:
路由器的整体结构
输入端口:
线路端接模块:将一条物理链路端接到路由器的物理层;
数据链路处理模块:实现路由器的数据链路层功能;
查找与转发模块:实现查找与转发功能,以便分组通过路由器交换结构转发到适当的输出端口;如果数据报到达输入端口的速度快于输入端口将数据报转发到交换结构的速度,就会发生排队。
选路处理器:计算转发表,给每个输入端口存放一份转发表拷贝
分布式交换:
(1)内存交换:选路处理器完成输入端口与输出端口之间的交换;交换速度受总线带宽的速度限制 (每个分组穿过两次总线)
(2)总线交换:输入端口通过一条共享总线将分组直接传送到输出端口,不需要选路处理器的干预;交换带宽受总线速率限制
(3)交换矩阵交换:到达输入端口的分组沿水平总线穿行,直至与所希望的输出端口的垂直总线交叉点,若该条垂直总线空闲,则分组被传送到输出端口,否则阻塞排队。
输出端口:
- 取出存放在输出端口内存中的分组,并将其传输到输出链路上;
- 当交换结构将分组交付给输出端口的速率超过输出链路速率,就需要排队与缓存管理功能。当输出端口的缓冲区溢出时,就会出现延时和丢包。
网际协议IP : IP报文、IP分片和重组、 IP编址和子网划分、 NAT网络地址转换、HDCP协议、IPV6的特点。
IP数据报分片和重组
IP地址
分配给主机或路由器接口的标识符
- 主机/路由器与物理链路之间的边界/连接
- 路由器有多个接口,主机可以有多个接口
IP地址有两种:IPV4和IPV6
IPV4:32个二进制位长(4字节),常用点分十进制表示;将4个字节中的每一个字节分别用十进制数来表示,4个十进制数之间用 “.” 分隔。
例如:223.1.1.1 = 11011111 00000001 00000001 00000001
根据不同的取值范围,早期将IP地址分为五类。IP地址中前5位用于标识IP地址的类别,A类地址的第一位为“0”(主机号24位),B类地址的前两位为“10”(主机号16位),C类地址的前三位为“110”(主机号8位),D类地址的前四位为“1110”,E类地址的前五位为“11110”。其中,A类、B类与C类地址为基本的IP地址。
IPV6:128个二进制位长(16字节)常用冒号分隔表示
IP子网(subnet)
- 划分子网的方法是从主机号借用若干个比特作为子网号,剩下的主机位为主机号。
- IP地址具有相同网络号的设备接口
- 不跨越路由器(第三及以上层网络设备)可以彼此物理联通的接口
子网划分
分类的IP地址的弱点:
- lP地址空间的利用率有时很低。
- 两级lP地址不够灵活。
网络号相同的IP地址属于同一个网络。而网络还可以划分为若干子网(subnet)。划分子网的方法是从主机号借用若干个比特作为子网号,剩下的主机位为主机号。在同一子网中,数据帧不跨越路由器,物理上能够相互到达。
为什么子网号能全0或者全1:因为CIDR编址
为什么主机号不能全0或者全1:因为全0代表本网络,全1代表广播分组
12、子网掩码用来确定网络地址(网络号+子网号)和主机地址的长度。子网掩码长为32位比特,其中的1对应于IP地址中的网络号和子网号,而子网掩码中的0对应于主机号。
虽然两个子网掩码得到的网络地址结果一样,但是后者的主机位更多,能容纳更多主机。
NAT:
执行NAT,路由器必须做到:
- 外出的分组: 替换每个外出的分组的 (源IP 地址, 端口号) 为 (NAT IP 地址, 新端口号) 远程客户/服务器用(NAT IP地址, 新端口号)作为目的地来响应。
- (在NAT转换表中)记录每个(源IP 地址, 端口号)到 (NAT IP地址, 新端口号) 转换配对
- 进来的分组: 对每个进来的分组,用保存在NAT表中的对应的(源IP 地址, 端口号) 替换分组中的目的域 (NAT IP 地址, 新端口号)
DHCP协议:
(1)获得IP地址,还可以获得
- 客户的第一跳路由器的地址(网关)
- DNS服务器的IP地址或域名
- 子网掩码
(2)DHCP是应用层协议
- 请求报文封装到UDP数据报中
- IP广播
- 链路层广播 (e.g. 以太网广播)
(3)报文种类
- 主机广播 “DHCP DISCOVER” (发现报文)
- DHCP 服务器用 “DHCP OFFER” (提供报文)进行响应
- 主机请求IP地址: “DHCP REQUEST” (请求报文)
- DHCP 服务器分配IP地址 “DHCP ACK/NACK” (确认报文)
- DHCP 终止租用期”DHCP RELEASE”(终止报文)
(4) DHCP 协议的工作过程
IPV6
- 初始动机:32-bit IPv4地址空间即将用尽
- 其他动机:快速处理/转发数据报;支持QoS(服务质量)
- IPv6 数据报格式 :固定长度的 40 字节基本首部 ;不允许分片
选路算法:链路状态选路算法、距离向量算法
链路状态选路算法(Dijkstra最低费用路径算法):
术语定义
c(x,y):表示从节点x到y的链路费用;
= ∞ 如果不是直接邻居
D(v):表示从源节点到目的节点v的当前路径的费用;
p(v):表示从源节点到目的节点v的路径上的前驱节点;
N’:表示已经找到最低费用路径的节点集合。
Step | N’ | D(v),p(v) | D(w),p(w) | D(x),p(x) | D(y),p(y) | D(z),p(z) |
---|---|---|---|---|---|---|
0 | u | 2,u | 5,u | 1,u | ∞ | ∞ |
1 | ux | 2,u | 4,x | 2,x | ∞ | |
2 | uxy | 2,u | 3,y | 4,y | ||
3 | uxyv | 3,y | 4,y | |||
4 | uxyvw | 4,y | ||||
5 | uxyvwz |
(有两个最小就随便选一个,此答案选的y)
根据目的节点找出顺序和其费用以及前驱节点,可以画出源节点u到所有目的节点的最低费用路径树。根据得到的所有目的节点的完整路径,或最低费用路径树,可以生成源节点的转发表。
转发表:存放从源节点到每个目的节点的最低费用路径上的下一跳节点。即指出对于发往某个目的节点的分组,从该节点发出后的下一个节点。
距离向量路由算法:
最低费用表示:
Bellman-Ford方程:
dx(y) = minv{c(x,v)+ dv(y)}
dx(y):节点x到节点y的最低费用路径的费用。
v: 节点x的邻居节点。
c(x,v)+ dv(y):x与某个邻居v之间的直接链路费用c(x,v)加上邻居v到y的最小费用。即x经v到节点y的最小的路径费用。
minv :从所有经直接相连邻居节点到节点y的费用中选取的最小路径费用。
因特网中的层次选路协议
一个区域内的路由器组成集合 “自治系统” (AS,autonomous system )
同一个自治系统的路由器运行相同的路由协议——区域内路由协议
不同自治系统内的路由器可以运行不同的区域内路由协议
第五章 链路层:
差错检测方法,三种差错检测的计算方法、他们的各自的特定和使用范围。
奇偶校验:最基本的方法。
Internet校验和:常用于运输层。
循环冗余检测:常用于链路层。
CRC特点: 能检测小于 r+1 位的突发差错、任何奇数个差错。
多路访问链路和协议:三种主要的多路访问协议各自的特点。
- 信道划分协议
- 把信道划分为小“片” (时隙)
- 给节点分配专用的小“片”
- 随机访问协议
- 不划分信道,允许冲突
- 能从冲突中“恢复”
- 轮流协议
- 通过轮流访问信道避免冲突,要发送的节点越多轮流时间越长
以太网技术(链路层和物理层的实现方式
帧格式
以太网提供无连接、不可靠的服务&以太网采用的CSMA/CD原理
以太网: 不可靠的无连接服务
以太网向网络层提供的服务。
- 无连接服务:通信时,发送方适配器不需要先和接收方适配器“握手”。
- 不可靠的服务:接收到的帧可能包含比特差错。
- 收到正确帧,不发确认帧;
- 收到出错帧,丢弃该帧,不发否定帧。
- 发送适配器不会重发出错帧。
- 丢弃数据的恢复是通过终端传输层的可靠数据传输机制来实现的
- 以太网的MAC协议:使用无时隙的CSMA/CD协议(二进制指数回退)
ARP协议的工作原理
ARP: 地址解析协议:将IP地址解析到MAC地址。
ARP只为在同一个LAN上的节点解析IP地址。
交换机
交换机:支持多节点同时传输
- 每个主机由单独的链路直接连到交换机端口
- 交换机可以缓存数据帧
- 以太网协议在每个输入链路使用,无碰撞,全双工
- 每条链路自身是一个碰撞域
- 交换机: A-to-A‘和B-to-B’可以同时传输,而不会发生碰撞
交互机:自学习
交换机会学习通过哪些端口可以到达哪些主机
- 当收到数据帧时,交换机“学习”发送主机的位置:进入的局域网网段(到达端口)
- 在转发表中记录发送主机/位置对
当交换机收到数据帧:
记录到达链路和发送主机的MAC地址
使用数据帧的目的MAC地址,在转发表中检索
如果在转发表条目中找到对应的MAC地址
执行{
如果 目的MAC地址对应的端口与数据帧的达到端口相同
则 丢弃该数据帧
否则 转发该数据帧到条目指定的端口
}
否则,向除到达端口之外的所有端口转发(flood)
VLAN
含义:利用支持VLAN的交换机,可以在一个实际的物理局域网内,定义多个虚拟的局域网。
基于端口的VLAN:
- 利用交换机内置的管理软件,将端口分组,使得一个单独的交换机,像多个交换机那样工作
跨越多个交换机的 VLAN
- 干线端口( trunk port )承载定义在多个物理交换机之上的VLAN间的流量
- 某一个VLAN内的流量帧,如果要跨域物理的交换机,需使用802.1q格式(带有VLAN ID 信息)802.1q协议的作用:对干线端口之间传输的帧,添加/移除额外的头部字段