计算机网络复习
计网复习
大纲
[toc]
1. 计算机网络体系结构
1.1 计算机网络概述
1.1.1计算机网络的概念、组成
概念
计算机网络就是通过交换机,路由器等网络设备和通信线路将分散在不同地理位置的多个计算机系统连接起来,在网络协议和应用软件的控制下实现各种网络服务的系统.
- 资源共享-最终目的
- 数据通信-资源共享的前提
网络的结构
网络边缘(network edge)-服务端和客户端
服务端功能:发送分组数据
收到应用数据->拆解为小组块->以R传输速率(带宽bandwidth)进行传输
传输延迟$L_{比特数}/R_{传输速率}$
接入网络(access networks)-物理介质
物理层: 发送端和接收端之间
导引型介质(guided media)
固体介质-铜线,光纤(optical fiber),同轴电缆(coaxial cable)
双绞线:螺旋排列减小电磁干扰
同轴电缆:单信道/多信道
光纤:光脉冲,低差错率,无电磁干扰
非导引型介质(unguided media)
- 自由发信号
- e.g. 无线电
网络核心(network core)-互联的路由器
路由器网络
分组交换
主机把报文分解成分组
网络核心转发分组(从源头到目的)-
单个分组传输到相邻节点,存储下来后查转发表,转发到下一节点。
1.1.2计算机网络的分类
Transmission technology传输技术
广播链路点到点链路
- Scale距离尺度
局域网LAN 101km10km
城域网MAN 1km
广域网WAN 100km~
- Scale距离尺度
- Topology拓扑结构
星形什么的,看名字就知道了
- Topology拓扑结构
- Switching交换
- Packet Switching 分组交换
- Circuit Switching 电路交换
- Switching交换
1.1.3计算机网络与互联网的发展历史[不考]
1961-1972: Early packet-switching principles 分组交换的发展
1972-1980: Internetworking, new and proprietary nets网络互联.专用网络
1980-1990: new protocols, a proliferation of networks网络的激增
1990, 2000’s: commercialization, the Web, new apps 商业化
2005-present
1.1.4计算机网络的标准化工作及相关组织[不考]
IETF(因特网工程任务组)
IEEE802-局域网/城域网标准委员会,指定相关标准
1.2计算机网络体系结构与参考模型
1.2.1计算机网络分层结构
1.2.2计算机网络协议、接口、服务等概念
服务: 层的功能
协议: 同一层的对等实体间的交流服务
接口: 告诉上层如何访问
1.2.3ISO/OSI参考模型和TCP/IP模型
ISO/OSI 参考模型
ISO: international Standards Organization
OSI: Open Systems Interconnection
• application: 支持网络应用
• presentation:允许应用程序解释数据的意义,如加密、压缩
• session: 数据交换的同步,检查和恢复
• transport:进程到进程的数据传输(端到端)
• network:为数据报选择从源主机到目的主机 的路径
• data link:在邻近网元之间传输数据• physical:在介质上传输原始比特
TCP/IP 参考模型
协议栈
下图左为OSI,右为TCP/IP
混合模型(Hybrid Model)
本课程使用的模型
传世经典(bushi)-数据传输过程中在各层发生的变化
1.3计算机网络性能指标
吞吐量Throughput-传输位数/传输时间
- 带宽是吞吐量的绝对上限
带宽 Bandwidth
在单位时间内,从网络中的某一点到另一点所能通过的位数
时延/延迟 Delay
一个数据库从网络的一端传送到另一端所需要的时间
时延=处理时延+排队时延+传输时延+传播时延
- 传输时延-数据量/带宽
- 传播时延-传输距离/光速
- 往返时延(RTT)-从发送端发出,到发送端收到接收端的确认的总时延
- 端到端时延-分组从源主机到目的主机路径上每个节点时延的总和
- 时延带宽积-传播时延*带宽
2. 应用层
2.1 应用层协议原理
2.1.1网络应用程序的体系结构
Client-Server(C/S)
server:
永远在线
永久ip
服务器集群增强可扩展性
client
与服务器交互
动态IP地址
客户机之间不直接通信
Peer-to-Peer(P2P)
没有长期存在的服务端
端系统之间直接通信
对等方向其他对等方(Peer)请求服务,同时给其他peer提供服务
对等方间歇性连接,IP可变
2.1.2可供应用层使用的传输层服务
app需要什么?
数据完整性
吞吐量
时效性
安全性
TCP
提供
- 面向连接
- 可靠传输
- 流量控制
- 拥塞控制
不提供
- 定时(时效性)
- 最小带宽保证
UDP
不可靠数据传输
不提供
流量控制
连接建立
可靠性
拥塞控制
时效性
最小带宽保证
因特网使用的应用层协议和传输层协议
2.2应用层协议
2.2.1Web和HTTP
http:超文本传输协议
使用TCP协议
- 客户端初始化传输端口,发送给服务端
- 服务端接受连接请求
- 交换信息
- 连接关闭
非持久http: 每个连接只发送一个对象(HTTP/1.0)
例子
持久http:每个连接发送多个对象(HTTP/1.1)
过程
- 客户端初始化连接
- 服务端接受
- 下面步骤*n
- 客户端发送请求
- 服务端发送数据
- 客户端收到数据
- 服务端关掉连接
例子
HTTP请求报文
两种type: 请求和响应
请求报文样式:
请求行 报头 空白行 正文
GET /somedir/page.html HTTP/1.1 –请求
Host: www.someschool.edu User-agent: Mozilla/4.0 Connection: close Accept-language:fr–报头
无状态(Statelessness)和Cookies
无状态-服务器不保留有关客户过去请求的任何信息
Cookies
一个小文件/字符串,使得服务端能够跟踪用户
实现
在Http响应报文上加上set-cookie头
请求报文上加入cookie报头
cookie文件留在用户本地,用浏览器管理
在服务端留有后端的服务器存储用户真正信息
Web缓存 -代理服务器
目的:缩短对客户请求的响应时间,减少组织接入链路上的流量
用户浏览器:通过缓存访问网站
浏览器把所有的HTTP响应发送给cache
- 条件GET
如果缓存中有最新缓存版本,就不发送该对象
2.2.2FTP[不考]
2.2.3Electronic Mail——SMTP, POP3, IMAP
关键组件:
用户代理
邮件阅读者
撰写,编辑,阅读邮件
发送/接收在server上存储的邮件
邮件服务器
mailbox 保留用户收到的信息
为发送的邮件信息创建发送队列
在server中间提供SMTP协议服务,用来发送邮件
示意图
邮件发送协议:
- SMTP:简单邮件传输协议
- MIME:通用因特网邮件拓展
SMTP只能传输ASCII码,不能传输二进制数据,MIME允许二进制数据以ASCII编码
邮件读取协议:
- pop:邮局协议 Post Office Protocol
授权+下载 - IMAP:因特网报文读取协议
更多功能
操作存储在服务器上的报文 - HTTP: gmail,Hotmail,Yahoo!Mail
2.2.4DNS 域名系统
提供的服务
主机名到ip的翻译
主机别名
邮件服务器错误识别
负载分配(即一个主机名对应一组IP地址)
分布式层次化数据库
客户->root,得到com server
客户->com server 得到 amazon.com DNS server
客户->amazon.com DNS server 得到对应ip地址
本地域名服务器
大学/公司内部搭建
主机创建DNS请求的时候,先送到本地DNS server
域名解析例子
DNS Protocol
使用UDP协议的53号端口传输
2.2.5P2P[不考]
2.3网络编程[不考]
网络应用程序编程接口-套接字[不考]
3.传输层
3.1传输层提供的服务
3.1.1传输层的功能
为运行在不同主机上的应用进程之间提供逻辑通信
- 端到端
- 依赖并强化网络层服务
3.1.2无连接服务与面向连接服务
无连接:无握手
面向连接:数据交换前通过握手初始化发送方与接收方的服务
3.1.3传输层寻址与端口
传输层寻址通过TCP和UDP的端口实现
TCP/IP:0~65535
- 0~ 1023:标准端口,用于特定服务
- 其余临时端口
不同的端口表示不同的应用程序
3.2无连接的传输协议——UDP
特征
尽力而为(会丢包,顺序会乱)
无连接-没有握手,每个报文的处理与其他报文独立
经常被流媒体使用(能容忍丢包,对时间敏感)
DNS和SNMP是用UDP的
UDP格式
源端口(16bit | 目的端口(16bit) | 长度(16bit) | 校验和(16bit) | 报文 |
---|
UDP校验和计算
临时把伪首部(12字节IP首部)和数据报连接在一起,用于检验是否在正确的端点之间传送
计算校验和
过程
反码求和
校验和例子
3.3可靠数据传输的原理
目的
数据位不被损坏
没有数据丢失
数据以发送顺序被传输
总结-要在非可靠信道上提供可靠的数据通信
基础操作
ARQ自动重传请求:接收方发现错误/丢失分组后要求发送方重传
错误分组检测-校验和
丢失分组-确认,超时
重传(Retransmit)
3.3.1停止-等待协议(SW)
发送方发送一个分组后,必须停下来等待接收方确认后才可以发送下一个分组
错误处理:收到错误分组,接收方发送否定确认,让发送方重发
丢失处理:发送方内部设置定时器,超过定时时间还未收到ACK确认,则重发
处理重复分组:给每个分组带上序号(模$2^n$)
性能分析及计算
3.3.2回退N协议(GBN)
发送方
在收到确认前可以发送多个分组
发送窗口$W_s$最大为$2^n-1$
每发送一个分组后,就启动内部计时器,若超时未收到确认,则重发该分组之后已发送的N个分组
接收方
接收方只能缓冲一个分组
接收方只对按序到达的最后一个分组发送确认分组(因此对乱序分组会产生重复的确认分组)
序号:
- 是模2^n的,n是字段的位数
3.3.3选择重传协议(SR)
避免不必要的重传
接收方
接逐个确认接收到的每一个分组
发现某个分组出错后,其后继续送来的正确分组还是被接收,放在缓冲区中,同时要求发送方重新传送出错分组
发送方
只有在接收窗口向前滑动时,发送窗口才有可能向前滑动
即$W_S>=W_R$ 且 $W_s+W_R<=2^n$
窗口长度<=$2^{n-1}$
3.3.4滑动窗口机制(可用于实现不同可靠传输协议)
流水线协议/连续ARQ(也叫<u>
滑动窗口协议</u>
)
当发送端等待确认时,我们需要传输多个分组来提高利用率
Pipeling: 允许发送方发送多个未被确认的分组
概念
发送窗口: 发送方在没收到确认的情况下,能够连续发送的分组的序号表
<img src="https://s2.loli.net/2021/12/10/wgjTx5c3aqrCoHD.png" alt="image-20211210191530175" style="zoom:50%;" />
- 大小:$W_s$
- 下界表示未得到确认的分组的最小序号
接收窗口: 希望接收的分组的序号表
- 大小$W_R$
- 上界表示允许接收的分组的最大序号,下界表示希望接收的下一个分组的序号
- 若序号等于下界的分组被正确接收,并发送一个确认分组,上下界都加1,接收窗口向前滑动一次
3.4面向连接的传输协议—— TCP
总览
点到点
可靠有序的字节流-没有报文边界
流水线-拥塞控制和流量控制设置窗口大小
全双工数据-双方可以同时发送和接收
要求每一端都有两个窗口
流量控制
面向连接
拥塞控制
3.4.1TCP报文段
结构
解释
源端口和目的端口-2字节/each,
序号-每字节都有序号,序号字段存储发送字节的第一个的序号
确认号-希望收到下一个保温段的数据的第一个字节的序号
TCP使用累积确认一些特殊位
URG-紧急
ACK-1时确认号字段有效
PSH-尽快交付(不等待缓存写满)
RST-reset 复位,重新建立连接
SYN-如果为1表示这是个连接请求
FIN-1的话释放连接
校验和-检验首部和数据
3.4.2TCP可靠传输
用字节序号进行控制
过程模拟
B给出通告窗口值20->A构造长为20的发送窗口(31~50)
A发送11字节数据,此时还剩9字节可被发送
B接收窗口也为20,收到3字节,发送确认号33->A窗口移动到(34~53)
B窗口也滑动到34
重传计时器***
四个窗口(两发两收)动态变化
3.4.3TCP流量控制
目的:让发送方速率不要太快,让接收方来得及接收
利用滑动窗口机制实现
如果接收端顶不住发送端了,缓冲区被全部占用,就只能发送一个零通告窗口
发送端收到零通告窗口后停止发送,直到等到接收端发送一个非零的通告窗口
- 持续计时器
收到零通告窗口时启动,如果持续时间到期,就发送一个探测报文段,请求一个对方的通告窗口
如果还是零,就重设计时器
3.4.4TCP连接管理[不考]
3.4.5TCP拥塞控制
太多的源太快地发送太多的数据,使网络来不及处理
表现:丢包(路由器缓冲区溢出)
长时延(缓冲区中排队)
作用: 提高吞吐量
与流量控制的区别
拥塞控制
- 需要确保通信子网能够承载用户提交的通信两,是一个全局性过程,涉及主机,路由器等很多因素
流量控制
- 与点到点的通信量有关,主要解决快速发送方与慢速发送方的问题,是局部过程
拥塞控制方法
发送方维持一个拥塞窗口cwnd,其大小取决于网络拥塞程度,且动态变化
网络不堵塞,拥塞窗口增大一些
堵塞就把它减少一些
发送方发送窗口的上限为接收方通告窗口[rwnd]和拥塞窗口[cwnd]中较小的一个
四种办法
慢开始/启动
cwnd初始化为1
每收到一个对应确认,cwnd+=1
每经过一个传输轮次,cwnd*=2,时间为RTT拥塞避免
每经过一个RTT,拥塞窗口+1,缓慢增长
慢开始门限ssthresh
cwnd<ssthresh ->慢开始/慢启动算法
cwnd>ssthresh ->拥塞避免
cwnd=ssthresh ->都行
实现举例
<img src="https://s2.loli.net/2021/12/10/rKaCnqT3tRbxd4m.png" alt="image-20211210203723811" style="zoom:50%;" />
出现拥塞时
把ssthresh设置为当前值的一半
把cwnd重设为1
快重传
要求接收方每收到一个失序的报文段后立即发出重复确认
发送方一连收到三个重复确认就立即重传未收到报文段快恢复
当发送端收到连续三个重复确认时,把ssthresh设置为当前一半,但接下去不执行慢开始/慢启动算法,而是将cwnd设置为ssthresh减半后数值,然后开始执行拥塞避免算法<img src="https://s2.loli.net/2021/12/10/3oTXGBk4VdvAQuf.png" alt="image-20211210204852460" style="zoom:67%;" />
4.网络层
4.1网络层的功能
在发送端,将分组封装成数据报
在接收端,把数据报上传到传输层
路由器检查每个通过它的数据报
两个关键功能
转发-将分组从路由器的输入端口移动到输出端口
路由-决定分组从源主机到目的主机所采用的设备
网络层服务模型(我觉得没什么考的必要)
4.2网络层设备
路由器
输入端口
物理层-比特级接收
链路层连接以太网
最后一层进行分散式交换-给定数据报目的地址,在输入端口中使用转发表查找输出端口
-到达较快的话还会排队
三种类型交换结构
输出端口
当数据报来自比传输速率更快的交换结构时,需要**
<u>
缓存</u>
**
<u>
调度安排</u>
-在排队的数据报中选择要传输的数据报
4.3IP
链路层之上,传输层之下
4.3.1IPv4分组
首部字段解释
总长度-首部和数据之和的长度,最大为65535
标识-计数器,产生数据报标识
标志-3bit,最低位(M(ore)F(ragment)等于一代表还有分片,等于0代表没有分片,
中间一位=0才允许分片(D(ont)F(ragment))片偏移-13bit,指出分片后该片在原分组中的相对位置,以8个字节为偏移单位
IP分片和重组
为什么分片-链路有最大传输单元,不同链路MTU不同
样例
生存时间(TTL time to live) 限制数据报在网络中的生存时间,每经过一个路由器,TTL-1
协议-数据部分协议(TCP/UDP/IPV6等等)不一定是
<u>
上层,</u>
首部校验和-只检验首部
4.3.2IPv4地址
ip 地址-32位的主机/交换机标识号
接口interface-主机/路由器与物理链路之间的链接
交换机有很多个interface
主机一般就一两个
Ip地址与每个接口相关联
子网
设备接口Ip地址的子网部分相同
可以物理上直接联系,不用经过交换机
计算可用的主机地址
主机部分全0:网络地址
主机部分全1:广播地址
上两个不能设置为主机地址
子网掩码
/n 表示子网掩码位数为n
x.y.z.a,点分十进制形式表示32bit IP地址中哪些事子网部分
IP地址分配方案
子网位数固定-分类IP地址
不固定–CIDR(无类域间路由)
子网部分被称为网络前缀,前缀部分任意长
使用斜线记法
路由表中每个项目由”网络前缀” 和”下一跳地址”组成,查找路由表时可能会得到不止一个匹配结果,因此引出下面内容
最长前缀匹配
举例
CIDR子网划分***
把一个大网络分成多个小网络,用路由器把这些小网络连接起来
使用子网掩码255.255.255.192 (/26) 对网络
192.168.10.0/24 进行子网划分,请回答如下问题 :
– (1)子网数?192为二进制11000000,即 22 = 4 个子网;
– (2)每个子网中可以容纳的主机数?
26 -2 =62 个主机;
– (3)哪些是合法的子网地址?
每个子网的地址块大小为26 =64,子
网地址的第4个字节从0开始以64递增,即:192.168.10.0、
192.168.10.64、192.168.10.128、192.168.10.192– (4)每个子网的广播地址?
– (5)哪些是合法的主机地址?
子网地址 (192.168.10.) 0 64 128 192
第一个主机地址 (192.168.10.) 1 65 129 193
最后一个主机地址 (192.168.10.) 62 126 190 254
广播地址 (192.168.10.) 63 127 191 255
4.3.3IP分组转发
网络层基于目的地址分组转发
下图一了百了
转发算法
从收到分组的首部获得目的IP->D
判断是否在同一网络上
用子网掩码和D逐位相与,看看是不是和**
<u>
相应的网络地址</u>
**匹配,匹配就直接发过去若路由表中有目的为D的特定主机路由,则将分组传送给指明的下一跳路由器,
否则执行4对路由表每行的子网掩码和D逐位相与,若结果与该行的目的网络地址匹配,就传送到下一跳
否则,执行5若路由表有默认路由,则将其传送给它,
否则执行6报告转发分组出错
4.3.4DHCP(动态主机配置协议)协议
Q.A
主机如何获得IP地址
- 管理员硬编码
网络怎样得到IP地址的子网
- 从其ISP的地址空间中得到分配的部分
ISP如何获得地址块
- ICANN(因特网名字与号码分配公司)
DHCP目的: 使主机能够动态获取服务器的IP地址(当它加入网络时)
示意图
4.3.5NAT[不考]
4.3.6IPv6[不考]
4.4路由算法
路由算法用于选择从源主机到目的主机的最佳路径
是产生路由表的算法(找到开销最小的路径)
分类
静态路由:路由随时间缓慢变化
动态路由:更快地变化,周期性更新,适应链路开销变化
4.4.1距离向量路由算法
Bellman-Ford方程
定义$d_x(y)$=从x到y的最小开销路径的开销
$c(x,v)$=从x到邻居节点v的链路的开销
$d_x(y)=min_v{c(x,v)+d_v(y)}$ ,min针对x的所有邻居
取值最小的结点对应最短路径中的下一跳->转发表
过程
结点x维护距离向量$D_x=[d_x(y):y\in N]$
- 如果y不是x的邻居,则$d_x(y)=\infin,否则d_x(y)=c(x,y)$
每个节点周期性向邻居节点发送自己的距离向量,节点x保存其邻居节点的距离向量
当结点x收到来自邻居的新距离向量,它使用B-F方程更新自己的DV
- $D_x(y)\gets min_v{c(x,v+D_v(y)} for each node y\in N$
示例
4.4.4链路状态路由算法
- 发现邻居,学习网络地址
- 测量到每一个邻居的时延
- 构造一个分组来通告学习到的信息
- 向所有路由器发哦送分组
- 计算到其他路由器的最短路径
使用Dijkstra算法计算最短路径
循环:
从可达节点中找到最近的,加入当前节点组
更新其他节点距离
当当前节点组为全部节点时退出
4.5路由协议
目的:使路由选择是可计算的
有巨量的router
- 构建自治系统
自治系统内 OSPF
自治系统间 BGP
4.5.1OSPF(Open Shortest Path First)
开放最短路径优先
使用<u>
链路状态算法</u>
通告散布到整个自治系统
特点
安全性-所有OSPF信息经过鉴别
允许使用多条开销相同的路径
对每条链路,为不同的服务类型设置多种开销度量
集成的单播和多播支持
在大域中使用层次OSPF
层次OSPF
- 两级层次-本地+主干
仅在本地通告链路状态
每个节点具有详细的区域拓扑
仅知道其他区域中网络的方向 - 区域边界路由器
总结到自己区域中网络的距离,向其他区域的边界路由器通告 - 主干路由器
在主干范围内运行OSPF路由 - 边界路由器
连接到其他自治系统
- 两级层次-本地+主干
报文格式
4.5.2BGP
Border Gateway Protocol边界网关协议
提供功能
- eBGP:从相邻AS(自治系统)获得子网可达性信息
- iBGP:向AS内部的所有路由器传播可达性信息
如下图<img src="https://s2.loli.net/2021/12/11/oJwg6KNUcvur8IY.png" alt="image-20211211150833119" style="zoom:50%;" />
- 根据可达性信息和策略,决定到子网的”好”路由
允许子网向因特网其余部分通告它的存在
两个BGP路由器通过半永久TCP连接交换BGP报文
两个重要的属性
AS-PATH
4.6ICMP协议[不考]
4.7SNMP协议[不考]
5. 数据链路层
5.1数据链路层的功能
将数据报从一个节点经过一条链路传输到相邻节点
组帧-将数据报封装进帧,加上首部和尾部
链路接入-控制信道接入
相邻节点间可靠交付
检错
纠错
5.2差错控制
通过通信信道接收的数据和发送的数据不一致的现象-传输差错,简称差错
5.2.1检错编码
检错
接收方能够推断发生了错误,要求重传
用于高可靠信道-光纤
单比特奇偶校验
增加冗余位使码字中1的个数恒为奇数/偶数
能够检测
<u>
奇数个</u>
比特差错分为垂直奇偶校验和水平奇偶校验
因特网校验和
循环冗余校验
直接看例子
5.2.2纠错编码[不考]
纠错
接收方能够推断发送过来的原始数据是什么
用于易出错信道
- 二维奇偶校验-能够检测并纠正单比特
5.3介质访问控制
5.3.1信道划分
将信道划分为较小的片
时分多路复用TDM
将时间划分为一段段等长的时分复用帧,每个用户在每个镇中占用固定序号的时隙
一目了然
频分多路复用FDM
用户分配到频带后,在通信过程中始终占用该频带
不同用户同时间占用不同的(频率)带宽资源
波分多路复用WDM
就是光纤上的频分多路复用
码分多路复用CDMA
- 用于无线广播信道中
- 为每个用户分配唯一的码型,所有用户共享相同的频率,但每个用户用自己的码片序列对数据进行编码
- 抗干扰/抗发现性较好
- 编码信号=(原始数据)X(码片序列)
- 解码 = 编码信号和码片序列的内积
码片序列
每一比特时间划分为一个唯一的m bit 码片序列
要发送1,则发送码片序列
发送0,则发送二进制反码
码片序列的正交关系
两个不同站的码片序列正交
也就是说,二者规格化内积为0(每位相互乘累积后为0)
工作原理
5.3.2随机访问
不划分信道,允许冲突,全速率传输
从冲突中恢复
时隙ALOHA(slotted ALOHA)-极限37%效率
假设
所有帧长度相同
时间划分为等长间隙,能传输一个帧
结点仅在时隙开始时开始传输帧
如果2+结点同时传输,所有结点检测到冲突
工作原理
有新帧,在下一个时隙传输
无冲突,直接发送
有冲突,在之后的每个后继时隙中以概率p重新传送
纯ALOHA(pure ALOHA)-极限18%效率
削弱版时隙ALOHA
帧到达立马传输,有冲突则等待一段随机时间开始传输
CSMA 载波侦听多路访问
思想
在传输前侦听
- 信道空闲: 传输整个帧
- 信道忙;推迟传输(下列三种推迟策略)
- 等待信道空闲(1-坚持)
- 等待随机时间(非坚持)
- 等待空闲,然后概率p发送(p-坚持)
传播时延的冲突
信道非真正空闲
争用期/冲突窗口:端到端往返时延 2$\tau$
只有争用期没检测到冲突才能肯定此次发送不会产生冲突
每个发送数据帧的结点,需要经过争用期才能确保这次发送不会产生冲突
CSMA/CD 载波侦听多路访问+冲突检测
CD:Collision Detection
使用CSMA协议进行数据发送
发送过程中一直侦听信道<u>
(冲突检测)</u>
检测到冲突则立即停止发送,并等待一段随机时间,再侦听
为了在发送时能检测到可能存在的冲突,CSMA.CD要求所有数据帧都必须大于最小帧长(2$\tau$*数据传输速率)
CSMA/CA
IEEE802 无线局域网所用的多路访问协议,参考后续
5.3.3轮流访问[不考]
节点轮流发送,但有更多信息要发送的节点能够占用更 长的时间
5.4局域网(LAN)
5.4.1局域网的基本概念与体系结构
集中在一个地理区域中的计算机网络
属性
- 范围限制
- 传输技术
- 拓扑结构
IEEE802参考模型-只相当于链路层和物理层
LLC保证传输正确性
MAC解决共享信道访问
5.4.2链路层寻址与ARP协议
MAC地址/LAN地址/物理地址
- 将数据报从一个接口传送到物理上相互连接的另一个接口
- 网络层及以上用IP地址,链路层及以下用硬件地址
ARP:地址解析协议
每个主机上设有ARP高速缓存,里面有所在局域网上各主机和路由器的IP地址到硬件地址的<u>
映射表</u>
A想向B发数据,先查看ARP中有无B的IP,如果有,就查出它的硬件地址,再将其发送
没有,则运行ARP来找到B的硬件地址
即主机A向所有主机广播请求,目的主机对主机A直接回应,同时将主机A的地址映射到自己的高速缓存中
ARP四种情况
主机->本网络上另一个主机 ARP找到目的硬件地址
主机->另一个网络上的主机 ARP找到本网络一个路由器地址
路由器->本网络主机 ARP找到目的主机的硬件地址
路由器-> 另一个网络主机 ARP找到本网络上另一个路由器硬件地址
5.4.3以太网与IEEE802.3
星型拓扑结构
- 中心是交换机
- 节点间不冲突
以太网帧结构
目的地址:
第一位0: 单节点接收
1:被一组节点接收
全1:广播
校验字段
32位CRC校验(范围:目的地址,源地址,类型,数据)
数据字段:最小长度为46B,小于46则填充,但这些填充不计入长度字段值中
最大长度为1500B
因此Ethernet帧最小长度64B,最大1518B
以太网特点
不可信(接收方不发送ACK之类的)
无连接(无握手)
MAC控制:
以太网的CSMA/CD
将之前的强化冲突方式,设置为使用<u>
二进制指数退避</u>
- 在第m号冲突后 NIC选择{0,1,2,…$2^{m-1}$中的随机一个数K
- 然后等待K*512 bit时间
5.4.4无线局域网与IEEE802.11[不考]
无线网的介质访问控制
特点: 无法获得冲突信息
目的:避免冲突
方式
物理层执行信道载波侦听
信道空闲–源节点等待DIFS后,仍然空闲,则发送一帧,然后等待ACK帧
目的节点在收到正确的数据帧的SIFS时间后,向源节点发送ACK帧
CSMA/CA
允许发送端预订信道
- 发送端发送请求帧到AP
- AP广播允许发送(CTS)的回复
- 所有结点收到CTS,发送端发送
5.5数据链路层设备
局域网交换机
存储并转发以太网帧
特征: 对主机透明(即ip地址什么的和它无关)
自学习-
收到对应接口分组后记录对应接口MAC地址在自己对应接口上
如果发现目的接口没有,会洪泛(将分组分发到所有接口上,等待回复)
冲突域VS广播域
冲突域;网络的一部分,在其中会发生帧冲突(当两个设备同时发送数据报)
广播域:包含了通过链路层广播能直接相互了解的所有设备
虚拟局域网–为了防止过多的广播信息引起不便
虚拟局域网VLAN是由一些局域网网段构成的与物理位置无关的逻辑组
每一个 VLAN 的帧都有一个明确的标识符,指明发送这个帧的工作站是属于哪一个 VLAN。(在以太网帧中插入一个4字节的标识符,称为VLAN标记)
6. 物理层
6.1通信基础
6.1.1数据通信系统的基本概念
物理层目标:在通信信道上传输原始比特
确定与传输介质的接口的一些特性
- 机械特性
- 电气特性
- 功能特性
- 过程特性