计算机网络和因特网
什么是因特网
具体构成描述
端系统通过通信链路和分组交换机连接到一起。
两种最著名的分组交换机为路由器和链路层交换机。链路层交换机通常用于接入网中,路由器通常用于网络核心中。
端系统通过 因特网服务提供商(Internet Service Provider,ISP)接入因特网。
TCP(Transmission Control Protocol,传输控制协议)和 IP(Internet Protocol,网际协议)是因特网中最为重要的两个协议。
因特网的主要协议称为 TCP/IP协议。
因特网工程任务组。Internet Engineering Task Force,IETF
服务描述
有些应用程序涉及多个相互交换数据的端系统,称为 分布式应用程序
与因特网相连的端系统提供了一套 套接字接口,该接口规定了运行在一个端系统上的程序请求因特网基础设施向运行在另一个端系统上的特定目的地程序交付数据的方式。
协议
协议定义了在两个或多个通信实体之间交换的报文的格式和顺序,以及报文发送和/或接受一条报文或其他事件所采取的动作。
网络边缘
端系统也被称为 主机,因为它们容纳应用程序,主机有时又被划分为客户和服务器。
接入网
家庭介入
宽带住宅接入有两种最流行的类型: 数字用户线(Digital Subscriber Line,DSL)和电缆。
企业(和家庭)接入:以太网和WIFI
局域网LAN
广域无线接入:3G和LTE
物理媒体
物理媒体分成两种类型:导引型媒体和非导引型媒体
网络核心
分组交换
存储转发传输
多数分组交换机在链路的输入端使用 存储转发传输机制。存储转发传输是指在交换机能够开始向输出链路传输该分组的第一个比特之前,必须接收到整个分组。
排队时延和分组丢失
每台分组交换机有多条链路与之相连。对于每条相连的链路,该分组交换机具有一个输出缓存,它用于粗出路由器准备发往那条链路的分组。
转发表和路由选择协议
每台路由器具有一个转发表,用于将目的地址映射成为输出链路。
电路交换
在电路交换网络中,在端系统通信会话期间,预留了端系统间沿路径通信所需要的资源。
电路交换网络中的复用
链路中的电路是通过 频分复用(FDM)或 时分复用(TDM)来实现的。
分组交换与电路交换的对比
趋势朝着分组交换方向发展。
网络的网络
今天的因特网是一个网络的网络,由十多个第一层ISP和数十万个较低层ISP组成。
分组交换网中的时延、丢包和吞吐量
分组交换网中的时延概述
这些时延最为重要的是 节点处理时延、排队时延、传输时延和传播时延,这些时延累加起来是节点总时延。
时延的类型
处理时延
$d_{proc}$
检查分组首部和决定将该分组导向何处所需要的时间是 处理时延的一部分。处理时延也能够包括其他因素,如检查比特级别的差错所需要的时间。
排队时延
$d_{queue}$
在队列中,当分组在链路上等待传输时,他经受排队时延。
传输时延
$d_{trans}$
用L比特表示该分组的长度,用R bps表示从路由器A到路由器B的链路传输速率。传输时延时L/R。这是将所有分组的比特推向链路所需要的时间。
传播时延
$d_{prop}$
从该链路的起点到路由器B传播所需要的时间是传播时延。
排队时延和丢包
令a表示分组到达队列的平均速率(a的单位是分组/秒)。R是传输速率,即从队列中推出比特的速率。假定所有分组都是由L比特组成。则比特到达队列的平均速率是La bps。比率La/R被称为流量强度。
设计系统时流量强度不能大于1
丢包
因为排队容量是有限的,随着流量强度接近1.排队时延并不是无穷大,相反,到达的分组将发现一个满的队列。由于没有地方存储,路由器将丢弃该分组。
计算机网络中的吞吐量
在任何时间瞬间的 瞬时吞吐量是主机B接受到该文件的速率。
协议层次及其服务模型
分层的体系结构
协议分层
各层的所有协议被称为 协议栈。因特网的协议栈由五个层次组成:物理层、链路层、网络层、传输层和应用层。
应用层
HTTP:提供了Web文档的请求和传送。
SMTP:提供了电子邮件报文的传送。
FTP:提供两个端系统间的文件传送。
报文:位于应用层的信息分组称为报文。
运输层
TCP/UDP
报文段:我们把运输层的分组称为报文段。
网络层
因特网的网络层负责将称为 数据报的网络层分组从一台主机移动到另一台主机。
链路层
为了将分组从一个节点移动到路径上的下一个节点,网络层必须依靠该链路层的服务。特别是在每个节点,网络层将数据报下传给链路层,链路层沿着路径将数据报传递给下一个节点。
帧:链路层分组
物理层
物理层的任务是将该帧中的一个个比特从一个节点传递到下一个节点。
OSI模型
开放系统互联模型:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层。
封装
一个应用层报文被传送给传输层,在最简单的情况下,运输层收取到报文并附上附加信息,该首部将被接收端的运输层使用。应用层报文和运输层首部信息一道构成了运输层报文段。以此类推。我们可以看到,在每一层,一个分组具有两种类型的字段:首部字段和有效载荷字段。有效载荷字段通常来自上一层分组。
附加
计算机网络就是自治互联的计算机集合。
协议的三要素:语法、语义、同步/时序。
分组交换网络传输分组的基本工作方式是(存储-转发)。
计算机网络从结构上可以划分为网络核心,网络边缘和接入网。
OSI中应用层,表示层,会话层,传输层为端到端层。实现路由功能为网络层。
应用层
应用层协议原理
网络应用程序体系结构
应用程序体系结构由应用程序研发者设计,规定了如何在各种端系统上组织应用程序。
客户-服务器体系结构中,有一个总是打开的主机称为服务器,它服务于来自许多其他称为客户的主机的请求。
在这个体系中,客户之间不通信;并且服务器具有固定的周知的地址,称为IP地址。
P2P体系结构中,对于位于数据中心的专用服务器有最小的依赖。相反,应用程序在间断连接的主机对之间直接通信,这些主机被称为
对等方。P2P具有自扩展性。
进程通信
客户和服务器进程
在一个P2P文件共享系统中,文件从一个对等方中的进程传输到另一个对等方的进程。通常将这两个进程之一标识为客户,另一个标识为服务器。在P2P共享文件中,一个进程既是客户又是服务器。
进程与计算机网络之间的接口
进程通过一个称为套接字的软件接口向网络发送报文和从网络接收报文。套接字也称为应用程序和网络之间的应用程序编程接口。
应用程序开发者对于运输层的控制权限仅限于:选择运输层协议;也许能设定几个运输层参数。但是对于套接字的运输层段几乎没有控制权。
进程寻址
为标识该接收进程,需定义:主机的地址;在目的主机中指定接收进程的标识符。
在因特网中,主机由I地址标识。
发送进程还必须指定运行在接收主机上的接收进程,目的地端口号用于这个目的,
Web服务器端口号:80
邮件服务器进程:25
FTP:21
可供应用程序使用的运输服务
从四个方面分类:
可靠数据传输
运输层协议能够潜在的向应用程序提供的一个重要服务是进程到进程的可靠数据传输。
吞吐量
具有吞吐量要求的应用程序被称为带宽敏感的应用。
弹性应用能够根据当时可用的带宽或多或少地利用可供使用的吞吐量。
定时
一个保证的例子:发送方注入进套接字中的每个比特到达接收方的套接字不迟于100ms。
安全性
运输协议能够为应用程序提供一种或多种安全性服务。
因特网提供的运输服务
TCP服务
包括面向连接服务和可靠数据传输服务。
面向连接的服务:在应用处数据报文开始流动之前,TCP让客户和服务器互相交换运输层控制信息。这就是握手,在握手阶段后,一个 TCP连接就在两个进程的套接字之间建立。
可靠的数据传送服务:通信进程能够依靠TCP,无差错,按适当顺序交付所有发送的数据。
TCP协议还具有拥塞控制机制。
UDP服务
仅提供最小服务。UDP是无连接的。提供不可靠数据传送服务。
没有拥塞控制机制。
应用层协议
定义了运行在不同端系统上的应用程序进程如何相互传递报文。
特别是应用层协议定义了:
交换的报文类型;
各种报文类型的语法;
字段的语义;
确定一个进程何时以及如何发送报文,对报文进行响应的规则。
Web的应用层协议是HTTP。
电子邮件的主要应用层协议是SMTP。
涉及的网络应用
主要讨论:Web,文件传输,电子邮件,目录服务,流式视频和P2P。
Web和HTTP
HTTP概括
应用层协议为:超文本传输协议(HyperText Transfer Protocol,HTTP).
HTTP由一个客户程序和一个服务器程序实现。
WEB浏览器实现了HTTP的客户端。
Web服务器实现了HTTP的服务器端,用于存储Web对象,每个对象由URL寻址。
HTTP定义了Web客户向Web服务器请求Web页面的方式,以及服务器向客户传送Web页面的形式。
HTTP服务器并不保存关于客户的任何信息,所以我们说HTTP是一个 无状态协议。
非持续连接和持续连接
非持续连接:每一个请求/响应是经一个单独的TCP连接发送。
持续连接:所有请求及其响应经相同的TCP连接发送。
往返时间(RTT):一个短分组从客户到服务器然后再返回客户所花费的时间。RTT包括分组传播时延,分组在中间路由器和交换机上的排队时延以及分组处理时延。
HTTP报文格式
HTTP请求报文
第一行叫请求行。有三个字段,方法字段,URL字段,HTTP版本字段。
之后的行叫做首部行。
第二行指明了对象所在的主机。
第三行该浏览器告诉服务器不要麻烦的使用持续连接,它要求服务器发送完之后就关闭该连接。
第四行指明用户代理,即向服务器发送请求的浏览器的类型。
第五行表示得到该对象的语言版本。
HTTP响应报文
一个初始状态行,六个首部行和实体体。
状态行有三个字段:协议版本字段,状态码,相应状态信息。
第二行告诉客户发送报文完后将关闭该TCP连接。
第三行DATE为服务器产生并发送该响应报文的日期和时间。这个时间是服务器从文件系统中检索到该对象,插入响应报文,并发送该响应报文的时间。
第四行指示该报文由什么服务器产生。
第五行指示了该对象创建或最后修改的时间和日期。
第六行指示了被发送对象中的字节数。
第七行指示了实体体对象是HTML文本。
一些常见的状态码:
200 OK:请求成功
301 Moved Permanently:请求的对象已经被永久转移。
400 Bad Request:一个通用差错码,指示该请求不能被服务器理解。
404 Not Found:被请求的文档不在服务器上。
505 HTTP Version Not Supported:服务器不支持请求报文使用的HTTP版本协议。
用户与服务器的交互:cookie
cookie技术有四个组件:
在HTTP响应报文中的一个cookie首部行;
在HTTP请求报文中的一个cookie首部行;
在用户端系统中保留有一个cookie文件,并由用户的浏览器进行管理;
位于Web站点的一个后端数据库。
Web缓存
也叫代理服务器。其既是客户又是服务器。
内容分发网络CDN
条件GET方法
因特网中的电子邮件
因特网电子邮件系统由三个主要组成部分:用户代理;邮件服务器;简单邮件传输协议(SMTP)。
发送邮件的为SMTP的客户端。
SMTP
SMTP一般不使用中间邮件服务器发送邮件。
与HTTP对比
HTTP是一个拉协议,即在方便的时候,某些人在Web服务器上装载信息,用户使用HTTP从该服务器拉取这些信息。
SMTP基本上是一个推协议,即发送邮件服务器把文件推向接收邮件服务器。
SMTP要求每个报文采用7比特ASCLL码格式。若包含非7比特ASCLL字符,则该报文必须按照7比特ACLL进行编码。
对于一个既包含文本又包含图形的文档。HTTP把每个对象封装到自己的响应报文,而SMTP则把所有报文对象放在一个报文中。
邮件访问协议
用户代理不能通过SMTP得到报文,因为取报文是一个拉操作,而SMTP为一个推操作。所以引入其他协议。
POP3第三版的邮局协议
随着TCP连接,POP3按照三个阶段进行工作:特许,事务处理以及更新。
特许阶段:用户代理发送(以明文形式)用户名和口令以鉴别用户。
事务处理阶段:用户代理取回报文。同时还可以做以下操作,对报文做删除标记,取消报文删除标记,以及获取邮件的统计信息。
更新阶段:出现在客户发出quit命令后,目的是结束POP3会话,这时,邮件服务器删除那些标记为删除的报文。
DNS:因特网的目录服务
我们需要一种能进行主机名到IP地址转换的目录服务。这就是 域名系统DNS的主要任务。DNS是:
一个由分层的DNS服务器实现的分布式数据库;一个使得主机能够查询分布式数据库的应用层协议。
DNS运行在UDP之上,使用53号端口。
DNS其他一些重要服务:
主机别名;邮件服务器别名;负载分配。
DNS工作机理概述
分布式、层次数据库
根DNS服务器
顶级域服务器:com,org,uk等
权威DNS服务器
另外有本地DNS服务器,但不属于该服务器层次结构。
DNS缓存
改善时延性能,减少在因特网上到处传输的DNS报文数量。
DNS记录和报文
共同实现DNS分布式数据库的所有DNS服务器存储了 资源记录(RR),RR提供了主机名到IP地址的映射。
资源记录是一个包含了下列字段的四元组:
1 | (Name,Value,Type,TTL) |
TTL是该记录的生存时间,它记录了资源记录应当从缓存中删除的时间。NAME和VALUE的取值取决于TYPE:
若TYPE=A,则Name为主机名,Value为该主机名对应的IP地址。
若Type=NS,则Name是个域,而Value是个知道如何获得该域中主机IP地址的权威DNS服务器的主机名。
若Type=CNAME,则Value是别名为Name的主机对应的规范主机名。
若Type=MX,则Value是个别名为Name的邮件服务器的规范主机名。
DNS报文
DNS只有查询和回答报文,并且有着相同的格式。
P2P文件分发
分发时间是所有N个对等方得到该文件的副本所需要的时间。
BitTorrent是一种用于分发的流行P2P协议。参与一个特定文件分发的所有对等方的集合称为洪流。
在决定请求哪些块的过程中,采用 最稀缺优先的技术。针对他没有的块在他的邻居中决定最稀缺的块(最稀缺的块就是那些在他的邻居中副本数量最少的块)。
为决定响应哪个请求,他根据当前能够以最高速率向他提供数据的邻居,给出其优先权。每过10秒,重新计算,每过30秒,随机选择一个。
附加
网络应用体系结构主要包括C/S、纯P2P、混合模式三种类型。
流量控制关注的是接收端数据接收处理与缓存能力;拥塞控制关注的是网络传输能力。
HTTP1.0与HTTP1.1的区别
1 | 1.0:非持续性,每个TCP连接最多允许一个传输对象,方法有GET,POST,HEAD |
HTTP无状态性:不记录用户信息
WEB缓存
1 | 缩短客户请求时间;减少机构/组织的流量;在大范围内实现有效的内容分发 |
递归查询与迭代查询
1 | 递归查询请求1次,迭代查询请求多次 |
FTP客户和服务器传递FTP命令时,用的是(建立在TCP之上的控制连接)
典型的邮件接收协议:POP3,IMAP,HTTP
运输层
概述和运输层服务
运输层协议为运行在不同主机上的应用程序之间提供了逻辑通信功能。
运输层和网络层的关系
网络层提供了主机之间的逻辑通信,而运输层为运行在不同主机上的进程之间提供了逻辑通信。
运输层协议只工作在端系统。
因特网运输层概述
UDP用户数据报协议
TCP传输控制协议
因特网网络层协议有一个名字叫IP,即网际协议。IP的服务模型是尽力而为交付服务,但并不做任何保证。故IP也被称为不可靠服务。
UDP和TCP最基本的责任是,将两个端系统间IP的交付服务扩展为运行在端系统上的两个进程之间的交付服务。
将主机间交付扩展到进程间交付被称为 运输层的多路复用与 多路分解。
多路复用与多路分解
将运输层报文段中的数据交付到正确的套接字的工作称为多路分解。
在源主机从不同套接字中收集数据块,并为每个数据块封装上首部信息从而生成报文段,然后将这些报文段传递到网络层,所有这些称为 多路复用。
运输层多路复用要求:套接字有唯一标识符;每个报文段有特殊字段来暗示该报文段要交付的套接字。
如图,这些特殊字段是源端口号字段和目的端口号字段。端口号是一个16比特的数,大小在0-65535之间。0-1023范围的端口号称为周知端口号。
无连接的多路复用与多路分解
一个UDP套接字是由一个二元组全面标识的,该二元组包含一个目的IP地址和一个目的端口号。
如果两个UDP报文段有不同的源,但是具有相同的目的IP地址和目的端口号,那么这两个报文段将通过相同的套接字被定向到相同的进程。
面向连接的多路复用与多路分解
TCP套接字由一个四元组(源IP地址,源端口号,目的IP地址,目的端口号)来标识的。
与UDP不同的是,两个具有不同源IP地址或源端口号的到达TCP报文段将被定向到两个不同的套接字。
无连接运输:UDP
DNS采用UDP。
采用UDP原因:
关于发送什么数据以及何时发送的应用层控制更为精细;
无需建立连接;
无连接状态;
分组首部开销小。
UDP用于承载网络管理数据(SNMP)。
需要注意的是,使用UDP的应用是可能实现可靠数据传输的。
UDP报文段结构
UDP首部只有4个字段,每个字段由两个字节组成。长度字段指示了在UDP报文段中的字节数。接收方使用检验和来判断是否出差错。
UDP检验和
UDP提供检验和的原因是不能保证源和目的之间的所有链路能提供差错检验。在既无法确保逐链路的可靠性,又无法确保内存中的差错检验的情况下,如果端到端数据传输服务要提供差错检测,UDP就必须在端到端基础上在运输层提供差错检测。这是一个在系统设计中被称颂的 端到端原则的例子,该原则表述为因为某种功能必须基于端到端实现。
UDP对差错恢复无能为力。
可靠数据传输原理
rdt 可靠数据传输
udt 不可靠数据传输
构造可靠数据传输协议
经完全可靠信道的可靠数据传输:rdt1.0
经具有比特差错信道的可靠数据传输:rdt2.0
基于肯定确认和否定确认重传机制的可靠数据传输协议称为 自动重传请求协议(ARQ)
ARQ协议中还需要另外三种协议功能来处理存在比特差错的情况:
差错检测;接收方反馈(ACK,NAK);重传
停等:发送方将不会发送新数据,除非发送方确信接收方已正确接收当前分组。
考虑处理受损ACK和NAK时的三种可能:
(1)接收方复述其回答。
(2)增加足够的检验和比特。
(3)收到受损的ACK或NAK时,重传当前数据分组。但无法知道接收到的是新的还是重传。
解决这个问题的方法是在数据分组中添加一新字段,让发送方对其数据进行编号。
rdt2.1使用了从接收方到发送方的肯定确认和否定确认。当接收到失序的分组时,接收方对所接受的分组发送一个肯定确认。如果收到受损的分组,则接收方将发送一个否定确认。如果不发送NAK,而是对上次正确接收分组的一个ACK,也能实现与NAK一样的效果。即接收冗余ACK.
rdt2.2在有比特差错信道上实现的一个无NAK的可靠数据传输协议,
经具有比特差错的丢包信道的可靠数据传输:rdt3.0
基于时间重传,介入倒计时定时器。
rdt3.0又称为比特交替协议。
在数据传输中,检验和、序号、定时器、肯定和否定确定分组这些技术都起到了必不可少的作用。
流水线可靠数据传输协议
信道利用率:发送方实际忙于将发送比特送进信道的那部分时间与发送时间之比。
引入流水线,对可靠数据传输协议带来以下影响:
增加序号范围,每个传输分组必须有唯一的序号;
协议的发送方和接收方不得不缓存多个分组;
解决流水线差错恢复有两种方法,回退N步和选择重传。
回退N步
GBN协议。
我们将基序号(base)定义为最早未确认分组的序号。下一个序号(nextseqnum)定义为最小的未使用序号(即下一个待发分组的序号),则将序号范围分成四段:
1 | [0,base-1]已经发送被确认 |
N常被称为窗口长度。GBN也被称为滑动窗口协议。
采用累积确认,若超时,则重发所有已发送但还未被确认过的分组。
在GBN协议中,接收方丢弃所有失序分组。
选择重传
SR
SR接收方将确认一个正确接收的分组而不管其是否按序。失序的分组将被缓存知道所有丢失分组皆被收到为止。
窗口长度必须小于或等于序号空间大小的一半。
总结
面向连接的运输:TCP
TCP连接
TCP被称为是 面向连接的。中间路由器对TCP连接完全视而不见,他们看到的是数据报,而不是连接。
TCP连接提供的是全双工服务。TCP连接也总是点对点的。
三次握手中前两次不承载有效载荷,第三次可以承载有效载荷。
TCP可从缓存中取出并放入报文段中的数据数量受限于 最大报文段长度(MSS)。
MSS通常根据最初确定的由本地发送主机发送的最大链路层帧长度(即所谓的 最大传输单元MTU)来设置。
TCP为每块客户数据配上一个TCP首部,从而形成多个 TCP报文段。
TCP报文段结构
与UDP一样,首部包含 源端口号, 目的端口号,检验和字段。
TCP报文段首部还包含以下字段:
32比特的 序号字段和32比特的 确认号字段。用来实现可靠数据传输服务。
16比特的 接收窗口字段,用于流量控制。
4比特的 首部字段长度,通常选项字段为空,所以TCP首部的典型长度是20字节。
可选与变长的 选项字段,用于发送方与接收方协商最大报文段长度。
6比特的 标志字段。
序号和确认号
一个报文段的序号是该报文段首字节的字节流编号。
主机A填充进报文段的确认号是主机A期望从主机B收到的下一字节的序号。
TCP只确认该流中至第一个丢失字节为止的字节,所以TCP被称为提供 累积确认。
可靠数据传输
TCP的可靠数据传输服务确保一个进程从其接收缓存中读出的数据流是无损坏、无间隙、非冗余和按序的数据流。
超时间隔加倍
在这种修改中,每次TCP重传时都会将下一次的超时间隔设为先前值的两倍。
快速重传
一旦收到三个冗余ACK,就进行快速重传。
对TCP的一种修改意见是所谓的 选择重传。
流量控制
TCP为它的应用程序提供了 流量控制服务以消除发送方使接收方缓存溢出的可能性。
TCP发送方也可能因为IP网络的拥塞而被遏制,这种形式的发送方的控制被称为拥塞控制。
TCP通过让发送方维护一个被称为 接收窗口的变量来提供流量控制。
当接收窗口等于0时,仍可发送一个较小的数据,以把窗口信息带回来。
TCP连接管理
确认y表明在y之前的所有字节都被正确接收。
拥塞控制原理
当一个分组沿一条路径被丢弃时,每个上游路由器由于转发该分组到丢弃该分组而使用的传输容量最终被浪费。
拥塞控制方法
端到端拥塞控制;
网络辅助的拥塞控制
TCP拥塞控制
指导原则:
1 | 一个丢失的报文段意味着拥塞,因此当丢失报文段时应当降低TCP发送方的速率。 |
TCP拥塞控制算法
慢启动
cwnd(拥塞窗口)的值通常初始置为一个MSS的较小值。当传输的报文段首次被确认就增加一个MSS。成指数增长。
拥塞避免
当进入拥塞状态,cwnd值为上次拥塞的一半,然后线性增长。
快速恢复
阈值前指数,阈值后线性。
TCP拥塞控制
加性増乘性减(丢包由三个冗余ACK)
公平性
TCP具有公平性。
附加
典型的邮件接收协议有 POP,IMAP,HTTP。
实现文件分发应用时,采用P2P技术比典型的client/server技术更快。
发送窗口大小取决于min(rwnd,cwnd).
其中rwnd是接收缓存的空余大小,表示接收方还能接收多少。
cwnd就是我们常常画慢增长曲线,拥塞避免曲线等等分析的纵轴数值。
附一道题:
1 | https://blog.csdn.net/aodubi0638/article/details/102144555 |
接收窗口 发送窗口 拥塞窗口
1 | https://blog.csdn.net/ligupeng7929/article/details/79597423 |
计算UDP校验和时,封装UDP报文段的IP数据报某些字段也会参与:源IP地址,目的IP地址,协议。
网络层
网络层能够被分为两个互相作用的平面:数据平面和控制平面。
网络层概述
网络层的作用:即将分组从一台发送主机移到一台接收主机。为此,需要使用两种重要的网络层功能:
转发:当一个分组到达某路由器的一条输入链路时,该路由器必须将该分组移动到适当的输出链路。
路由选择:当分组从发送方流向接收方时,网络层必须决定这些分组所采用的路由或路径。计算这些路径的算法被称为 路由选择算法。
转发:将分组从一个输入链路接口转移到适当的输出链路接口的路由器本地工作。
路由选择:确定分组从源到目的地所采取的端到端路径的网络范围处理过程。
每台路由器中有一个关键元素是它的 转发表。
网络层核心功能
转发与路由
转发:将分组从路由器的输入端口到合适的输出端口。
路由:确定分组从源到目的经过的路径。
连接建立
某些网络的重要功能:ATM,X.25,帧中继
数据分组传输之前两端主机需要首先建立虚拟、逻辑连接
网络层连接是两个主机之间(路径上的路由器等网络设备参与其中),传输层连接为两个应用进程间(对中间网络设备透明)
网络层服务模型
无连接服务(connection-less service)
1 | 不事先为系列分组的传输确定传输路径; |
连接服务(connection service)
1 | 首先Wie系列分组的传输确定从源到目的经过的路径; |
虚电路与数据报网络
虚电路:一条从源主机到目的主机,类似于电路的路径。
1 | 分组交换 |
通信过程:呼叫建立->数据传输->呼叫拆除
每个分组携带虚电路表示(VCID),而不是目的主机地址。
虚电路经过的每个网络设备,维护每条经过它的虚电路连接状态。
每条虚电路包括
1 | 从源主机到目的主机的一条路径 |
虚电路信令协议:
用于VC的建立,维护拆除
数据报网络
网络层无连接;每个分组携带目的地址;路由器根据分组的目的地址转发分组。
路由算法确定通过网络的端到端路径;咋混发表确定在本路由器如何转发分组。
最长前缀匹配优先。
数据报网络简化网络,复杂边缘。
VC网络简化边缘,复杂网络。
IPv4协议
IP数据报
版本:4比特
首部长度:4比特(以4字节为单位)
服务类型:8比特,区分服务(只有在网络提供服务时才使用,通常取0)
长度:IP分组的总字节数,最大长度65535B
寿命:TTL,占8位,标识IP分组在网络中可以通过的路由器数。TTL=0,则丢弃该分组。
协议:8位,指示封装的是哪个协议。
首部校验和:16位,计算校验和时,置全0。逐跳计算
最大传输单元MTU-链路层数据帧可封装数据的上限。
不同链路的MTU不同。
IP数据分片
IP分片到达目的主机后进行重组。
标识字段占16位:标识一个IP分组。每产生IP分组+1.
标志位:3位。保留|DF|MF
1 | DF=1禁止分片 |
片偏移:13比特,相对偏移量。片偏移字段以8字节为单位。
分片时每个分片的标识复制原IP分组的标识。
IP编址
32比特
IP地址
1 | 网络号-高位比特 |
IP子网:IP地址具有相同网络号的设备接口
不跨越路由器可以彼此物理联通的接口。
有类IP地址
IP子网与子网划分
子网掩码:32比特
取值:NetID、SubID全取1
HostID全取0
将IP分组的目的IP地址与子网掩码按位与运算,提取子网地址。
主机路由:子网掩码 255.255.255.255
CIDR与路由聚合
无类域间路由CIDR
消除传统的ABC类地址界限。
无类地址格式:
1 | a.b.c.d/x x为前缀长度 |
提高IPV4地址空间分配效率;
提高路由效率
DHCP协议
动态主机配置协议。
从服务器动态获取:
1 | IP地址 |
默认网关:IP或数据报要离开时送到哪个接口
由于DHCP具有将主机连接进一个网络的网络相关方面的自动能力,故他又被称为 即插即用协议或 零配置。
NAT
网络地址转换。
所有离开本地网络去往Internet的数据报的源IP地址需替换为相同的NAT
动机:
1 | 只需从ISP申请一个IP地址,IPV4地址耗尽。 |
互联网控制报文协议(ICMP)
支持路由器
1 | 差错报告 |
两类ICMP报文:
差错报告报文(5种)
1 | 目的不可达 |
网络探寻报文(2组)
1 | 回声请求与应答报文 |
IPv6简介
最初动机:32位IPV4地址分配完
其他动机:改进首部格式
1 | 快速转发/处理数据报 |
IPV6数据报格式:
1 | 固定长度40字节基本首部 |
其他改变:
1 | 检验和彻底移除,以减少每跳处理时间。 |
ICMPV6:
1 | 附加报文类型 |
IPV6基本地址类型
1 | 单播:一对一通信 |
隧道:IPV6数据报作为IPV4数据报的载荷进行封装,穿越IPV4网络。
路由算法
路由算法
链路状态路由算法
距离向量路由算法
会带来无穷计数问题
毒性逆转
定义最大度量
层次化路由
管理自治:每个网络的管理可能都期望自主控制其网内的路由
聚合路由器为一个区域:自治系统AS
同一AS内的路由器运行相同的路由算法
网关路由器:位于AS边缘;通过链路连接其他AS的网关路由器
转发表由AS内部路由算法与AS间路由算法共同配置。
Internet路由
RIP协议
若180s没有收到通告,则邻居/链路失效
OSPF协议
优点(rip不具备)
BGP协议
附加
拥塞丢失时发送抑制源站报文。
RIP为UDP协议传输报文。
链路层和局域网
概述
节点:运行链路层协议的任何设备。包括主机,路由器,交换机和WiFi接入点。
链路层提供的服务
1 | 成帧 |
链路层在何处实现
链路层的主体部分是在 网络适配器中实现的,网络适配器有时也称 网络接口卡(NIC)。位于网络适配器核心的是链路层控制器。
差错检测和纠正技术(EDC)
奇偶校验
单个奇偶校验
1 | 发送信息有d比特,增加一个附加比特,使得d+1个比特中1的总数为偶数。 |
二维奇偶校验
接收方检测和纠正错误的能力被称为 前向纠错(FEC)。
检验和方法
需要相对小的分组开销。
循环冗余检测
CRC,也称多项式编码。
考虑d比特的数据D。发送方和接收方首先必须协商一个r+1比特模式,称为 生成多项式,将其表示为G。G的最高有效位比特是1.对于一个给定的数据段D,发送方要选择r个附加比特R,并将它们附加到D上,使得得到的d+r比特模式用模二运算恰好能被G整除。接收方用G去除接收到的d+r比特,若余数为非零,则出现差错。
$D*2^rXOR\ R=nG$
即$D*2^r=nG\ XOR\ R$
$R=remainder\ \frac{D*2^r}{G}$
多路访问链路和协议
多路访问控制MAC
MAC地址为链路层地址。
点对点链路:由链路一端的单个发送方和链路另一端的单个接收方组成。eg:点对点协议(PPP),高级数据链路控制(HDLC)。
广播链路:让多个发送和接收节点都连接到相同的单一的,共享的广播信道上。
信道划分协议
时分多路复用TDM;频分多路复用FDM
TMD的缺陷
1 | 节点被限制于R/Nbps的平均速率,即使他是唯一有分组要发送的节点。 |
FDM将Rbps信道划分为不同的频段(每个频段具有R/N带宽)。同样也限制了带宽。
第三种信道划分协议是码分多址(CDMA)。
CDMA对每个节点分配一种不同的编码,然后每个节点用它唯一的编码来对它发送的数据进行编码。
随机接入协议
在随机接入协议中,一个传输节点总是以信道的全部速率进行发送。当有碰撞时,涉及碰撞的每个节点反复地重发它的帧,但是在重发之前会等待一个随机时延。
时隙ALOHA
ALOHA协议
非时隙ALOHA:更加简单,无需同步。
当有新的帧生成时,立即发送。
载波侦听多路访问CSMA
载波侦听:即一个节点在传输前先听信道,若来自另一个节点的帧正在向信道发送,节点则等待直到检测到一小段时间没有传输,然后开始传输。
P坚持CSMA:以概率P发送,一直侦听。
具有碰撞检测的载波侦听多路访问(CSMA/CD)
碰撞检测:当一个传输节点在传输时一直在侦听此信道。如果它检测到另一个节点在传输干扰帧,他就停止传输,在重复“侦听-当空闲时传输”循环之前等待一段随机时间。
CSMA/CD效率
定义为:当有大量的活跃节点,且每个节点有大量的帧要发送时,帧在信道中无碰撞地传输的那部分时间在长期运行时间中所占的份额。
二进制指数后退算法
轮流协议
轮询协议:要求节点之一被指定为主节点。主节点以循环的方式轮询每个节点。
缺点:引入轮询时间;若主节点有故障,则整个信道不可操作。
令牌传递协议:没有主节点,一个被称为令牌的小的特殊帧在节点之间以某种固定的次序进行交换。
交换局域网
链路层寻址和ARP
MAC地址
并不是主机或路由器具有链路层地址,而是它们的适配器(即网络接口)具有链路层地址。
链路层地址也叫LAN地址,物理地址或MAC地址。
对大多数局域网而言,MAC地址长度为6字节。没有两块适配器具有相同的地址。
对于使用六字节地址的局域网(以太网和802.11)来说,广播地址为48个连续的1.
地址解析协议(ARP)
用于对网络层地址和链路层地址进行转换。
以太网
以太网:物理拓扑
1 | 总线:所有结点在同一冲突域 |
1 | 无连接:发送帧的网卡与接收帧的网卡不握手 |
以太网CSMA/CD算法
数据字段:46-1500字节。MTU为1500字节,不包含头部
目的地址:6字节。目的适配器的MAC地址。
源地址:6字节。传输该帧到局域网上的适配器的MAC地址。
类型字段:2字节,允许以太网复用多种网络层协议。
CRC:4字节,循环冗余检测
前同步码:8字节
链路层交换机
交换机自身对子网中的主机和路由器是透明的。
交换机转发和过滤
过滤:决定一个帧应该转发到某个接口还是应当将其丢弃的交换机功能。
转发:决定一个帧应该被导向哪个接口,并把帧移动到那些接口的交换机功能。
这两个功能借助于 交换机表。
表项包含
1 | 一个MAC地址; |
自学习
交换机是即插即用设备。
链路层交换机的性质
消除碰撞;异质的链路;管理。
交换机和路由器进行对比
虚拟局域网
VLAN
动态成员:端口可以动态分配给不同VLAN
在VLAN间转发:通过路由
多线缆连接
PPP
附加
MTU、IP MTU、TCP MSS设置上的区别及联系
1 | 1.MTU是一个二层的概念,即最大传输单元(Maximum Transmission Unit,MTU);以太网最大的mtu就是1500(它是不包含二层头部的,加上头部应该为1518 bytes,2bit的以太网类型+6bit的DMAC+6bit的SMAC+4bit的FCS),每个以太网帧都有最小的大小64bytes,最大不能超过1518bytes |
物理层
数据通信基础
物理介质
信道与信道容量
基带传输基础
频带传输基础
典型数字基带信号码型
- 数据传输速率=波特率*log2(幅值相位组合)
附加
CDMA
1 | https://blog.csdn.net/qq_43262059/article/details/106201119 |
FTP
1 | FTP协议运行在TCP连接上,保证了文件传输的可靠性。 |
在划分VLAN的以太网交换机的Trunk端口间传输的帧是802.1帧。
利用链路控制协议,大多数的产品通过协商可以省略标志符和地址字段,并且把协议字段由 2个字节减少到 1个字节。
二进制数字调制系统中,频带利用率最低的是2FSK。