计算机网络原理
第一章计算机网络体系结构
以太网,因特网,互联网,互连网的区别
- 以太网(Ethernet)是一种局域网技术,用于在局域网内部连接计算机。以太网协议定义了数据如何在局域网中传输和传递的规则。
- 因特网(Internet)是一种广域网技术,可以连接世界各地的计算机,使它们能够相互通信和交换信息。互联网则是指由多个计算机网络互相连接而成的全球性网络。
- 互联网(Internet)上,人们可以通过各种设备和技术(例如计算机、手机、路由器等)与世界各地的信息进行交互。
- 互连网(internet)是互联网的一个更具体的术语,指的是由多个网络设备和系统通过协议和技术相互连接在一起的网络,形成一个整体。
万维网(World Wide Web,缩写为WWW)是互联网上的一个全球性信息系统,是由许多互相链接的超文本文档组成的系统。它最初由英国科学家蒂姆·伯纳斯-李于1989年发明,并在1991年对外公布,是互联网最为广泛使用的服务之一。万维网的本质是超文本信息的全球信息库。它使用客户端和服务器的模式来传输和显示信息。用户可以使用浏览器访问万维网,通过超链接浏览网页上的各种信息。万维网的普及和发展极大地改变了人们获取信息和交流的方式,成为了现代信息时代的重要组成部分。
TCP/IP是指传输控制协议(Transmission Control Protocol)与因特网协议(Internet Protocol)的合称,是一种网络通信协议集合。TCP/IP协议是计算机互联网络的核心协议之一,它规定了互联网中数据如何封装、传输、路由和接收的标准。TCP/IP协议具有以下几个层次:
- 应用层(Application Layer):用于定义应用程序与网络之间的通信协议,例如HTTP、FTP、SMTP等。
- 传输层(Transport Layer):用于提供端到端的通信,确保数据的可靠传输。其中,TCP协议提供可靠的传输服务,而UDP协议则提供无连接、不可靠的传输服务。
- 网络层(Internet Layer):用于定义网络设备之间的通信协议,其中IP协议是其中最重要的协议之一,用于定义数据如何在网络中传输,以及如何在不同网络间传输。
- 数据链路层(Data Link Layer):用于定义数据在物理媒介上传输的方式,以及如何访问传输介质,例如以太网、无线局域网等。
- 物理层(Physical Layer):用于定义数据在物理媒介上传输的电气、机械、功能和规程等特性。
综上所述,TCP/IP协议是因特网通信协议的基础,其定义了数据的传输方式、路由和接收规范,保证了网络中数据的可靠传输和接收。
光猫
光猫(Optical Network Terminal,ONT)是一种用于光纤接入的网络终端设备,也称为光接入机。光猫的作用是将光纤传输的光信号转化成电信号,再通过网线等物理媒介将信号传输给计算机、路由器等设备,实现宽带网络接入。
光猫通常由网络运营商提供,并与光纤光缆相连。光猫一般包含多个端口,可以连接多台设备,支持多种网络接入方式,如以太网、WiFi等,使得用户可以方便地接入宽带网络,并享受高速稳定的网络体验。
光猫往上一级是什么
光猫通常是连接到网络服务提供商(ISP)的设备,比如连接到光纤或者电缆调制解调器(Cable Modem),或者连接到电话线路调制解调器(DSL Modem)。这些设备是连接到互联网的“门户”,负责将本地网络的信号传输到ISP并接收ISP传回的信号,从而实现上网访问。因此,光猫往上一级通常是光纤或电缆线路提供商的设备。
互联网的标准化工作
互联网的标准化工作主要由互联网工程任务组(IETF)和互联网协会(ISOC)等组织来负责。
其中,IETF是一个由工程师和学者组成的国际性组织,致力于制定互联网的技术标准和协议,例如IP协议、HTTP协议、SMTP协议等等。IETF的标准化过程采用“请求评论”(RFC)的方式,即由工程师提出标准草案,其他工程师进行评论和修改,直至最终通过并发布为RFC标准。RFC标准被广泛应用于互联网的软件开发、系统运维和通信等方面。
另外,ISOC是一个非营利性组织,致力于维护和推广互联网的健康发展,其中一个重要的工作就是推广IETF标准,以及与政府、企业、学术界等利益相关者进行合作,共同推动互联网的发展。ISOC还主办了许多国际性的互联网会议,提供交流和合作的平台,促进互联网技术和应用的创新。
通过这些组织和标准化工作,互联网得以实现跨越地域和时空的信息共享和交流,为人类社会带来了前所未有的变革和机遇。
rfc形式
RFC(Request for Comments)是一种文档形式,用于记录Internet社区中新的技术、标准和协议等方面的想法、讨论和规范。
RFC通常是由个人、组织或工作组起草,然后提交给Internet工程任务组(IETF)进行审查和标准化。RFC文档经过了广泛的评论和修改之后,可能会被正式采纳为互联网标准。
RFC文档以ASCII文本格式编写,并包含了详细的技术规范、实现建议、协议说明、网络安全建议等方面的内容。RFC文档的编号也成为了该文档的唯一标识符。例如,HTTP协议的第1个版本的RFC编号为RFC 1945。
解释一下互联网的组成
互联网是由许多网络相互连接组成的全球性计算机网络。它的组成主要包括以下几个方面:
- 网络设备:互联网是由许多网络设备连接而成的,包括路由器、交换机、光纤、网卡等等。这些设备通过不同的协议来实现互联网的连接与传输。
- 网络协议:互联网中最重要的协议是TCP/IP协议,包括IP协议、TCP协议、UDP协议等等。它们负责数据的传输、路由、地址分配等等。
- 互联网服务提供商(ISP):互联网服务提供商是连接用户和互联网的桥梁,包括电信运营商、有线电视公司、卫星通信公司等等。
- 网络应用和服务:互联网上有很多应用和服务,如电子邮件、聊天工具、搜索引擎、社交媒体、在线购物等等。这些应用和服务依赖于互联网的基础设施和协议,为用户提供了丰富多彩的网络体验。
互联网的组成
工作方式
- 边缘部分——由所有连接互联网上的主机组成,用户直接使用 C/S p2p
- 核心部分——由大量网络和与其连接的路由器组成,为边缘部分提供服务 电路、报文、分组交换
C/S和P2P的区别
C/S (Client/Server) 和 P2P (Peer-to-Peer) 是两种常见的网络架构模型,它们的区别主要在于网络中数据的传输方式和管理方式。
在 C/S 模型中,客户端和服务器是分别独立存在的两个实体,客户端向服务器发送请求,服务器处理这些请求并返回数据给客户端。这种模型中服务器起到了主导的作用,客户端则是从服务器获取数据并进行处理。例如,网上购物网站就是一个典型的 C/S 模型,用户通过客户端浏览商品,选择购买并提交订单,服务器处理订单并返回购买结果。
在 P2P 模型中,所有节点都是平等的,每个节点既可以是客户端,也可以是服务器,节点之间直接进行数据交换,不存在中心化的服务器。这种模型中每个节点都可以主动向其他节点发送请求或者提供服务,节点之间的数据流动是多向的,没有固定的数据流向和中心节点。例如,文件分享网站就是一个典型的 P2P 模型,用户可以上传和下载文件,并且在下载文件的同时也在向其他用户分享自己的文件。
总的来说,C/S 模型适用于集中管理、需要有稳定服务端和高并发的应用场景,例如企业管理系统、电子商务网站等;而 P2P 模型适用于去中心化、需要大量节点共享数据、没有中心服务器的应用场景,例如文件分享、点对点通信等。
互联网的核心部分
网络核心部分起到特殊作用的是路由器,它是实现分组交换的关键构件,任务是转发收到的分组
- 电路交换:在通信时先建立一条专用电路,数据沿着这条电路进行传输,通信结束时断开电路。这种交换方式适用于通信质量稳定且数据传输量大的情况,如传统电话网络。
- 报文交换:将数据拆分成报文后进行传输,每个报文都包含源地址、目的地址和控制信息。这种交换方式适用于需要短时间内传输少量数据的情况,如电子邮件。
- 分组交换:将数据拆分成固定大小的数据包,每个数据包都包含源地址、目的地址和控制信息。这种交换方式适用于需要快速传输大量数据的情况,如互联网。
电路交换的主要特点有:
- 建立连接:在通话前,需要建立一条独占的物理路径,也就是电路,来连接通话双方的终端设备和交换设备。
- 通话:一旦电路建立成功,通话双方就可以直接通话,不需要其他的转发设备。
- 释放连接:通话结束后,需要释放连接,这条电路就不再使用。
分组交换主要特点
分组交换是一种通过将数据分割为一定大小的数据包并沿着网络传输的通信方式。其主要特点包括:
- 分组交换不需要建立连接,每个数据包独立传输,可以更加灵活和高效地利用网络资源。
- 分组交换使用存储转发方式,即在数据包传输过程中,每个中间节点需要先将接收到的数据包存储在缓存中,等待下一跳传输的时候再发送。
- 分组交换的传输时延较大,因为需要在每个中间节点进行缓存和转发,同时还需要进行拆包和组包的操作,会增加网络的延迟和负载。
- 分组交换的网络控制比较复杂,需要对数据包进行处理、转发、排队等操作,而且需要对网络拓扑和负载进行动态管理和优化,以保证网络的性能和可靠性。
- 分组交换具有天然的网络共享特性,即多个用户可以同时使用网络资源,而且不会相互干扰,从而可以实现高效的网络资源利用和共享。
常见的分组交换技术包括IP(Internet Protocol)和ATM(Asynchronous Transfer Mode)等。
分组交换是计算机网络中一种重要的数据传输方式,它的主要特点包括:
-
数据被分割成多个数据包进行传输:在分组交换中,数据被分割成多个独立的数据包进行传输,每个数据包包含了完整的控制信息、地址和数据。这种方式可以提高网络带宽的利用率,适用于大量数据传输的场景。
-
采用存储转发方式:在分组交换中,数据包到达路由器或交换机时,会被先存储在缓存中,然后再根据目的地址转发到下一个路由器或交换机。存储转发方式可以确保数据包能够正确传输,并且可以缓解网络拥塞问题。
-
动态路由选择:在分组交换中,路由器会根据当前网络状况和拓扑结构等信息,动态地选择最优的路径将数据包转发到目的地。这种方式可以提高网络的灵活性和可靠性,同时也可以适应网络拓扑结构的变化。
-
延迟和丢包率较高:在分组交换中,每个数据包都需要在路由器或交换机中进行存储和转发,这会导致较大的时延和丢包率。因此,分组交换更适用于非实时数据传输的场景,比如文件传输和电子邮件等。
-
网络传输协议:为了实现分组交换,需要在计算机网络中使用一系列的网络传输协议,包括IP协议、TCP协议、UDP协议等,以确保数据包能够正确传输。这些协议构成了分组交换的基础架构,为计算机网络的运行提供了支持。
介绍一下存储转发技术
存储转发是一种分组交换技术,它的主要思想是在交换节点(如路由器)中,对接收到的分组进行缓存,直到完整的分组接收完毕,然后再转发到下一个节点或者目的地。具体来说,存储转发技术有以下特点:
- 接收和发送的速率不需要相同。当接收速率大于发送速率时,交换节点可以缓存多个分组并逐个发送。当发送速率大于接收速率时,交换节点可以暂停转发,等待接收节点处理完毕再继续转发。
- 分组在交换节点中需要存储一段时间。这就需要一定的缓存空间,以及一些算法来管理存储空间,避免出现拥塞和丢包等问题。
- 分组交换是无连接的,因此每个分组都包含了足够的信息来让交换节点独立地对其进行转发。这样,在整个网络中就可以动态地选择最优路径,以便在最短时间内完成数据传输。
存储转发技术相对于电路交换技术的主要优点在于,它可以更好地利用网络带宽和资源,同时也具有更高的可靠性和灵活性,因此被广泛应用于现代计算机网络中。
报文交换和分组交换的区别
报文交换和分组交换都是计算机网络中常见的交换技术,它们之间的主要区别在于传输单位不同。
报文交换是指在通信时传输整个报文,报文是由一组有意义的信息组成的数据单元。在报文交换中,发送端将整个报文发送到网络中,路由器在转发时需要接收完整的报文并进行路由选择,然后再将整个报文发送给下一个路由器或接收方。因此,报文交换需要较大的存储空间和较长的传输时间,但可以保证报文的完整性和可靠性。
分组交换是指将报文分割成固定大小的数据单元(即分组或数据包),并通过网络单独传输每个分组。在分组交换中,发送端将报文分割成若干个分组,并为每个分组添加必要的头部信息,用于标识该分组的发送方、接收方、序号、长度等信息。然后,这些分组通过网络分别传输到接收方,接收方再将分组组装成完整的报文。分组交换可以实现并行传输,从而提高了网络的传输效率,但也存在分组丢失、分组乱序等问题,需要采用一定的差错控制和流量控制机制来保证网络的可靠性和稳定性。
计算机网络的性能
速率
bit/s k、M、G、T、P、E、Z、Y
带宽
- 信道的带宽:信号具有的频带的宽度(Hz)
- 网络带宽:“最高数据率”bit/s,网络设备所支持的最高速度
吞吐量
受网络的带宽或网络的额定速率的限制
时延
- 发送时延=数据帧长度/发送速率
- 传播时延=信道长度/电磁波在信道上传播的速率
- 处理时延——等待输入
- 排队时延——检错、找出口
时延带宽积——带宽充满有多少bit
以bit为单位的链路长度
往返时延RTT
=2*传播时延+排队处理+发送时延
利用率
信道利用率或网络利用率过高就会产生非常大的时延
一些较大主干网的ISP通常控制信道利用率不超过50%
协议和层次划分
协议
- 语法——数据和控制信息的结构或格式
- 语义——逻辑部分、协议设计的关键
- 同步——事件实现顺序的详细说明
分层
- 各层之间相互独立
- 灵活性好
- 结构上可分割开
- 易于实现和维护
- 能促进标准化工作
- 差错控制
- 流量控制
- 分段和重装
- 复用和分用
- 连接建立和释放
体系结构是抽象的,实现是具体的
五层协议体系结构
OSI七层体系结构、TCP/IP四层体系结构
下面的协议对上面的实体是透明的
两个对等实体之间的通信使得本层能够为上一层提供服务
应用层
数据单元称为报文
通过进程间的交互来完成特定网络应用、应用程序间通信和交互的规则
运输层
向两台主机中进程间的通信提供通用的数据传输服务
- 传输控制协议TCP——面向连接可靠的传输服务,单位是报文段
- 用户数据报协议UDP——无连接尽最大努力的,传输单位是用户数据报
网络层
为不同主机提供通信服务,将报文段或用户数据报封装成包或分组进行传送——IP数据报
通过路由器连接起来
数据链路层
将IP数据报组装成帧(Ethernet、PPP
物理层
比特传输
其他
互联网的哪部分对数据进行管理审查
在互联网中,各个国家或地区的政府或者其他机构可能会对数据进行管理和审查。这通常是通过法律、政策或技术手段实现的。例如,在中国大陆,政府部门实行了广泛的网络审查和过滤,以屏蔽涉及政治敏感话题、色情内容、反政府言论、宗教内容等的网站和应用程序。其他国家和地区也可能会采取类似的手段进行网络管理和审查。
网络代理是绕过了什么
网络代理是指在访问互联网时,通过代理服务器转发网络请求的一种方式。一般情况下,代理服务器处于本地与互联网之间,客户端的网络请求先发送到代理服务器,再由代理服务器发送请求到互联网。在这个过程中,代理服务器会替代客户端的真实IP地址向互联网发送请求,实现了隐藏客户端的真实IP地址的目的。
使用网络代理可以绕过一些限制,比如企业对员工上网的限制、地区限制等。此外,网络代理也可以提高上网速度和保护隐私安全等。
什么是科.学上网
科.学上网一般指通过某些手段,让用户在网络上绕过网络限制,访问被封锁或受限制的网站和服务。这通常发生在一些限制言论自由和网络信息自由的国家和地区,例如中国大陆、伊朗、北韩等。科.学上网的方式可以包括使用代理服务器、VPN、V.2Ray、SSR、机场等等,通过这些方式可以改变网络的访问路径,绕过网络审查,让用户访问被封锁的网站和服务。
中国大陆的网络审查是什么
中国大陆的网络审查是指对于互联网上的内容进行审查和过滤,以控制信息传递和保持政治稳定。该审查由国家互联网信息办公室和其他政府机构实施,主要是通过技术手段和法律法规进行。具体措施包括但不限于:屏蔽特定网站、监控和过滤网络关键词、审查和过滤社交媒体和即时通讯应用等。这种审查措施在中国大陆被称为“网络封锁”、“网络审查”或“墙内墙外”,对于访问全球互联网上的一些网站和服务产生了一定的限制和影响。
如何进行网络审查
网络审查通常是通过技术手段和人工审核来实现的。以下是一些网络审查的方法:
- DNS污染:在墙内的DNS服务器中,将一些被封锁的网站域名解析到无效的IP地址上,导致用户无法访问。
- IP封锁:通过防火墙等技术手段,直接屏蔽被封锁的网站的IP地址,使得用户无法通过该IP地址访问目标网站。
- URL过滤:对于一些被封锁的网站,可以对其URL进行过滤,通过关键词匹配或者正则表达式等方法来实现。
- 内容审查:通过人工或自动化程序对网络上的信息进行监控和审核,对于敏感内容进行拦截和删除。
- 网络监控:使用网络监控技术对用户的网络流量进行监控,对于敏感信息进行拦截和处理。
这些技术手段在不同国家和地区可能有所不同,但是其目的都是限制用户访问某些特定的网站或者内容,以达到政治、社会、文化等方面的控制。
光纤作为一种传输介质,相比于传统的电信号传输介质(如铜线),具有以下优势:
-
速度快:光纤传输的信号是光信号,光的速度是远高于电信号的。在光纤中,光信号的传输速度通常可以达到光速的约2/3(即20万公里/秒),比传统的铜线快得多。
-
容量大:光纤具有很高的带宽,可以同时传输多路高速数据流,因此可以承载更多的信息。同时,光纤还可以通过光的频分复用技术,将不同频率的信号混合在一条光纤中传输,进一步提高了传输容量。
-
信号衰减小:由于光在光纤中传输时的衰减很小,因此信号传输的距离可以很长,甚至可以达到几百公里以上。而铜线等传统的电信号传输介质在传输距离较长时,信号会因为阻抗、电磁干扰等问题导致衰减、失真。
因此,光纤在传输速度、容量和信号质量等方面具有很大的优势,可以更好地满足人们对于高速、高容量、高质量的数据传输需求。
第二章物理层
2.1基本概念
- 机械特性——接口的接线器接插件有严格的标准化规定
- 电气特性——规定电压范围、传输速率、距离限制
- 功能特性——某一电平电压的意义
- 过程特性——物理线路的工作规程和时序关系
2.2数据通信的基础知识
源系统(发送方)——源点、发送器、接收器、终点
传输系统(传输网络)
目的系统(接收方)
信道的基本概念
- 单向通信(单工)
- 双向交替通信(半双工)
- 双向同时通信(全双工)
信道编码与调制
将基带信号(在数字信道上传输)进行调制 低频→高频 调制后的信号叫做 带通信号
(1)常用编码方式
曼切斯特编码:将时钟和数据包含在数据流中 以太网采用该种编码方式
(2)基本的带通调制方法——调制为模拟信号
- 调幅(AM),即载波的振幅随基带数字信号而变化。例如,0或1分别对应于无载波或有载波输出。
- 调频(FM),即载波的频率随基带数字信号而变化。例如,0或1分别对应于频率f1或f2。
- 调相(PM),即载波的初始相位随基带数字信号而变化。例如,0或1分别对应于相位0度或180度。
正交振幅调制——更高的信息传输速率,4倍于2进制,有16种状态
数据传输速率
- 码元传输速率——单位时间内传播的码元个数,单位波特(Baud)/s
- 信息传输速率——码元传输速率*log2(进制数) 进制数或叫 有效离散值
信道极限容量
失真影响因素
- 码元传输速率
- 信号传输距离
- 噪声干扰
- 传输媒体质量
码间串扰——频率过高,码元速度过快导致码元间界限不清楚,无法识别
信道能够通过的频率范围
在奈氏准则和香浓定理中取最小值
奈氏准则——为了避免码间串扰,规定码元传输最高速率为采样频率2W(码元/秒)(超过这个速率则不能识别
W:信道带宽(Hz)
香农定理——信道的带宽或信道中的信噪比越大,信息的极限传输速率越高
信噪比——信号的平均功率/噪声的平均功率,S/N
2.3物理层下面的传输媒体
- 导引型传输媒体
- 双绞线:屏蔽/无屏蔽双绞线
- 同轴电缆
- 光缆:带宽大
- 传输损耗小,中继距离长
- 抗雷电和电磁干扰性能好
- 无串音干扰,保密性好
- 体积小,重量轻
- 非导引型传输媒体
- 无线电波
- 微波——卫星通信、地面微波接力通信
- 红外线、激光
2.4信道复用技术
频分复用、时分复用、统计时分复用
- 频分复用FDM——(并行)各路信号在不同频率位置,互不干扰。各路信号在同样的时间占用不同的带宽资源
- 用户被分配频率后,自始自终都占用这个频段
- 时分复用TDM——(并发)所有用户在不同的时间占用同样的频带宽带
多用户信号→>复用器——分用器<→多用户
- 统计时分复用STDM——改进的时分复用,明显提高了信道的利用率,谁先来谁先发
STDM帧的时隙数小于用户数,按需动态分配时隙
波分复用WDM
就是光的频分复用,光纤通信
码分复用CDM
不同编码方式→多路复用
码分多址CDMA:各用户使用经过特殊挑选的不同码型,各用户间不会干扰,有很强的抗干扰能力
每一个站(用户)被分配一个唯一的m bit的码片序列,码片序列间必须正交(相互无干扰)
正交:将两站的码片分别用向量S和T表示
一个码片的向量和该码片反码的向量的规格化内积值为-1
规格化内积:就是内积结果再除以向量的维数,如向量s(1,2,3)点乘向量t(7,8,9)的规格化内积为(1 * 7+2 * 8+3 * 9)/ 3 = 50 / 3
第三章数据链路层
- 点对点信道 PPP
- 广播信道 CSMA/CD
基本问题:封装成帧、透明传输、差错检测
以太网MAC层的硬件地址
适配器、转发器、集线器、网桥、以太网交换机的作用和使用场合
3.1数据链路层的基本问题
数据链路和帧
数据链路——将实现链路层协议的硬件和软件加到链路上
帧——点对点信道的数据链路层的协议数据单元
三个基本问题
- 封装成帧——添加帧定界(首部SOH和尾部EOT)
- 透明传输——文件中正常不会出现帧定界控制字符,若出现(二进制代码的程序或图像)则在前面填入转义字符ESC
- 差错检测——循环冗余检测CRC(详见计算机组成原理
3.2点对点协议PPP
由三部分组成:
- LCP链路控制协议
- NCP网络控制协议
- 一个将IP数据报封装到串行链路的方法
特点:
- 简单——对于链路层的帧,无需纠错,无需序号,无需流量控制
- 封装成帧——帧定界符
- 透明性
- 多种网络层协议——IP数据报可以采用多种协议
- 多种类型链路——串/并行、同/异步、电/光
- 差错检测——出错丢弃
- 检测连接状态
- 最大传送单元——数据最大长度MTU
- 网络层地址协商——双方网络层地址
- 数据压缩协商
常用于广域网,将IP数据报封装到串行链路 只支持全双工通信
3.3使用广播信道的数据链路层
3.3.2 CSMA/CD协议
(Carrier Sense Multiple Access with Collision Detection)
在链路层进行广播通信方式 只能实现半双工通信
在以太网(5km以内)进行 单播通信——不是发送给自己的数据帧直接丢弃
以太网采用以下两种措施:
- 不可靠的交付,以太网尽最大努力的交付——无连接的工作方式,不进行编号 也不要求对方发回确认
- 对有差错帧是否重传由高层决定
- 一段时间只能允许一台计算机发送数据(通过CSMA/CD协议进行协调
- 曼切斯特编码——所占频带宽度比原始基带信号增加一倍
CSMA/CD要点:
Carrier Sense Multiple Access with Collision Detection
- MA“多点接入”——总线型网络
- CS“载波监听”——边发送边监听,每个站必须不停地检测信道
- ①若检测已经有其他站在发送,本站则等待
- ②在发送中检测信道发现有其他站也在发送,则立即中断本站的发送
- CD“碰撞检测”——由于存在传播时延(电磁波在1km电缆的传播时延为5μs),一旦检测信道出现“空闲”,可能会有多个站同时发送,产生碰撞。
一般将单程 端到端 传播时延 记为τ
截断二进制指数退避——若A和B同时发送数据失败,存在遭遇碰撞的可能性是不确定的
碰撞窗口(争用期)——在发送数据帧之后至多经过时间2τ就能知道所发送的数据帧是否遭遇碰撞 信号在最远两个端点之间往返传输的时间
经过争用期之后还没有检测到碰撞,则这次发送不会发送碰撞
- 基本退避时间为争用期2τ,具体时间为51.2μs,(对10Mbit/s以太网在争用期可发送512bit)是512比特时间
- 重传时间t=2τr,从第i次重传分布在[0,1,2,3,4,…,2^i - 1]共2^i个时间槽内,则第i次重传碰撞的概率为2^-i,i = min[重传次数,10].
- 第一次重传i=1,从{0,1}中选择r,概率为0.5再次碰撞,重传时间为0或2τ
- 第二次重传i=2,从{0,1,2,3}中选择r,概率为0.25再次碰撞,重传时间为0,2τ,4τ,6τ
- 第三次重传i=3,从{0,1,2,3,4,5,6,7}中选择r,概率为0.125再次碰撞
- 重传时间达到16次仍不成功,则丢弃该帧,并向高层报告
若发送帧太短,在发送完毕前没有检测到碰撞,则误以为帧不会碰撞,就不会重传,所以要加入填充字节使其不小于64B(以太网最小帧长)(但凡长度小于64B的帧都是由冲突和异常终止的无效帧,收到则立即丢弃
CSMA/CA协议
Carrier Sense Multiple Access with Collision Avoidance
适用于无线局域网 CA“碰撞避免”
令牌传递协议
3.3.3使用集线器的星型拓扑
星型拓扑逻辑上等同于总线,运行CSMA/CD协议 局域网
集线器——工作在物理层,不进行碰撞检测
3.3.4以太网的信道利用率
以太网(Ethernet)(IEEE 802.3)——无连接、不可靠的服务 尽最大努力交付 运行CSMA/CD协议
定义参数a:
a越小,信道利用率越高——以太网连线的长度受到限制、以太网的帧长不能太短
极限信道利用率Smax:
3.3.5以太网的MAC层
MAC地址——IEEE802标准制定 固化在适配器(网卡)的ROM的地址
- 单播帧——一对一,收到的MAC帧与本站的相同
- 广播帧——一对全体
- 多播帧——一对多,发送本局域网上的一部分站点的帧
V2 MAC帧的格式(V2为长度
3.4扩展的以太网
3.4.1在物理层使用集线器将以太网扩展,在网络层看仍是一个网络 速率向下兼容且相同,以最小的为准
3.4.2在数据链路层扩展以太网
以太网交换机
多端口的网桥,链路层设备,实现全双工通信,独占传输媒体,无碰撞地传输数据
具有多速率的端口,允许不同端口分别工作在不同的速率上
- 交换机的端口有存储器,在繁忙时将到来的帧进行缓存
- 即插即用 内部的 交换表 用过 自学习算法 进行建立
- 专用的交换结构芯片
以太网交换机的自学习功能
A向B发送一帧
交换机收到帧先查找交换表中B的地址(表中填写A-1) if(找到B地址)发送该帧 else 对帧进行广播发送,使B收到(过滤——其他站收到但因目的地址不匹配而丢弃)
有效时间——超过预设的时间后自动删除重写,以即使更新交换表中的项目
采用生成树协议STP——使路径为无环路的树状结构,消除广播时兜圈子现象(广播风暴)
3.4.3虚拟局域网VLAN
只是局域网给用户提供的一种服务,不是新型局域网
插入VLAN标签后需要重新计算FCS
不同VLAN相互通信需要借助路由器
第四章网络层
——实现网络互联
- 虚拟互联网络和两种服务、两个层面的概念
- 转发
- IP地址和MAC地址的关系(ARP)
- 路由选择
- 静态路由
- 动态路由
- RIP——内部,应用层协议 UDP封装,距离-向量算法
- OSPF——内部,网络层协议 IP封装,链路状态算法
- BGP——外部,应用层协议 TCP封装,路径-向量算法
某个协议是属于哪一层的:一个协议的实现需要依赖协议所在层次的下一层功能。
4.1网络层的重要概念
两种服务
- 面向连接——建立虚电路VC(Virtual Circuit)(逻辑上建立),使分组无差错按序到达终点(不丢失、不重复)
- ⭐尽最大努力交付(向运输层)、简单、无连接——网络层不提供服务质量的承诺(而由运输层负责差错控制、流量控制等),使路由器比较简单
两个层面
路由器传送的信息:
- 转发源主机(S)和目的主机(D)之间的数据——路由器不断接力给下一跳
- 传送路由信息——路由选择协议算法所需,交换信息分组、创建路由表
于是将网络层抽象划分为:
- 数据层面——根据转发表进行转发
- 控制层面——控制和管理网络协议的运行(OSPF、RIP、BGP协议)
(控制和数据层面在一个路由器内)
※SDN控制层面——通过远程控制器将控制层面从路由器中真正的分离(路由器只实现数据层面,路由选择处理器与远程控制器通信获得转发表)
4.2网际协议IP
与IP协议配套使用的三个协议:
- 地址解析协议ARP(Address Resolution Protocol)——用于动态地完成IP地址向MAC地址的转换
- 网际控制报文协议ICMP(Internet Control Message Protocol)——是一个专门用于发送差错报文的协议,由于IP协议尽力传送 所以需要一种尽量避免差错并能在发生差错时报告的机制
- 网际组管理协议IGMP(Internet Group Management Protocol)——允许Internet中的计算机参加多播,是计算机用做向相邻多目路由器报告多组成员的协议
4.2.1虚拟互联网络
中间设备:
- 物理层——转发器/集线器
- 数据链路层——网桥/桥接器、交换机
- 网络层——路由器
- 网络层以上——网关
4.2.2IP地址
IP地址及其表示方法
IPv4采用点分十进制法进行表示:192.168.1.1
分类的IP地址
特殊IP地址:
- 0.-.-.x——本网络特定主机
- 0.0.0.0——本网络本主机
- 127(01111111).x.x.x——环回测试
- 255.255.255.255——目的地址在本网广播(路由器不转发)
- x.-.-.0——网关号
- x.-.-.255——对特定网络上的所有主机进行广播(广播分组
子网划分
无分类编制CIDR
——作用是把小的子网汇聚成大的超网
IP地址后写“/”,后加网络前缀 e.g. 192.168.1.1/20
- 消除了传统的A类,B类和C类地址以及划分子网的概念
- 融合子网地址与子网掩码,方便子网划分
特殊地址块:
- 前缀n=32,没有主机号,用于主机路由
- 前缀n=31,主机号只有0和1,用于点对点链路(无编号网络/匿名网络)
- 前缀n=0,地址全0(0.0.0.0/0),用于默认路由
路由聚合(构造超网)
——压缩转发表所占空间,减少查表时间
子网(地址)掩码——快速求出网络地址
前缀全1,剩余全0 将子网掩码与IP地址进行按位AND(逻辑乘法)运算=网络地址
4.2.4地址解析协议ARP
——同一局域网 IP→MAC
主机设有ARP高速缓存(ARP cache)存有本局域网上IP-MAC的映射表
若在ARP cache中查不到目的IP地址:
- ARP进程在本局域网 广播发送ARP请求分组
- 目的主机收到后单播返回ARP响应分组(找不到最后由路由器返回网关地址
- 收到ARP响应分组后,在ARP cache中写入该IP与MAC的映射
每一个映射地址项目都设置生存时间
ARP协议4种典型情况:
- 主机A发给本网络上的主机B——用ARP找到主机B的硬件地址;
- 主机A发给另一网络上的主机B——用ARP找到本网络上一个路由器(网关)的硬件地址;
- 路由器发给本网络的主机A——用ARP找到主机A的硬件地址;
- 路由器发给另一网络的主机B——用ARP找到本网络上的一个路由器的硬件地址。
4.2.5IP数据报的格式
- 版本【4位】:IPv4或IPv6
- 首部长度【4位】:单位是32bit(4字节),比如:首部最小长度为20字节,此时为:0101(5);因此可以推测首部最大长度为15*4字节=60字节,而且数据部分永远是4字节的倍数。
- 区分服务【8位】:旧称服务类型,1998改为Differentiated Services
- 总长度【16位】:首部和数据之和。单位字节,因此数据报最大长度为2^16-1字节 65535
- 标识【16位】:超过MTU分片时,同一源的该字段相同,便于重新组装
- 标志【3位】:
- MF【1位】:More Fragment,1还有分片,0分片最后一个
- DF【1位】:Don’t Fragment,0允许分片
- 片偏移【13位】:较长分组后,某片在原分组的相对位置,单位8字节
- 生存时间【8位】:TTL,Time To Live,数据包在网络中的寿命,现用跳数为单位
- 协议【8位】: 指出携带数据使用的协议,便于目的主机IP层对应协议处理
- ICMP(1)、IGMP(2)、IP(4)、TCP(6)、EGP(8)、IGP(9)、UDP(17)、IPv6(41)、ESP(50)、OSPF(89)
- 首部校验和【16位】:只校验数据报首部,不包含数据部分,每经过一个路由器都会重新校验
- 源地址【32位】
- 目标地址【32位】
- 可选字段 填充(全0以对齐)
IP数据报分片
——若传送的数据超过链路的最大传送单元MTU,则分片
- 各分片标识相同
- 标志(DF为0时 MF有意义)
- 片偏移某片在原分组的相对位置(除最后一个分片,每个分片一定是8B的整数倍)
- 总长度单位1B
- 片偏移单位8B
- 首部长度单位4B
4.3IP层转发分组的过程
4.3.1基于终点的转发
——逐跳转发,利用MAC地址传送到下一跳路由器的链路层
4.3.2最长前缀匹配
路由聚合带来的问题——前缀匹配(B公司聚合的地址)却找不到地址
∴采用CIDR编址时,一个分组在转发表中有多个可匹配的前缀,则选择前缀最长的进行匹配——最长前缀匹配
(按前缀由长到短排在转发表中,查找时就之间从上往下查找即可)
转发表特殊路由
- 主机路由(x.x.x.x/32)——用于控制和测试网络
- 默认路由(0.0.0.0/0)——表中全都不匹配则交给0.0.0.0,即下一跳路由器处理(间接交付)
路由器转发分组的算法:
- 提取目的IP地址D
- 是否直接交付
- 特定主机路由
- 检测路由表中有无路径,前缀匹配
- 默认路由0.0.0.0
- 丢弃,报告转发分组出错
4.3.3二叉线索查找转发表
4.4网际控制报文协议ICMP
- ICMP差错报告报文
- 终点不可达——无法交付
- 时间超过——TTL=0(Traceroute)
- 参数问题——首部阻断有问题
- 改变路由(重定向)——有更优路径路由选择
- 源点抑制——路由器拥塞丢弃IP分组
- 不发送ICMP差错报文情况
- 对ICMP差错报文不再发送ICMP差错报文
- 第一个分片的数据报片的所有后续数据报片都不发送
- 具有多播(组播)的数据报不发送
- 对特殊地址(127.0.0.0或0.0.0.0)的数据报不发送
- ICMP询问报文
- 回送请求和回送回答——测试目的站是否可达以及了解相关状态(ping命令)
- 时间戳请求和时间戳回答——用来进行时钟同步和测量时间
4.5IPv6
4.5.1IPv6的基本首部
- 更大的地址空间
- 扩展的地址层次结构
- 灵活的首部格式
- 改进的选项
- 允许协议继续扩充
- 即插即用,不需要DHCP协议
- 支持资源的预分配
- IPv6首部改为8字节对齐
- 版本(Version)——版本字段用来表示IP数据报使用的是IPv6协议封装,占4位,对应值为6(0110)。
- 通信量类(Traffic Class)——优先级
- 流标号(Flow Label)——流标签字段时IPv6数据报中新增的一个字段,占20位。在特定源点到特定终点(单播或多播),这个“流”所经过的路由器上保证指明的服务质量(对音视频传输有用)
- 有效载荷长度(PayLoad Length)——除了IPv6的基本首部以外的其他部分的总长度,占20位。
- 下一个首部(Next Header)——下一个头部字段用来标识当前报头(或者扩展报头)的下一个头部类型,占8位。转发路由器只需处理必须处理的扩展报头,提高了转发效率。
- 跳数限制(Hop Limit)——指定了报文可以有效转发的次数,占8位。报文每经过一个路由器结点,跳数值就减1,当此字段值减到0时,则直接丢弃该报文。
- 源地址(Source IP Address)——源IP地址字段标识了发送该IPv6报文源节点的IPv6地址,占128位。
- 目的地址(Destination IP Address)——目的IP地址字段标识了IPv6报文的接受节点的IPv6地址,占128位。
IPv6和IPv4区别:
- 取消首部长度字段(首部长度固定40字节)
- 取消服务类型字段,改用优先级和流标号字段实现
- 取消总长度字段,改用有效载荷长度
- 取消标识、标志、片偏移,功能包含在分片扩展首部中
- TTL更名跳数限制字段
- 取消协议字段,改用下一个首部字段
- 取消检验和字段,加快路由器处理数据报速度,之后在运输层进行差错检测
- 取消选项字段,改用扩展首部实现
- IPv6只能在主机处分片,IPv4可在主机和路由器分片
- IPv6即插即用
- IPv6首部为8B整数倍,IPv4是4B整数倍
- IPv6首部扩展到128位(16B)
4.5.2IPv6的地址
- 单播——点对点,可做源地址+目的地址
- 多播——一对多(广播是多播的特例),可做目的地址
- 任播——终点是一组计算机,但数据报只交付其中距离最近的一个,可做目的地址
CIDR的斜线表示法依然可用
IPv6取消了子网掩码
4.5.3IPv4向IPv6过渡
- 双协议栈——一个主机/路由器同时启用IPv4和IPv6两种协议栈,通过DNS查询种类
- ⭐隧道技术——将其他协议的数据报或包重新封装通过隧道发送(原帧作为数据,重新再加上头)
4.6互联网的路由选择协议
4.6.1路由选择协议
- 静态路由选择策略
- 动态路由选择策略(自适应路由选择)
自治系统AS 分层次的路由选择协议:
- 内部网关协议IGP——距离向量,链路状态(一个AS内部使用
- RIP——小网络,应用层 UDP
- OSPF——大网络,网络层 IP
- 外部网关协议EGP——路径向量(AS之间使用
- BGP-4——应用层 TCP
4.6.2内部网关协议RIP
——分布式的基于距离向量的路由选择协议 简单,只适用于小型互联网 应用层协议 UDP报文封装
RIP协议工作原理
不考虑其他因素,只和“距离”有关
“距离”(跳数)——即“最短距离”,从一路由器到直接连接的网络的距离定义为1,每经过一个网络 跳数加1
TTL<=15 TTL=16时相当于不可达
RIP协议的特点:
- 仅和相邻的路由器交换信息
- 交换当前本路由器的路由表(全部信息)
- 按固定时间间隔交换
- 开始工作时,路由表为空
- 得出直接相连的几个网络的距离(为1)
- 每个路由器和数量有限的路由器交换并更新路由信息
- 若干次交换更新后,系统“收敛”(无论怎么交换,信息都不会变),所有路由器都会知道到达本自治系统任何一个网络的最短距离和下一跳路由器的地址
距离向量算法
1.新建
修改相邻路由器发来的RIP报文中所有表项 对地址为x的相邻路由器发来的RIP报文,修改此报文中的所有项目:把“下一跳”字段中的地址改为X,并把所有的“距离”字段+1。
2.更新
if(R1路由表中无Net3) 将该项目填入R1路由表
else {
if(下一跳==X) 更新替换
else{
if(新来的距离更短) 更新替换
else 不做处理
}
}
3.若3min还没有收到相邻路由器X的更新路由表,则把x记为不可达的路由器,即把距离设置为16
4.返回
坏消息传得慢(缺点)
4.6.3内部网关协议OSPF
网络层协议 IP报文封装 开放最短路径优先OSPF 使用大规模互联网 收敛速度快(不存在坏消息传得慢)
1.基本特点
- 使用洪泛法向本AS中所有路由器发送信息——路由器通过所有输出端口向所有相邻的路由器发送信息(广播
- 发送的信息是本路由器相邻的所有路由器的链路状态
- 当链路状态发生变化或每隔一段时间(如30min),路由器才向所有路由器洪泛发送此信息。
最后,所有路由器都能建立一个链路状态数据库,即全网拓扑图。
OSPF使用层次结构划分
- 区域边界路由器 R3、R4、R7
- 主干路由器 R34567
- 自治系统边界路由器 R6
2.链路状态路由算法
- 每个路由器发现它的邻居结点【HELLO问候分组】,并了解邻居节点的网络地址。
- 设置到它的每个邻居的成本度量metric。
- 构造【DD数据库描述分组】,向邻站给出自己的链路状态数据库中的所有链路状态项目的摘要信息。
- 如果DD分组中的摘要自己都有,则邻站不做处理;如果有没有的或者是更新的,则发送【LSR链路状态请求分组】请求自己没有的和比自己更新的信息。
- 收到邻站的LSR分组后,发送【LSu链路状态更新分组】进行更新。
- 更新完毕后,邻站返回一个【LSAck链路状态确认分组】进行确认。
- 使用Dijkstra根据自己的链路状态数据库构造到其他节点间的最短路径。
4.6.4外部网关协议BGP
联系其他自治系统AS 应用层协议 TCP报文封装
1.协议BGP主要特点
- 与其他AS的邻站BGP发言人交换信息。
- 交换的网络可达性的信息,即要到达某个网络所要经过的一系列AS。
- 发生变化时更新有变化的部分。
2.BGP协议交换信息的过程
BGP发言人交换路径向量
3.BGP四种报文
- OPEN(打开)报文——用来与相邻的另一个BGP发言人建立关系,并认证发送方。
- UPDATE(更新)报文——通告新路径或撤销原路径。
- KEEPALIVE(保活)报文——在无UPDATE时,周期性证实邻站的连通性;也作为OPEN的确认。
- NOTIFICATION(通知)报文——报告先前报文的差错;也被用于关闭连接。
4.6.5路由器的构成
路由器是一种具有多个输入端口和多个输出端口的专用计算机,其任务是转发分组。
增添一条默认路由,子网掩码和目的地址都为0.0.0.0
- 间接交付——发送站目的站不同网段,间接交付最后一个路由器肯定是直接交付
- 直接交付——发送站目的站同一网段,不涉及路由器
1.路由器的结构
路由选择、分组转发
输入速率过快,则存入队列 分组处理的速率过慢,后来的分组会被丢弃
2.交换结构
若存储器读/写速度为 M个分组/秒
⬅纵横交换结构(互联网络)
第五章运输层
——找到数据所属程序 进程和进程之间的逻辑通信 复用分用 差错检测
- 无连接的UDP——尽最大努力交付,低延迟数据不要求太准确(实时多媒体应用、客户机/服务器领域、远程调用
- 面向连接的TCP(全双工可靠信道——滑动窗口、流量控制、拥塞控制、连接管理
5.1运输层协议概述
5.1.1进程之间的通信
- 通信的两端的两个主机的应用进程——端到端的通信
- 复用和分用
- 复用:不同的应用进程可以通过同一个运输层协议传送数据
- 分用:接收方的运输层剥去报文首部后 能正确把数据交给不同应用进程
- 差错检测
5.1.2运输层的两个主要协议
- TCP协议——面向连接的服务,尽管下面的网络是不可靠的,但这种逻辑通信信道仍是一条全双工可靠信道
- 开销大 无广博多播 适用于文件精确传输
- UDP协议——不可靠信道 不需要建立连接,不需要确认
- 速度快 适用于直播视频
5.1.3运输层的端口
- MAC、IP——主机
- 端口——进程
- 复用和分用
- 复用:不同的应用进程可以通过同一个运输层协议传送数据
- 分用:接收方的运输层剥去报文首部后 能正确把数据交给不同应用进程
端口号(端口是连接应用层和运输层之间的通道
16位 不同计算机之间端口号没有关联 允许65535个进程
用IP找到主机后,再通过端口号找到进程
- 服务端使用的端口号——统一管理
- 熟知端口号——给TCP/IP最重要的一些应用程序,所有用户都知道 0-1023
- 登记端口号——自己使用,短暂端口 1024-49151
- 客户端使用的端口号——仅在客户进程运行时动态选择 49152-65535
5.2用户数据报协议UDP
5.2.1UDP概述
只在IP数据报服务上添加2个功能
- 复用和分用
- 差错检测
特点:
- 无连接
- 尽最大努力交付
- 面向报文——对应用层的报文既不合并也不拆分(保留报文边界(由应用层进行报文长度的选择
- UDP没有拥塞控制——允许丢失数据,但不许有很大的时延
- 首部开销小(8字节)(TCP20字节
- 支持一对一、一对多、多对一、多对多的交互通信
5.2.2UDP首部格式
检验和是把首部和数据部分一起都检验,不是必须的可以不使用(全0就是
5.3传输控制协议TCP
5.3.1TCP的特点
- 面向连接(虚连接)的运输层协议
- 一条TCP连接只能有两个端点,点对点
- 提供可靠的服务 无差错、不丢失、不重复、按序到达
- 全双工通信 发送缓存和接受缓存
- 面向字节流 TCP把应用程序交下来的数据看成一连串的无结构的字节流(接收方要识别字节流,并还原成有意义的应用层数据
5.3.2TCP的连接
连接的端端点叫套接字(socket)或端口
套接字(socket)=(IP地址:端口号)
每一条TCP连接唯一地被两个端点所确定
TCP连接::={socket1,socket2}={(IP1:port1),(IP2:port2)}
5.4可靠传输的工作原理
TCP下面的网络所提供的是不可靠传输,TCP采取适当的措施使通信变得可靠
5.4.1停止等待协议
——每发完一个分组就停止发送,等待对方ACK
1.无差错情况
2.出现差错
- B检验到差错就丢弃M1
- B不会发送任何信息
- A进行超时重传
- A发完一个分组后都要备份一份(在超时重传时使用)
- 分组和确认分组都必须确认编号
- 超时计时器设置的重传时间比数据平均往返时间RTT更长
3.确认丢失和确认迟到
4.信道利用率
停止等待协议简单,但信道利用率太低
信道利用率
为提高利用率,采用流水线传输(一次发一批
同时使用连续ARQ协议和滑动窗口协议
5.4.2连续ARQ协议
采用发送窗口——窗口内的分组连续发送出去,不需要等待对方的确认
接收方采用累计确认的方式,对按序到达的最后一个分组进行确认
发送窗口+接收窗口<=2^n有序接收:而接收窗口的最小值是1,所以发送窗口最大值是2^n-1;无序接收:发送的可能是乱序的,这就要求接收窗口有很大的尺寸来容纳乱序的序列,也就是说接收窗口至少要和发送窗口一样大,因此为2^n/2=2^(n-1)
后退N帧协议(GBN)
- 累计确认
- 接收方只按序接受帧,无序的直接丢弃
- 确认序号列最大的、按序到达的帧
- 发送窗口最大为2^n-1(留出一个用来对新旧帧进行区别),接受窗口大小为1
选择重传协议(SR)
- 对数据帧逐一确认,收一个确认一个
- 只重传出错帧
- 接收方有缓存
-
5.5TCP报文段的首部格式
- 序号:在一个TCP连接中传送的字节流中的每一个字节都按顺序编号,本字段表示本报文段所发送数据的第一个字节的序号。
- 确认号:期望收到对方下一个报文段的第一个数据字节的序号。若确认号为N,则证明到序号N-1为止的所有数据都已正确收到。
- 数据偏移(首部长度):TCP报文段的数据起始处距离TCP报文段的起始处有多远,以4B位单位,即1个数值是4B。
- 紧急位URG: URG=1时,标明此报文段中有紧急数据,是高优先级的数据,应尽快传送,不用在缓存里排队,配合紧急指针字段使用。
- 确认位ACK:ACK=1时确认号有效,在连接建立后所有传送的报文段都必须把ACK置为1。
- 推送位PSH:PSH=1时,接收方尽快交付接收应用进程,不再等到缓存填满再向上交付。
- 复位RST:RST=1时,表明TcP连接中出现严重差错,必须释放连接,然后再重新建立传输链接。
- 同步位SYN:SYN=1时,表明是一个连接请求/连接接受报文。
- 终止位FIN:FIN=1时,表明此报文段发送方数据已发完,要求释放连接。
- 窗口:指的是发送本报文段的一方的接收窗口,即现在允许对方发送的数据量。
- 检验和:检验首部+数据,检验时要加上12B伪首部,第四个字段为6。
- 紧急指针:URG=1时才有意义,指出本报文段中紧急数据的字节数。
- 选项:最大报文段长度MSS、窗口扩大、时间戳、选择确认...
5.6TCP可靠传输
5.6.1以字节为单位的滑动窗口
缓存空间和序号空间都是有限的,且循环使用 发送窗口最好等于接受窗口
5.6.2超时重传时间的选择
5.6.3选择确认SACK
5.7TCP流量控制
——发送方发送速率不要太快,让接收方来得及接收
利用滑动窗口实现流量控制
发送窗口<接收窗口(单位字节 主机B能控制主机A发送窗口的大小 建立连接时B告诉A:接收窗口rwnd=400
零窗口计时器
上图之后,B的接受缓存有了一些空间,于是 B向A发送rwnd=400的报文段 但是报文段丢失——死锁
则在主机A设置持续计时器——时间到期则发送 零窗口探测报文段(1字节)让B重传
5.8TCP拥塞控制
——对资源需求的总和>可用资源(资源供不应求 全局性
拥塞控制和流量控制
对于拥塞控制
- 开环控制——在设计网络时就把可能拥塞的因素考虑周到
- 闭环控制——基于反馈环路,实时地检测控制
5.8.2TCP拥塞控制算法
发送窗口=Min{接受窗口rwnd,拥塞窗口cwnd}
- 接受窗口——接收方根据接受缓存设置的值,并告知给发送方,反映接收方容量。
- 拥塞窗口——发送方根据自己估算的网络拥塞程度而设置的窗口值,反映网络当前容量。
1.慢开始和拥塞避免
当超时重传计时器启动或收到3个重复的确认(3-ACK)则判断出现拥塞
设置 慢开始门限ssthresh=16;cwnd=1;
if(cwnd<ssthresh){ //慢开始算法 cwnd*=2; //一收到确认就开始翻倍 }else{ //拥塞避免算法 cwnd++; if(出现网络拥塞){ ssthresh=cwnd/2; //新门限值 cwnd=1;//再次慢开始 } }
2.快重传和快恢复
if(cwnd<ssthresh){ //慢开始算法 cwnd*=2; //一收到确认就开始翻倍 }else{ //拥塞避免算法 cwnd++; if(ACK-3){ ssthresh=cwnd/2; //新门限值 cwnd/=2;//快恢复 }else if(超时){ ssthresh=cwnd/2; //新门限值 cwnd=1; //慢开始 } }
5.8.3主动队列管理
路由器队列按照FIFO规则处理
尾部丢弃进行超时重传,会同时影响很多条TCP连接,于是在同一时间都进入慢开始状态——全局同步
为了避免全局同步,采用主动队列管理AQM——主动提前检测丢弃队尾,错峰重传
随机早期检测RED(陈旧的
设置最小门限和最大门限
- 平均队列长度<最小门限——入队排队
- 最小门限<平均队列长度<最大门限——按照概率P进行丢弃
- 最大门限<平均队列长度——丢弃
5.9TCP运输连接管理
建立连接——数据传送——连接释放
TCP连接建立采用客户服务器的方式
5.9.1TCP的连接建立
三报文握手建立TCP连接
5.9.2TCP连接释放
四报文握手
第六章应用层
——对应用程序的通信提供服务
应用层的功能:
- 文件传输、访问和管理
- 电子邮件
- 虚拟终端
- 查询服务和远程作业登录
应用层的重要协议:
- FTP
- SMTP、POP3
- HTTP
- DNS
网络应用模型:
C/S模型
P2P模型
- 不存在永远在线的服务器
- 每个主机既可以提供服务,也可以请求服务
- 任意端系统/节点之间可以直接通讯
- 节点间歇性接入网络
- 节点可能改变IP地址可扩展性好
- 网络健壮性强
域名系统DNS
将域名通过DNS服务器解析成IP地址进行访问
mail.cctv.com
三级域名 二级域名 一级域名
- 顶级域名
- 国家顶级域名cn,us,uk
- 通用顶级域名com,net,org,gov,int,aero,museum,travel
- 基础结构域名/反向域名arpa
- 二级域名
- 类别域名ac,com,edu,gov,mil,net,org
- 行政区域名用于我国各省、自治区、直辖市bj,js
- 三级……
域名服务器
域名解析过程
在主机中和本地域名服务器设置高速缓存
文件传输协议FTP
基于C/S的协议
- 控制连接始终保持
- 数据连接保持一会
- 是否使用TCP 20端口建立数据连接与传输模式有关
- 主动方式使用TCP 20端口
- 被动方式由服务器和客户端自行协商决定(端口>1024)
FTP传输模式
- 文本模式:ASCI模式,以文本序列传输数据;
- 二进制模式: Binary模式,以二进制序列传输数据。
电子邮件
主体结构
- 信封——abc@gmail.com
- 内容
- 首部——To:abc@163.com
- 主体
组成结构
简单邮件传送协议SMTP
SMTP规定了在两个相互通信的SMTP进程之间应如何交换信息。
负责发送邮件的SMTP进程就是SMTP客户,负责接收邮件的进程就是SMTP服务器。
SMTP规定了14条命令(几个字母)和21种应答信息(三位数字代码+简单文字说明)。
SMTP的缺点:
- SMTP不能传送可执行文件或者其他二进制对象
- SMTP仅限于传送7位.ASCII码,不能传送其他非英语国家的文字。
- SMTP服务器会拒绝超过一定长度的邮件。
邮局协议POP3
网际报文存取协议IMAP
IMAP协议比POP协议复杂。当用户Pc上的IMAP客户程序打开IMAP服务器的邮箱时,用户可以看到邮箱的首部,若用户需要打开某个邮件,该邮件才上传到用户的计算机上。
IMAP可以让用户在不同的地方使用不同的计算机随时上网阅读处理邮件,还允许只读取邮件中的某一个部分(先看正文,有WiFi的时候再下载附件)。
基于万维网的电子邮件
万维网和HTTP协议
万维网WWW (World Wide Web)是一个大规模的、联机式的信息储藏所/资料空间,是无数个网络站点和网页的集合。
用户通过点击超链接(http;//www.baidu.com)获取资源,这些资源通过超文本传输协议(HTTP)传送给使用者。
万维网以客户/服务器方式工作,用户使用的浏览器就是万维网客户程序,万维网文档所驻留的主机运行服务器程序。
万维网使用超文本标记语言HTML)使得万维网页面设计者可以很方便地从一个界面的链接转到另一个界面,并能够在自己的屏幕上显示出来。
超文本传输协议HTTP
HTTP协议定义了浏览器(万维网客户进程)怎样向万维网服务器请求万维网文档,以及服务器怎样把文档传送给浏览器。
HTTP协议的特点
- HTTP协议是无状态的。
- 但是在实际工作中,一些万维网站点常常希望能够识别用户。 →Cookie
- Cookie是存储在用户主机中的文本文件,记录一段时间内某用户(使用识别码识别,如“123456")的访问记录。
- 提供个性化服务
- HTTP采用TCP作为运输层协议,但HTTP协议本身是无连接的(通信双方在交换HTTP报文之前不需要先建立HTTP连接)。
HTTP协议的连接方式
HTTP的报文结构