《计算机网络原理》复习笔记
笑死,17上午考完拓扑,18下午才开始正式复习网原,这就是拓扑带给我的自信(
注:不全,以后也多半不会补全,建议还是自己复习233
Chapter1 Introduction (85P)
NAT(课件上提到现在很多人使用NAT访问网络,但是没介绍NAT是啥,奇怪捏):网络地址转换,又称IP动态伪装,是一种在IP数据包通过路由器或防火墙时重写来源或目的IP地址或端口的技术。这种技术普遍应用于有多台主机,但只通过一个公有IP地址访问互联网的私有网络中。 NAT技术部署方便,且得到了广泛应用。然而,NAT也让主机之间的通信变得复杂,导致了通信效率的降低。
本来想手写加深记忆,但笔总是断水+手写实在太慢了,还是转成电子记录吧。
互联网标准化组织:
IETF:负责Internet协议的研发和改进,维护RFC(互联网工程任务组)
IRTF:由一些专注某领域长期发展的研究小组组成(互联网研究任务组)
IAB:负责定义Internet的整体框架,为IETF提供大方向上的指导
IESG:在技术方面管理IETF的活动,负责Internet标准的制定过程
互联网的核心思想:分组交换
Baran的分组交换网络:
自适应系统:热土豆路由策略,不知道正确的路由就将分组转发给所有邻居,通过观察路过的分组来更新路由表。不需要每次都沿着最短路转发,但可以学习并适应变化的环境。
分组发送:每个交换节点根据自己的路由表判断如何转发分组,每个分组的转发都独立于其他分组;
分布式系统:所有交换节点是平等的,部件可以失效但整个系统不会失效,系统的健壮性来自于足够的硬件冗余+自适应路由
两种可靠系统:
Baran这种:建立在简单的、不可靠部件上的可靠系统。聪明的终端,可以修正传输错误。
电话系统:笨终端,聪明的网络,需要确保每个部件都可靠,需要人工配置的、高度控制的系统。
分组交换的特点:简单性(可以适应爆炸性增长),灵活性(支持各种底层网络,各种应用),可扩展性,健壮性
今天的互联网:规模更大、用户更多、功能更多、更有价值;但是,健壮性、适应性和互联程度都下降了
因为IPv4地址耗尽,越来越多的用户通过NAT访问网络。NAT缓解了地址耗尽的问题,但打破了许多协议和应用基于IP地址全球唯一的假设。端到端->多个NAT级联
为了恢复Internet原有结构,过渡到IPv6.
下一代互联网研究:NGI是政府计划,Internet2是大学合作计划。
我国下一代互联网发展战略:CNGI,CERNET2
其实去年关于第一章一共就考了一个选择题问RFC是谁制定(答案是IETF)
Chapter2 Network Architecture (57P)
计算机网络:一批独立自治的计算机系统的互连集合体。(互联的手段是多种多样的,但要按照协议工作)
计算机网络的组成:两级结构,资源子网(端系统:服务器/客户计算机)和通信子网(网络:通信线路/路由器/交换机等)。
基本通信方式:
交换式通信:需要经过交换设备,转发给一个或一组节点;关键技术是路由选择;典型拓扑结构有star,ring,tree……
广播通信:多台计算机共享通信线路,任一台计算机发出的信息可以直接被其它计算机接收。关键技术是通道分配(静态分配/动态分配)典型拓扑结构有bus,ring……
城域网和广域网使用交换式通信;局域网传统使用广播通信,但逐渐变为交换式。
互联网体系结构:
对计算机网络及其部件所完成功能的比较精确的定义,即从功能的角度描述计算机网络的结构,是层次和层间关系的集合。
仅定义网络及部件通过协议应该完成的功能,但不定义协议的具体细节+各层协议间的接口。
计算机网络中提供的功能是分成层次的:
通信功能主要涉及同一层次中通信双方的相互作用;
位于不同计算机上进行对话的第N层通信各方可分别看成是一种进程,称为对等进程
协议(Protocol):计算机网络同等层次中,通信双方进行信息交换时必须遵守的规则。
服务:同一实体上下层间交换信息时必须遵守的规则;
接口:定义了下层向上层提供的原语操作和服务;
协议的组成:语法,语义,定时关系(时序?)
协议分层:目的主机第N层收到的报文与源主机第N层发出的报文相同。协议分层要保证整个系统功能完备高效。
相邻层之间都有一个接口(Interface),它定义了下层向上层提供的原语操作和服务
对于第N层协议:不需要知道其它层的内部结构,独立完成自己的功能,给上层提供服务,使用下层提供的服务。
一些名词解释:
服务访问点SAP:任何层间服务是在接口的SAP上进行的;每个SAP有唯一的识别地址;每个层间接口可以有多个SAP;
服务数据单元SDU:服务实体处理的信息单元;
接口数据单元IDU:IDU是通过SAP传送的层间信息单元;由上层的SDU和接口控制信息ICI组成;
协议数据单元PDU:第N层实体通过网络传送给它的对等实体的信息单元,由上层的SDU和协议控制信息PCI组成;
服务分类:
面向连接的服务:当使用服务传送数据时,首先建立连接,然后使用该连接传送数据。使用完后,关闭连接。顺序性比较好
无连接服务:直接使用服务传送数据,每个包独立进行路由选择。顺序性不好
注意连接不代表可靠。
服务原语:由一组接口原语来描述的。四种类型-请求,指示,响应,确认。
分层的好处,端到端。-都比较显然
计算机网络的标准化:国际电信联盟ITU;国际标准化组织ISO;
OSI参考模型:物理层-数据链路层-网络层-传输层-会话层-表示层-应用层;
TCP/IP参考模型:Host to Network-网络层-传输层-应用层;
TCP/IP中省略了会话层和表示层,这两层的功能被合并到应用层实现。
本课程使用的参考模型:网络层-数据链路层-网络层-传输层-应用层。
OSI网络体系结构:分层模型;服务、接口、协议;
其他网络体系结构:(复习ppt上只写了X.25,我猜别的几个只要见到名字知道是网络体系结构就行了wwww)
Novell NetWare:基本思想是文件共享
X.25:分组交换网,面向连接,支持交换虚电路和永久虚电路;三个英文缩写可以理解为用户终端,互联设备,解包封包。
宽带综合业务数字网B-ISDN:技术基础是ATM(异步传输模式,面向连接)
Chapter3 Data Communication (75P)
傅里叶:信息以电磁波形式传输,电磁信号是时间的函数,也可以表示为频率的函数。
时域观:模拟信号(平滑变化)和数字信号(一段时间内恒定,变成另一个,再恒定)。
频域观:当一个信号的所有频率成分是某一个频率的整数倍时,该频率被称为基本频率,即所有频率的gcd。信号的周期等于基本频率的周期
傅里叶分析:
任何一个周期为T的有理函数->若干个正弦和余弦之和。
算法如下,但我感觉不能考这个吧……
课件上甚至有个例题,就是对一个数字信号算abc
有限带宽信号:频谱(spectrum)是一个信号所包含的频率的范围,如[f,8f];信号的绝对带宽等于频谱的宽度,如7f;信号的主要能量集中在相对窄的频带内,称为有效带宽或带宽。带宽越宽,承载信息能力越强。
信道有截止频率f_c,超过f_c的信号衰减厉害。0-f_c是有效带宽。
波特率:每秒钟信号变化的次数,也称调制速率;比特率:每秒钟传送的二进制位数;
波特率与比特率的关系取决于信号值与比特位的关系,比如如果一个信号能表示3位二进制,那比特率就是波特率的三倍。
以下是例题,我的理解是频率相当于波特率的倒数,因为八位视为一组,所以频率就是1/发送一组所需时间。最高次谐波是指能通过多少个这样的谐波。
奈奎斯特:无噪声有限带宽最大数据传输率$2Hlog_2V (bps)$,任意信号通过一个带宽为H的信道,则每秒采样2H次就能完整地重现该信号,信号电平分为V级.
信噪比:$=10log_{10}\frac{S}{N} (db)$,其中S为信号功率,N为噪声功率。
香农:带宽为H赫兹,信噪比为S/N的任意信道的最大数据传输率为: $Hlog_2(1+\frac{S}{N}) (bps)$,这个是上限,所以要和奈奎斯特取min。注意给出的是信噪比还是S/N
数据通信技术:计算机-信号变换器-信道-网络设备-信道-信号变换器-计算机
信号变换器(编码技术),信道(多路复用),网络设备(交换技术)
传输方式:
点到点/点到多点;
单工(只能单向,监视信号可以回传),半双工(可以双向,但同一时间只能单向),全双工(双向);
同步/异步传输:同步则接收方需要知道信号的开始和持续时间,以报文为单位,可以不间断传输信息所以效率高,而且字符间减少了辅助信息;异步的消息传输以字符为单位,每个字符由发送方异步产生,有随机性,需要起始位,编码,校验位,结束位等,所以每个字符要十几位,效率低。
数据编码:
数字数据的数字传输:
基带传输,指在传输时直接使用原始信号的频带。
NRZ(不归零编码):0表示0,1表示1,坏处是容易产生传播错误
曼彻斯特编码:每一位中间都要跳变,从低->高表示0,从高->低表示1;
差分曼彻斯特编码:每一位中间都跳变。每位开始时有跳变代表0,没有代表1;
逢1变换的NRZ:每位开始时如果是1就变,是0就不变,位间不变。
数字数据的模拟传输:
在一定频率范围内的线路上,进行载波传输。
数字调制变成模拟,解调变回数字,要用到调制解调器。
三种调制技术:振幅、频率、相位。
模拟数据的数字传输:根据Nyquist原理进行采样,将模拟信号分成2^n级,用n位二进制表示
多路复用:TDM:时分复用;FDM:频分复用;WDM:波分复用;CDM:码分复用;
交换技术:动态地接通、断开、切换通信线路,称为“交换”
电路交换:直接连接通信双方,麻烦。一般采用时分复用
报文交换:信息以报文为单位存储转发
分组交换:以分组为单位存储转发,分为数据报分组交换/虚电路分组交换。
虚电路分组交换是电路交换和分组交换的结合:数据以分组形式传输,来自同一流的分组通过一个预先建立的路径(虚电路)传输,确保分组的顺序。
Chapter4 Physical Layer (38P)
物理层:提供机械的、电气的、功能的和规程的特性。在两个设备间进行透明的比特流传输。
机械特性:规定一些很机械的东西。
电气特性:规定电压高低等电气类特性。
功能特性:主要定义各条物理线路的功能(数据、控制、定时、地)
规程特性:定义各条物理线路的工作规程和时序关系。
竟然写了好几页超级细节的物理特性,不管了,跳跳
传输介质:
双绞线:可以模拟传输也可以数字传输;
基带同轴电缆:数字传输;
宽带同轴电缆:模拟传输;
光纤:通过全反射进行长距离传输;根据能反射的角度有多少分为多模(适合短距离)/单模(适合长距离);都支持同时多个波长,所以可以波分复用。
SONET/SDH:采用TDM技术,是同步系统。
移动电话网络:单方向的寻呼系统;蜂窝电话以前只能传语音,4G可以语音/数据。模拟蜂窝电话可以全双工。
Chapter5 Data Link Layer (115P)
如何在有差错的线路上,进行无差错传输。功能上和规程上的方法,建立维护数据链路。
链路(link):通信路径上连接相邻结点的通信信道
点到点:相邻节点通信;端到端:源节点-目的节点。
基本功能:正常传输、组帧(定界同步)、差错控制;顺序控制和流量控制可选。
为网络层提供三种服务:
无连接无确认:适合错误率很低的线路,大部分局域网;
有确认无连接:适用于不可靠信道如无线网;
有确认有连接;
组帧:将比特流分成离散的帧,并计算每个帧的校验和。
字符计数法:在帧头中用一个域来表示整个帧的字符个数
带字符填充的字符定界法:起始字符 DLE STX,结束字符DLE ETX,如果真的出现DLE了就写两次。
带位填充的标记定界法:帧的起始和结束都用一个特殊的位串 “01111110”,称为标记(flag);遇到连续五个1时在后面加一个0防止误判;
物理层编码违例法:只适用于物理层编码有冗余的网络。802 LAN:曼彻斯特编码的1-1/0-0用于定界。
码字(codeword):一个帧包括m个数据位,r个校验位,n = m + r,则此n比特单元称为n位码字
为了检查出d个错(比特错),可以使用海明距离为 d + 1 的编码
为了纠正d个错,可以使用海明距离为 2d + 1 的编码
奇偶校验:在数据后填加一个奇偶位。可以检查出奇数个错误。
纠错码:
检错码:循环冗余码(CRC码,多项式编码)
110001,表示成多项式 x5 + x4 + 1
生成多项式提前约定好,生成多项式应该比传输信息对应的多项式短,且最高位最低位均为1
校验和(checksum)加在帧尾,使带校验和的帧的多项式能 被G(x)除尽;收方接收时,用G(x)去除它,若有余数,则传输出错。
计算方法是先补多项式次数个0,然后类似除法的方法……异或,取余数
无约束单工协议:单工,发送方一直传,接收方一直收,也不考虑出错。
单工停等协议:接收方每收到一帧要返回一个响应帧;
有噪声信道的单工协议:
可能出错,要考虑重传;
发送帧头放入序号,为了简单,序号取1位;
如果确认帧没有序号,则协议3有漏洞(没懂想表达什么)
滑动窗口协议:
单工->全双工
发送的信息帧都有一个序号,从0到某个最大值,0 ~ 2^n-1,一般用n个二进制位表示
发送端始终保持一个已发送但尚未确认的帧的序号表,称为发送窗口。发送窗口的上界表示要发送的下一个帧的序号,下界表示未得到确认的帧的最小序号。发送窗口大小 = 上界 - 下界,大小可变;
发送端每发送一个帧,序号取上界值,上界加1;每接收到一个确认序号=发送窗口下界的正确响应帧,下界加1;若确认序号落在发送窗口之内,则发送窗口下界连续加1,直到发送窗口下界=确认序号+1(累计确认)
接收端有一个接收窗口,大小固定,但不一定与发送窗口相同。接收窗口的上界表示允许接收的最大序号,下界表示希望接收的序号
接收窗口容纳允许接收的信息帧,落在窗口外的帧均被丢弃。序号等于下界的帧被正确接收,并产生一个响应帧,上界、下界都加1。 接收窗口大小不变
捎带:暂时延迟待发确认,以便附加在下一个待发数据帧的技术;充分利用信道带宽,减少帧的数目意味着减少“帧到达”中断但比较复杂。
一比特滑动窗口协议(协议4):
窗口大小=1,发送和接收序号均为0/1
可进行数据双向传输,信息帧中可含有确认信息
甚至感觉和单工停等没啥差别,能保证无差错传输,但是基于停等方式;若双方同时开始发送,则会有一半重复帧;效率低,传输时间长。
退后n帧重传(协议5)
发送窗口>1,接收窗口=1
接收方从坏帧起丢弃所有后继帧,发送方从坏帧开始重传
由于有多个未确认帧,需要设多个计时器
选择重传(协议6):
发送窗口>1,接收窗口>1
接收方可暂存坏帧的后继帧,发送方只重传坏帧,需要比较大的缓冲区
要求发送窗口尺寸+接收窗口尺寸<=序号个数,否则如果确认帧丢了会出问题。
看了PPT上模拟滑动窗口的例题,感觉非常神秘,大概就是一定要记住,确认时发的是“下一个想要接收的帧”,以及如果是选择重传,可能收到的不是完全按顺序。
协议说明与验证:
协议工程与协议的形式化描述技术
协议说明、验证、实现、测试
形式化描述技术:自动机、形式化语言模型、Petri网、进程代数
状态机描述协议3:
你说得对,但我真的感觉记这种东西毫无意义,所以Petri不看了,干脆“你问我不会,它考我后悔”。
常用的数据链路层协议:
高级数据链路控制规程HDLC:使用滑动窗口技术,3位序号,发送窗口大小为7
X.25的链路层协议LAPB:面向比特,是HDLC子集
PPP: Point-to-Point Protocol,以帧为单位发送而不是原始IP包。面向字符;
真的没意思……背这干啥呢
算法:
信道利用率的公式是$=\frac{w}{2BD+1或2}$ 如果确认帧长度可以不管就是1,否则是2
协议5,回退n帧协议,发送窗口最大为序号个数减一
协议6,选择重传协议,为避免新老序号范围重叠,发送窗口最大为序号个数的一半
这里的B是帧/s
Chapter6 Mac Sublayer (106P)
局域网发展趋势:高传输率,低距离,低错误
高速,400G Ethernet
无线,无线局域网 IEEE 802.11
信道分配:
点到点:广域网;广播信道:局域网;
解决信道争用的协议称为介质访问控制协议 MAC (Medium Access Control),是数据链路层协议的一部分
静态分配:频分复用,时分复用;
动态分配:
多路访问协议:控制多个用户共用一条信道的协议
ALOHA:用户有数据要发送时,可以直接发至信道;然后监听信道看是否产生冲突,若产生冲突,则等待一段随机的时间重发。
冲突危险区:一个帧时内产生不止一帧;
分槽ALOHA:把信道时间分成离散的时间槽,槽长为一个帧所需的发送时间。每个站点只能在时槽开始时才允许发送。冲突危险区是纯ALOHA的一半,减少了冲突概率
CSMA:为发送帧而访问传输信道之前,首先监听信道有无载波
1-坚持型CSMA:若站点发现信道空闲,则发送;若信道忙,则继续监听直至发现信道空闲,然后完成发送;若产生冲突,等待一随机时间,然后重新开始发送过程;
非坚持性CSMA:若信道忙,等待一随机时间,然后重新开始发送过程;若产生冲突,等待一随机时间,然后重新开始发送过程;
p-坚持性CSMA:若站点发现信道空闲,则以概率p发送数据,以概率q =1- p 延迟至下一个时槽发送。若下一个时槽仍空闲,重复此过程,直至数据发出或时槽被其他站 点所占用;若信道忙,则等待下一个时槽,重新开始发送;若产生冲突,等待一随机时间,然后重新开始发送;
CSMA/CD:如果站点边发送边监听,并在监听到冲突之后立即停止发送,可以提高信道的利用率
竞争时间槽(确认发生冲突)需要2倍电缆传输时间
最小帧的发送时间不能小于竞争时间槽,否则检测会出问题
以太网使用曼彻斯特编码。
无冲突协议:比如基本位图、二进制下数
有限竞争:适应树搜索,无线局域网(IEEE802,MACA)
IEEE 802协议:
引入LLC子层(逻辑链路控制子层)
介质访问控制子层 MAC
中继器是物理层设备
又是一些细节的以太网,真不想看了
IEEE 802.5 令牌环:一个站要发送帧时,需要抓住令牌,并将其移出环。屏蔽双绞线,差分曼彻斯特;
FDDI光纤分布式数据接口;
网桥技术:网桥(bridge)是工作在数据链路层的一种网络互连设备,它在互连的LAN之间实现帧的存储和转发。
为什么要用:因为LAN太远
冲突域:在使用CSMA/CD协议的以太网中,如果两个站点同时发送帧会产生冲突,则这个CSMA/CD网络就是一个冲突域;
中继器不能隔离冲突域,网桥/交换机可以隔离冲突域
连接k个不同LAN的网桥具有k个MAC子层和k个物理层
网桥接收到一帧后,通过查询地址/端口对应表来确定是丢弃还是转发
网桥刚启动时,地址/端口对应表为空,采用洪泛(flooding)方法转发帧
在转发过程中采用逆向学习(backward learning)算法收集MAC地址。
网桥通过分析帧的源MAC地址得到MAC地址与端口的对应关系,并写入地址/端口对应表
网桥软件对地址/端口对应表进行不断的更新,并定时检查,删除在一段时间内没有更新的地址/端口项
注意,洪泛也不会往源地址泛
网桥生成树:
每个桥广播自己的桥编号,号最小的桥称为生成树的根
每个网桥计算自己到根的最短路径,构造出生成树,使得每个LAN和桥到根的路径最短
如果跳数相同,那么选择标识符更小的邻居
Chapter7 Network Layer (182P)
Chapter8 Transport Layer (67P)
传送层:消除网络层的不可靠性,提供从源主机的进程到目的主机的进程的可靠的,与实际使用的网络无关的数据传送。
传送层实体(完成传送功能的软硬件)利用网络层提供的服务向上层提供有效、可靠或尽力而为的服务。
两种服务:
面向连接:连接建立,数据传送,连接释放;
无连接
1-4层称为传送服务提供者,4层以上称为传送服务用户。
传送服务原语:listen,connect,send等。传送用户(应用程序)通过传送服务原语访问传送服务。
简单连接管理:
不对称:任何一方都可以关闭双向连接;
对称:每个方向的连接分别关闭,都关了才会关闭整条连接。
Berkeley Socket:
一个服务程序和几个远程客户程序利用面向连接的传送层服务完成通信。
服务程序调用socket建立一个新的套接字,分配表空间;调用bind将一个地址赋予该套接字,使得远程客户程序可以访问;调用listen分配数据空间,用来存储用户的连接建立请求。调用accept阻塞服务程序,等待客户端的连接请求。(如果过程中有新的TPDU,则用子进程处理)
传送层编址:
标识传送服务访问点TSAP(Transport Service Access Point),将应用进程与这些TSAP相连。
在互联网中TSAP表示为(IP address, port)
远程用户如何获得服务端TSAP?广为人知、提前约定、从专门的服务器获取。
名称服务器:一个特殊的进程称为名称服务器或目录服务器(TSAP众所周知);用法是客户端问问名称服务器服务进程的TSAP;
进程服务器:
连接管理:
两次握手不行,因为网络层会丢包,或者缓存TPDU导致重复发包
解决延迟重复包的关键是丢弃过时的包
三次握手:A发出序号为X的CR TPDU;B发出序号为Y的CC TPDU,确认A的序号为X的包;A发出序号为X+1的CR TPDU,并确认B的序号为Y的包。
可以证明不存在安全的通过N次握手实现对称式连接释放的方法,但使用三次握手 + 定时器的方法释放连接在绝大多数情况下是成功的。
传送控制协议TCP:面向连接的、可靠的、端到端的、基于字节流的传送协议
套接字地址用(IP地址,端口号)来表示,256以下的端口号被标准服务保留,例如FTP(21),TELNET(23)
每条连接用(套接字1,套接字2)来表示,是点到点的全双工通道
不支持多播和组播
基于字节流,所以消息的边界在端到端传送中不被保留。
传送实体之间使用的TPDU称为段(segment),每个段包含一个20字节的头(选项部分另加)和0个或多个数据字节
段的大小要满足65535字节的IP包数据限制,还要满足数据链路层的MTU的限制。
使用滑动窗口协议,确认序号等于接收方希望接收的下一个字节序号(笑死,看了=没看,看到最后习题里ACK=三万多才意识到这是什么意思)
连接管理:三次握手;可靠传送:滑动窗口;流控制和拥塞控制:慢启动,拥塞避免
若两个主机同时试图建立彼此间的连接,则只能建立一条连接
TCP传送策略:
窗口管理机制:基于确认和可变窗口大小;窗口大小为0则一般不能发送,但紧急数据可以发,1字节的可以发,用来重新确认窗口大小。
改进传送层性能:发送方缓存,比较多的时候再发;接收方延迟发送确认;当应用程序每次向传送实体发出一个字节时,传送实体发出第一个字节并缓存所有其后的字节直至收到对第一个字节的确认。然后将已缓存的所有字节组段发出并对再收到的字节缓存,直至收到下一个确认(没懂,但他说好就好吧);Clark算法,解决字节特别少但扰乱窗口更新的问题.
TCP拥塞控制:
两个潜在因素:网络转发能力和接收方接收能力
两种情况:缓存太小、网络太慢
应对第一种情况:采用可变滑动窗口,在确认中声明最大可接收窗口;
应对第二种情况:采用拥塞窗口,按照慢启动和拥塞避免等算法变化。
然后TCP按照两种窗口的最小值发送。
慢启动:
建立时拥塞窗口大小为该连接允许的最大段长MSS,阈值为64K
发出一个最大段长的TCP段,若收到正确确认,则拥塞窗口变为两个最大段长
发出(拥塞窗口/最大段长)个最大长度的TCP段,若都得到确认,则拥塞窗口加倍
重复上一步,直至发生丢包产生的超时事件,或拥塞窗口大于阈值
窗口大小在每个RTT周期内指数增长
拥塞避免:
当拥塞窗口大于阈值时,拥塞窗口开始线性增长,一个RTT周期增加一个最大段长,直至发生丢包产生的超时事件
超时事件发生后,阈值设置为当前拥塞窗口大小的一半,拥塞窗口重新设置为一个最大段长
执行慢启动算法
emm,看了一下群里的讨论,大概是这样的:慢启动阶段并不是全收到后窗口*2,而是每ACK一个窗口+1,全收到后相当于窗口*2;线性增加阶段更神秘,每收到一个+1/窗口大小,全收到后相当于窗口+1;(理论上每次加的分母,即窗口大小是不断变化的,但可以视为达到窗口+1的效果前分母不变)
网上找了一个很好的介绍,感觉就是每次收到包都会回复,所以比如发了3,4,5,6,但是4丢了,就会返回3,3,3;然后就会触发快速重传了。以及这次ack会返回7,所以56不用重传。
检测丢包:计时器超时,收到三个重复确认ACK;
快速重传:三个重复ACK后不再等待计时器超时。阈值设置为当前拥塞窗口大小的一半,拥塞窗口重新设置为一个最大段长,然后慢启动。
拥塞控制分析:
太慢则浪费带宽;太快则导致拥塞;
公平分配:希望共享相同瓶颈链路的用户得到相同带宽;
按照两个用户的情况进行考虑:(看了好久终于懂了,就是如果两个人加起来超过了1,则一起减小,否则一起增大,看看能不能走到公平线上)
用户数据协议UDP:无连接的端到端传送协议
每个UDP报文独立,延迟小+很方便,没有拥塞控制发得快
但是可能会乱序(
经常用于流媒体,因为可以容许丢包+效率敏感
也用于RIP,DNS,SNMP,基于UDP的可靠传送(应用程序自己错误恢复)
UDP头有32bit,src port, dst port, length, checksum.
Chapter9 Application Layer (68P)
作业里一个应用层的题也没有……但往年选择题好像还不少aaa
一个进程(线程)是运行于主机上的一个程序,在同一主机上的进程(线程)利用操作系统提供的IPC通信,在不同主机上运行的进程利用应用层协议进行通信。
用户代理是指用户与网络应用程序间的接口。
应用程序编程接口API:定义应用程序和传送层之间的接口;IP地址指明该进程所在的主机,端口号指明该主机应该把收到的数据交给哪个当地进程;
每个程序对数据丢失/带宽/延迟的容忍度不一样。
客户-服务器模型:一般是客户发出请求,服务器响应。服务器需要支持并发。服务器软件一般分为接受请求并创建新线程,和处理实际通信请求两部分。
域名:ip地址比较难记,所以需要ip-符号地址转换机制。
域名系统DNS:
是一个典型的客户/服务器交互系统
多层次的、基于域的命名系统,并使用分布式数据库实现这种命名机制
请求以UDP段格式发出;本地域名无法解析时会成为上级服务器的客户端,继续解析直到解析完成。
域名是由.分开的字符,数字串组成的,大小写无关。
互联网顶级域名分为组织结构和地理结构两种。
简单网络管理系统SNMP:基于UDP,性能管理、故障管理、配置管理、记账管理和安全管理。
SNMP分为被管理节点,管理工作站,管理信息,管理协议四部分。
抽象语法表示法1(ASN.1):对象定义语言,可以作为异种计算机设备之间“对象”描述和传输的表示方法。基本编码规则BER
管理信息结构SMI,管理信息库MIB:啥啊……大概SMI是SNMP在ASN.1的基础上加了点东西弄出来的管理信息结构,不管了
电子邮件SMTP:撰写、传输、报告、显示、处理;基于TCP;
其他电子邮件协议:POP3,IMAP;加密电子邮件协议:PGP,PEM;
WWW模型:
Web页面+浏览器+Web服务器+超文本传输协议http;
URL:协议类型,对象服务器地址,包含对象的路径名
HTTP:
使用TCP,80端口;无状态协议;
非持久连接:服务器解析请求,发出响应报文后关闭连接,每个object的取得都至少需要两个RTT,每个Object重新慢启动。
持久连接:在同一个TCP连接上,服务器解析请求,响应,再解析……
Web cache(proxy server):浏览器将所有http请求发给Web缓存,目标是不访问源服务器而满足用户的请求。
FTP文件传输协议:端口21,使用TCP,建立两个并行的TCP(控制+传数据);数据连接可以双向使用,控制用的是telnet;