计算机网络
1、概述
1.1 计算机网络基本概念
- 网络(计算机网络):网络(Network)由若干**结点(Node)和连接这些结点的链路(Link)**组成。
三大类网络
- 电信网络:提供电话、电报及传真等服务;
- 有线电视网络:向用户传送各种电视节目;
- 计算机网络:使用户能在计算机之间传送数据文件;发展最快的并起到核心作用的是计算机网络。
Internet 和 internet 的区别
-
internet(互连网):通用名词,它泛指由多个计算机网络互连而成的网络。
-
Internet(因特网、互联网):专用名词,它指当前全球最大的、开放的、由众多网络相互连接而成的特定计算机网络,它采用 TCP/IP 协议族作为通信的规则,且其前身是美国的 ARPANET。
-
万维网:互联网上的应用
-
互联网具有两个重要基本特点:连通性和共享
因特网发展的三个阶段
- 第一阶段:从单个网络向互联网发展的过程。1983 年 TCP/IP 协议成为 ARPANET 上的标准协议。
- 第二阶段:**建成三级结构的互联网。**主干网、地区网和校园网(或企业网)。
- 第三阶段:形成多层次的ISP(Internet Service Provider 因特网服务提供者)结构的互联网
互联网的组成
- 边缘部分:用户直接使用
- 核心部分:为边缘部分提供服务
计算机网络拓扑:星型、环形、总线型、树形与网状
Internet工作模式
- 客户服务器方式(C/S方式):即Client/Server方式。(客户是服务的请求方,服务器是服务的提供方)
- 对等方式(P2P方式):即Peer-to-Peer方式。(对等连接中的每一个主机既是客户又同时是服务器)
1.2 互联网核心部分:数据交换
-
在网络核心部分起特殊作用的是路由器(router)
-
路由器是实现分组交换 (packet switching) 的关键构件,其任务是转发收到的分组,这是网络核心部分最重要的功能
数据交换的三种方式
- 电路交换 – 用户始终占用端到端的通信资源
- 报文交换**(存储转发)**
- 分组交换:高效,灵活,迅速,可靠(存储转发)
1.3 计算机网络的性能指标
- 速率:比特( bit)是计算机中数据量的单位,也是信息论中使用的信息量的单位。指连接在计算机网络上的主机在数字信道上传送数据的速率。b/s(bps) 如100M以太网,实际是指100Mb/s。往往是指额定速率或标称速率。
- 带宽:指信号具有的频带宽度(信号各种不同频率成分所占据的频率范围)。数字信道所能传送的最高速率。b/s(bps)
-
吞吐量:表示在单位时间内通过某个网络(或信道﹑接口)的数据量,也是一种速率。其绝对上限值等于带宽。
-
时延:数据(一个报文或分组、甚至比特)从网络(或链路)的一段传送到另一端的时间,也称延迟。
- ① 发送时延:主机或路由器发送数据帧所需的时间,也就是从发送数据帧的第一个比特算起,到该帧的最后一个比特发送完毕所需的时间。也成传输时延。发送时延 = 数据帧长度(b) / 信道带宽(b/s)
- ② 传播时延:电磁波在信道中传输一定距离所需划分的时间。传播时间 = 信道长度(m) / 传输速率(m/s)
- ③ 处理时延:主机或路由器处理收到的分组所花费的时间。
- ④ 排队时延:分组在输入队列中等待处理的时间加上其在输出队列中等待转发的时间。
- 综上:总时延 = 发送时延 + 传播时延 + 处理时延 + 排队时延。
- 时延带宽积:传播时延 * 带宽。表示链路的容量。
- 往返时间RTT:从发送方发送数据开始,到发送发收到接收方的确认为止,所花费的时间。
- 利用率:某信道有百分之几是被利用的(有数据通过)。而信道或网络利用率过高会产生非常大的时延。
当前时延=空闲时时延/(1-利用率)
1.4 计算机网络体系结构
- 网络协议,简称为协议,是为进行网络中的数据交换而建立的规则 、标准或约定。
- 包括三要素:语法、语义、时序(同步)。
- 网络接口层:并没有规定具体内容,这样做的目的是可以互连全世界各种不同的网络接口,例如:有线的以太网接口,无线局域网的WIFI接口等。
- 网际层:它的核心协议是IP协议。
- 运输层:TCP和UDP是这层的两个重要协议。
- 应用层:这层包含了大量的应用层协议,如 HTTP , DNS 等。
- 实体表示任何可发送或接收信息的硬件或软件进程。
- 协议是控制两个对等实体(收发双方相同层次中的实体)进行通信的规则的集合。
- 在协议的控制下,两个对等实体间的通信使得本层能够向上一层提供服务,要实现本层协议,还需要使用下层所提供的服务。
- 协议三要素:语法、语义、同步
协议和服务的区别
- 协议是“水平的”,即协议是控制对等实体之间通信的规则。
- 服务是“垂直的”,即服务是由下层向上层通过层间接口提供的。
- 实体看得见相邻下层所提供的服务,但并不知道实现该服务的具体协议。也就是说,下面的协议对上面的实体是**“透明”**的。
- 同一系统相邻两层实体进行交互的地方,称为服务访问点SAP(Service Access Point)。
2、物理层
2.1 物理层基本概念
2.2 数据通信系统模型
- 协议:控制数据通信的一组规则
信息、数据与信号
- 信息:指人们对客观现实世界事物的存在方式或运动状态的某种认知
- 数据:信息的表达形式
- 信号:数据的电气的或电磁的表现
- “模拟的”:连续的
- “数字的”:离散的
数据通信方式
-
串行传输:数据是一个比特一个比特依次发送的,因此在发送端与接收端之间,只需要一条数据传输线路即可
-
并行传输:一次发送n个比特,因此,在发送端和接收端之间需要有n条传输线路,并行传输的优点是比串行传输的速度n倍,但成本高
-
数据在传输线路上的传输采用是串行传输,计算机内部的数据传输常用并行传输
-
单向通信:又称为单工通信,即只能有一个方向的通信而没有反方向的交互(无线电、广播)
-
双向交替通信:又称为半双工通信,即通信的双方可以发送信息,但不能双方同时发送(当然也就不能同时接收)
-
双向同时通信:又称为全双工通信,即通信的双方可以同时发送和接收信息。(传输效率最高)
信道传输类型
- 基带信号:来自信源的信号,频率较低,近距离传输大多采用
- 频带信号:将基带信号变换成模拟信号,远距离通信通常采用
- 宽带传输:宽带传输一定是采用频带传输技术的,但频带传输不一定就是宽带传输
2.3 数据编码技术
-
编码:用数字信号承载数字或模拟数据
-
调制:用模拟信号承载数字或模拟数据
信道容量极限
- 限制码元在信道上的传输速率的因素有:
- 信道能够通过的频率范围
- 信噪比
- 数据在信道中的传输速率受编码、带宽、信噪比的限制
2.4 信道复用技术
- 复用 (multiplexing) 是通信技术中的基本概念,它允许用户使用一个共享信道进行通信,降低成本,提高利用率
- **频分复用 FDM:**将整个带宽分为多份,用户在分配到一定的频带后,在通信过程中自始至终都占用这个频带。
- 时分复用TDM: 时分复用则是将时间划分为一段段等长的时分复用帧(TDM帧)。每一个时分复用的用户在每一个 TDM 帧中占用固定序号的时隙。每一个用户所占用的时隙是周期性地出现**(其周期就是TDM帧的长度)的。TDM 信号也称为**等时 (isochronous) 信号。
- 同步时分复用 STDM:
- 波分复用(WDM):
- 码分复用 CDM :常用的名词是码分多址 CDMA (Code Division Multiple Access)。各用户使用经过特殊挑选的不同码型,因此彼此不会造成干扰。这种系统发送的信号有很强的抗干扰能力,其频谱类似于白噪声,不易被敌人发现。
3、数据链路层
3.1 概述
-
数据链路层主要目的是为了在有差错的物理线路基础上,采取差错检测、差错控制、流量控制等方法,将有差错的物理线路改进成无差错的数据链路,向网络层提供高质量的数据传输服务。
-
数据链路层信道类型:
- 点对点信号 – 一对一
- 广播信号 – 一对多
- 数据链路层传送的是帧。封装成帧(framing) :在一段数据的前后分别添加首部和尾部,然后就构成了一个帧,确定帧的界限。
- 透明传输是指数据链路层对上层交付的传输数据没有任何限制,好像数据链路层不存在一样。解决方法:面向字节的物理链路使用字节填充 (byte stuffing) 或字符填充 (character stuffing),面向比特的物理链路使用比特填充的方法实现透明传输。为了提高帧的传输效率,应当使帧的数据部分的长度尽可能大些。考虑到差错控制等多种因素,每一种数据链路层协议都规定了帧的数据部分的长度上限,即最大传送单元MTU 。
- 差错检测实际的通信链路都不是理想的,比特在传输过程中可能会产生差错: 1可能会变成0,而0也可能变成1。这称为比特差错。差错检测编码:纠错码和检错码。
- 检错码只能检测出帧在传输过程中出现了差错,但并不能定位错误,因此无法纠正错误。
- 使用CRC差错检测技术只能做到无差错接受,非可靠传输,互联网数据链路层提供的是不可靠传输服务
- 循环冗余校验CRC有很好的检错能力(漏检率非常低),虽然计算比较复杂,但非常易于用硬件实现,因此被广泛应用于数据链路层。
- 例:要发送的数据为1101011011,采用CRC的生成多项式是10011,求出的检验序列为1110
3.2 PPP协议
- 现在互联网使用得最多的数据链路层协议是点对点协议PPP (Point-to-Point Protoco1) 。
- 帧格式:
- 透明传输问题:当PPP用在异步传输时,就使用一种特殊的字符填充法;当PPP用在同步传输链路时,协议规定采用硬件来完成比特填充。
- 差错检测:能够对接收端收到的帧进行检测,并立即丢弃有差错的帧。
3.3 CSMA/CD
-
局域网是计算机网络的一种形式;LAN是在一个较小的范围,实现数据通信和资源共享的目的;网络为一个单位所拥有,且地理范围和站点数目均有限
-
局域网的主要优点:
- 具有广播功能,从一个站点可很方便地访问全网。
- 便于系统的扩展和逐渐地演变,各设备的位置可灵活调整和改变。
- 提高了系统的可靠性、可用性和残存性。
-
决定局域网特征的主要技术:
- 设备互联的:拓扑结构
- 用于传输数据的媒体:传输介质
- 由于信道共享而采用的媒体接入控制方法:介质访问控制方法
-
媒体共享技术:
-
静态划分信道(代价太高、不适合局域网)
- 频分复用
- 时分复用
- 波分复用
- 码分复用
-
动态媒体接入控制(多点接入)
- 随机接入(易产生碰撞,需要解决碰撞的协议)
- 受控接入(如多点线路探询(polling),或轮询)
-
-
随机接入:载波监听多点接入/碰撞检测(CSMA/CD协议)
-
“多点接入MA”表示许多计算机以多点接入的方式连接在一根总线上。
-
“载波监听CS”是指每一个站在发送数据之前先要检测一下总线上是否有其他计算机在发送数据,如果有,则暂时不要发送数据,以免发生碰撞。
-
“碰撞检测CD”就是计算机边发送数据边检测信道上的信号电压大小。当几个站同时在总线上发送数据时,总线上的信号电压摆动值将会增大(互相叠加)。当一个站检测到的信号电压摆动值超过一定的门限值时,就认为总线上至少有两个站同时在发送数据,表明产生了碰撞。每一个正在发送数据的站,一旦发现总线上出现了碰撞,就要立即停止发送,免得继续浪费网络资源,然后等待一段随机时间后再次发送。
-
-
工作流程:
-
争用期:
- 最小帧长:
- 最大帧长:
- 截断二进制指数退避算法:
- 信道利用率:
- 帧接收流程:
- 争用期:2r
- 协议规定具体的争用时间为:51.2us
- 信号在以太网上传播一公里大约需要5us,以太网的最大端到端时延必须小于争用期的一半(即:25.6pus)这相当于以太网的最大端到端长度为5km.
- 对于10Mb/s以太网,在争用期内可发送512bits,即64字节。
- 强化碰撞:32或48比特的干扰信号
- 帧间最小间隔:96bit
- 现在互联网的数据链路层多采用PPP协议和CSMA/CD协议,这两种协议都不采用序号和确认机制,因此,互联网数据链路层提供的是不可靠传输服务。
- OSI体系结构的数据链路层采用的是面向连接的HDLC协议,因此OSI数据链路层提供可靠的传输服务。
- 当数据率一定时,以太网的连线的长度受到限制,否则 τ 的数值会太大。
- 以太网的帧长不能太短,否则 T0 的值会太小,使 a 值太大。
3.4 局域网的扩展
-
虚拟局域网VLAN是由一些局域网网段构成的与物理位置无关的逻辑组,而这些网段具有某些共同的需求·每一个 VLAN的帧都有一个明确的标识符,指明发送这个帧的计算机是属于哪一个VLAN 。虚拟局域网其实只是局域网给用户提供的一种服务,而并不是一种新型局域网。(现代高性能路由器已逐渐取代VLAN)
-
虚拟局域网(VLAN)技术具有以下主要优点:
- 改善了性能
- 简化了管理
- 降低了成本
- 改善了安全性
-
网桥和二层交换机可以在数据链路层扩展以太网覆盖的地理范围。
-
10个站连接到一个10Mbps的以太网交换机上,每个站点独享10Mbps,所有站点共享10Mbps 。
4、网络层
4.1 IP协议概述及IP地址
- 网络层的主要任务是实现网络互连,进而实现数据包在各网络之间的传输
- 网络层提供的虚电路服务(逻辑连接,非物理连接)
- 网络层提供数据报服务,网络层向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务。网络层不提供服务质量的承诺。
- 网际协议IP是TCP/IP体系中两个最主要的协议之一;与IP协议配套使用的还有三个协议:
- 地址解析协议ARP
- 网际控制报文协议ICMP
- 网际组管理协议IGMP
虚拟互连网络
- 将网络互相连接起来要使用一些中间设备。
- 中间设备又称为中间系统或中继(relay)系统。
- 有以下五种不同的中间设备:
- 物理层中继系统:集线器(Hub)
- 数据链路层中继系统:网桥或桥接器(bridge)
- 网络层中继系统:路由器(router)
- 网桥和路由器的混合物:桥路器(brouter)
- 网络层以上的中继系统:网关(gateway)
- 网络互连都是指用路由器进行网络互连和路由选择
对比的方面 | 虚电路服务 | 数据报服务 |
---|---|---|
思路 | 可靠通信应当由网络来保证 | 可靠通信应当由用户主机来保证 |
连接的建立 | 必须有 | 不需要 |
终点地址 | 仅在连接建立阶段使用,每个分组使用短的虚电路号 | 每个分组都有终点的完整地址 |
分组的转发 | 属于同一条虚电路的分组均按照同一路由进行转发 | 每个分组独立选择路由进行转发 |
当结点出故障时 | 所有通过出故障的结点的虚电路均不能工作 | 出故障的结点可能会丢失分组,一些路由可能会发生变化 |
分组的顺序 | 总是按发送顺序到达终点 | 到达终点时不一定按发送顺序 |
端到端的差错处理和流量控制 | 可以由网络负责,也可以由用户主机负责 | 由用户主机负责 |
- IP地址现在由因特网名字与号码分配机构ICANN负责分配
- ABCDE类地址
- A类IP地址范围是1.0.0.0到127.255.255.255 (小于128)
- B类IP地址范围128.0.0.0-191.255.255.255 (128~191)
- C类IP地址范围192.0.0.0-223.255.255.255 (192~223)
- D类:组播地址
- E类地址:保留今后使用
- 本质上IP地址是标志一个主机和一条链路的接口,具有多网络(多IP地址)的主机称为多归属主机
4.2 ARP协议、IP数据报
- 通信时使用了两个地址:
- IP地址:网络层地址
- MAC地址:数据链路层地址
- ARP 作用:从网络层使用的IP地址,解析出在数据链路层使用的硬件地址(只适用于IPV4)
- ARP是解决同一个局域网上的主机或路由器的IP地址和硬件地址的映射问题
- 举例:主机A发送IP数据报给主机B,途径4个路由器,发送过程中总共使用5几次ARP
4.3 划分子网与构建超网
- 划分子网纯属一个单位内部事物;划分子网后IP地址就变成了三级结构;划分子网只是把IP地址的主机号host-id这部分进行再划分,而不改变IP地址原来的网络号net-id
- 从一个IP数据报的首部并无法判断源主机或目的主机所连接的网络是否进行了子网划分,使用子网掩码(subnet mask)可以找出IP地址中的子网部分
- 默认子网掩码:
- A类地址:255.0.0.0
- B类地址:255.255.0.0
- C类地址:255.255.255.0
- 同样的IP与不同的子网掩码得出相同的网络地址;但不同的掩码的效果不同。
- 某网络的IP地址为202.168.5.0/24,采用可变长子网划分,子网掩码为255.255.255.192,则该网络的最大子网个数为4(2的平方),每个子网内的最大可分配主机地址个数为62(2的6次方-2)
4.4 路由选择协议及RIP、OSFP及BGP
-
路由算法
- 静态路由选择策略 – 非自适应路由选择
- 动态路由选择策略 – 自适应路由选择
-
自治系统:处于管理机构控制下的路由器和网络群组;在一个自治系统中的所有路由器必须相互连接,运行相同的路由协议,同时分配同一个自治系统编号·自治系统之间的链接使用外部路由协议
-
自治系统之间的路由选择:域间路由选择;自治系统内部的路由选择:域内路由选择
-
互联网路由选择协议
- 内部网关协议
- RIP(较小规模使用较多):一种分布式基于距离向量的路由选择协议;RIP协议要求网络中的每一个路由器都要维护从它自己到其他每一个目的网络的距离记录
- 特点:仅和相邻路由器交换信息;交换的信息是当前本路由器所知道的全部信息,即自己的路由表;按固定的时间间隔交换路由信息
- RIP2具有简单鉴别功能;RIP协议特点:好消息传播得快,坏消息传播得慢。RIP存在的一个问题:当网络出现故障时,要经过比较长的时间(例如数分钟)才能将此信息传送到所有的路由器。
- OSPF:“开放最短路径优先”,采用分布式链路状态协议
- 洪泛法、划分区域减少了整个网路上的通信量
- 五种分组类型:
- 类型1,问候(He11o)分组–发现和维持可达性
- 类型2,数据库描逑(Database Description)分组 – 摘要信息
- 类型3,链路状态请求(Link State Request)分组 – 请求发送某些链路状态项目
- 类型4,链路状态更新(Link State Update)分组 – 用洪泛法对全网更新链路状态。
- 类型5,链路状态确认(Link State Acknow1edgment)分组
- 一个路由器的链路状态只涉及到与其相邻路由器的连通状态,因而与整个互联网的规模并无直接关系。
- 外部网关协议
- BGP:每一个自治系统的管理员要选择至少一个路由器作为该自治系统的“BGP发言人”。
一般说来,两个BGP发言人都是通过一个共享网络连接。 - 使用的四种报文:打开 – 更新 – 保活 – 通知
- BGP:每一个自治系统的管理员要选择至少一个路由器作为该自治系统的“BGP发言人”。
- 内部网关协议
-
路由器的构造:路由器是一种具有多个输入端口和多个输出端口的专用计算机,其任务是转发分组。
-
“转发”(forwarding)是指路由器根据转发表将收到的用户IP数据报从合适端口转发出去。
-
“路由选择”(routing)是指按照分布式算法,根据从各相邻路由器得到的关于网络拓扑的变化情况,动态地改变所选择的路由。
-
路由表是根据路由选择算法得出的转发表是从路由表得出的。
5、运输层
5.1 概述+UDP+TCP报文
运输层协议
- 引用运输层协议作用:为运行在不同主机上的应用进程提供直接的通信服务
- 消除网络层的不可靠(无法控制通信子网),改善质量,增强网络层QOS ;
- 提供端到端服务:提供可靠的、与实际使用网络无关的信息传输
- 从通信和信息处理的角度看:运输层向它上面的应用层提供通信服务,它属于面向通信部分的最高层,同时也是用户功能中的最低层
- 计算机网络的本质是实现进程通信;运输层的主要任务就是要实现分布式进程通信
- 运输层的主要功能:
- 提供应用进程之间端到端的逻辑通信
- 运输层向高层用户屏蔽了下层通信网络核心的细节
- 运输层提供流量控制(拥塞控制)能力
- 运输层对收到的报文进行差错检测
- 运输层实现复用和分用
- 运输层的主要协议:
- 面向连接的传输控制协议TCP
- 无连接的用户数据报协议UDP(存在价值:无需建立连接、实现简单、头部开销少、没有拥塞控制)
- 端口号只具有本地意义,它仅仅是本地计算机应用层中的各个进程和运输层交互时的层间接口
- 一个套接字不能同时与远地的两个套接字相连
用户数据报协议UDP
- 无连接、不提供可靠交付–不使用拥塞控制和流量控制、简单、支持单/多/广播、差错检测、不需要套接字
- 适用于IP电话、视频会议等实时应用
运输控制协议TCP
- 面向连接、可靠交付、复杂、点对点、全双工、面向字节流、需要套接字
- 适用于要求可靠传输的应用,如文件传输
5.2 可靠传输的基本原理 + TCP可靠传输的实现
可靠传输的基本原理
- 实现可靠传输:采用停等协议 – 发送方发送消息,等待接收方确认(优点简单,缺点信道利用率太低)
- 差错处理、超时重传、发送丢失、确认丢失、确认迟到
- 需要注意的几个问题:在发送完一个报文后,必须暂时保留已发送的报文的副本;报文和确认报文都必须进行编号;超时计时器的重传时间应当比数据在报文传输的平均往返时间更长一些。
- 改进:流水线传输 – 连续发送多个分组、数据不间断地传输,即连续ARQ协议和滑动窗口协议
- 累积确认:对最后一个报文发送确认,则表示所有保温都已正确收到 – 效率高、任意实现,即使确认丢失也不必重传
- Go-back-N:回退
TCP可靠传输的实现
- TCP连接的每一端都必须设有两个窗口:一个发送窗口和一个接收窗口。TCP的可靠传输机制用字节的序号进行控制。TCP所有的确认都是基于序号而不是基于报文段。TCP两端的四个窗口经常处于动态变化之中。
- 注意:TCP基于以字节为单位的滑动窗口来实现可靠传输、发送方的发送窗口并不总和接收方的接收窗口一样大、对于不按序到达的数据TCP未明确规定如何处理、TCP要求接收方必须有累积确认和捎带确认机制、TCP通信是全双工通信
- 发送缓存与接收缓存的作用
- 发送缓存用来暂时存放:
- 发送应用程序传送给发送方TCP准备发送的数据
- TCP已发送出但尚未收到确认的数据
- 接收缓存用来暂时存放:
- 按序到达的、但尚未被接收应用程序读取的数据
- 不按序到达的数据
- 发送缓存用来暂时存放:
- 超时重传:重传机制是TCP中最重要和最复杂的问题之一。TCP每发送一次报文段,就对这个报文段设置一次计时器。只要计时器设置的重传时间到但还没有收到确认,就要重传这一报文段。
- 加权平均往返时间:
- 超时重传时间RTO:
- Karn算法:在计算平均往返时间RTT 时,只要报文段重传了,就不采用其往返时间样本。这样得出的加权平均往返时间RTTS和超时重传时间RTO就较准确。
- 修正的Karn算法:新的RTO = γ × 旧的RTO 。系数的典型值是2
- 选择确认SACK:接收方收到了和前面的字节流不连续的两个字节块。如果这些字节的序号都在接收窗口之内,那么接收方就先收下这些数据,但要把这些信息准确地告诉发送方,使发送方不要再重复发送这些已收到的数据。
5.3 流量控制与拥塞控制
流量控制
-
控制发送方的发送速率不要太快,既要让接收方来得及接收,也不要使网络发生拥塞。
-
TCP连接利用滑动窗口机制实现流量控制。
-
TCP为每一个连接设有一个持续计时器
- 只要TCP连接的一方收到对方的零窗口通知,就启动持续计时器
- 若持续计时器设置的时间到,就发送一个**零窗口探测报文段(**仅携带1字节的数据),而对方就在确认这个探测报文段时给出了现在的窗口值
- 若窗口(rwnd)仍然是零,则收到这个报文段的一方就重新设置持续计时器。
-
使用不同的机制控制发送TCP报文段的时机
- 第1种机制是TCP维持一个变量,它等于最大报文段长度MSS。只要缓存中存放的数据达到MSS字节,就组装成一个TCР报文段发送出去
- 第⒉种机制是由发送方的应用进程指明要求发送报文段,即TCP支持的推送(push)操作
- 第3种机制是发送方的一个计时器期限到了,就把当前缓存的数据装入报文段(但长度不能超过MSS)发送出去
-
Nagle算法:当数据以一字节的方式进入发送端,发送端第一次只发送一个字节,其他字节存入缓存。当收到第一个字节的确认后,再发送缓存的其他数据。只有当收到对前一个报文段的确认后才继续发送下面的报文段。当数据到达较快或者网络速度较慢时,用这种方法可以明显减少所用的网络带宽。
-
Nagle还规定:当缓存中的数据字节数达到发送窗口的1/2或接近最大报文段长度MSS时,立即将它们作为1个报文段发送。
-
糊涂窗口综合症:让接收方等待一段时间,使得接收缓存已有足够空间容纳一个最长的报文段,或等到接收缓存已有一半空闲的空间,再发确认。(发送方不要发送太小的报文,接收方在窗口值很小时不要确认)
TCP拥塞控制
-
拥塞控制就是防止过多的数据注入到网络中,使网络中的路由器或链路不致过载,拥塞控制是一个全局性的过程
-
拥塞控制的两种模式
- 开环控制:在设计网络时事先将有关发生拥塞的因素考虑周到,力求网络在工作时不产生拥塞。避免发生
- 闭环控制:基于反馈环路的概念,具体过程如下:监测网络系统以便检测到拥塞在何时、何处发生;将拥塞发生的信息传送到可采取行动的地方;调整网络系统的运行以解决出现的问题。尽力解除
-
几种拥塞控制方法:慢开始、拥塞避免、快重传、快恢复
-
拥塞窗口:大小取决于网络的拥塞程度并且动态变化,发送端根据拥塞窗口动态调整,swnd≤Min(cwnd,rwnd)
-
控制拥塞窗口的基本原则:网络没有出现拥塞,拥塞窗口就再增大一些,以便把更多的分组发送出去网络出现拥塞,拥塞窗口就减小一些,以减少注入到网络中的分组数。
-
拥塞的判断:
- 重传定时器超时
- 收到三个相同的ACK
-
MSS(Maximum Segment Size)是TCP报文段中的数据字段的最大长度。数据字段加上 TCP首部才等于整个的 TCP报文段。所以, MSS是“TCP报文段长度减去TCP首部长度”。
-
慢开始算法:在主机刚刚开始发送报文段时先设置拥塞窗口cwnd=1 ,即设置为一个最大报文段SMSS的数值。每收到一个对新报文段的确认后,将拥塞窗口加1,即增加一个 SMSS的数值。用这样的方法逐步增大发送端的拥塞窗口(cwnd) ,可以使分组注入到网络的速率更加合理。(由小到大逐渐增大拥塞窗口数值)
- 传输轮次:慢开始算法,没经过一个传输轮次,拥塞窗口就加倍;一个传输轮次所经历的时间就是往返时间RTT
-
拥塞避免算法:让拥塞窗口cwnd缓慢增大,即每经过一个往返时间RTT就把发送方的拥塞窗口cwnd加1,而不是加倍,使拥塞窗口cwnd按线性规律缓慢增长(加法增大)。慢开始和拥塞避免一般同时使用。
- 设置慢开始门限状态变量:慢开始门限状态变量ssthresh的用法如下:
- 当cwnd < ssthresh时,使用慢开始算法
- 当cwnd > ssthresh时,停止使用慢开始算法而改用拥塞避免算法
- 当cwnd = ssthresh时,既可使用慢开始算法,也可使用拥塞避免算法。
- 当网络出现拥塞时:无论在慢开始阶段还是在拥塞避免阶段,只要发送方判断网络出现拥塞(根据有没有按时收到确认),就要把慢开始门限变量ssthresh设置为出现拥塞时的发送方窗口值的一半(但不能小于2)(乘法减小)。然后把拥塞窗口cwnd重新设置为1,执行慢开始算法·这样做目的是要迅速减少主机发送到网络中的分组数,使得发生拥塞的路由器有足够时间把队列中积压的分组处理完毕。
- 设置慢开始门限状态变量:慢开始门限状态变量ssthresh的用法如下:
- 加法增大:执行拥塞避免算法时,在收到对所有报文段的确认后(即经过一个往返时间)),把拥塞窗口cwnd增加一个MSS ,使拥塞窗口缓慢增大,以防止网络过早出现拥塞。
- 乘法减小:指不论在慢开始阶段还是拥塞避免阶段,只要出现一次超时(即出现网络拥塞),就把慢开始门限值ssthresh设置为当前的拥塞窗口值乘以0.5 。当网络频繁出现拥塞时,ssthresh值就下降得很快,以大大减少注入到网络中的分组数。
- 快重传算法:接收方每收到一个失序的报文段后就立即发出重复确认,发送方只要一连收到三个重复确认就应当立即重传对方尚未收到的报文段。快重传并非取消重传计时器,而是在某些情况下可更早地重传丢失的报文段。
- 快恢复算法:当发送端收到连续三个重复的确认时,就执行“乘法减小”算法,把慢开始门限ssthresh减半,但不执行慢开始算法。将拥塞窗口cwnd设置为慢开始门限ssthresh 减半后的数值,然后开始执行拥塞避免算法(加法增大),使拥塞窗口缓慢地线性增大。(发送方认为网络很可能没有发生拥塞)。
- 发送窗口上限值:发送方发送窗口的上限值应当取为接收方接收窗口rwnd和拥塞窗口cwnd这两个变量中较小的一个,即应按以下公式确定发送窗口的上限值Min[rwnd, cwnd]
- 拥塞控制v.s流量控制:
- 拥塞控制是一个全局性的过程,涉及到所有的主机、所有的路由器,以及与降低网络传输性能有关的所有因素
- 流量控制往往指在给定的发送端和接收端之间的点对点通信量的控制,即抑制发送端发送数据的速率,以便使接收端来得及接收。
5.4 TCP的运输连接管理
- 运输层连接管理的三个阶段:连接建立(握手)、数据传送、连接释放(挥手)
- TCP的连接建立要解决以下三个问题:
- 使TCP双方能够确知对方的存在;
- 使TCP双方能够协商一些参数(如最大窗口值、是否使用窗口扩大选项和时间戳选项以及服务质量等
- 使TCP双方能够对运输实体资源(如缓存大小、连接表中的项目等)进行分配
- TCP保活计时器:当保活计时器到时后,TCP服务器进程向TCP客户进程发送一个探测报文段
6、应用层
6.1 DNS
-
因特网采用层次树状结构的命名方式
-
… . 三级域名 . 二级域名 . 顶级域名
-
顶级域名TLD分为以下三类:国家顶级域名、通用顶级域名、反向域
-
域名服务器的四种类型:
- 根域名服务器 – 最高层次的域名服务器,不直接对域名进行解析,返回该域名所属顶级域名的顶级域名服务器的IP地址
- 顶级域名服务器 – 管理在该顶级域名服务器注册得所有二级域名
- 权限域名服务器 – 管理某个区的域名
- 本地域名服务器 – 本地域名服务器起着代理的作用,会将该报文转发到上述的域名服务器的等级结构中
-
域名的解析:
- 主机向本地域名服务器的查询一般都是采用递归查询
- 本地域名服务器向根域名服务器的查询通常是采用迭代查询
-
高速缓存用来存放最近查询过的域名以及何处获得域名映射信息的记录。
-
连接到互联网上的主机名必须是唯一的/一个主机名可以对应多个IP
6.2 FTP
-
文件传送协议FTP(File Transfer Protocol)是因特网上使用得最广泛的文件传送协议。
- 提供交互式的访问
- 屏蔽了各计算机系统的细节,因而适合在异构网络中任意计算机之间传送文件
-
FTP客户和服务器之间要建立以下两个并行的TCP控制
- 控制连接
- 数据连接
- 默认情况下,FTP使用TCP 21端口进行控制连接,TCP 20端口进行数据连接。主动方式使用TCP 20端口,被动方式由服务器和客户端自行协商决定。
6.3 WWW
- 万维网(www :Wor1d wide Web):是建立在因特网上的一种信息发布系统,是一个大规模的、联机式的信息储藏所。(访问方式称为超链接)
- 万维网以客户服务器方式工作
- 使用统一资源定位符URL来标志万维网上的各种文档,格式**<协议名>://<主机>:<端口>/<路径>/<文件名>**
- 超文本传送协议HTTP来实现万维网上各种超链的链接;HTTP 是一个在计算机世界里专门在「两点」之间「传输」文字、图片、音频、视频等「超文本」数据的「约定和规范」
- HTTP/1.0协议采用非持续连接;HTTP/1.1协议使用持续连接 – 非流水线方式、流水线方式
- HTTP有两类报文 – 请求报文、响应报文
- 1xx表示通知信息的,如请求收到了或正在进行处理;2xx表示成功,如接受或知道了;3xx表示重定向,表示要完成请求还必须采取进一步的行动;4xx表示客户的差错,如请求中有错误的语法或不能完成;5xx表示服务器的差错,如服务器失效无法完成请求。
- 万维网使用Cookie产生唯一的识别码,Cookie是一种对无状态的HTTP进行状态化的技术。
- 超文本标记语言HTML使万维网文档能在因特网上各种计算机上显示出来
- 搜索引擎使用户能够很方便地找到所需的信息
6.4 DHCP
- 互联网广泛使用的动态主机配置协议 DHCP (Dynamic Host Configuration Protocol) 提供了即插即用连网 (plug-and-play networking) 的机制。
- 传输层为DHCP和SMTP提供的服务分别是UDP、TCP
6.5 e-mail
- 电子邮件(E-mail)是因特网上最早流行的一种应用,并且仍然是当今因特网上最重要、最实用的应用之一
- 电子邮件系统采用客户/服务器方式
- 电子邮件系统的三个主要组成构建:用户代理,邮件服务器以及电子邮件所需的协议
- 常用的邮件发送协议是简单邮件传送协议SMTP(为解决SMTP传送非ASCII码文本提出了多用途因特网邮件扩展MIME)
- 常用的邮件读取协议为邮局协议POP3;因特网邮件访问协议IMAP
受或知道了;3xx表示重定向,表示要完成请求还必须采取进一步的行动;4xx表示客户的差错,如请求中有错误的语法或不能完成;5xx表示服务器的差错,如服务器失效无法完成请求。- 万维网使用Cookie产生唯一的识别码,Cookie是一种对无状态的HTTP进行状态化的技术。
- 超文本标记语言HTML使万维网文档能在因特网上各种计算机上显示出来
- 搜索引擎使用户能够很方便地找到所需的信息