URI:Uniform Resource Identifier 统一资源标识符,指的是一个资源
URL:Uniform Resource Location 统一资源定位符,URI的子集,用地址定为的方式指定一个资源
URN:Uniform Resource Name 统一资源名称,URI的子集,用名称定为的方式指定给一个资源
Host(End System):主机,端系统Communication Link:通信链路
Bandwidth:带宽
Router:路由器
Switch:交换机
Packet Switching:分组交换技术,将发送端要发送的报文分成若干数据块,封装成分组,发送到目的
端,目的端解封后恢复原数据
ISP:Internet Service Provider英特网服务提供商,一个由多个分组交换机和多段通信链路组成的网
络。 端系统通过ISP接入因特网,如住宅区ISP、大学ISP、公司ISP等
IXP:Internet Exchange Point,互联网交换中心
IETF:Internet Engineering Tast Force,英特网工程任务组
RFC: Request For Comments,请求评论,包含所有互联网的协议
ISDN:Integrated Services Digital Network,综合业务数字网
DSL:Digital Subscriber Line,数字用户线
ADSL:Asymmetric Digital Subscriber Line,非对称数字用户线路
FDM:Frequency-Division Multiplexing,频分复用
TDM:Time-Division Multiplexing,时分复用
TCP:Transmission Control Protocol,传输控制协议
IP:Internet Protocol,网络之间互联协议
Distributed Application:分布式应用程序
Socket Interface:套接字接口
Cable Internet Access:电缆英特网接入
Hybrid Fiber Coax:混合光纤同轴
FTTH:Fiber To The Home,光纤到户
LAN:Local Area Network,本地局域网
DSLAM:Digital Subscriber Line Access Multiplexer,数字用户接入线路复用器,用于接纳所有DSL线
路
UDP:User Datagram Protocol,用户数据报协议
PPP:Point to Point Protocol,点对点协议
PDU:Protocol Data Unit,协议数据单元
DoS:Denial of Service,拒绝服务攻击
DDoS:Distributed Denial of Service,分布式拒绝攻击
LAN:Local Area Network,局域网
WAN:Wide Area Network,广域网
HTTP:Hypertext Transfer Protocol,超文本传输协议,默认端口为80
FTP:File Transfer Protocol,文件传输协议,默认端口号为21SMTP:Simple Mail Transfer Protocol,简单邮件传输协议,使用TCP协议,默认服务器端口为25
MIME:Multipurpose Internet mail Extensions, 多用途因特网邮件扩展,在发送非英文邮件时,使
用的编码方法
POP3:Post Office Protocol 3,邮局协议,端口110
IMAP:Internet Message Access Protocol,网络信息获取协议,端口143
DNS:Domain Name System,域名系统
CDN:Content Distrustion Network,内容分发网
FSM:Finite State Machine,有限状态机
GBN:Go Back N,回退N步
SR:Selective Repeat,选择性重传
AIMD:Additive-Increase Multiplicative-Decrease,加性增,乘性减
MSS:Maximum Segment Size,最大报文长度
MTU:Maximum Transmission Unit,最大传输单元
ICANN:Internet Corporation for Assigned Names and Numbers ,互联网名称与数字地址分配机构
IANA:Internet Assigned Numbers Authority,互联网号码分配局
NIC:Network Information Center,互联网信息中心
NAT:Network Access Translation,网络地址转换协议
计算机网络
- 两台以上具有独立操作系统的计算机通过某些介质连接成的相互共享软硬件资源的集合体。
- 计算机网络向用户提供的最重要的两大功能:
- 连通性
- 共享
Internet:由网络构成的网络,从具体构成和提供服务方面进行描述
控制发送和接收消息——协议
e.g., TCP, IP, HTTP, FTP, SMTP
什么是协议?
协议:定义了两个或多个通信实体间交换报文的格式和次序,以及在报文发送和/或接收或者其他事件方面所采取的行动(响应)
- 协议的基本要素
- 语法
- 语义
- 同步(时序)
协议是水平的,服务是垂直的
协议是控制两个对等实体进行通信的规则,而服务是由下层通过层间接口向上层提供的
协议本身是水平的,即协议是控制两个对等实体进行通信的规则。但服务是垂直的,即服务是由下层通过层间接口向上层提供的。上层使用所提供的服务必须与下层交换一些命令,这些命令在OSI中称为服务原语。协议的实现保证了能够向上一层提供服务。本层的服务用户只能看见服务而无法看见下面的协议。
Internet标准
带宽
表示1s内传输数据容量的大小,一般也将“带宽”称为“数据传输率”。
带宽的单位一般有两种形式
第一种是以字节为单位来计算,有Bps、KBps、MBps、GBps、TBps 等,表示单位时间(秒)内传输的字节数量(常用)
第二种是以比特为单位来计算,有bps、Kbps、Mbps、Gbps、Tbps等,表示单位时间(秒)内传输的比特数量
两种带宽的换算
因为一个字节是8比特,
因此1B/s=8 bps (b/s)
家庭接入网络: 点对点接入
面向连接的服务
无连接服务
频分和时分
500ms + 640kb / (1.536Mbps / 24) = 500ms + 640kb / 64Kbps = 10.5s
- 分组交换:在通讯过程中,源主机将报文划分为多个小的数据块,封装成分组,将每个分组通过若干分组交换机传输到目的主机,目的主机拆分分组,并重新组装成报文(分组交换机会将整个分组接收下来(存储),再将分组发送到目的地(转发))
- 输出缓冲:用于保存准备发送到某个链路的分组,每条相连的链路都对应有一个输出缓冲
- 排队时延:分区在输出缓冲中等待转发的时间,某条链路上要转发的分组多,需在其输出缓存中等待。排队时延是变化的,与网络中的拥塞有关
- 分组丢失:当缓冲区满时,有的缓冲会被丢弃,就出现了分组丢失
- 数据报网络(TCP/IP):分组的目的地址决定下一跳,会话期间路由可以改变(类比驱车问路)
- 虚电路网络:每个分组有1个标签 (虚电路号,virtual circuit ID), 标签决定下1跳,连接建立时确定固定的路径, 并且将保持于整个会话期间,路由器必须为每个连接维护状态信息
- 虚电路一定是面向连接的,而数据报可以面向连接,也可以不面向连接
- 电路交换:通讯双方建立专用的连接用于双方通信,直到通讯结束,例如电话网络
- 频分复用(FDM):将链路的频谱分为若干频段,每个频段供一个专用连接
- 时分多路复用(TDM):将一段时间划分为多个帧,每个帧被划分为多个时间相同的时隙,每个时隙专用于一个连接,用于传输数据
Internet松散分层,由众多网络构成的网络
- 构成Internet的核心主干:第一层ISPs【国家/国际级ISP】
- 覆盖国际区域的ISP彼此对等,通过因特网交换节点【Internet Exchange Point IXP】互连。
- 第二层ISP(区域级ISP)
- “第二层” ISPs: 较小的(通常是区域级的) ISPs
——连接到1个或多个 tier-1 ISPs, 也可能连接其他 tier-2 ISPs
- 第三层ISP(本地ISP或接入ISP)
- 最后的接入网络(最接近端系统)
- Internet结构组成与分组传送
IXP作用:用于减少服务费用,当两个ISP通过IXP进行交换的时候,不收取流量费用
将上述四个时延相加就得到分组交换的总时延
总的节点时延=
节点处理时延 +
排队时延 +
传输时延 +
传播时延
排队时延:
吞吐量(Throughput)
网络吞吐量——
吞吐量: 接收端接收到数据的比特速率 (bps )
min{Rs,Rc,R / M}
max{min{Rik}},k=1…M,i = 1…N
∑min{R1k,…,RNk}
所有分组到达目的主机所耗费总时延,即为最后一个分组到达目的主机所花费的总时间。设最后一个分组为X:
- 在X进入链路之前,要等待之前的P-1个分组进入链路,它们的总传输时延为(P-1)L/R
- X进入后,经过N段链路到达目的地,共花费传输时延N*L/R
- X在链路还还要经历传播时延,N*m/C
因此,所有分组到达目的主机所耗费的总时延
=(P-1)L/R+NL/R+Nm/c
网络协议栈
逻辑通信
实体:定义自身功能的软硬件集合
对等实体:两台计算机上同一层所属程序、进程、实体称为该层的对等程序、对等进程或对等实体
协议分层中的数据传输
网络中的攻击威胁
网络安全的重要属性:真实性,可用性,机密性,完整性,不可否认性
网络攻击分为被动攻击主动攻击
主动攻击是攻击者通过网络线路将虚假信息或计算机病毒传入信息系统内部,破坏信息的真实性、完整性及系统服务的可用性,即通过中断、伪造、篡改、重放和重排信息内容造成信息破坏,使系统无法正常运行。包括拒绝服务攻击(DoS)、分布式拒绝服务(DDos)、信息篡改、资源使用、欺骗、伪装、等攻击方法
被动攻击是攻击者非常截获、窃取通信线路中的信息, 主要是收集信息而不是进行访问,并不涉及数据的任何改变,使信息保密性遭到破坏, 数据的合法用户对这种活动一点也不会觉察到,给用户带来巨大的损失。被动攻击包括嗅探、信息收集等攻击方法
常见的攻击方式分为:
植入恶意软件:病毒,蠕虫,僵尸网络:通过各种手段在大量计算机中植入特定的恶意程序,使控制者能够通过相对集中的若干计算机直接向大量计算机发送指令的攻击网络攻击服务器或网络基础设施:拒绝服务攻击(DoS)通过以下三种方式进行攻击
弱点攻击:向一台目标主机上运行的易受攻击的应用程序或操作系统发送制作精细的报文,达到攻击的目的
带宽洪范:攻击者向目标主机发送大量分组,分组数量之多使得目标的接入链路变得拥塞,使得合法的分组无法到达服务器
连接洪范:攻击者在目标主机中创建大量半开或者全开的TCP连接,使主机因为伪造的连接而陷入困境,无法打开合法的连接
嗅探分组:分组嗅探器可以记录每个流经分组,从而嗅探用户的隐私信息
伪装:攻击者通过伪装成用户信任的角色来截取用户的信息
- 计算机网络的定义
- 协议的定义和基本要素
- Internet的构成描述:
- 具体构成:边缘(端系统,包括软件和硬件)、核心、接入网络和物理介质
- 网络交换方式:电路和分组
- 电路:时分和频分
- 分组:数据报和虚电路
- 分组交换网络中的延迟及其计算
- TCP/IP的分层模型,各层PDU的名称和功能
# 第二章 应用层
网络应用程序体系结构
进程通信
注意:具有P2P体系结构的应用程序既有客户进程和服务器进程。
TCP服务
UDP服务
面向连接是指:必须在建立连接之前确认双方链路可达,并已准备好才开始通信,提供了可靠或者不可靠的服务
无连接指:发送端在开始通信前不去询问接收端是否可达和是否已准备好数据,提供不可靠的服务
应用 | 应用层协议 | 下面的传输协议 |
---|---|---|
电子邮件 | SMTP [RFC 28c21] | TCP |
远程终端访问 | Telnet [RFC 854] | TCP |
Web | HTTP [RFC 2616] | TCP |
文件传输 | FTP [RFC 959] | TCP |
流媒体 | 通常专用(e.g. RealNetworks) | TCP or UDP |
因特网电话 | 通常专用(e.g., Skype) | 典型用 UDP |
HTTP: 超文本传输协议(HyperText Transfer Protocol)
使用TCP:
HTTP是无状态协议
HTTP服务器不维护客户先前的状态信息
非持续连接和持续连接
非持久HTTP连接
持久HTTP连接
- 定义往返时间RTT(Round-Trip Time):
- 1个小分组从客户主机到服务器再到客户主机所花费的时间
- 响应时间:
- 1个RTT用于建立TCP连接
- 1个RTT用于HTTP请求/响应消息的交互
- html文件传输时间
- total = 2RTT+transmit time
HTTP/2
请求报文格式
请求方法类型
- GET
- POST
- HEAD
- 服务器收到请求时,用HTTP报文进行响应,但不返回请求对象
- HTTP1.1
- PUT
- 文件在实体主体中被上载到URL字段指定的路径
- DELETE
- 删除URL字段指定的文件
响应报文格式
HTTP 响应的状态码
位于服务器响应客户的响应消息的第一行
几个常见的样本状态码:
目的:提高用户和服务的交互性
cookies可以跟踪用户:例如虚拟购物车,推荐广告,身份认证,用户会话状态
目标: 代表起始服务器满足HTTP请求
用户配置浏览器: Web 访问经由缓存
所有HTTP请求指向缓存
减少对客户机请求的响应时间
减少内部网络与接入链路上的通信量
能从整体上大大降低因特网的Web流量
条件GET方法:
FTP:传输文件到远程主机/从远程主机下载文件,默认端口号21
FTP的工作流程:
FTP数据连接的建立的方式:
电子邮件的三大组成
SMTP
SMTP: 总结
与HTTP的比较:
POP3协议
DNS: 存储资源记录(RR,Resource Records)的分布式数据库
DNS的出现是为了方便人们记忆网站的地址,IP地址难以记忆,可以转换为其他的字符串例如转换为uestc.edu.cn
DNS主要提供的功能:
DNS的分层架构【Domain Name System】域名系统:
客户机怎样决定主机名www.amazon.com的IP地址?
客户机查询根服务器得到com DNS服务器
客户机查询com DNS服务器得到amazon.comDNS服务
客户机查询amazon.comDNS服务器得到www.amazon.com的IP地址
根名字服务器负责记录顶级域名服务器的信息
顶级域服务器(top-level domain servers):负责顶级域名 com, org, net, edu, etc, 和所有国家的顶级域名 uk, fr, ca, jp.
权威DNS服务器(authoritative DNS servers):
在因特网上具有公共可访问主机(如Web服务器和邮件服务器)的每个组织机构必须提供公共可访问的DNS记录,这些记录将这些主机的名字映射为IP地址。组织机构的权威DNS服务器负责保存这些DNS记录。
本地DNS服务器:Local DNS Name Server
DNS存储资源记录(RR:Resource Records)
RR格式(name,value,type,ttl)
当type=A(Address)时,name表示主机名,value表示ip地址
当type=CNAME(canonical)时,name表示主机别名,value表示规范主机名
当type=NS(name server)时,name表示域名,value表示权威名字服务器的主机名
当type=MX(Mail Exchange)时,name表示邮件服务器的主机别名,value表示邮件服务器的真实规范主机名
DNS协议 : 查询报文与应答报文 , 但具有同样的报文格式
一般采用集中式目录架构:例如git+github
存在问题
BitTorrent是一种用于文件分发的流行P2P协议。
参与一个特定文件分发的所有对等方的集合被称为一个洪流(torrent)。
一个洪流中的对等方彼此下载等长度的文件块(chunk),典型块长度为256KB。
网络应用程序体系结构
Web应用和HTTP协议
基本术语(网页、URL等)
HTTP的特性及其区别(无状态、非持久和持久等)
请求和响应报文
COOKIE技术
Web缓存文件传输协议FTP :两种连接*
- 数据连接、控制连接
电子邮件:组成及其使用的协议
- SMTP
- POP
- IMPA
- HTTP
DNS的功能和实现
P2P文件共享原理和实现技术*
CDN
构造简单的web服务器*
传输层为两个不同主机上的应用程序之间提供逻辑通信机制
网络层为两个主机之间提供逻辑通信
主要提供两种协议TCP和UDP:
多路复用:从多个套接字收集数据,添加首部封装数据,然后将报文段传递到网络层的过程叫做多路复用
多路分解:将收到的数据传递到对应的套接字的过程叫做多路分解
UDP套接字有两个属性标识(目的IP地址和目的端口号)
来自不同的IP地址/端口号的IP报文段可以导向同一个套接字
UDP具有以下特点:
数据段可能丢失、传递失序的报文到应用程序
无连接:在UDP接收者发送者之间没有握手、每个UDP数据段的处理独立于其他数据段
UDP的首部有八个字节,由四个字段组成,每个字段长度为两个字节,长度是指首部和数据的总长度
在UDP中在进行校验和的计算过程中,会引入UDP的伪首部,伪首部的作用仅仅是为了计算校验和
UDP校验和差错检测
目标:对传输的数据进行差错检测
- 按位相加
- 回卷
- 取反
TCP套接字由四个属性表示(源IP地址,源端口号,目的IP地址,目的端口号)
Rdt1.0 完全可靠信道上的可靠数据传输
RDT2.0:具有bit错误的通道上的可靠数据传输
具有bit错误是指:在接收方接收的报文段中的数据可能会和发送方发送的数据不一致,一般通过差错校验机制来判断是否发送错误
什么是停等协议?发送方发送一个报文,然后等待接受方的响应
RDT2.1:发送方处理混乱的ACK/NAK
在2.0中,可能会出现发送的ACK/NAK出现错误因此出现了RDT2.1,通过分组上来添加序号来判断是否最新的分组
RDT2.2:无NAK的消息协议
不用 NAK, 如果上个报文接收正确接收方发送 ACK
接收方必须明确包含被确认的报文的序号
发送方收到重复 ACK 将导致和 NAK一样的处理: 重发当前报文
在2.1中可以去掉NAK,只通过ACK来表示可以减少信息类型数量
RDT3.0:具有出错与丢失的信道
发送的消息除了出错之外,还有可能完全丢失,需要设置定时器当超过一定时间后重新发发送分组
a)正常发送
b)一号报文丢失
d)发送方超时间隔过短
定量看:rdt3.0的性能
例如: 1 Gbps链路, 15 ms 端到端传输延迟, 8000bit 报文, 计算网络利用率?
停等浪费了物理资源的使用
发送方:
在分组头中规定一个k位的序号【0-2k-1】
“窗口”, 允许的连续未确认的报文【长度为n的序列】
ACK(n): 确认所有的报文直到(包含)序号n - “累积ACK”
对第一个发送未被确认的报文定时
超时(n): 重发窗口中的报文n及以上更高序号的报文(只有一个定时记录最早的未被确认报文的发送时间)【窗口下沿设置定时器】
接收方
重发最高序号的分组ACK
- 发送0-3号报文后,等待ACK
- 0和1号ACK到了,窗口移动到2号,并发送4和5号
- 由于二号报文丢失了,于是接收方丢弃345,并且都回复ACK1,要求传二号报文
- 发送方的二号报文窗口下沿超时,重发2345报文
4567
收到了023的ACK,接收方发送的ACK是按序列顺序进行发送的,说明1号分组发送成功,只是ACK1丢失。所以需要重传最大的ACK+1的分组及其后面的分组
和GBN的区别,发送方的窗口出现间隙
发送方接收方的窗口不一致
发送方收到ACK时,若在窗口范围内,标注为被接收,如果接收后使得窗口某一部分被填满了,则窗口向右边滑动
接收方如果接收分组在窗口内,就发送ACK
失序分组暂时缓存
有序分组:交付上层,窗口滑动
接收方收到窗口左边的分组,必须发送相应的ACK,否则发送方的窗口会被卡住
二号在传输过程中丢失了,接收方缓存345
发送方因为超时重传二号包
序号是有限的,窗口大小小于或等于序号空间大小的一半
报文段结构
新版的首部格式:
CWR:CWR 标志与后面的 ECE 标志都用于 IP 首部的 ECN 字段,ECE 标志为 1 时,则通知对方已将拥塞窗口缩小;
ECE:若其值为 1 则会通知对方,从对方到这边的网络有阻塞。在收到数据包的 IP 首部中 ECN 为 1 时将 TCP 首部中的 ECE 设为 1.;
URG:该位设为 1,表示包中有需要紧急处理的数据,对于需要紧急处理的数据,与后面的紧急指针有关;
ACK:该位设为 1,确认应答的字段有效,TCP规定除了最初建立连接时的 SYN 包之外该位必须设为1;
PSH:该位设为 1,表示需要将收到的数据立刻传给上层应用协议,若设为 0,则先将数据进行缓存;
RST:该位设为 1,表示 TCP 连接出现异常必须强制断开连接;
SYN:用于建立连接,该位设为 1,表示希望建立连接,并在其序列号的字段进行序列号初值设定;
FIN:该位设为 1,表示今后不再有数据发送,希望断开连接。当通信结束希望断开连接时,通信双方的主机之间就可以相互交换 FIN 位置为 1 的 TCP 段。每个主机又对对方的 FIN 包进行确认应答之后可以断开连接。不过,主机收到 FIN 设置为 1 的 TCP 段之后不必马上回复一个 FIN 包,而是可以等到缓冲区中的所有数据都因为已成功发送而被自动删除之后再发 FIN 包;
TCP序号和确认
问: 接收方如何处理失序的数据段
答: TCP规范没有明确规定, 由编程人员处理
TCP往返时延的估计和超时
如何设置 TCP 超时值?
比 RTT长;但 RTT变化
太短: 不成熟的超时、不必要的重传
太长: 对数据段丢失响应慢
首先指定RTT的初始估计值
每次接收到样本RTT,和预测RTT指数加权平均
TCP在IP不可靠服务之上创建rdt服务
流水线技术处理报文段
累积确认
GBN和选择性重传的综合
TCP不会像GBN一样直接将失序报文报文丢掉,而是像SR一样缓存。
发送方不会重传一大段报文,只重传没有被确认的
TCP使用累计确认,为了降低开销只使用单个重发定时器,和GBN类似
TCP 使用单个重发定时器
触发重发:
——超时事件
——重复确认
超时触发重传存在问题:超时周期往往太长
重传丢失报文之前要等待很长时间,因此增加了网络的时延
接收方收到乱序的包就会发送重复ACK,两次的重复ACK可能是重新排序造成的,三次的重复ACK可能是丢包造成的
两次重复ACK肯定是乱序造成的
丢包肯定会造成三次重复ACK
假定通信双方如下,A发送4个TCP 报文段给B,编号如下,N-1成功到达,因此A收到B的ACK(N),重组到达顺序,观察收到ACK(N)的数量
A 发送至 B
A方发送顺序->N-1,N,N+1,N+2
B方到达顺序
由于累计确认机制,如果发生乱序
① N-1,N,N+1,N+2 -> A收到1个ACK (N)
② N-1,N,N+2,N+1 -> A收到1个ACK (N)
③ N-1,N+1,N,N+2 -> A收到2个ACK (N)
④ N-1,N+1,N+2,N -> A收到3个ACK (N)
⑤ N-1,N+2,N,N+1 -> A收到2个ACK (N)
⑥ N-1,N+2,N+1,N -> A收到3个ACK (N)
如果N丢包
N-1,N+1,N+2 -> A收到3个ACK (N)
N-1,N+2,N+1 -> A收到3个ACK (N)
TCP 乱序 有2/6 的概率会造成A收到三次冗余ACK(N);
而如果N丢了,则概率为100%A
基于以上的统计,当A接收到三次 冗余ACK(N)启动立马快速重传N可快速修复一个丢包的恶劣影响。
而如果A接收到二次冗余ACK(N),则说明是乱序造成的,已经传送到了B
图自小林coding
在上图,发送方发出了 1,2,3,4,5 份数据:
- 第一份 Seq1 先送到了,于是就 Ack 回 2;
- 结果 Seq2 因为某些原因没收到,Seq3 到达了,于是还是 Ack 回 2;
- 后面的 Seq4 和 Seq5 都到了,但还是 Ack 回 2,因为 Seq2 还是没有收到;
- 发送端收到了三个 Ack = 2 的确认,知道了 Seq2 还没有收到,就会在定时器过期之前,重传丢失的 Seq2。
- 最后,收到了 Seq2,此时因为 Seq3,Seq4,Seq5 都收到了,于是 Ack 回 6 。
所以,快速重传的工作方式是当收到三个相同的 ACK 报文时,会在定时器过期之前,重传丢失的报文段。
TCP连接的接收方有一个接收缓冲区:应用程序可能从这个缓冲区读出数据很慢
(假设 TCP 接收方丢弃失序的报文段)
连接:通信双方通信之前确认彼此的存在,确认一些通信需要的参数,做好一些资源的准备,如开辟缓冲区等。通信过程中需要维护连接状态的存在,当结束通信时通过合理的步骤逐步终止通信过程释放资源。
- 客户端发送不带数据的、SYN标志位为1、指定客户端随机初始序号的数据报请求连接建立
- 服务器接收,回复ACK=1、SYN=1、指定服务器的随机初始序号
- 客户端接收,回复ACK=1、SYN=0,可携带数据
为什么是三次握手?
为什么不是两次
- 三次握手双方都要对信道的可靠性做至少一次确认
- 服务器和客户端都要对双方选择的初始序号进行确认,这样双方才能使用该序号+1来发送数据
- 信道不可靠, 但是通信双方要要就某个问题达成一致. 而要解决这个问题, 无论你在消息中包含什么信息, 三次通信是理论上的最小值. 所以三次握手不是TCP本身的要求, 而是为了满足"在不可靠信道上可靠地传输信息"这一需求所导致的
为什么不选择更多次
- 下层信道是不可靠的,无法完全保证连接建立好了
- 从效率出发,保证三次即可
假设发送方和接收方为ab
其实很简单, 1.a->b, 这个时候没有任何状态, 2. b->a, b给a发东西, 说明收到了a的东西, 证明了a的发送能力是没问题的,同时证明了b的接收能力也是没有问题的。 如果到这里就结束了, 那么a的接收能力和b的发送能力就没办法保证了。如果再加上3. a->b , 证明了a收到了b的发送, 那么b的发送能力也是好的, a的接收能力也是好的。这样a和b的接收发送的能力都是好的, 就没必要再次证明了
关闭是双向的
多个终端发送数据的时候由于链路带宽的限制若发送过多数据会导致分组丢失和排队时延较长,为了解决这个问题TCP引入了拥塞控制
流量控制:不让接收方来不及接收报文【发送方不会淹没接收方】
拥塞考虑的是网络的情况
发送方通过调整发送行为来对拥塞进行反应,发送速率是通过调整发送窗口的大小实现的
流量控制中发送方的窗口大小是由接收方返回的接收窗口字段进行调整
引入新机制:拥塞窗口【CongWin】,发送窗口=min{拥塞窗口,接收窗口}
TCP拥塞控制的重点就是通过对网络的感知动态的调整拥塞窗口
发送方通过丢包事件感知拥塞->超时、三次冗余ACK
TCP发送方在丢失事件后降低发送速率【减小拥塞窗口】
采用三个机制
- 慢启动
- 对拥塞事件做出反应
- AIMD【加性增,乘性减】
- 刚启动时,将拥塞窗口设为一个最大报文段
- TCP以2的指数方式增加速率直到产生丢失事件,或者达到某个阈值ssthresh
每个RTT中拥塞窗口翻倍
- 超时事件
- 拥塞窗口置为1MSS,进入慢启动,到达阈值线性增长
- 三次冗余ACK
- 拥塞窗口减半 + 3,然后线性增长
- 表明网络有传输的能力
- 最初是指定的
- 随着传输的进行动态变化,设为丢包之前的一半
- 发生丢包事件:拥塞窗口减半
- 每个RTT拥塞窗口增加一个MSS
慢启动状态:拥塞窗口呈2的指数倍增长
拥塞避免状态:拥塞窗口线性增长快速恢复状态:每收到一个重复的ACK,拥塞窗口+1【网络数据包守恒原则】
无论何种状态,超时事件发生则转移到慢启动状态,阈值降为丢包前窗口的一半,拥塞窗口变为1;
无论何种状况,收到3个重复的ACK,转移到快速恢复状态,阈值降为丢包前的一半,拥塞窗口变为新阈值+3
拥塞窗口到达阈值就变为拥塞避免状态
快速恢复状态收到新的ACK转移到拥塞避免状态,并且将拥塞窗口设为阈值
TCP 平均吞吐量
假设忽略慢启动
假设在丢失发生时,设W是窗口大小
如果窗口为 W, 吞吐量是 W/RTT
丢失发生后, 窗口降为 W/2, 吞吐量为 W/2RTT.
平均吞吐量为0 .75 W/RTT
10
以太网帧的数据段的最大长度为1500 byte
1500 byte 减去 IP数据报的首部20 byte,IP片的数据长度最大为1500 - 20 = 1480 byte
IP的数据段 为 UDP报文端 : 8(UDP首部) + 8192 = 8200 byte
8200 / 1480 = 5 … 800 所以应该划分 6 个IP数据报片
对于IP片偏移,其单位为8 byte 需要除以8,如下:
学习目的:
网络层提供的功能
两个主要的网络层功能
路由与转发的相互作用
网络层:数据平面和控制平面
数据平面
连接建立*
网络层的服务模型-定义了分组在发送与接收端之间的端到端的 运输特性
问题: 什么样的服务模型可以用于将数据报从发送方传输到接收方?
网络层可能提供的服务
因特网的网络层提供的服务
连接和无连接服务
虚电路(Virtual Circuits)*
“源主机-目的主机路径的行为类似于电话网络的行为”
性能上类似
沿着源-目的路径的网络行为类似
在数据传输之前,需要为每个呼叫建立连接
每个分组携带VC标识符(不是目的主机地址)
位于“源-目的路径”上的每个路由器会维护经过它的每条连接的“状态”
链路和路由器的资源(带宽、缓存)可以被分配给VC(专用资源)
数据报网络
数据报转发表
路由器查表方法
说明
虚电路网络的特点*
虚电路网络源于电话产业界(采用“真正”电路)。
数据报网络的特点
由互连计算机的需求发展而来。与电话网相反。
确定将一个到达的分组通过交换结构转发给哪个输出端口。 通过查找转发表实现,这里的转发表是存储在输入端口的内存中。
转发速度
交换速度受总线带宽的速度限制 (每个分组穿过两次总线)
若总线带宽为每秒写入或读出B个分组,则总的转发吞吐量 (分组从输入端口被传送到输出端口的总速率)小于B/2。不能同时转发两个分组,即使它们有不同的目的端口,因为经过共享系统总线一次仅能执行一个内存读写
输入端口通过一条共享总线将分组直接传送到输出端口,不需要选路处理器的干预。
数据报长度:是IP数据报的总长度,以字节计。长度为16比特,故数据报理论最大长度为65535字节。
高层协议:**通常仅当IP数据报到达最终目的地的时候才有用。**指示了IP数据报的数据部分应该交给哪个特定的运输层协议。
协议号是网络层与运输层的粘合剂,而端口号是运输层和应用层的粘合剂
首部校验和:用于帮助路由器检测收到的IP数据报中的比特错误
- 为什么TCP/IP在运输层和网络层都执行差错检验?
- IP只对IP首部进行了差错检验,而TCP/UDP是对整个TCp/UDP报文段进行的
- 其次,TCP/UDP和IP不一定都属于同一个协议栈。原则上,TCP能够运行在一个不同的协议(如ATM)上,而IP能够携带不一定要传递给TCP/UDP的数据
数据(有效载荷): IP数据报中的数据字段包含要交付给目的地的运输层报文段,当然也可承载其他类型数据,如ICMP报文段
注意到一个IP数据报有20字节的首部(假设无选项)。如果一个数据报承载着TCP报文段,则每个数据报共承载了40字节 的首部以及应用层报文
分片的例子
偏移量要除以8,片偏移以八个字节为单位
如
根据不同的取值范围,早期将IP地址分为五类。IP地址中前5位用于标识IP地址的类别,A类地址的第一位为“0”,B类地址的前两位为“10”,C类地址的前三位为“110”,D类地址的前四位为“1110”,E类地址的前五位为“11110”。其中,A类、B类与C类地址为基本的IP地址。
包括两部分:
本地回环地址
127.0.0.1-127.255.255.254
这是预留的一组IP地址,主要是用来识别主机本身的地址。也叫做“localhost”,一般用来测试。
私有地址(Private address)
10.x.x.x, 172.16.x.x-172.31.x.x, 192.168.x.x
这三个地址段被称为私有IP地址段,也就是局域网所使用的地址段,在公网上不能被路由
0.0.0.0
这个地址严格上来说都不是真正意义上的IP地址。主要是用来标识不清楚的网络和主机的。系统遇到无法识别的网络或主机的时候会统一的归纳到这个地址
255.255.255.255
这个地址是受限的广播地址。主要指一个网段内的所有主机
为了确定子网,分开主机和路由器的每个接口,产生几个隔离的网络岛,使用接口端接这些隔离的网络的端点。这些隔离的网络中的每一个都叫子网
例:现有一个网段202.114.1.1-202.114.1.254,
(1)请写出怎样将这个网段划分为2个、6个、14个子网;
(2)假设这些IP用于某公司。现公司任一部门,最多有30台机器,问应该怎样划分子网?如果有49台机器又将怎样划分?
对(1)、(2),请写出子网所需要的位数、子网掩码和子网号。
解答要点:
(1) .2个借1位,6个接3位,14个借4位;
(2).30小于32,故每个子网的主机号只需5位,因为25=32;同理49台机器的话,就需要6位,因为26=64。注意:对某个子网来说,主机号全0的地址不能用,它被用做表示该子网的子网号;主机号全1的也不能用,它用于本子网的广播。因此每个子网所能容纳的主机数是2^N-2,N是主机号位数。
不划分子网时,路由表只有两项:目的网络地址和下一跳地址,例如
使用子网划分后,路由表中将包括三项:目的网络地址、子网掩码和下一跳地址,例如:
一个CIDR地址块可以表示分类IP的多个分类地址,这种地址的聚合称为路由聚合,又称为构造超网。
使用单个网络前缀通知多个网络的能力
CIDR 地址块划分举例 -层次寻址: 路由聚合
子网划分及CIDR练习
现有一公司已获得网络号为202.1.1.0/24,如果该公司有3个部门,
(1)如果第1个部门有60台计算机,第二个部门有20台计算机,第三个部门有16台计算机,问如何分配地址?
(2)如果第1个部门有120台计算机,第2个部门有60台计算机,第3个部门有60台计算机,使用上述方法可以分配地址吗?使用CIDR方法如何分配地址?
11001010 00000001 00000001 00000000
分配部门1:11001010 00000001 00000001 00000000 > 202.1.1.0/26
分配部门2:11001010 00000001 00000001 01000000 > 202.1.1.64/27
分配部门3: 11001010 00000001 00000001 01100000 > 202.1.1.96/28
(2) 不能。部门地址数目不够。
11001010 00000001 00000001 00000000 > 202.1.1.0/25
11001010 00000001 00000001 10000000 > 202.1.1.128/26
11001010 00000001 00000001 11000000 > 202.1.1.192/26
问: 主机如何得到IP地址?
手工指定(保存在系统配置中)
DHCP: Dynamic Host Configuration Protocol
plug-and-play(即插即用)
DHCP概述:
DHCP 发现报文
。DHCP 提供报文
,因此 DHCP 客户,可能收到多个 DHCP 提供报文。 DHCP 请求报文。
DHCPACK
,客户进入已绑定状态,并可开始使用得到的临时 IP 地址了
超时时间
分别是 0.5T 和 0.875T。当超时时间到就要请求更新租用期
。 DHCPREQUEST
要求更新租用期。DHCPNACK
。这时 DHCP 客户必须立即停止使用原来的 IP 地址,而必须重新申请 IP 地址
(回到步骤2)重新发送请求报文 DHCPREQUEST
(重复步骤6),然后又继续后面的步骤。随时提前终止服务器所提供的租用期
,这时只需向 DHCP 服务器发送释放报文DHCPRELEASE
即可。OP:若是client送给server的封包,设为1,反向为2;
Htype:硬件类别,ethernet为1;
Hlen:硬件长度,ethernet为6;
Hops:若数据包需经过router传送,每站加1,若在同一网内,为0;
Transaction ID:事务ID,是个随机数,用于客户和服务器之间匹配请求和相应消息;
Seconds:由用户指定的时间,指开始地址获取和更新进行后的时间;
Flags:从0-15bits,最左一bit为1时表示server将以广播方式传送封包给 client,其余尚未使用;
Ciaddr:用户IP地址;
Yiaddr:客户IP地址;
Siaddr:用于bootstrap过程中的IP地址;
Giaddr:转发代理(网关)IP地址;
Chaddr:client的硬件地址;
Sname:可选server的名称,以0x00结尾;
File:启动文件名;
Options:,厂商标识,可选的参数字段
首先是客户端广播,DHCP服务器收到后会返回DHCP提供,此时会有多个请求。客户端选择一个发出DHCP请求,请求分配IP地址,然后DHCP服务器返回DHCPACK。
DHCP: 不仅获得IP地址
Q: 怎样获取IP地址中的网络号部分?
A: 从ISP的地址空间中划分一块给申请者
例如:
网络转换的一些限制
(Internet Control Message Protocol,因特网控制报文协议)
ICMP 报文类型及对应常见代码*
路由与转发的相互作用
路由的基本概念
找到一个子网到另一个子网的路径
路由:按照某种指标(传输延迟,所经过的站点数目等)找到一条
从源节点到目标节点的较好路径
较好路径: 按照某种指标较小的路径
- 指标:站数, 延迟,费用,队列长度等, 或者是一些单纯指标的加权平均
- 采用什么样的指标,表示网络使用者希望网络在什么方面表现突出,什么指标网络使用者比较重视
网络的抽象图模型
图抽象在其他的网络场景也受用,节点:peer,边:TCP连接
网络的抽象图模型:费用(cost)
路由算法分类
全局路由算法:所有路由器拥有完整的网络拓扑信息和链路费用信息。
分布式路由算法:以迭代的、分布式的方式计算最低费用路径。
静态路由算法:
动态路由算法:
将任何一个节点的链路状态分组泛洪
- 第五步才是路由算法,前面都是测量和散播路由信息。
Dijkstra最低费用路径算法
k次
迭代后可以知道到达k个目的节点
的最低费用路径Dijkstra算法
算法描述
(1)初始化(1#~6#)
N’ ={源节点u};
(2)找出一个到源节点的费用最低的节点w,并以此更新其它点D(v) 值
(3)重复步骤(2)
直到所有的网络节点都在N’ 中为止。
转发表:存放从源节点到每个目的节点的最低费用路径上的下一跳节点。即指出对于发往某个目的节点的分组,从该节点发出后的下一个节点。
构建转发表
默认路由 *
:表示所有具有相同“下一跳”的表项。即将“下一跳”相同的项合并为一项,目的节点用“*”表示。优先级最低,转发分组时,当找不到对应表项时,才使用默认路由。
Dijkstra算法:讨论
计算复杂度
可能产生振荡
每个节点和邻居交换距离矢量,测量到邻居的代价,可以算出经过邻居到每一个目标的代价值
最低费用表示
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的费用中选取的最小路径费用。
B-F方程举例
得到节点u的转发表中到目的节点z的下一跳是节点x
距离向量DV路由算法
对每个节点x
(1)初始化:
(2)更新自己的距离向量
(3)重复执行(2),直到没有更新的距离向量发出
异步、迭代:
本地迭代的触发条件
- 本地链路代价的变化
- 从邻居来的DV的更新信息
采用水平分裂方式解决
B是A的下一跳,所以C对B报告A的距离为INF
C是B的下一跳,所以D对C报告通向A的距离为INF
节点的距离向量表
距离向量Dx
和其邻居的距离向量Dv
所有目的节点
。节点x到每个目的节点y的估计费用
; Dx = [Dx(y):y在N中]x的邻居v到每个目的节点y的估计费用
,Dv = [Dv(y):y在N中]更新其距离向量
每个节点不断向邻居发送其距离向量拷贝;
当节点x收到一个邻居v的新距离向量,先保存,并用B-F公式更新自己的距离向量:
Dx(y) = minv{c(x,v)+ Dv(y)}
从所有经邻居v到节点y
的费用中选取最小路径费用
Dx(y)收敛到dx(y)
,即得到节点x到节点y的最低费用路径。横轴是时间,纵轴是各个节点
链路费用改变与链路故障
当一个节点检测到从它到邻居的链路费用发生变化时,就更新其距离向量,如果最低费用路径的费用发生变化,通知其邻居。
(1)某链路费用减少时情况
如图所示,当y 到x的链路费用从4变为1的情况。
考虑y与z到目的节点x的距离表变化
t0:y 检测到x的链路费用从4变为1,更新其距离向量,并通知其邻居z;
t1:z收到来自y的更新报文,并更新自己的距离表,此时到节点x的最低费用减为2,并通知其邻居y;
t2:y收到来自z的更新报文,并更新自己的距离表,此时到节点x的最低费用不变仍为1。不发送更新报文,算法静止。
当x与y之间费用减少,DV算法只需两次迭代到达静止状态。
节点之间链路费用减少的“好消息”在网络中能迅速传播。
(2)某链路费用增加时情况
如图所示,假设x与y之间的链路费用从4增加到60。
链路费用变化前
Dy(x)=4 ,Dy(z)=1, Dz(y)=1,Dz(x)=5
t0 时刻:y检测到链路费用从4变为60。更新到x的最低路径费用
Dy(x )=min{ c(y,x)+ Dx(x), c(y,z)+ Dz(x)}
=min{60+0,1+5}=6
经节点z到x费用最低,此新费用错误,发给节点z。
需要迭代原因:y不知道z到x需要经过自身
会不停迭代44次,直到另一条线路之和超过50
“坏消息”
传播很慢!“计数到无穷”
问题。毒性逆转
计数到无穷的解决办法:毒性逆转
假如 Z通过 Y 到达 X ,则Z告诉Y:它到X的距离是无穷大,Y将不会再经过Z到X
Z向Y撒了一个善意的谎言,使得只要Z经过Y选路到X,它就会一直持续讲述这个谎言,这样Y也就永远不会尝试从Z选路到X了,也就避免了环路问题
迄今为止,我们的路由研究都是理想化的:
所有路由器一样的
网络是 “平面的”
… 实际中并不是这样的…
层次选路
网关路由器
问题转换为自治区域内部和自治区域间的路由
优点:
OSPF 优点 (RIP所没有的)
- backbone骨干网
- 每一个area运行相同的域内路由协议
- 整个是大的AS
- 通过boundary router边界路由器连接其他AS
eBGP:将子网可达信息发送给其他相邻的ASes
iBGP:将获得子网可达信息,发送给子网内布的路由器
路由器之间都是TCP连接
AS互连
AS域间任务
BGP会话与通告【传输层实现网络层的功能】
传播可达信息
eBGP:AS间的BGP会话
iBGP:AS内的BGP会话
路径属性 和 BGP 路由
- 按照策略进行选择
BGP 路由选择
BGP 报文
BGP 选路策略’
A,B,C 是提供商的网络
X,W,Y是提供商的客户
X是双重的: 连接到两个网络
X 不希望 B 通过 X 到 C的路由BXC
… 所以 X 不会向B公告到C的路由XC
A 向B通告路径 AW
B 向X通告路由BAW
B 应该向C通告路由BAW?
为什么AS内选路和AS间选路采用不同的协议 ?
传统方式
网络设备难以管理,固化
网络管理更容易
可编程
SDN的特点
南向接口上报状态,下交流表
SDN控制器
网络控制应用
实现各种各样网络功能
什么是SDN
SDN的发展驱动力和优势
SDN的相关组织
SDN技术的应用方向
——每个交换设备包含一个流表(flow table). 流表由一个逻辑上中心化的控制器(远程控制器)来计算和分发
SDN体系结构及特征
特 征
SDN控制器的组件
网络层提供的服务和功能
主机通信
虚电路和数据报
转发
选路
路由器工作原理
网际协议IP
IP报文、IP分片和重组
IP编址和IP子网
IP地址分类和无分类编址CIDR
NAT网络地址转换
IPv6协议及特点、IPv4和IPv6互通
- 点到点的线路一般用于广域网【IP】
- 点可以是主机节点可以是路由节点
- 多点连接的链路容易发生碰撞【局域网,功能更复杂】
- 需要协调共享型介质MAC:Media Access Controll
- 需要寻址
wan全称Wide Area Network,是广域网的意思;lan全称Local Area Network,是局域网的意思
链路层的术语
数据链路层的职责是将数据报从一个节点传送到与该节点直接有物理链路相连的另一个节点。
帧:链路层的PDU【协议数据单元】
链路层解决点到点的数据传输
网络层解决端到端的数据传输
传输层解决进程到进程的区分,加强网络层的服务
应用层解决交换报文,实现网络应用
链路层的类比
数据报可以在不同的链路上,通过不同的链路层协议发送:
e.g., Ethernet on first link, frame relay on intermediate links, 802.11 on last link
每个链路层协议提供不同的服务:
e.g., 可以提供/也可以不提供可靠数据传输服务
每一段的帧的协议都不同,有以太网、帧中继等
不同的链路层协议,提供的只是服务的子集
网卡:Adapter 网络适配器,实现了链路层和响应的物理层的功能
网络适配器
发送节点
接收节点
说明
三种主要差错检测技术
发送方:
接收方:
可以查出任意奇数个错误,但不能发现偶数个错误。
若比特差错概率很小,差错独立发生,一比特奇偶校验可满足要求。
若差错集中一起“突发”(突发差错),一帧中未检测到的差错的概率达到50%。
要发送的数据比特10101 11110 01110,
划分3组,每组5个比特。进行行、列偶校验
特点:
Internet校验和的特点
10111 -> x4+x2+x+1 位串的表示方式
循环冗余检测的基本思想
什么是模2运算
计算R(CRC比特)
CRC练习
最多检验多项式长度,超过了不保证检测得到
奇数位错误也可也被检测到
循环冗余码CRC的特点
两个节点同时发送会造成冲突
- MAC介质访问控制协议:协调介质的共享使用
- 多个站点一个信道,可发控制信息和数据信息
广播信道要解决问题
目的:协调多个节点在共享广播信道上的传输。
避免多个节点同时使用信道,发生冲突(碰撞),产生互相干扰。
冲突(collide):两个以上的节点同时传输帧,使接收方收不到正确的帧(所有冲突的帧都受损丢失)。
理想的多址访问协议
速率为R bps的广播信道
主要有TDMA、FDMA、CDMA三种。
设信道支持 N 个节点,传输速率是 R b/s。
TDMA的特点
频分多路访问FDMA (frequency division multiple access):
码分多路访问CDMA (frequency division multiple access):
随机访问协议规定:
- 如何检测冲突
- 如何从冲突中恢复
纯Aloha效率
纯Aloha的效率:1/2e
冲突之后,以p的概率重传帧,时间越长成功概率越大。
传输前先侦听信道
- 由于电磁波传递的速度,局部的判知无法判断全局的使用情况。
- 端到端越长,传播延迟越大,冲突概率越大
- CSMA可以进一步减少冲突可能性,但无法避免冲突
CSMA:说之前听
CSMA/CD:边说边听
冲突发生时停止传输,**提升信道利用率 **
以太网采用CSMA/CD
- 发送方检测到了冲突,发送Jam信号让所有站点都知道冲突
- 窗口越大碰撞几率下降,但平均等待时间增大了
- 直到m=10,取值为{0-1023},双方选择一个值,等待i*512位时
- 对载荷自适应
- 载荷越大,碰撞几率越大,窗口扩大
- 自适应算法:【二进制指数退避算法】
- 在等待时间和碰撞几率中取得较好的均衡
效率比ALOHA更好
WLAN有两种模式:
- 有基础设施模式
- 自主帧模式
AP接入点【Access Point】
**无线介质特点:**电磁波衰减,开放空间传电磁波干扰严重。
发之前监听,发过程中不作冲突检测
无线网络中冲突检测不可行:
- 自身的电磁波信号强于其他节点传播的电磁波信号
- 不冲突不意味着成功
有限网络中:不发生冲突=成功
条件:帧>=2t(t=最远两个站点的传播延迟)
图中A、C为隐藏站点,B作为中继节点
- A、C同时向B发送,对于A、C没有冲突,但在B点冲突,不代表成功。
- 为什么不采用CD?
- 由无线局域网带来的隐藏终端和暴露终端的问题使得CD不好用
CA:事前避免冲突,信道忙,则随机选择一个值,信道空闲时每个周期-1,为0时获得信道访问权
SIFS < DIFS,确认帧的发送优先级更高
以太网没有确认帧
冲突预约
下行数据:
- 互联网通过CMTS向客户端发送的一些数据
- 不存在竞争
上行数据【互联网访问的数据】:存在介质访问控制的问题
信道划分:
- 低负载的情况下:每个用户的带宽只有1/N,利用率低
- 高负载情况下利用率高
随机访问:
- 低负载情况下:效率几乎100%
- 高负载情况下:冲突开销大,效率极低
- 单点故障:不可靠
分布式的轮询
高低负载效率都高
- 高负载比不过信道划分
- 低负载比不过随机访问
局域网概述
辐射状连接
中央结点集中式通信控制
优点:结构简单,访问协议简单,单个节点的故障不会影响到整个网络。
缺点:对中央结点的可靠性要求很高,一有故障,全网瘫痪。
所有的站点都连接在同一根传输线,即“总线”上
优点:结构简单,易于扩充
缺点:故障检测比较困难
站与站点之间首尾相接,形成一个环,数据只能沿单方向传输
优点:这种结构适合于光纤介质。实时性较强
缺点:如果处理不当,站点的故障会引起全网故障
它是从星型拓扑演变而来的,形状像一棵倒挂的树
特点:与星型拓扑大致相似。它与星型结构相比降低了通信线路
本,增加了网络复杂性
网状网络的每一个站点都与其它站点一一直接互连
优点:连接方法主要是利用冗余的连接,实现站与站之间的高速传输和高容错性能,以提高网络的速度和可靠性
缺点:关系复杂,建网难,维护难
计算机与局域网的连接
计算机与局域网通过网络接口板进行连接,网络接口板又称通信适配器(Adapter)或网络接口卡NIC(Network Interface Card),通常我们称为“网卡”。
局域网体系结构
美国电气与电子工程师协会IEEE 802委员会制定的IEEE 802局域网标准已经得到了国际标准化组织ISO的采纳,成为计算机局域网的事实标准
IEEE 802局域网参考模型是针对局域网的网络体系结构特点而制定的,它遵循ISO/OSI参考模型的原则,解决物理层和数据链路层的功能以及与网络层的接口服务、网际互连的高层功能
局域网体系结构
前n-1跳是ip地址的子网层起作用
LAN地址【48位】:区分一个网络的内部,节点节点之间的切分
MAC:在物理网络的内部标识每个节点,从而把分组分装为帧从一个节点发到另一个节点【唯一标识一块网卡】
IP地址是分层的,MAC地址的平面的
ARP:IP地址到MAC地址的转换
- IP地址完成网络到网络的交付
- MAC地址完成物理网络内部的节点到节点的数据交付
- 分离的好处
- 网卡变了IP地址可以不变
- 可以支持不同的网络层协议
!!!MAC地址完成的工作
- 前n-1跳:到下一跳的IP转换为MAC
- 最后一条将目标IP地址转换为MAC地址
- 将这些MAC地址交给网卡,封装成帧【都是一个网卡交给另一个网卡】
- 经过前面n-1跳,穿过若干子网,最后一跳到达目标主机
- 广播MAC地址:48位全1,整个局域网内的所有节点都能收到
MAC地址可以移动
IP地址不能随意移动,子网前缀不同
查询MAC地址
- 查询缓存表
- 没有
- 广播IP地址,等待接收ARP包的回复得到MAC地址
- 加入节点的IP-to-MAC地址映射关系表,20min信息超时
- 有
- 直接查询得到
理解过程:【假设有n跳(n>2)】
- 第一步:A节点查询默认网关的IP地址,广播ARP包,得到网关路由器的MAC地址
- 第二步:封装成帧,发向网关路由器
- 第三步:路由器解封装,得到目标IP地址,查询路由表,得到转发端口和下一跳IP地址
- 第四步:重复第一步,得到下一跳路由器的MAC地址,重复第二步
- 第五步:直到到达目标IP的网关路由器,同样得到MAC地址,进行封装发送。
- 穿过每一段的MAC形式都可能变,IP地址始终不变
每个节点使用CSMA/CD【冲突检测】的方式
线缆只要有一处破损,会导致总是冲突
hub集线器:一个端口收,所有端口发
集线器的连接设备,都处于一个碰撞域内,一次只能有一个设备发【逻辑上看总线型,物理看星形】
过多的节点连接会导致冲突增多,效率下降,需升级为Switch【交换机】
交换机:网络的发送和接收可以同时多个主机并行。
发送节点发送至交换机,交换机存储后只转发到对应的端口
CSMA/CD在高负载情况下冲突的弱点,由交换机解决
网卡混杂模式,接收所有目标MAC
type:标注上层需要交给的协议【IP、xx】
CRC:循环冗余校验
以太网:无连接、不可靠的服务
以太网使用CSMA/CD
T代表双绞线
所有集线器连接的节点处在同一个碰撞域中
每个信号中间有向下的跳变代表1,有向上的跳变代表0
接收方可以区分时钟和数据
物理层内容
- 体积x2,10M的数据变为20M
慢车斯顿编码在每个比特都有时钟周期和传送的数据,导致带宽太宽。
4b5b,100M->125M,有限的若干比特至少有一个跳边
集线器Hub
物理上是星型设备,逻辑上是总线型,盒中总线
Hub可以接其他hub,所有设备都在一个碰撞域中,一次只有一个站点能发送
碰撞域即网段
交换机:帧的存储转发。每个端口是一个网段。多个主机可以并发发送。
透明
点到点:主机直接接到交换机
表项:(主机MAC,经过的接口,时戳)
- 当接收到帧的时候,交换机学习到发送站点的端口,记录时添加时戳,到时间删除
- 不知道帧的端口,进行泛洪【向所有端口转发】
- 出去的端口和进来的端口不同
- 转发
- 出去的端口和进来的端口相同
- 丢弃【过滤】
- 不知道捆绑的端口
- 泛洪
VLAN:一个物理LAN基础设施,虚拟成多个LANs
**基于端口的VLAN:**交换机端口成组(通过交换机管理软件),以至于单个的交换机可以分成若干虚拟LANs1
VLAN之间通过路由器进行转发
多个交换机共享VLAN,之间传输帧必须使用trunk port干线接口,携带VLAN ID【802.1Q】
按照标签进行转发
高带宽、高可靠性、低延迟
学生在校园启动一台笔记本电脑:请求和接受www.google.com