搭建网站教学,wordpress 概要,施工企业会计分录,职称论文写作网站计算机网络
计科210X 甘晴void 202108010XXX 文章目录 计算机网络期中复习1计算机网络和因特网1.1 因特网1.2 网络边缘1.3 网络核心1.4 分组交换的时延/丢包和吞吐量1.5 协议层次与服务模型 2 应用层原理2.1 应用层协议原理2.2 Web和Http2.3 因特网中的电子邮件2.4 DNS#x…计算机网络
计科210X 甘晴void 202108010XXX 文章目录 计算机网络期中复习1计算机网络和因特网1.1 因特网1.2 网络边缘1.3 网络核心1.4 分组交换的时延/丢包和吞吐量1.5 协议层次与服务模型 2 应用层原理2.1 应用层协议原理2.2 Web和Http2.3 因特网中的电子邮件2.4 DNS因特网的目录服务2.5 P2P文件分发2.6 视频流和内容分发网2.7 套接字编程 3 传输层3.1 概述和运输层服务3.2 多路复用与多路分解3.3 无连接运输UDP3.4 可靠数据传输原理3.4.1 构造可靠数据传输协议rdt1.0,2.0,2.1,2.2,3.03.4.2 流水线可靠数据传输协议3.4.3 回退N步(GBN)3.4.4 选择重传(SR) 3.5 面向连接的传输TCP3.6 拥塞控制原理3.7 TCP拥塞控制 4 网络层数据平面4.1 导论4.2 路由器工作原理★4.3 网际协议IPV4寻址IPV6及其他不考4.4 通用转发和SDN第4章补充 5 网络层控制平面5.1 概述5.2 路由选择算法5.2.1 链路状态路由选择算法LS5.2.2 距离向量路由选择算法DV 5.3 OSPF因特网中自治系统内部的路由选择★5.4 BGP边界网关协议Border Gateway Protocol【不考】5.5 SDN控制平面★5.6 ICMP因特网控制报文协议【】5.7 网络管理和SNMP 6 链路层和局域网6.1 链路层概述6.2 差错检测和纠正技术★6.3 多路访问链路和协议★6.4 交换局域网LANSLocalNetworkMAC地址ARPAddress Relsolution Protocol以太网链路层交换机虚拟局域网 【】6.5 链路虚拟化网络作为链路层【】6.6 数据中心网络★6.7 回顾Web页面请求的历程 7 无线网络和移动网络7.1 概述7.2 无线链路和网络特征7.3 WiFi802.11 无线 LAN 课程总结备考 期中复习
【注明】这一部分是A橙学长划的重点
第一章分组交换和电路交换的比较
应用层要看懂HTTP报文知道cookie持续连接非持续连接区别邮件工作的过程DNS 原理后面的没空可以不看了
运输层 UDP和TCP比较可靠数据传输的rdt不需要知道那么仔细知道SR和GBN就可以TCP要知道报文确认号序号流量控制和拥塞控制有什么区别拥塞控制算法
1计算机网络和因特网
1.1 因特网
主机端系统通信链路分组交换机传输速率bps分组路由器链路层交换机路径一个分组经过的链路和分组交换机
因特网服务提供商ISPInternetServiceProvider传输控制协议TCPTransmissionControlProtocol网际协议IPInternetProtocol请求评论RFC
互联网是什么节点和边通过网络互联设备连接起来
分布式应用以及为它提供通信服务的基础设施
分布式应用程序套接字接口
1.2 网络边缘
客户client服务器server
CS模式P2P模式
接入网
采用网络设施的面向连接服务
1.3 网络核心
电路交换频分复用FDM时分复用TDM独享
分组交换将长报文划分为较小的数据块虚电路网络数据报网络
电路交换会预留资源分组交换不会
分组交换机
存储转发传输交换机开始向输出链路传输前必须先收到整个分组d(端到端)NL/R,N表示中间路径数
★分组交换优点共享性坏处丢包/时延
★分组交换与电路交换的对比
提供了比电路交换更好的带宽共享比电路交换更简单有效实现成本更低
包含计算
1.4 分组交换的时延/丢包和吞吐量
节点总时延传输时延传播时延排队时延处理时延【P25】
处理时延微秒或更低
排队时延毫秒到微秒
传输时延分组推向链路L/R分组长度/链路带宽毫秒到微秒
传播时延链路到被接收d/s物理链路长度/传播速度毫秒量级
车队类比
流量强度ILa/R,所有分组由Lbit组成R为传输速率a为到达分组的平均速率
流量强度I不能大于1I接近1时平均排队时延趋向于无穷大
吞吐量取决于瓶颈链路的传输速率
1.5 协议层次与服务模型
协议栈5个层次应用层报文运输层报文段网络层数据报链路层帧物理层
应用层HTTP,SMTP,FTP,DNS等分组报文
运输层TCP,UDP可靠性流量控制拥塞控制分组报文段
网络层IP分组数据报
服务
原语
服务访问点SAP
2 应用层原理
2.1 应用层协议原理
2.1.1 应用程序体系结构
客户-服务器体系结构P2P体系结构自扩展性
2.1.2 数据通信
2.1.3 可供应用程序使用的运输服务
可靠数据传输吞吐量带宽敏感应用弹性应用定时安全性
2.1.4 因特网提供的运输服务
TCP面向连接的服务可靠的数据传送服务 拥塞控制机制
UDP
安全套接字SSLSecureSocketLayer
2.2 Web和Http
2.2.1 HTTP
超文本传输协议HyperTextTransferProtocol
HTTP建立在TCP上默认端口80无状态协议
2.2.2 非持续连接和持续连接
非持续连接持续连接所有请求响应经一个单独TCP连接发送
往返时间RTT,RoundTripTime总响应时间2*RTT传输HTML文件的时间
2.2.3 HTTP报文格式
HTTP请求报文
GET /somdir/page.html HTTP/1.1 #方法URL和HTTP版本字段
Host: www.someschool.edu
Connection: close
User-agent: Mozilla/5.0
Accept-language: fr方法包括GET,POST,HEAD,PUT,DELETE
HTTP响应报文
HTTP/1.1 200 OK
Connection: close
Date: Tue, 18 Gug 2015 15:44:04 GMT
Server: Apache/2.2.3 (CentOS)
Last-Modified: Tue, 18 Gug 2015 15:11:03 GMT
Content-Length: 6821
Content-Type: text/html
(data data ......)状态码包括
200 OK301 Moved Permanently400 Bad Request404 Not Found505 HTTP Version Not Supported
2.2.4 Cookie
HTTP是一个无状态协议服务器不保存用户的信息。使用cookie可以让服务器标识一个客户提供服务。cookie有以下4个组件
响应报文中的一个cookie首部行请求报文中的一个cookie首部行用户端系统中保留一个cookie文件由浏览器管理位于Web站点的一个数据库记录用户信息
2.2.5 Web缓存
Web缓存器WebCache也叫代理服务器proxy server
优先请求本地代理服务器若得不到满足再请求
能够代表初始Web服务器满足HTTP请求。Web缓存器可以在存储器空间中保留最近请求过的对象的副本。使用Web缓存器可以大大减少对客户请求的响应时间还能够大大减少一个机构的接入链路到因特网的通信量。
Web缓存器通常由ISP购买和安装
Web缓存器既是服务器又是客户
Web缓存器带来的一个问题是存放在缓存器中的副本可能不是最新的因此需要有方式去证实请求的对象是最新的。解决使用条件GET方法在首部行中添加If-Modified-Since这样只在指定日期后对象被修改过才发送该对象。返回304NotModified表示未修改
2.2.* FTP
默认端口21
server主动向client的20号端口建立连接。
有状态协议
2.3 因特网中的电子邮件
默认端口 25
三个重要组成部分用户代理邮件服务器简单邮件传输协议SMTP,SimpleMailTransferProtocol
过程用户代理----邮件服务器----SMTP----邮件服务器----用户代理
SMTP推协议
SMTP是一个推协议由发送邮件的服务器将文件发给接收邮件的服务器接收邮件的用户是不能使用该协议获取接收到的邮件的。获取接收到的邮件使用的是邮件访问协议。流行的邮件访问协议有POP3,IMAP,HTTP。
POP3拉协议
POP3协议简单但功能有限。用户代理打开与邮件服务器的TCP连接后POP3开始工作。POP3工作有三个阶段 特许用户代理发送用户名和口令以鉴别用户。 事务处理用户代理取回报文对报文进行删除标记取消删除标记获取邮件的统计信息。获取报文有以下两种方式下载并保留 || 下载并删除 更新结束POP3会话删除被标记为删除的报文。
IMAP拉协议
使用POP3协议只能获取报文不能在服务器上创建文件夹对报文进行管理。为了解决这个或一些其他问题产生了IMAP协议。IMAP服务器把每个报文与一个文件夹联系起来报文到达时与INBOX文件夹相关联而收件人能够把邮件移到一个新的文件夹中阅读删除或是移动到别的文件夹。IMAP还提供了查询邮件的命令且IMAP维护了IMAP会话的用户状态信息(文件夹的名字等)。另外IMAP还允许用户代理获取报文某些部分的命令。这样当用户处于低带宽连接时可以选择性的只取回(MIME)报文的一部分。
基于Web的电子邮件
今天基于Web的邮件已经非常常见了。这种电子邮件用户代理就是浏览器用户和远程邮箱之间的通信通过HTTP进行。用户发送和获取电子邮件时都通过HTTP协议在浏览器和邮件服务器之间进行报文传输但是邮件服务器之间发送和接收报文仍然使用SMTP。
用户代理–HTTP–邮件服务器–SMTP–邮件服务器–HTTP–用户代理
2.4 DNS因特网的目录服务
4.1 DNS概述与DNS服务
因特网上的主机可以使用多种方式标识。一种易于记忆的方式是主机名而路由器所需要的标识则是更为具体的IP地址。将主机名转换到IP地址就是域名系统DNS的任务。
DNS是由分层的DNS服务器实现的分布式数据库。
DNS是使主机能够查询分布式数据库的应用层协议。
期中考试20分DNS协议运行在★★★UDP★★★上使用53端口。
期中考试10分A,NS,CNAME,MX分别是什么
除了进行主机名到IP地址的转换DNS还提供了以下服务
主机别名一个主机除了规范主机名外还可以有其他别名。通过DNS可以获取别名对应的规范主机名和IP地址。
邮件服务器别名和主机别名相同邮件服务器也可以使用别名通过DNS获取规范主机名和IP地址。
负载分配一个站点可能会被冗余分布在多台服务器上有不同的IP地址。这些IP地址构成了一个IP地址集DNS服务器可以在返回这些IP地址时循环改变次序客户通常选择先返回的IP地址请求服务这样通过更改返回IP地址的顺序就能起到负载分配的作用。
4.2 DNS工作原理
使用单个DNS服务器有单点故障、通信容量远距离集中(高时延)维护等问题因此DNS采用了分布式的设计方案。按照层次DNS服务器分为三种根DNS服务器顶级域服务器权威DNS服务器。除了以上三个层次外还有一类重要的DNS服务器是本地DNS服务器。本地DNS服务器一般离主机很近起到代理的作用。在进行DNS查询时有两种查询方式递归查询和迭代查询。通常请求主机到本地DNS服务器的查询是递归的其余的查询是迭代的。
为了改善时延性能和减少报文传输DNS还广泛使用了缓存技术。DNS服务器会缓存主机名/IP地址对一段时间后才丢弃缓存信息。
2.5 P2P文件分发
【计算题P95】两个公式
使用P2P体系结构的网络应用对总是打开的基础设施服务器有最小的依赖。P2P体系结构具有内在自扩展性无论有多少对等方P2P体系结构的应用的文件分发时间都小于客户-服务器体系结构的应用。BitToreent是一种用于文件分发的流行P2P协议以下是BitTorrent的部分功能原理。
在BitTorrent协议中参与一个文件分发的所有对等方的集合称为一个洪流。洪流中的对等方互相下载等长度的文件块(典型长度256KB)。对等方刚进入洪流时没有块一段时间后就持有了块并可为其他对等方上载块。每个洪流有一个追踪器当对等方加入洪流时将向追踪器注册自己并周期性通知追踪器自己仍在洪流中。
当一个对等方A加入洪流后追踪器会给出一个对等方子集及这些对等方的IP地址A可以从中选择临近的对等方建立TCP连接交换块列表。选择向邻居请求哪些块使用的策略是最稀缺优先首先请求邻居中副本最少的块从而加快这些块的分发。而响应邻居的哪些请求则使用的是一种对换算法优先响应前四个给A提供数据最高速率的邻居(他们被称为疏通)并且还会每30s随机选择一个对等方B如果B的速率够高就把B换进前四位列表。这样对等方能够趋向于找到彼此的协调的速率上载。除了这五个对等方外其他相邻的对等方不会收到A的块。这种激励机制被称为“一报还一报”。
2.6 视频流和内容分发网
6.1 视频流
视频是一系列的图像可以被压缩通常用比特率来衡量质量。视频可以被压缩到不同的比特率让用户根据网络带宽来选择观看的版本。对流式视频最重要的性能度量是平均端到端吞吐量流式视频应用得到的平均吞吐量至少与压缩视频的比特率一样大。
在HTTP流中视频只是一个普通的文件。用户请求视频文件将收到的字节进行缓存一旦超过了预先设定的门限就开始播放将字节处理成帧并将这些帧解压缩展现在视频上。视频编码为不同比特率的版本经HTTP传输被称为经HTTP的动态适应流(DASH)。使用DASH后视频有不同版本存放在服务器中服务器会有一个告示文件提供每个版本的URL和比特率信息。客户可以根据可用带宽指定URL和一个字节范围对视频数据块请求。
6.2 内容分发网
因特网视频公式每天都需要向百万计的用户发送数据如果在数据中心存储所有视频会产生很大的问题。主要有三个问题1.如果用户离数据中心太远很可能产生停滞时延。2.流行的视频可能经相同链路发送多次浪费带宽。3.单个数据中心出现单点故障就不能分发视频流了。为了解决分发视频数据的问题几乎所有的视频流公司都使用内容分发网CDN。CDN管理分布在多个位置的服务器将用户请求定位到能提供最好服务的CDN位置。CDN包括专用CDN(内容提供商自己的)和第三方CDN(代表多个内容提供商分发内容)。
CDN通常集群部署。每个集群只保留一些视频当用户请求视频时如果集群中没有该视频再从其他集群或中心仓库拉取视频到集群并在本地存储一个副本。CDN的部署通常采用两种原则
深入在全球接入ISP中部署服务器集群靠近端用户。
邀请做客在少量关键的位置建造大集群邀请ISP做客。
使用CDN用户的请求需要被重定向到CDN服务器这通常是由DNS进行截获和重定向的。DNS检测到URL中有video以及内容提供商的名字就返回一个CDN域的主机名用户将再次发送请求到这个CDN域的DNS系统并得到CDN节点的IP地址。CDN的集群选择策略是CDN部署的核心一种简单的策略是指派用户到地理上最为临近的集群也有周期性实时测量集群和用户到集群时延和丢包性能来选择集群的策略。
2.7 套接字编程
网络应用程序有两类一种使用协议标准(如RFC)定义的操作实现的另一种是使用专用的应用层协议。如果是开发专用的网络应用程序应该避免使用熟知端口号。另外一个实现网络应用程序的问题是该选择TCP还是UDP。这两种协议有各自的特点。以下是分别使用UDP和TCP实现的简单客户-服务器程序(Python实现)。
7.1 UDP套接字编程
# Client
from socket import *def main():serverName 127.0.0.1 #本机IPserverPort 12000 #端口clientSocket socket(AF_INET, SOCK_DGRAM) #IPV4,UDPmessage input(Input lowercase sentence:)clientSocket.sendto(message.encode(), (serverName,serverPort))modifiedMessage,serverAddress clientSocket.recvfrom(2048)print(modifiedMessage.decode())clientSocket.close()returnif __name__ __main__:main()# Server
from socket import *def main():serverPort 12000serverSocket socket(AF_INET,SOCK_DGRAM)serverSocket.bind((,serverPort))message,clientAddress serverSocket.recvfrom(2048)modifiedMessage message.decode().upper()serverSocket.sendto(modifiedMessage.encode(),clientAddress)if __name__ __main__:main()7.2 TCP套接字编程
# Client
from socket import *def main():serverName 127.0.0.1 serverPort 12000clientSocket socket(AF_INET,SOCK_STREAM) #IPv4,TCPclientSocket.connect((serverName,serverPort)) #建立连接sentence input(Input lowercase sentence:)clientSocket.send(sentence.encode()) #已建立连接不需要地址了modifiedSentence clientSocket.recv(2048)print(From Server:,modifiedSentence.decode())clientSocket.close()if __name__ __main__:main()
# Server
from socket import *def main():serverPort 12000serverSocket socket(AF_INET,SOCK_STREAM)serverSocket.bind((,serverPort))serverSocket.listen(1) #欢迎套接字等待建立连接print(The server is ready to receive)while(1):connectionSocket,addr serverSocket.accept() #客户专用套接字sentence connectionSocket.recv(2048).decode()modifiedSentence sentence.upper()connectionSocket.send(modifiedSentence.encode())connectionSocket.close()if __name__ __main__:main()3 传输层
3.1 概述和运输层服务
运输层协议为运行在不同主机上的应用进程之间提供了逻辑通信功能。运输层协议是在端系统实现的将应用程序的报文转换为较小的块加上运输层首部生成运输层分组称为报文段将报文段交给网络层由网络层发送到目的地。
因特网提供了两种可用的运输层协议UDP(用户数据报协议)TCP(传输控制协议)。UDP提供不可靠服务而TCP提供面向连接的可靠数据传输还提供拥塞控制。网络层的协议即网际协议IP提供的是不可靠服务不确保报文段的交付和按序交付因此本章主要讨论的一个问题是TCP如何提供可靠数据传输另一个主要讨论的问题是TCP如何实现拥塞控制。
TCP:拥塞控制流量控制建立连接
UDP:没有在IP之上提供更多服务IP主机到主机UDP进程到进程
都不提供延时与带宽保证数据交付和交错检查UDP仅能提供的
3.2 多路复用与多路分解
运输层从紧邻其下的网络层接收报文段。运输层负责将报文段进程交付给主机上运行的适当进程。一个进程有一个或多个套接字运输层实际上是将数据交给中间的套接字。接收主机可能同时有多个套接字因此每个套接字都有一个唯一的标识符。为了将运输层报文段定向到合适的套接字运输层报文段有一些字段包含了套接字的标识符。
多路分解运输层→套接字向上通过这些字段将运输层报文段中的数据交付到正确的套接字的工作称为多路分解。
多路复用套接字→网络层向下从不同套接字中收集数据块将数据块封装并添加首部信息产生报文段发送到网络层的过程工作称为多路复用。
每个套接字都有唯一的标识符每个报文段都有特殊字段来指示该报文要交付到的套接字。套接字需要使用端口号进行标识。端口号是一个16bit的数其中0-1023为熟知端口号。保留给HTTP,FTP等熟知的应用层协议。
UDP套接字二元组标识包含一个目的IP地址(标识主机)和一个目的端口号(标识具体的套接字)。接收主机的运输层收到报文段后通过首部中的目的端口号将报文段定向到相应的套接字。
TCP套接字四元组(源IP地址源端口号目的IP地址目的端口号)标识。这四个值标识了一个连接接收主机通过四个值将报文段定向到对应套接字。由于TCP是面向连接的不同的源IP地址和源端口号与同一个目的IP的同个目的端口号建立的是不同的连接使用的也是不同的套接字。但是初始创建连接时连接还没有建立因此使用的是同一个套接字(欢迎套接字)。连接建立后接收端进程将创建一个新的套接字供该连接使用。
3.3 无连接运输UDP
UDP是无连接的运输只在IP的基础上进行复用和分解并增加了少量的差错检测。UDP不能提供可靠的传输服务但有以下优点 控制更加精细。采用UDP时UDP会将数据打包直接传递给网络层不像TCP存在拥塞控制机制发送可能受到遏制。 无需建立连接。UDP不会引入建立连接的时延。因此DNS就是运行在UDP之上的。 无连接状态。UDP不维护连接状态。而TCP则需要维护包括接收和发送缓存拥塞控制参数和确认号等连接状态。 分组首部开销小。仅有8字节。
除了不能提供可靠传输UDP还可能导致其他问题因为缺乏拥塞控制UDP可能导致发送方接收方之间的高丢包率挤垮TCP会话。
UDP报文段由源端口号目的端口号长度和校验和组成每个字段2字节共8个字节。其中的校验和提供了差错检测功能因为链路层协议可能没有提供差错检测而报文段的传输可能经过一条没有使用差错检测协议的链路。因此UDP在端到端基础上在运输层提供差错检测这称为端到端原则。
校验
发送方对报文段中所有16比特字的和任何时候若溢出要回滚进行反码运算。
接收方若无差错和将是0xFFFF
3.4 可靠数据传输原理
可靠数据传输协议ReliableDataTransferProtocol
可靠传输问题不仅在运输层出现也在链路层及应用层出现。实现可靠传输服务是可靠数据传输协议的任务。一般情况下都是在下层协议提供不可靠数据传输(udt)下建立可靠数据传输协议。由于可靠数据传输(rdt)不仅适用于运输层收发端交换的数据以下称为分组而不是运输层的报文段。
3.4.1 构造可靠数据传输协议rdt1.0,2.0,2.1,2.2,3.0
①经完全可靠信道的可靠数据传输 rdt1.0
经完全可靠信道的可靠数据传输接收与发送方不需要进行任何通信。发送方只需接收高层的数据产生分组并发送到信道中而接收方只需要从信道接收分组从分组中取出数据交给上层。
②经具有比特差错信道的可靠数据传输 rdt2.0
实际情况下底层信道的模型是会出现比特差错的模型在分组的传输传播或缓存的过程中都可能出现比特差错。为了处理差错接收方需要对接收到的分组进行确认发出肯定确认告知发送方分组被接收发出否定确认告知发送方重发分组。基于这种重传机制的可靠数据传输协议称为自动重传协议(ARQ)。ARQ协议需要三种功能处理比特差错的情况 差错检测通过检验和字段使接收方能够检测到比特差错。 接收方反馈接收方需要进行肯定确认(ACK)否定确认(NAK)只需要一个bit的分组就可以进行确认。 重传接收方接收到有差错的分组时发送方重传分组。
采用以上这种重传机制发送方在发送分组后将等待接收方的确认分组决定是否重传还是传输新的分组。由于这种行为rdt2.0这样的协议被称为停等协议。
③rdt2.1
由于信道本身可能出现差错因此必须考虑确认分组ACK或NAK出现差错的情况。在这种情况下发送方不知道接收方是否正确收到了分组。解决该问题的方式是如果发送分组不能确定接收方是否接收到了正确的分组就重新发送分组。这种方式给信道引入了冗余分组。但是接收方还需要知道接收到的是新的分组还是重传的分组因此对于分组需要进行一个序号需要只需要为0或1让接收方能够区别分组是否和上一个接收到的分组一样就可以。
④rdt2.2
用对前一分组的正向确认替代对当前分组的反向确认用ACK0替代NAK1回应P1
这个方法没有NAK状态只有ACK。
⑤经具有比特差错的丢包信道的可靠数据传输 rdt3.0
除了比特差错丢包也是常见的一种情况。解决丢包的方式和处理比特差错一样如果没有接收到确认分组(发送的分组丢失或确认的ACK丢失又或者只是分组或ACK延时)就重传数据分组。新的问题是到底等待多久才能判断分组丢失。这个时间至少大于一个往返时延要根据情况设置。为了实现以上这种基于时间的重传机制还需要一个倒计数定时器发送方每发送一个分组就启动一个定时器定时器超时就进行重传。解决冗余分组的方式则和rdt2.0相同。因为分组序号在0和1之间交替rdt3.0也被称为是比特交替协议。
可以对抗丢失/出错
3.4.2 流水线可靠数据传输协议
以上所形成的以停等协议为核心的可靠数据传输协议是功能正确的但是在性能方面存在大的问题因为发送方的信道利用率太低了大量时间都在等待确认分组。而确认分组至少需要一个往返时延RTT才能回到发送方还要加上协议处理时间和中间路由器的时延。这个性能问题的解决办法就是不以停等方式运行允许发送方发送多个分组。例如发送方可以发送三个分组后再等待确认这样的方式被称为流水线。不过在提升性能的同时采用流水线也会带来新的问题。
必须增加序号范围因为输送中的分组有多个。 发送方和接收方需要缓存多个分组。 需要处理丢失损坏及延时过大的分组。两种基本方法是回退N步选择重传。
3.4.3 回退N步(GBN)
在回退N步协议GBN中允许发送方发送多个分组不需等待确认但是未确认的分组数不能超过某个最大允许数N。定义基序号base为最早未确认分组的序号下一个序号nextseqnum为下一个待发分组的序号则
GBN协议也常被称为滑动窗口协议。分组的序号在分组首部的字段(k位)范围为0-2^k-1。GBN发送方响应三种事件
上层调用窗口未满则发送分组否则告知上层。上层可能过一会儿再试也可能发送方直接把上层数据缓存。 接收ACKGBN协议中对分组的确认方式为累积确认。接收到n的ACK则序号小于等于n的分组都被确认接收。 超时如果出现超时重传所有已发送但未被确认过的分组。GBN协议中只有一个定时器最早发送且未被确认的分组启动计时器接收到确认分组则重启计时器。 GBN协议中接收方会丢弃所有失序的分组因为发送方会重传这些分组。直接丢弃这些分组接收缓存简单不需要缓存失序分组接收方唯一需要维护的信息就是下一个按序接收的分组的序号。
3.4.4 选择重传(SR)
如果采用GBN协议一旦最早发送的未确认分组超时就需要从该分组开始重传且接收方接收到的不按序的分组都会被丢掉。在信道差错率增加时延很大的情况下GBN可能大量重传分组。选择重传协议SR改进了这一点只让发送方重传可能出错的分组。接收方将缓存失序的分组并逐个对分组进行确认连续的几个分组都收到后一起交付给上层。而发送方的每一个分组都有自己的定时器超时后只重传一个分组如果收到了最小未收到确认的分组的对应ACK就将窗口重新移动到具有最小序号的未确认分组处。
对于已收到的那些分组接收方会重新进行确认这是有必要的否则发送方可能停留在一个固定的窗口(因为不进行累积确认了不重新确认窗口就不移动了)。
另外考虑到序号是有限的发送方与接收方窗口的不同步会导致严重的问题。例如假设序号只有0,1,2一种情况是正常的按照0,1,2,0来发送分组另一种情况是分组0的ACK丢失了发送次序是0,1,2,0(重传0)因为有这两种不同的情况接收方无法确认接收到的分组是重复发送的还是新的分组。因此必须限制窗口的大小避免这种情况的发生。窗口长度必须小于或等于序号空间大小的一半。这样假设发送方没有收到正确的ACK窗口不移动接收方接收到了分组一直向后移动最后的结果就是发送方的窗口占了一半序号接收方的窗口占了一半的序号接收方的窗口最大值刚好停在发送方的窗口最小值前面而不会发生序号重复。
3.5 面向连接的传输TCP
面向连接全双工两方都可以同时收发三次握手确定连接通过连接发送数据
TCP连接建立后应用进程就可以互相发送数据了。客户进程通过套接字将数据交给TCPTCP将数据存储到连接的发送缓存中接下来TCP会从发送缓存中取出数据交给网络层。TCP可取出并添加到报文段的数据大小受限于最大报文长度MSS而MSS又通常根据最大链路层帧长度(最大传输单元MTU)来设置MSS要保证一个报文段加上TCP/IP首部长度(40字节)适合链路层帧。以太网和PPP链路层协议都有1500字节的MTU因此MSS的典型值为1460字节。TCP接收端接收到报文段将数据放到接收缓存中应用程序从该缓存中读取数据。
根据以上的讨论TCP连接的组成包括一台主机上的缓存变量和与进程连接的套接字另一台主机上的缓存变量和与进程连接的套接字。
TCP报文结构
序号和确认号
发送的ACK是我期望从对方那边得到的期望序号
3.5.3 往返时间的估计与超时
EstimatedRTT (1-a) EstimatedRTT a SampleRTTa推荐值取1/8DevRTT (1-b) DevRTT b | SampleRTT - EstimatedRTT |b推荐值0.25TimeoutInterval EstimatedRTT 4 DevRTT
可靠数据传输 使用单一重传定时器
超时间隔加倍
快速重传监测到3个冗余ACK期望序号比应该的ACK高就执行快速重传比超时重传要早
产生TCP的ACK的建议书P163
3.5.5 流量控制
接收窗口receive window由发送方维护
接受方接收到报文段后将报文段存放到接收缓存当中应用进程从中取出数据。如果应用程序读取的速度较慢而发送方发送的数据太多太快就会导致接收缓存溢出。因此TCP提供了流量控制服务使发送方的发送速率与接收方应用程序的读取速率匹配。这与拥塞控制很相似但是完全是出于不同的原因。
TCP通过让发送方维护一个称为接收窗口的变量来进行流量控制。接收窗口表示接收方可用缓存的大小。发送方需要维护两个变量
lastbyteread读出的最后一个字节 lastbyterecv已到达接收缓存的最后一个字节 不允许接收缓存溢出则lastbyterecv-lastbytereadrcvbuffer。则接收窗口为
rwndrcvbuffer-[lastbyterecv-lastbyteread]
rwnd是一个动态的值。在起始时rwndrecvbuffer此后接收主机会维护该值并将其发给发送主机而发送主机需要进行如下的控制
lastbytesent−lastbyteackedrwnd
为了避免发送主机收到rwnd0后被阻塞如果接收窗口为0发送主机将发送一个只有一个字节的报文段接收主机将会回发确认并在确认报文中包含一个新的非0rwnd值。
TCP提供了以上的流量控制服务UDP是不提供这样的服务的。因此如果使用UDP进程从缓存中读取报文段的速度不够快缓存将会溢出并丢失报文段。
3.5.6 TCP连接管理
TCP建立三次握手
两次连接的问题维持虚假半连接接收旧数据
TCP结束四次挥手
3.6 拥塞控制原理
流量控制拥塞控制相同点都是对发送方进行遏制 流量控制发送方的发送速率与接收方的读取速率相匹配以取消出发送方使接收方缓存溢出的可能性 拥塞控制避免网络拥堵
3.6.1 拥塞原因与代价
通常出现拥塞有以下几种情况 情况1两个发送方和一台具有无穷大缓存的路由器当发送速率超过吞吐量时平均排队分组数不断增长源与目的之间的时延也变为无穷大(假设不停发送有无限大的缓存)。 情况2两个发送方和一台具有有限缓存的路由器当缓存已满部分分组被丢弃这将引起发送方的重传此外提前发生超时还可能导致发送方重传没有丢失的分组。 情况34个发送方和具有有限缓存的多台路由器及多跳路径在有许多跳的情况下不同的链路中不同连接的载荷不同。
从以上几种情况来看由于拥塞丢弃分组产生了以下的代价
分组的到达速率接近链路容量时分组经历巨大的排队时延发送方必须重传以补偿因为缓存溢出而丢弃的分组发送方在遇到大时延时进行的不必要重传会引起路由器利用链路带宽来转发不必要的分组副本一个分组沿一条路径被丢弃时每个上游路由器用于转发该分组的传输容量最终被浪费掉了
3.6.2 拥塞控制方法
端到端拥塞控制端系统自己来观察网络层不提供信息
网络辅助的拥塞控制路由器向发送方提供关于网络中拥塞状态的显式反馈信息
ATM ABR
RM(资源管理)信元NI位轻微拥塞指示CI位拥塞指示ER字段中间路由器将自己可提供带宽写入
3.7 TCP拥塞控制
当出现了网络拥塞时TCP应该降低发送速率进行拥塞控制。实现这样的控制有三个问题需要解决。
TCP发送方如何感知到与目的地之间的路径上存在拥塞或是不存在拥塞 TCP如何限制其向连接上发送流量的速率 采用什么算法改变发送速率 下面逐个解决以上的问题。
1.拥塞检测与速率的确定
当发生拥塞时路径上的路由器缓存溢出就会引起丢包。对于发送方而言丢包导致的是出现超时和收到3个冗余ACK。如果发生了这两种情况就表示发生了拥塞就应该减小发送速率。这就解决了拥塞检测的问题。在没有拥塞时为了充分利用所有可用的带宽TCP发送方还应该可以加快发送的速率。当TCP发送方接收到确认报文段ACK时就认为一切顺利网络不拥塞可以增加发送速率。
2.限制速率
TCP采用了一个拥塞窗口cwnd来限制发送速率。注意这与流量控制相似但是不同。发送方未被确认的数据量不会超过cwnd与rwnd的最小值即LastByteSent-LastByteAckedmin{rwndcwnd}。由于此处仅探讨拥塞控制先假设接收缓存无限大这样发送速率就只与cwnd有关。通过cwnd的值就可以调整向连接发送数据的速率了。
3.TCP拥塞控制算法
解决了上面两个问题只要使用特定的算法控制cwnd就可以实现拥塞避免了。TCP拥塞控制算法包括三个部分慢启动拥塞避免快恢复。
慢启动
起始时cwnd的值以一个MSS开始每当一个报文被确认就增加一个MSS对每个ACK都将cwnd增加一个MSS故相当于*2出现超时丢包cwnd设置为1慢启动阈值ssthresh值设置为检测到拥塞时的cwnd/2重新开始慢启动。cwnd达到ssthresh结束慢启动进入拥塞避免模式出现三个冗余ACKssthreshcwnd/2cwndssthresh3MMS结束慢启动进入快速恢复模式
拥塞避免
收到上一组全部cwnd的报文增加一个MSS线性加出现超时丢包与慢启动的反应相同返回并重新开始慢启动出现三个冗余ACKssthreshcwnd/2cwndssthresh3MMS结束拥塞避免进入快速恢复模式
快速恢复
对于每个冗余的ACKcwnd在对丢失报文段的ACK到达后cwndssthresh进入拥塞避免模式出现超时丢包与慢启动的反应相同返回并重新开始慢启动
TCP Tahoe丢包全部按超时处理进入慢启动
TCP Reno(含快速恢复)
【图片来自中科大郑烇老师的PPT】
早期的TCP版本Tahoe没有快恢复机制无论是收到冗余ACK还是丢包都直接将cwnd设置为1。TCP的较新版本TCP Reno 则加入了快恢复机制。现在已有Reno的许多变种例如Vegas该算法在分组发生丢失之前检查源与目的地之间的拥塞当检测出快要发生的分组丢失时(通过RTT的变化)线性降低发送速率。
7.2 对TCP吞吐量的宏观描述
有了TCP的拥塞控制算法可以考虑长期存活的TCP连接的吞吐量了。
当窗口长度是w往返时间为RTTTCP的发送速率大约是W/RTT在一个窗口内发送了w后收到前一半发送的分组的ACK因此发送速率约为W/RTT。不考虑慢开始阶段(指数增长很快结束)发生丢包时假设速率减半再增加到W/RTT。在以上情况下TCP的速率重复从W/2RTT到W/RTT的过程在两个值之间线性增长可以得出一个高度理想化的TCP稳态动态性模型
一条连接的平均吞吐量 0.75 * W /RTT
在高带宽路径中结合MSS和丢包率L可以得出一条TCP连接的吞吐量公式
一条连接的平均吞吐量 1.22 * MSS / (RTT * sqrt(L) )
7.3 公平性
可以在吞吐量图上进行演示
如果有多条TCP连接通过同一段瓶颈链路TCP趋于给竞争的多条TCP连接提供平等的带宽共享。书上给出了理想化的证明在连接有相同MSS和RTT的情况下公平性是可以保证的。
现实中存在的不公平挑战
多媒体应用使用UDP连接压制TCP流量Web浏览器常使用并行连接传输多个对象
7.4 明确拥塞通告
拥塞控制的另一类是网络明确向TCP双方发送拥塞信号这种形式的网络辅助拥塞控制称为明确网络拥塞控制通告ECN。这种形式下路由器使用一种ECNbit指示该路由器正在经历拥塞并将该标记携带在IP数据报中发送给目的主机再由目的主机告知源主机实现拥塞控制。
总结 【图片来自中科大郑烇老师的PPT】 【图片来自中科大郑烇老师的PPT】
4 网络层数据平面
4.1 导论
路由控制平面全局转发数据平面局部
传统方式基于目标地址转发表
SDN方式基于多个字段流表
保证服务模型带宽丢失保序延迟拥塞反馈
4.2 路由器工作原理
路由器结构组件4个
输入端口交换结构输出端口路由选择处理器
输入端口处理和基于目的地的转发最长前缀匹配规则
“匹配动作”抽象
交换结构
经内存交换由CPU路由选择处理器直接控制经总线交换输入端口经一根共享总线将分组直接传送到输出端口经互联网络交换纵横式交换机内存/总线一次只能处理一个纵横式只要彼此输出端口不同一次可以处理n个
交换速率N倍输入/输出端口速率否则会成为瓶颈
输出端口处理
何处出现排队输入排队输出排队 输入排队线路前部阻塞HOL由于队列前面的受到竞争而阻塞后面的即使不存在竞争也要等待 输出排队弃尾主动队列管理AQM
多少缓存 缓存数量B平均往返时延RTT*链路容量C少量TCP流量 BRTT*C/sqrt(N) 大量TCP流量N条
分组调度FIFO优先权排队同一优先权分组之间使用FIFO另非抢占式优先权排队循环和加权公平排队
★4.3 网际协议IPV4寻址IPV6及其他
★IPv4数据报格式
【补充】
★IPv4数据报分片
MTU最大传送单元
标识标志最后为0其余为1片偏移计算题
★IPv4编址地址协议
一个IP地址与一个接口主机与物理链路的边界相关联而不是该接口的主机或路由器
子网划分【考题计算】
网络地址子网掩码确定的子网地址后面部分全为0主机地址在网络地址和广播地址之间广播地址子网掩码确定的子网地址后面部分全为1
不考特殊IPv4地址
默认路由0.0.0.0环回地址127.0.0.0/8测试IP协议栈是否正常链路本地地址169.254.0.0/16
不考地址分类已经被淘汰了
A类地址N.H.H.H默认子网掩码255.0.0.0B类地址N.N.H.H默认子网掩码255.255.0.0C类地址N.N.N.H默认子网掩码255.255.255.0
无类别域间路由选择CIDR
a.b.c.d/x前x最高比特构成IP地址的网络部分网络前缀/前缀
路由聚合/地址聚合/路由摘要使用单个网络前缀通告多个网络的能力书P221案例通过申明更长的前缀可以实现搬家的效果
★动态主机配置协议DHCPDynamicHostConfigurationProtocal
4个步骤【补充】
DHCP发现报文DHCP提供报文DHCP请求报文DHCP ACK报文
★网络地址转换NATNetworkAdressTranslation
10.0.0.0/8这类地址被保留用于专用网络仅在给定的网络中才有意义。
NAT自己运行一个DHCP服务器给子网用户分IP地址并从ISP的DHCP服务器得到自己的IP地址。
NAT转换表WAN端LAN端
NAT缺点
书上服务器进程在周知端口号上等待入请求书上P2P对等方在充当服务器时需要接受入连接书上违背IP设计理念破坏端到端模型延迟增加应用限制端口限制端口数量有限单点故障未标准化突破NAT穿越问题很麻烦
不考分类
FullCone NAT只要知道内部主机的IP和Port就可以发送数据包IP和端口都不限制Restricted Cone NAT只有内网主机主动请求过的外部主机该外部主机可以使用自己的IP任意端口可以向内网主机发送限制了IP不限制端口Port Restricted Cone NAT只有内网主机主动请求过的外部主机该外部主机可以使用自己的IP自己的端口可以向内网主机发送限制了IP端口Symmetric NAT只有收到内网主机发送的数据才能往回发送无法实现UDP-P2P通信
不考NAT穿越 中继逆向链接 UDP打洞QQ的原理A与B连接S进行注册A向B通信时A向S通信要求B向S提供连接一旦都打开A可直接与B通信
老师给出NAT的问题
结构上不合理与IP提供端到端可达性相悖单点故障没有标准化突破NAT穿越问题很麻烦NAT不等同于防火墙端口号限制
IPv6
IPv6数据报格式版本流量类型流标签有效载荷长度下一个首部跳限制源地址目的地址数据
★注意IPv6地址共128bitIPv6不允许在中间路由器上进行分片/重新组装并因此取消了首部检验和同时取消了选项字段。
IPv4到IPv6的迁移建隧道在中间使用IPv4的路段使用IPv4封装IPv6
不考4.4 通用转发和SDN
第4章补充
IP定位工具
ping工具Traceroute工具HTTPHeadCDN工具DNS工具
网络空间测绘技术
SDN三大特征
集中控制、分离数据平面和可编程性
P4 可编程协议无关报文处理语言
SD-WAN 广域网组网
5 网络层控制平面
5.1 概述
路由选择算法
分类方式集中式/分散式静态/动态负载敏感/负载迟钝
5.2 路由选择算法
5.2.1 链路状态路由选择算法LS
【具体内容……】Dijkstra算法
问题拥塞敏感的路由选择的振荡
解决确保并非所有路由器同时运行LS算法避免自同步发送链路通告的时间随机化
5.2.2 距离向量路由选择算法DV
【具体内容……】Bellman-Ford算法
迭代的异步的分布式的算法
问题
好消息传播快坏消息传播慢算法本身对于信息的真伪无法甄别无穷计数问题链路突然变坏的消息没有及时被别的节点收到误以为那条路仍然是好的且这个消息会干扰到直接与那条路相连的节点解决毒性逆转z通告y路由选择到目的地x则z向y通告它到x的距离是无穷大【三个以上节点的环路无法检测】书上没有解决水平分割路由器不使用接收更新的同一接口来通告同一网络从根本上解决问题
LS和DV比较
报文复杂性收敛速度DV算法收敛慢会遇到无穷计数问题健壮性LS较好DV上一个不正确的节点计算会扩散全网
5.3 OSPF因特网中自治系统内部的路由选择
开放最短路优先(OSPF)算法。
OSPF是一种链路状态协议使用洪泛链路状态信息和Dijkstra最短路径算法。每台路由器在本地运行Dijkstra算法构建一个关于整个自治系统的完整拓扑图。
使用OSPF时路由器向自治系统内所有其他路由器广播路由选择信息不仅仅是向邻居广播当链路状态变化或经过一个特定周期路由器就会广播链路状态信息。
OSPF通告包含在OSPF报文中直接由IP承载。
OSPF优点如下
安全使用鉴别仅有受信任的路由器能参与一个AS内的OSPF协议。多条相同开销的路径对于多条相同开销路径OSPF允许使用多条路径这样可以负载均衡。对单播与多播路由选择的综合支持。支持在单个AS中的层次结构一个OSPF自治系统能够层次化配置多个区域每个区域都运行自己的OSPF链路状态路由选择算法路由器只在区域内进行广播一台或多台边界路由器负责为流向区域外的分组提供路由选择。
★5.4 BGP边界网关协议Border Gateway Protocol
对于BGP来说只要把分组送到分组的目标网络不需要考虑送到目标主机的问题。因此BGP中一个目的地是一个地址前缀即一个网络。BGP通过两个手段将分组送到目标网络
从邻居AS获取前缀的可达性信息BGP允许每个子网向因特网中的其他部分通告自己的存在这样一个AS就知道一个子网的存在才可能将分组送达这个子网。即“我在这里”确定最好的路由路径基于策略和可达性信息路由器会选择一条尽可能好的路由路径传送分组。
通告BGP路由信息
路由器只有两种网关路由器在AS边缘内部路由器在AS内路由器通过使用179端口的半永久【TCP连接】交换路由选择信息每条路由器之间的连接和发送的BGP报文称为BGP连接跨越两个AS的BGP连接为外部BGP(eBGP)AS内部路由器的BGP会话为内部BGP(iBGP)
BGP属性
AS-PATHNEXT HOPAS-PATH起始路由器的IP地址
确定最好的路由
热土豆路由选择尽可能快地最低开销地送出本AS即最靠近NEXT-HOP路由选择算法依次采取以下规则指派一个本地偏好作为属性之一选择具有最短AS-PATHAS-PATH就是从当前AS到达一个AS的路径的路由使用热土豆路由选择使用BGP标识符注意当在转发表中对于热土豆路由选择增加AS向外前缀时AS间路由选择协议BGP和AS内部路由选择协议OSPF都要用到。
IP任播
常用于DNS用处在分散不同的地理位置替换不同服务器上的相同内容让每个用户从最靠近的服务器访问内容原理为多台服务器指派相同的IP地址并使用标准BGP通告该IP地址。这样当某台BGP路由器收到对于该IP地址的多个路由通告时它会认为这是对相同物理位置的不同路径因而根据本地的BGP路由选择算法选择一个较优的路径事实上访问了最靠近的内容在CDN网络实践上并没有采用BGP路由选择变化能导致相同的TCP连接的不同分组到达Web服务器的不同实例即到达了不同的服务器上虽然是同一个IP
路由选择策略
客户网络提供商网络接入ISP所有进入接入ISP网络的流量必定以该网络为目的地所有离开该接入ISP网络的流量必定源于该网络。我理解为该网络不承担中转任务只作为终端节点的客户网络多宿接入ISP连接了多个提供商网络的客户网络。提供商网络间结算由它们自己协商
拼装在一起
如果要创建一个具有服务器的小型公司网络 首先与本地ISP签合同将网关路由器与ISP路由器相连获取IP地址范围分配IP地址Web服务器电子邮件服务器DNS服务器网关路由器以及其它设备都需要IP地址。 与因特网注册机构签合同获取域名向注册机构提供我的DNS服务器的IP地址注册机构将在顶级域名服务器中为我的DNS服务器添加一个表项 本地ISP使用BGP向所有与它连接的ISP通告我的前缀最终所有因特网路由器都将得知我的前缀。
【不考】5.5 SDN控制平面
★5.6 ICMP因特网控制报文协议
主机和路由器用来彼此沟通网络层信息用途差错报告。
ping的实现ICMP源抑制报文Traceroute的实现向不可达UDP端口号发送TTL逐次递增的报文
补充测试工具
ping的参数-l size指定数据包大小-i ttl设置存活-w timeout设置超时时间traceroutetracertnetstatpathping综合ping和traceroute的功能tcpinghttp-ping解决针对ICMP-ping的伪装dig复现DNS查询过程包括上级服务器等
【】5.7 网络管理和SNMP
SNMP Protocol
6 链路层和局域网
6.1 链路层概述
节点链路链路层帧在链路之间传递的数据报被封装成链路层帧
链路层提供可能的服务
成帧framing链路接入媒体访问控制MediumAccessControl,MAC可靠交付很多有线链路层协议不提供可靠交付差错检测和纠正EDC
链路层在何处实现网络适配器/网络接口卡NIC
链路层是硬件和软件的结合体
6.2 差错检测和纠正技术
【不重要】
奇偶校验检验和方法运输层用软件实现。因特网检验和TCP和UDP对首部数据字段计算其他协议只对首部计算循环冗余检测链路层硬件实现可以使用复杂方法。
循环冗余检测CRC, Cyclic Redundancy Check
首先协商一个r1比特模式生成多项式G最左边是1剩下为r位。
发送方对于给定要保护的多项式D左移r位右边空出来的部分填充R。变换后的式子是D*2^r XOR R。发送方要求出R使得该式子可以整除G整除的过程也相当于做异或。
R remainder[D*2^r/G]remainder的意思是取整除结果的后r位
接收方若接收到的式子是可以整除G的就是正确的。
这种方法可以检测小于r1比特的突变。
★6.3 多路访问链路和协议
多路访问协议
信道划分协议Channel Partition Protocol随机接入协议Random Access Protocol轮流协议Taking-turns Protocol
信道划分协议
时分多路复用TDM频分多路复用FDM码分多址CDMA对每个节点分配一个不同的编码接收方根据编码来接收不同节点能同时传输由于有混码问题现在不再使用【不重要】
随机接入协议
时隙ALOHA有一个新帧要发送的时候在下一个时隙传输整个帧若无碰撞成功发出若有碰撞在之后以概率p在之后的每个时隙中重传该帧直到成功传出。节点只在时隙起点开始传输帧节点同步每个节点知道时隙什么时候开始ALOHA没有引入时隙规则同上。有一个新帧要发送的时候立刻发送若有碰撞在该碰撞帧传递完后立即以概率p重传以概率(1-p)等待这段时间之后也是类似的。载波侦听多路访问CSMACarrier Sense Multile Access【载波侦听】传输前先听信道若有节点正在发送就等它们传输完再等一小会儿自己再传输还会发生碰撞为什么信道传播时延具有碰撞检测的载波侦听多路访问CSMA/CD【载波侦听】跟上面一样【碰撞检测】当检测到另一个节点正在传输干扰帧时停止传输并随机等待一定时间二进制指数后退binary exponential backoff算法在该帧连续经历了n次碰撞后等概率地从{01……,2^n-1}中选择一个值作为K值。以太网中K*512比特时间为在开始“侦听-当空闲时传输”前的等待时间CSMA/CD效率近似公式效率1/15d[prop]/d[trans]d[prop]为信号能量在仍任意两个适配器之间传播所需的最大时间d[trans]表示传输一个最大长度的以太网帧的时间
轮流协议
轮询协议主节点通知每个节点它可以传输的帧的最多数量缺点引入轮询时延若主节点有故障整个网络瘫痪令牌传递协议没有主节点不同节点之间传递一个被称为“令牌”的特殊帧缺点任意节点出问题使令牌没有正确传递网络都会瘫痪
DOCSIS用于电缆因特网接入的链路层协议【不重要】
★6.4 交换局域网LANSLocalNetwork
链路层地址又称LAN地址物理地址MAC地址
MAC地址
主机和路由器的适配器具有MAC地址MAC地址是唯一的由IEEE管理MAC广播地址FF-FF-FF-FF-FF-FF
ARPAddress Relsolution Protocol
作用将IP地址转换为MAC地址区别DNS为在因特网中任何地方的主机解析主机名而ARP只为在同一个子网上的主机和路由器接口解析IP地址ARP表保存IP地址和MAC地址有TTL通常为20minsARP是跨越链路层和网络层的协议
在子网内发送
若ARP表中有对应IP的MAC地址让适配器直接发送即可。若ARP表没有对应IP的MAC地址向适配器传递ARP查询分组适配器用广播MAC地址FF-FF-FF-FF-FF-FF发送使用链路层帧封装好的ARP分组接收到的每个适配器都会检查自己的MAC地址是不是要找的如果是使用标准帧回应。
发送到子网外
路由器的每个接口都有一个IP地址一个ARP模块和一个适配器源主机A向该子网的网关路由器B发送数据包若主机A没有该路由器B的MAC使用ARP寻址网关路由器B向目标子网发送数据包若网关路由器B没有目标主机C的MAC使用ARP寻址
以太网
集线器物理设备交换机集线器作用于各比特在一个接口上收到一个比特时将能量强度放大然后将该比特向其他所有接口传输出去相当于一次只能接通一条线路以太网帧结构数据字段46-1500字节超过1500字节需要分片目的地址6字节源地址6字节类型字段2字节IP?ARP?……CRC循环冗余检测4字节前同步码8字节用于唤醒适配器并且同步时钟以太网技术向网络层提供无连接服务不握手提供不可靠服务不回ACK也不否认
链路层交换机
作用接收入链路层帧并转发到出链路对于子网中的主机和路由器来说是透明的过滤决定某帧是转发到某个接口还是丢弃转发决定某帧应该被导向某个接口
对于帧的处理
对于从x接口到达的帧若没有其目的MAC对应的表项向除到来接口x外所有口广播该帧若有其目的MAC对应的表项且接口为x丢弃该帧若有其目的MAC对应的表项且接口为y≠x向接口y的输出缓存转发该帧
交换机表的更新
交换机表表项为MAC地址接口时间具有自学习能力初始为空对于T时间从x接口接收到的MAC地址为M的入帧在交换机表中加入一条M,x,T在老化期后若再没收到就删除该表项交换机为“即插即用设备”全双工每个接口都能同时收发
链路层交换机路由器
交换机即插即用路由器需要人为配置IP地址路由器对分组处理时间更长路由器通常不会发生路由器循环即使有冗余路径路由器对第二层的广播风暴提供了保护
虚拟局域网
之前的局域网存在缺陷缺乏流量隔离每个最小单位太多时导致交换机的无效使用管理用户困难
VLANVirtual LAN允许用一个单一物理局域网的基础设施定义多个虚拟局域网
VLAN干线连接每个交换机上有一个特殊的端口用来连接一个交换机一种特殊的帧802.1Q用于跨越VLAN干线
【】6.5 链路虚拟化网络作为链路层
PARP
MPLS
【】6.6 数据中心网络
★6.7 回顾Web页面请求的历程
【书P326-330】
DHCP(UDP)→DHCP服务器返回分配的IP地址默认网关路由器IP地址DNS服务器IP地址
→ARP→查询默认网关路由器MAC地址
→DNS(UDP)→查询www.hnu.edu.cn的IP地址路由器根据自治区内OSPF知道DNS服务器该如何转发
→TCP三次握手HTTP GET
7 无线网络和移动网络
7.1 概述
无线主机无线通信链路两个主要特性覆盖区域链路速率
基站蜂窝塔接入点等无线主机与基站“相关联”该主机位于该基站的无线通信覆盖范围内该主机使用该基站中继它与更大网络之间的数据
基础设施模式通过基站相连自组织网络无基础设施
基于一个无线跳/多个无线跳分组
单跳基于基础设施802.114G LTE数据网络单跳无基础设施蓝牙网络具有自组织模式的802.11多跳基于基础设施无线传感网络无线网状网络多跳无基础设施移动自组织网络
7.2 无线链路和网络特征
★有线链路与无线链路的区别
递减的信号强度路径损耗来自其它源的干扰同一个频段发射的电波源互相干扰多径传播电磁波受到物体和地面的反射使得信号变模糊隐藏终端问题A和C都向B通信但由于物理阻隔A和C彼此不知道对方的存在
对于CDMA编码的讨论【略】
7.3 WiFi802.11 无线 LAN
802.11结构
基本服务集BSS,Basic Service Set一个BSS包含一个或多个无线站点和中央基站接入点AP,Acess Point
信道与关联
AP被安装时会分配一个服务器标识符SSID,Service Set Identifier和一个信道号每个AP周期性地发送信标帧包括该AP的SSID和MAC地址我的无线站点扫描信道并连接可用的AP用于关联扫描方式可以有被动扫描和主动扫描广播探测帧确定想关联的AP后我的无线主机向该AP发送一个关联请求帧该AP使用关联响应帧回应关联后我的主机通过关联的AP向子网发送DHCP发现报文以获取在该AP子网中的一个IP地址
802.11 MAC协议
CSMA/CAcollision avoidance带碰撞避免的CSMA
★802.11与以太网的区别
802.11使用碰撞避免而非碰撞检测接收信号的强度远远小于发送强度无法同时发送/接收信号隐藏终端问题和衰减问题没法做到碰撞检测由于误比特率高802.11使用链路层确认/重传ARQ方案
链路层确认
目的站点收到一个帧后等待一小段时间短帧间间隔SIFS发挥一个确认帧若发送站点一定时间内未收到确认帧就假定错误并重传该帧若多次错误就抛弃该帧。
CSMA/CA
站点最初监听到信道空闲在短时间分布式间隔帧DIFS后发送该帧否则该站点选取一个随机回退值并在侦听信道空闲时递减该值若信道忙该值不变。当计数减为0时该站点发送整个数据帧并等待确认若收到确认则该帧成功发送。若未收到确认重新进入选取回退值的阶段并在一个更大的范围内选择回退值
处理隐藏终端RTS和CTS
请求发送控制帧RTS允许发送控制帧CTS发送方先向AP发RTS并预约传输DATA帧和收回ACK帧需要的时间AP广播CTS回应发送方并授权许可同时该CTS还能指示其它站点在预约期内不要发送
使用802.11作为一个点对点链路
定向天线
7.3.3 IEEE 802.11帧
有4个地址我们关注3个
地址2传输该帧的站点的MAC地址地址1要接受该帧的无线站点的MAC地址地址3AP接入的路由器接口的MAC地址前两个负责无线通信最后一个确认路由器MAC
7.3.4 在相同的IP子网中的移动性
我的无线站点在远离AP1后解除与AP1的关联并与AP2关联。怎么让交换机知道在新关联形成后让AP2以我的无线站点的源地址向交换机发送以太网广播帧
LTElong term evolution
课程总结
架构
分层架构(internet)、集中/分布式、端到端、C/S、B/S、P2P
原则 - principles
端到端保持一个极简的网络核心将复杂留在端传输层不可靠网络层上的可靠通信、连接建立/拆除和握手、拥塞和流量控制以及多路复用网络层确定两个路由器之间的“良好”路径、互连大量异构网络以及管理现代网络的复杂性、控制平面/数据平面链路层共享多路访问信道处理/避免冲突数据包转发与寻址分层之间的连接DNSDHCPARP性能指标时延吞吐率这些原则具有较长“保质期”—在今天的网络标准和协议过时之后它们所体现的原则仍然很重要和相关。掌握与这些原则相关的基本问题和解决方法以后能够快速了解几乎任何网络技术。
发展与竞争
技术演进HTTP1.0-3.0,TCP算法IPV4-IPV6以太网10M-100G无线网2G-6G,wifi-wifi7产业兴衰伴随网络发展传统业务比如有线电视语音电话短信不断衰落;互联网-移动互联网-产业互联网
争论与妥协
电路交换-包交换集中-分布式端到端-NATIPV4-IPV6非二层交换、硬件-软件符号主义-连接主义
矛盾与演进
对立统一中心化/去中心化、在应用中螺旋上升
备考
网路层路由路由器怎么工作路由协议路由算法路由器转发动作
数据平面和控制平面分离不考
IPv4地址分配NAT★P225
ICMP不考
OSPF BGP