第一章
因特网服务提供商:(Internet Service Provider, ISP) 互联网服务提供商
TCP(Transmission Control Protocol, 传输控制协议)和IP(Internet Protocol, 网际协议) 是因特网中两个最为重要的协议。IP协议定义了在路由器和端系统之间发送和接收的分组格式。因特网的主要协议统称为TCP/IP簇。
频分复用(Frequency-Division Multiplexing, FDM)
时分复用(Time-Division Multiplexing, TDM)
结点总时延(total nodal delay) =结点处理时延(nodal processing delay)+排队时延(queuing delay)+传输时延(transmission delay) +传播时延(propagation delay)
dnodal=dproc+dqueue+dtrans +dprop
端到端时延:假定在源主机和目的主机之间有N-1台路由器。我们还要假设该网络此时是无拥塞的;dend-end=N(dproc+dtrans+dprop)
五层因特网协议栈:物理层、链路层、网络层、运输层和应用层
应用层:
HTTP(它提供了Web文档的请求和传送) ,
SMTP(它提供了电子邮件报文的传输)
FTP(它提供两个端系统之间的文件传送)。
应用层:
TCP也将长报文划分为短报文, 并提供拥塞控制机制, 因此当网络拥塞时, 源抑制其传输速率。
UDP协议向它的应用程序提供无连接服务。这是一种不提供不必要服务的服务,没有可靠性,没有流量控制,也没有拥塞控制。
称为开放系统互连(OSI) 模型的7层是:应用层、表示层、会话层、运输层、网络层、数据链路层和物理层
第二章应用层
Web的应用层协议是超文本传输协议(HyperText Transfer Protocol,HTTP),它是Web的核心。
HTTP在其默认方式下使用持续连接, HTTP客户和服务器也能配置成使用非持续连接。
TCP三次请求
client server
发送信息 -> 收到信息,
收到信息 <- 回复服务器能收到信息
回复客户能收到信息,并发送请求信息 -> 接收到信息,接收请求
收到请求回复 <- 回复请求结果
文件传输协议:FTP
在一个典型的FTP会话中, 用户坐在一台主机(本地主机) 前面, 向一台远程主机传输(或接收来自远程主机的)文件。为使用户能访问它的远程账户,用户必须提供一个用户标识和口令。
在提供了这种授权信息后,用户就能从本地文件系统向远程主机文件系统传送文件, 反之亦然。
HTTP和FTP都是文件传输协议, 并且有很多共同的特点, 例如, 它们都运行在TCP上。最显著的区别就是FTP使用了两个并行的TCP连接来传输文件, 一个是控制连接(control connection) , 一个是数据连接(data connection) 。
简单邮件传输协议(Simple Mail Transfer Protocol, SMTP) ---因特网中的电子邮件
SMTP是因特网电子邮件中主要的应用层协议。它使用TCP可靠数据传输服务, 从发送方的邮件服务器向接收方的邮件服务器发送邮件。SMTP一般不使用中间邮件服务器发送邮件, 即使这两个邮件服务器位于地球的两端也是这样。
邮件访问协议:
第三版的邮局协议(Post Offce Protocol—Version 3, POP 3) 、
因特网邮件访问协议(Internet Mail Access Protocol, IMAP)
HTTP。
DNS
域名系统(Domain Name System, DNS) :主机名到IP地址转换的目录服务
DNS是:一个由分层的DNS服务器(DNS server) 实现的分布式数据库;一个使得主机能够查询分布式数据库的应用层协议。
DNS服务器通常是运行BIND的(Berkeley Internet Name Domain) 软件[BIND 2012]UNIX机器。
DNS协议运行在UDP之上, 使用53号端口。
DNS的一种简单设计是在因特网上只使用一个DNS服务器, 该服务器包含所有的映射。这种集中式设计的问题包括:
单点故障(a single point of failure) 。如果该DNS服务器崩溃, 整个因特网随之瘫痪!
通信容量(traffic volume) 。单个DNS服务器不得不处理所有的DNS查询(用于为上亿台主机产生的所有HTTP请求报文和电子邮件报文服务)。
远距离的集中式数据库(distant centralized database) 。单个DNS服务器不可能“邻近”所有查询客户。如果我们将单台DNS服务器放在纽约市, 那么所有来自澳大利亚的查询必须传播到地球的另一边,中间也许还要经过低速和拥塞的链路。这将导致严重的时延。
维护(maintenance) 。单个DNS服务器将不得不为所有的因特网主机保留记录。这不仅将使这个中央数据库非常庞大,而且它还不得不为解决每个新添加的主机而频繁更新。
3种类型的DNS服务器:根DNS服务器、顶级域(Top-Level Domain, TLD) DNS服务器和权威DNS服务器。
第三章 运输层
进程到进程的数据交付和差错检查是两种最低限度的运输层服务,也是UDP所能提供的仅有的两种服务。
TCP为应用程序提供了几种附加服务。首先, 它提供可靠数据传输(reliabledata transfer) 。通过使用流量控制、序号、确认和定时器(本章将详细介绍这些技术) ,拥塞控制(conges-tion control) , TCP确保正确地、按序地将数据从发送进程交付给接收进程。
每个运输层报文段中具有几个字段。在接收端,运输层检查这些字段,标识出接收套接字,进而将报文段定向到该套接字。将运输层报文段中的数据交付到正确的套接字的工作称为多路分解 。
在源主机从不同套接字中收集数据块, 并为每个数据块封装上首部信息(这将在以后用于分解)从而生成报文段,然后将报文段传递到网络层,所有这些工作称为多路复用。
构造可靠数据传输协议:
1.经完全可靠信道的可靠数据传输:rdt 1.0
2.经具有比特差错信道的可靠数据传输:rdt 2.0(停等协议)
肯定确认(positive acknowledgment) ACK
否定确认(negative acknowledgment) NAK
自动重传请求(AutomaticRepeat reQuest, ARQ) 协议
三种依赖协议:差错检测、接收方反馈、重传
3.经具有比特差错的丢包信道的可靠数据传输:rdt 3.0
流水线可靠数据传输协议
解决流水线的差错恢复有两种基本方法是:回退N步(Go-Baek-N,GBN) 和选择重传(Selective Repeat, SR)。GBN协议也常被称为滑动窗口协议(sliding-window protocol)
GBN发送方必须响应三种类型的事件:上层的调用。收到一个ACK。超时事件。
TCP可从缓存中取出并放入报文段中的数据数量受限于最大报文段长度(Maximum Segment Size, MSS) 。MSS通常根据最初确定的由本地发送主机发送的最大链路层帧长度(即所谓的最大传输单元(Maximum TransmissionUnit, MTU) ) 来设置。
SSH协议连接中发送的数据(包括口令!) 有加密
Telnet连接中发送的数据(包括口令!) 是没有加密的, 使得Telnet易于受到窃听攻击
估计往返时间
样本RTT(表示为SampleRTT) :从某报文段被发出(即交给IP) 到对该报文段的确认被收到之间的时间量。
TCP维持一个SampleRTT均值(称为EstimatedRTT)
EstimatedRTT = (1-α) ·EstimatedRTT + α·SampleRTT 在[RFC 6298] 中给出的α参考值是α=0.125(即1/8)
指数加权移动平均(Exponential Weighted Moving Average, EWMA)
, 测量RTT的变化也是有价值的。[RFC 6298] 定义了RTT偏差DevRTT, 用于估算SampleRTT一般会偏离EstimatedRTT的程度:
DevRTT = (1-β) ·DevRTT + β·|SampleRTT-EstimatedRTT| β的推荐值为0.25。
DevRTT是一个SampleRTT与EstimatedRTT之间差值的EWMA。
TCP超时间隔:TimeoutInterval = EstimatedRTT + 4·DevRTT 推荐的初始TimeoutInterval值为1秒
可靠数据传输服务(reliable datatransfer service)
ppt 383-509视频未讲
第四章网络层
转发(forwarding) :分组在单一的路由器中从一条入链路到一条出链路的传送。
路由选择(routing):一个网络的所有路由器,它们经路由选择协议共同交互,以决定分组从源到目的地结点所采用的路径。
网络层的作用:将分组从一台发送主机移动到一台接收主机。(转发,路由选择,连接建立(connection setup) )
转发表(forwarding table) :路由器通过检查到达分组首部字段的值来转发分组,然后使用该值在该路由器的转发表中索引查询。
分组交换机是指一台通用分组交换设备,它根据分组首部字段中的值,从输入链路接口到输出链路接口转移分组。
某些分组交换机称为链路层交换机(link-layer switches) , 基于链路层字段中的值做转发决定。其他分组交换机称为路由器(router) , 基于网络层字段中的值做转发决定。
网络层也能够在两台主机之间提供无连接服务或连接服务。网络层连接服务以源和目的主机间的握手开始;网络层无连接服务则没有任何握手预备步骤。
网络层或者提供了主机到主机的无连接服务,或者提供了主机到主机的连接服务,而不同时提供这两种服务。仅在网络层提供连接服务的计算机网络称为虚电路(Virtual-Circuit, VC) 网络; 仅在网络层提供无连接服务的计算机网络称为数据报网络(datagram network) 。
路由器工作原理:路由器转发平面(router forwarding plane)
1.输入端口。输入端口执行几项关键功能。它要执行将一条输入的物理链路与路由器相连接的物理层功能,这显示在输入端口部分最左侧的方框与输出端口部分最右侧的方框中。它还要执行需要与位于入链路远端的数据链路层交互的数据链路层功能,这表示在输入与输出端口部分的中间方框中。也许更为重要的是,在输入端口还要完成查找功能,这显示在输入端口最右侧的方框中。正是在这里,通过查询转发表决定路由器的输出端口,到达的分组通过路由器的交换结构将转发到输出端口。控制分组(如携带路由选择协议信息的分组)从输入端口转发到路由选择处理器
2.交换结构。交换结构将路由器的输入端口与输出端口相连接。这种交换结构完全包含在路由器中,即它是一个网络路由器中的网络!
3.输出端口。输出端口存储从交换结构接收的分组,并通过执行必要的链路层和物理层功能在输入链路上传输这些分组。当一条链路是双向的(即承载两个方向的流量)时,输出端口通常是与该链路的输入端口在同一线路卡(一个包含一个或多个输入端口的印刷电路,它与交换结构相连)上成对出现的。
4.路由选择处理器。路由选择处理器执行路由选择协议,维护路由选择表以及连接的链路状态信息,并为路由器计算转发表,它还执行网络管理功能。
主机与物理链路之间的边界叫做接口(interface)
地址一般按所谓点分十进制记法(dotted-decimal notation)书写,即地址中的每个字节用它的十进制形式书写,各字节间以句号(点)隔开。
互联这3个主机接口与1个路由器接口的网络形成一个子网(sub-net) 。(在因特网文献中, 子网也称为IP网络或直接称为网络。) IP编址为这个子网分配一个地址:223.1.1.0/24, 其中的/24记法, 有时称为子网掩码(networkmask) , 指示了32比特中的最左侧24比特定义了子网地址。
为了确定子网,分开主机和路由器的每个接口,产生几个隔离的网络岛,使用接口端接这些隔离的网络的端点。这些隔离的网络中的每一个都叫做一个子网(subnet) 。
因特网的地址分配策略被称为无类别域间路由选择(Classless Interdomain Routing,CIDR)
形式为a.b.c.d/x的地址的x最高比特构成了IP地址的网络部分,并且经常被称为该地址的前缀(prefix) (或网络前缀) 。
一个组织通常被分配一块连续的地址, 即具有相同前缀的一段地址(参见“实践原则”)。在这种情况下,该组织内部的设备的IP地址将共享共同的前缀。
在CIDR被采用之前, IP地址的网络部分被限制为长度为8、16或24比特, 这是一种称为分类编址(classful addressing) 的编址方案, 这是因为具有8、16和24比特子网地址的子网分别被称为A、B和C类网络。
IP广播地址:255.255.255.255。当一台主机发出一个目的地址为255.255.255.255的数据报时,该报文会交付给同一个网络中的所有主机。
IP地址由因特网名字和编号分配机构(Internet Corporation for Assigned Names and Numbers,ICANN) 管理 。非营利的ICANN组织的作用不仅是分配IP地址, 还管理DNS根服务器。它还有一项容易引起争论的工作, 即分配域名与解决域名纷争。ICANN向区域性因特网注册机构(如ARIN、RIPE、APNIC和LACNIC) 分配地址, 这些机构一起形成了ICANN的地址支持组织,处理本地域内的地址分配/管理。
获取一块地址:为了获取一块IP地址用于一个组织的子网, 某网络管理员也许首先会与他的ISP联系, 该ISP可能会从已分给它的更大地址块中提供一些地址。
动态主机配置协议(Dynamic Host Configuration Protocol, DHCP) :DHCP允许主机自动获取(被分配) 一个IP地址。网络管理员能够配置DHCP, 以使某给定主机每次与网络连接时能得到一个相同的IP地址, 或者某主机将被分配一个临时的IP地址(temporary IPaddress) ,该地址在每次与网络连接时也许是不同的。除了主机IP地址分配外, DHCP还允许一台主机得知其他信息,例如它的子网掩码、它的第一跳路由器地址(常称为默认网关)与它的本地DNS服务器的地址。
由于DHCP具有能将主机连接进一个网络的网络相关方面的自动能力, 故它又常被称为即插即用协议(plug-and-play protocol) 。
网络地址转换Network Address Translation, NAT)。
IPv6数据报与IPV4变化:扩大的地址容量,简化高效的40字节首部,流标签与优先级
IPv6数据报的字段:版本,流量类型,流标签,有效载荷长度,下一个首部,跳限制,源地址和目的地址,数据
路由选择算法
全局式路由选择算法(global routing algorithm) 用完整的、全局性的网络知识计算出从源到目的地之间的最低费用路径。具有全局状态信息的算法常被称作链路状态(Link State, LS) 算法
分散式路由选择算法(decentralized routing algorithm) 以迭代、分布式的方式计算出最低费用路径。没有结点拥有关于所有网络链路费用的完整信息,而每个结点仅有与其直接相连链路的费用知识即可开始工作。距离向量(Distance-Vector, DV) 算法的分散式路由选择算法。
路由选择算法的第二种广义分类方式是根据算法是静态的还是动态的进行分类。
在静态路由选择算法(static routing algorithm) 中, 随着时间的流逝, 路由的变化是非常缓慢的,通常是人工干预进行调整(如人为手工编辑一台路由器的转发表)。
动态路由选择算法(dynamic routing algor thm) 能够当网络流量负载或拓扑发生变化时改变路由选择路径。一个动态算法可周期性地运行或直接响应拓扑或链路费用的变化而运行。虽然动态算法易于对网络的变化做出反应,但也更容易受诸如路由选择循环、路由振荡之类问题的影响。
路由选择算法的第三种分类方式是根据它是负载敏感的还是负载迟钝的进行划分。
在负载敏感算法(load-sensitive algorithm) 中, 链路费用会动态地变化以反映出底层链路的当前拥塞水平。
自治系统(Autonomous System, AS) :每个AS由一组通常处在相同管理控制下的路由器组成(例如, 由相同的ISP运营或属于相同的公司网络)。在相同的AS中的路由器都全部运行同样的路由选择算法(如一种LS或DV算法),且拥有彼此的信息
在一个自治系统内运行的路由选择算法叫做自治系统内部路由选择协议(intra-autonomous system routing protocol) 。当然, 将AS彼此互联是必需的, 因此在一个AS内的一台或多台路由器将有另外的任务,即负责向在本AS之外的目的地转发分组。这些路由器被称为网关路由器(gateway router) 。
两种AS内部路由选择协议(RIP与OSPF)
一种AS间路由选择协议(BGP)
AS内部路由选择协议用于确定在一个AS内执行路由选择的方式。AS内部路由选择协议又称为内部网关协议(interior gateway protocol) 。历史上有两个路由选择协议曾被广泛用于因特网上自治系统内的路由选择:路由选择信息协议(Routing Information Protocol,RIP) 与开放最短路优先(Open Shortest Path First, OSPF) 。
RIP是一种距离向量协议,使用跳数作为其费用测度, 即每条链路的费用为1。在RIP(也在OSPF)中, 费用实际上是从源路由器到目的子网。RIP使用术语跳, 跳是沿着从源路由器到目的子网(包括目的子网)的最短路径所经过的子网数量。
路由器在UDP上使用端口520相互发送RIP请求与响应报文。封装在标准IP数据报中的UDP报文段在路由器之间传输。RIP使用一个位于网络层协议(IP) 之上的运输层协议(UDP) 来实现网络层功能(一种路由选择算法)
OSPF的优点包括下列几方面:安全,多条相同费用的路径,对单播与多播路由选择的综合支持,支持在单个路由选择域内的层次结构
边界网关协议(Broder Gateway Protocol, BGP)版本4是当今因特网中域间路由选择协议事实上的标准。它通常被称为BGP4或简称为BGP。作为一个自治系统间路由选择协议 , BGP为每个AS提供了进行以下工作的手段:
1)从相邻AS处获得子网可达性信息。
2)向本AS内部的所有路由器传播这些可达性信息。
3)基于可达性信息和AS策略,决定到达子网的“好”路由。
对于每条TCP连接, 位于该连接端点的两台路由器称为BGP对等方(BGP peers) , 沿着该连接发送所有BGP报文的TCP连接称为BGP会话(BGP session) 。此外,跨越两个AS的BGP会话称为外部BGP(eBGP) 会话(external BGP session) , 在同一AS中的两台路由器之间的BGP会话称为内部BGP(iBGP) 会话(internal BGP session) 。
在BGP中, 一个自治系统由其全局唯一的自治系统号(Autonomous System Number, ASN) 所标识。(从技术上讲, 并非每个AS都有一个ASN。特殊是有一种所谓桩(stub) AS通常就没有ASN, 这种桩AS仅承载源地址或目的地址为本AS的流量。
因特网组管理协议(IGMP)
第五章链路层
截然不同类型的链路层信道:
第一种类型是广播信道, 这种信道用于连接有线局域网、卫星网和混合光纤同轴电缆(Hybrid Fiber Coaxialcable, HFC) 接入网中的多台主机。因为许多主机与相同的广播信道连接, 需要所谓的媒体访问协议来协调帧传输。在某些场合中,可以使用中心控制器来协调传输。
第二种类型的链路层信道是点对点通信链路,这在诸如长距离链路连接的两台路由器之间,或用户办公室计算机与它们所连接的邻近以太网交换机之间等场合经常能够发现。协调对点对点链路的访问较为简单; 在本书Web网站上的相关材料详细地讨论了点到点协议(Point-to-Point Protocol, PPP) , 该协议的适用范围从经电话线的拨号服务到经光纤链路的高速点到点帧传输。
链路层协议能够提供的可能服务包括:成帧(framing) 、链路接入、可靠交付、差错检测和纠正
媒体访问控制(Medium Access Control, MAC) 协议规定了帧在链路上传输的规则。对于在链路的一端仅有一个发送方、链路的另一端仅有一个接收方的点对点链路, MAC协议比较简单(或者不存在) , 即无论何时链路空闲, 发送方都能够发送帧。更有趣的情况是当多个结点共享单个广播链路时,即所谓多路访问问题。
链路层的主体部分是在网络适配器(network adapter) 中实现的, 网络适配器有时也称为网络接口卡(Network Interface Card, NIC) 。位于网络适配器核心的是链路层控制器,该控制器通常是一个实现了许多链路层服务(成帧、链路接入、差错检测等)的专用芯片。因此,链路层控制器的许多功能是用硬件实现的。
在传输数据中检测差错的3种技术:
奇偶校验(它用来描述差错检测和纠正背后隐含的基本思想)
检验和方法(它通常更多地应用于运输层)
循环冗余检测(它通常更多地应用在适配器中的链路层)。
我们能够将任何多路访问协议划分为3种类型之一:
信道划分协议(channel partitioning protocol)
随机接入协议(random access protocol)
轮流协议(taking-turns protocol)
地址解析协议(ARP) , 该协议提供了将IP地址转换为链路层地址的机制。
ARP是一个链路层协议还是一个网络层协议。如我们所见, 一个ARP分组封装在链路层帧中, 因而在体系结构上位于链路层之上。然而, 一个ARP分组具有包含链路层地址的字段,因而可认为是链路层协议,但它也包含网络层地址,因而也可认为是为网络层协议。所以, 可能最好把ARP看成是跨越链路层和网络层边界两边的协议.
交换机的优点和缺点:即插即用;相对高的分组过滤和转发速率;为了防止广播帧的循环,交换网络的活跃拓扑限制为一棵生成树;交换机对于广播风暴并不提供任何保护措施
路由器的优点和缺点:因为路由器没有生成树限制,所以它们允许以丰富的拓扑结构构建因特网;对第二层的广播风暴提供了防火墙保护;对每个分组的处理时间通常比交换机更长;不是即插即用
集线器 路由器 交换机
流量隔离 无 有 有
即插即用 有 无 有
优化路由 无 有 无
第六章 无线网络和移动网络
基站。基站(basestation) 是无线网络基础设施的一个关键部分。与无线主机和无线链路不同,基站在有线网络中没有明确的对应设备。它负责向与之关联的无线主机发送数据和从主机那里接收数据(例如分组)。基站通常负责协调与之相关联的多个无线主机的传输。
两个准则来对无线网络分类:①在该无线网络中的分组是否跨越了一个无线跳或多个无线跳;②网络中是否有诸如基站这样的基础设施。
1.单跳,基于基础设施。这些网络具有与较大的有线网络(如因特网)连接的基站。此外,该基站与无线主机之间的所有通信都经过一个无线跳。你在教室、咖啡屋或图书馆中所使用的802.11网络,以及我们将很快学习的3G蜂窝网络都属于这种类型。
2.单跳,无基础设施。在这些网络中,不存在与无线网络相连的基站。然而,如我们将要见到的那样,在这种单跳网络中的一个结点可以协调其他结点的传输。蓝牙网络和具有自组织模式的802.11网络是单跳、无基础设施的网络。
3.多跳,基于基础设施。在这些网络中,一个基站表现为以有线方式与较大网络相连。然而,某种无线结点为了经该基站通信,可能不得不通过其他无线结点中继它们的通信。某些无线传感网络和所谓无线网状网络(wireless mesh network) 就属于这种类型。
4.多跳,无基础设施。在这些网络中没有基站,并且结点为了到达目的地可能必须在几个其他无线结点之间中继报文。结点也可能是移动的,在多个结点中改变连接关系, 一类网络被称为移动自组织网络(mobile adhoc network, MANET) 。如果该移动结点是车载的, 该网络是车载自组织网络(vehicular adhoc network,VAN ET) 。如你可能想象的那样, 为这种网络开发协议是一种挑战, 这是许多进行中的研究主题。
IEEE 802.11无线LAN(也称为WiFi)
基本服务集(Basic Service Set, BSS)
接入点(Access Point, AP)
中央基站(base station)
服务集标识符(Service Set Identifier, SSID)
扫描信道和监听信标帧的过程被称为被动扫描(passive scanning)
无线主机也能够执行主动扫描(active sean ning) , 这是通过向位于无线主机范围内的所有AP广播探测帧完成的
分布式帧间间隔(Distribu-ted Inter-Frame Space,DIFS)
短请求发送(Request to Send, RTS) 控制帧
短允许发送(Clear to Send, CTS) 控制帧