2022秋季学期 计算机网络原理 期末复习笔记

CH1

核心思想:分组交换

1969 arpanet 56kbps

1979 TCPIP

光线:骨干网带宽9个月翻倍,10年10000倍。

迈特咖啡:价值正比于用户数平方,效率是n方

电话vs网络:聪明网络笨终端和聪明终端(修复传输错误)简单不可考网络

分组交换:简单、灵活(支持各种物理网络和应用)、可扩展、健壮(牺牲带宽利用但健壮

ipv4耗尽,用nat支撑破坏原有网络结构,需要过渡到ipv6

CERNET是我不过第一个全国性计算机互联网络,第二大计算机互联网

下一代互联网

Internet2 NGI Abilene GEANT…中国NSFCNET 核心路由器 CNGI

CNGI下一代,高速互联 ipv6 cernet2主干 大规模国产设备

Ch2 网络体系结构

定义和组成

一批独立自治的计算机系统的互连集合体,区别于统一的分布式系统

资源和通信子网(通信线路+网络互联设备)

广播式通信 bus、ring 共享线路,可以直接被接受

交换式通信 交换设备选择输出,star ring(loop) tree… 关键需要routing

通道分配:静态分时间片、动态(集中or分布仲裁)

网络体系结构

从功能定义层次结构,但不规定具体协议和细节、接口

功能分层——协议分层——体系结构分层

需要什么功能:无差错、共享物理线路、路由选择、信息缓冲、流量控制、会话控制…

特点:同时一对用户、通信是相互的、分散在各个网络和用户设备

服务:同一实体上下层间交换信息时必须遵守的规则

协议(Protocol) : 计算机网络同等层次(通信时为对等进程)中,通信双方进行信息交换时必须遵守的规则。——语法、语义、定时关系

n层协议:不知道上下层内部结构,独立完成功能、为上层提供服务,使用下层服务

SAP服务接入点 任何层间服务是在接口的SAP上进行的,有唯一的识别地址,层间接口有多个SAP

ICI和SDU加一起是IDU,也就是下层服务数据+接口控制信息=接口数据单元。通过SAP传输。下层服务数据+协议控制信息=协议数据单元

image-20221029163310637

  • 无连接:独立路由,顺序性差,基于连接不一定可靠,顺序性好

  • 服务原语四种类型:请求:想干事情、指示:关于事件的通知、响应:对事件回复、确认:对先前请求的回应

  • 分层的好处:模块化,抽象功能(底层改变保证服务一致即可),复用性 坏处:信息被隐藏,实现起来更低效

端到端:除了必须和基本功能外,放到高层去实现额外的功能

典型网络参考模型

  • 标准化组织 ITU ISO ANSI NIST IEEE OIF CCSA RFC IAB IETF IRTF

  • OSI七层模型 物理(传输bit)-数据链路(有差错的物理线路提供无差错数据传输Frame)-网络层(控制通信子网,从src传到dst的packet)-传输层(端到端的数据传输,细化到资源子网的主机)-会话(会话控制与安全认证)-表示(数据转换和表示)-应用

  • TCPIP

    把底两层统称Host to network

    网络Internet层:控制通信子网提供IP包传送,异构网络互联

    传输层:端到端的数据传输,TCP和UDP

    应用层:表示、会话、应用,各种管理和服务image-20221029164937847

  • 教学所用 物理 数据链路 网络 传输 应用

其他网络体系结构

Novell Netware(XNS):C/S结构,文件共享而非磁盘共享。网络层协议用IPX,不可靠无连接协议,4网络号+6机器号MAC。传输层NCP、SPX(面向连接

X.25分组交换,面向连接,早于OSI

B-ISDN电信公司想统一网络,主要用ATM技术

ATM 异步传输没有主时钟,cell是短且定长包,面向连接,155/622M’

Summary

通信子网:点到点通道,关键路由选择;

广播通道,关键通道分配;

Ch3

通信基础理论

频谱:信号包含的频率范围,带宽=频谱宽度

有效带宽:能量集中在相对窄的频带中,叫做带宽

信道有截止频率fc,0fc的振幅衰减弱,以上的振幅衰减厉害,由物理特性决定。所以0fc为有限带宽。带宽越宽,

  • 波特率:每秒钟信号变化的次数,调制速率。

    比特率:每秒钟传送的二进制位数

    每个信号值可表示几位,比特率是波特率几倍

  • image-20221029190640955image-20221029190846993

即使对于完善信道,有限的带宽限制了数据的传输速率

  • 奈奎斯特定律:无噪声有限带宽信道最大数据传输率 = 2Hlog(2,V) bps

    带宽为H 每秒采样2H次能够完整重现,信号电平分为V级

  • 信噪比:信号功率S与噪声功率N之比 10log(10,S/N) db 电话大概30db

  • 香农定理:带宽H信噪比S/N的任意信道最大数据传输率 = Hlog(2, 1 + S/N) bps。是难以达到的上限

    如果有噪声按两个公式都算一遍取小者

数据通信技术

  • 数据通信:计算机-信号变换-信道-网络设备-信道-信号变换-计算机

  • 单工:信息单向传输,回送监视信号

    半双工:信息可以双向传输但不能同时

    全双工:信息同时双向传输+监视信号

  • 同步:接收方必须知道每一位信号的开始及其持续时间,

    异步传输:以字符传输为例,每个字符由发送方异步产生有随机性,需要辅助位,每个字符需要10-11位传送

    1起始 7编码 1奇偶校验 1-2终止

    效率低、主要用于字符终端与计算机的通信

    同步传输:信息传送以报文为单位,传输开始时需要同步字符来同步收发双方。传输信息中抽取同步信息修正同步保证正确采样

    不间断,效率高;字符间辅助信息少;传输信息中不能有同步字符,需要透明传输处理

  • 基于位的传输一般同步,二进制位流,以位为单位同步,开始结束由特定八位二进制同步,效率高

    image-20221029192803577

模拟-调制 数字-编码

数字信号:价格便宜;噪声不敏感;但是易于衰减;高频高衰减

  • 基带传输,直接使用传输变换前所占用的频带,原始信号固有的频带,适用各种情况但对传输线要求高(频率成分宽)。低0高1

  • 不归零None return to Zero编码:低0高1,难以分辨一位结束开始;必须有时钟同步发送接受方;若01连续出现,直流分量累加==》容易出现传播错误

  • 曼彻斯特编码、相位编码:中间的跳变是数据也是自同步时钟

    在每位中间跳变,低跳高是0 高跳低是1

  • 差分曼彻斯特(两种):中间固定跳反,且每位开始时候有跳变是0,维持是1

  • 逢1(0)变化的NRZ(两种):仅在开始的时候逢1(0)跳

  • 数字数据的模拟传输 频带传输 在一定频率的线路载波传输,用基带信号对载波调制,使其变为适于传送的信号

    调制:用基带脉冲对载波信号的参量控制

    调幅ASK 振幅做变量

    调频 FSK 频率做变量 w不同值

    调相位 PSK phase phai改变

  • 模拟数据的数字传输 脉冲代码调制 PCM

    将模拟信号振幅分成2^n级,每一级用n位表示,采样

    差分脉冲代码调制,根据前后 两个采样值差编码输出二进制数字

    delta调制 根据采样值前后差决定输出0or1但跟不上变化太快的信号(每次的delta固定,跟不上大变)

  • 多路复用技术 多个信号共用物理线路,时分复用TDM,频分复用FDM,波分复用WDM(多波长光混合和拆解),码分复用CDM

  • T1载波 采样128等级7位二进制,传输速率1.544Mbps

    具体,每125us传播24路8位+帧同步位共193位,数据速率1.536。每个通道中8位有1位控制,所以每个通道的数据比特率为56kbps,总数据比特率为1.344Mbps

image-20221029200118100

交换技术

  • 电路交换:直接切换物理线路。

    建立 传输 拆除。必须建立点到点的物理通路,建立时间长,数据传输延迟短。一般时分复用,分成frame再分为slot,slot在frame内的相对位置决定槽所传输的数据所属的会话。

    发送接收方需要同步

    非永久会话需要动态绑定slot到一个会话

  • 报文交换:信息以报文(逻辑完整信息段)为单位进行存储转发

    线路利用率高;中间节点通信设备buffer够大,延迟时间长

  • 分组交换:比报文小的信息段,随机乱切,定长or变长

    src节点分组,中间节点存储转发,目的节点组合回报文

    每个分组头都需要原地址和目的地址,独立路由

    不预先分配资源;线路利用高;易于重传,高可靠;易于新传输让紧急信息优先通过;开销增加

    分组交换:数据包分组 虚电路分组(常用于电话,

    • 数据报分组交换:每个分组均有地址,独立路径。IP networks

    • 虚电路:电路+分组 同一流的分组通过一个预先建立的路径(虚电路)传输。确保分组的顺序,但是来自不同虚电路的分组可能交错

      image-20221029204845412

    统计复用,按需分配信道资源

    来自任意会话的数据立即发送不需要等待slot,用分组头来分组数据

  • 电路交换vs分组交换 分组:统计复用,有效利用带宽

  • 峰值带宽:平均带宽:话音3:1 数据5:1

    分组交换处理拥塞,需要复杂路由器且难以保证端到端的服务质量(延迟与带宽)

    实际使用结合一起

  • 电路交换:适合实时信息、模拟信号,带宽低

  • 报文交换:带宽高,可靠灵活;延迟大

  • 分组交换:缩短延迟;可实时;高带宽中经济合理可靠

交换结构

  • crossbar,一群横竖电路交叉成十字,加入连接点…
  • 空分,结合小crossbar,分成几组然后结合连线。image-20230217120238446
  • 时分:按照映射表打乱进入帧的timeslot数据,然后再给出去

思考题 电路交换和分组交换的区别

Ch4 物理层接口与协议

物理层定义功能

在网络设备中提供透明比特流传输。启动和关闭连接,传输数据

物理层特性

机械特性 接插装置 引脚和排列、电气特性、功能特性 数据控制定时地、规程特性

典型物理层标准接口

RS232-c RS449 442a 423a

RJ45

传输介质

双绞线

模拟or数字,线的类型和距离决定带宽

非屏蔽双绞线UTP

屏蔽双绞线STP

同轴电缆

基带同轴电缆 50Ω 数据传输

宽带同轴电缆 75Ω 模拟传输 CableTV 300/450Mhz

光纤

单模or多模,全反射长距离传输

只有特定的角度继续传输(传输模式),多个反射角度叫做多模,但是短距离。光纤半径到波长数量级时,只有一个角度or模式的光可以进入,叫做单模,适用于长距离。

单模多模都可以波分复用

850nm 便宜,衰减 速率慢距离短

1310 无色散补偿,功率放大下40km

1550 同,功率放大下80km

光网组网 点到点四根线,两根保护倒换。环形只需2/1根

中继器来光电转换

网络传输技术

SONET/SDH TDM技术

同步系统有主时钟 810B/125us 51.84Mbps

image-20230217123612133

移动电话

单向寻呼:单向、小带宽

通话:双向,多频率

1G 模拟蜂窝 只语音

2G 数字蜂窝 主要话音 GSM CDMA

34G 话音和数据

AMPS蜂窝cell

在附近蜂窝中重用传输频率,如果超过系统容量就进一步划分蜂窝,重用频率并减弱功率。容易被窃听、盗用。三个频率足够1+6蜂窝使用

蜂窝中心基站,计算机+天线

通过包交换网络+MTSO(电话系统) MSC相连

Ch5 数据链路控制与协议

概述

目标和功能 有差错的线路上无差错传输——正常传输,组帧,差错,可选顺序和流量

网络设备和主机都算节点

点到点:专指链路上的两个相邻节点

端到端:源到目的,可能由多个链路

虽然是物理层连接,但数据链路层看起来虚拟通路

服务 无确认无连接服务(低误码,实时,局域网),有确认无连接(不可靠信道无线网),有确认有连接

组帧

组并且计算checksum

字符计数法

帧头表示帧的字符个数——一步错步步错

字符填充的字符定界

引入DLESTX,DLEETX字符,中间内容中如果出现特殊字符,加入DLE两遍来转义

Data link escape start end,局限在8位字符和ascii

DLE STX A DLE DLE B DLE ETX其中数据位ADLEB

位填充的标记定界

特殊位串来开始和结束 01111110flag,正文中一旦五个1就插入0。只有flag中出现六个连续1

物理层编码违例

有冗余的物理层编码,用违规码定界

错误检测纠正

特点:随机,连续突发

n = m数据位+r校验位,一共n位码字

检查d个错,海明距离需要d+1

纠正d个错,海明距离需要2d+1

奇偶校验

可检查奇数个错误,纠正单比特需要2^r >= m+r+1

海明码

连续突发错误的话,可以按行书写海明码然后按列发送。相当于把连续错误分散到每一个码字中

检错+重传 CRC循环冗余码

需要多项式Gx,高低位必须为1,且比传输信息短

计算checksum加在帧尾,想要帧多项式被Gx除尽。

计算

消息多项式Mx,后面加r(r是Gx的多项式阶数,比位数短1)个0变成2^rMx。用Gx除

最后用2rMx减去余数,其实就是把余数补上去,即得到一定整除的2rmx

注意此时的除法和减法都是图一乐,不借位,相当于异或

检错能力

若中间改变的多项式Ex整除Gx就不能发现,否则可以

  • 单比特OK,Ex/Gx肯定有余数
  • 两个孤立单比特,那任意Gx不能是任何X^i-j +1的因数
  • 奇数比特错,Gx选择x+1倍数即可,一定除不尽
  • r个校验位多项式(有r+1项的Gx)能查出所有长度小于等于r的连续差错
  • r+1连续错的时候,概率很小查不出来,约1/2^r-1
  • 大于r+1呢???坏帧接收大概2^-r

网卡实现crc校验

基本协议

无约束单工协议——一直发

单工、无休止发送和无限大buffer,信道不损坏

单工停等——buffer有限,每次发一个等ack

接受后给sender响应

sender 接收网络层,组帧,发送,等待

receiver 等待,接收物理层,发给网络层,发送确认帧

噪声单工PAR——信道有差错,引入1位序号,翻转

出错重传,定时,加入1位序号,来回翻转

send 接收网络层,加入序号,发出去并启动计时,等待响应(ack了序号,翻转序号;超时重发)

rece 等待,接收,序号正确则发给上层,发回ack并翻转期待序号

滑动窗口

双工,引入捎带机制,充分利用带宽但复杂

信号都有,期待接受and期待确认

发送端维护已发送但是没确认的序号表叫做发送窗口,上界是要发的下一帧,下界是待确认的最小帧。即左闭右开区间。

发送时发送上界帧并加一,接受到ack=下界则下界加一,如果ack在窗口内则连续加一到ack+1(累计确认)

接收窗口 固定窗口,上界是允许的最大序号,下界是紧邻的序号。收到0123则【4,7】,等于下界的被接受并响应。上下界同时移动

1bit滑动窗口

序号只取01两个值且两窗口都是1.

我发送的帧seq = ~上一个ack,ack=上一个seq

如果同时发送会有一半的重复帧,即我第一次发B0你的A0还没到,你A0到我这的时候我还没收到B0的确认只能再发B0.

最大效率|利用率 = 发送时间/总占用时间

信道利用率 = 帧长/帧长+延迟*比特带宽

退后n帧重传

发送窗口大于1,接受为1

发一堆,慢慢收。如果有一个坏帧拒收所有后面并不再发送ack,等待超时后发送方从坏帧重发。多个计时器。

在坏信道上效率低

窗口大小不要能一次性发满序号,至少发送窗口<序号总量

选择重传

发送接受均大于1。接收方可以暂存坏帧后面的帧但仍然只发送老ack,发送方只重传坏帧,但需要buffer够大。ack可以突变。

接收窗口完全移动后,不要重合。不然重发当做新帧。

发送>=接受时,接受最大为(maxseq+1)/2

else 发送+接受<=序号个数

  • 确认计时器:防止负载不均衡,实在没有捎带就发一个空ack出去。计时器在接收窗口移动后,或发了NAK时开始。发送任意一帧时结束。
  • 否定确认NAK:收到坏帧或跳脱帧主动发NAK

说明与验证

协议工程:说明、验证、实现、测试

验证——可达性分析 图论分析

测试 一致性、互操作、性能

用形式化描述代替自然语言,如FDT和FM Formal

FSM有限状态机

状态、标号,初态,变迁

Petri网??

结构:圆圈位置、变迁线段、弧

活动标记Token点

常用的数据链路协议

面向字符,面向比特

HDLC

终端和计算机之间组合沟通,用01111110定界。一直传定界符号表示空闲

定界——8b地址(命令or响应)——8b控制信息(0,3序号,1pollfinal命令或响应,3next作为ack||ortype表示监控真、否定确认帧、不接受帧或者拒绝帧)——数据——16b校验和CRC——定界符

滑动窗口3位序号,发送窗口为7。但next表示第一个没收到的序号

X.25的链路层LAPB

使用HDLC

CRC只检错不纠错,丢弃出错

重传N次后报告上层协议

帧序号错了发送拒绝帧,发送方重传检错也纠错

PF为检验指示,

SLIP和PPP

SLIP:标记定界,字符填充,发送原始IP包。不提供差错检验,只支持IP并不能动态,不提供认证

PPP改进SLIP,提供差错,支持多协议,动态分配IP,以帧尾单位。

PPP面向字符,以01111110开始,采用字符填充而非位填充。

Ch6 局域网 介质访问子层 108 6

局域网概述

高速短距低出错,经常使用广播信道,解决信道分配问题

静态:FDM频分复用orWDM TDM时分复用,固定时槽

多路访问协议

纯ALOHA

image-20230218115419108

直接发,如果冲突则等待随机时间再发。

image-20230218115808191

相当于两个帧时内的k=0,λ=2G,得到P0

分槽ALOHA

每个站只有在槽开始的时候可以尝试发送,冲突危险减半。效率翻倍。

载波监听多路访问CSMA

1-坚持CSMA

先监听,如果空闲就马上发,忙就一直监听后发送。如果冲突则随机等待再发送。冲突概率大,怕延迟

非坚持CSMA

监听,如果空闲就发。如果忙就等待随机时间然后尝试

冲突少,信道空闲多且延迟高 G越大效率越高,但是延迟更大

p-坚持CSMA

分槽信道中,监听到空闲有p的概率发送数据。或者延迟到下一个时槽,看空闲的话再次以p尝试。忙就再等待。冲突就等待随机。

image-20230218120433234

冲突检测的载波监听多路访问CSMACD

冲突太浪费了,如果冲突可以发送干扰,打断自己和所有站的发送。等待随机时间在发。

检测冲突最坏需要两倍电缆时间。

无冲突协议——预留协议(先请求)

分开为传输,竞争和空闲

位图协议

信道上N个时槽,要发就置1。大家都知道了就按序号发送

轻负载效率d/N+d 数据帧由d个时间单位,重负载下d=Nd

不公平,有固定开销

二进制下数

大家都有等长二进制串表示自己,互相或在一起。如果看到更高的位有1则放弃请求。效率为d/d+log2N

有限竞争——适应树搜索协议

轻负载竞争,重负载无冲突。分组各站,组内竞争

组织站点为二叉树,折半请求搜索。如果获得之后,留给没有竞争的后一半竞争。

局域网技术

只有一个信道,短距离,

隐藏站点问题。竞争者太远

暴露站点:非竞争者太近

区别于CSMA

CSMA的电缆可以传播信号给所有站点。冲突被站点发现

WLAN中信号只能发给附近的人,尽量保证只有一个发送站,冲突被接受者发现,信道可以同时有多个有效帧

MACA协议——先双方握手并告诉周围

A发B RTS请求发送,同时A周围站点不发送

B回A CTS已经准备好,B周围不发送

A发送

冲突则二进制指数后退等待随机时间后开始

MACAW 每个成功数据帧都要被ack,发送站点载波监听,冲突后不针对站点而是针对流来后退,拥塞时站点交互信息

802系列

介质访问控制MAC子层上引入LLC逻辑链路控制子层,提供更多的确认和流量控制服务——不可靠数据报,有确认数据报和可靠面向连接服务

802.3

电缆标准 10basex,10mbps base基带传输 500m。

中继器:物理层,接受放大信号、双向重传。两个收发器之间可以四个中继器2500m

曼彻斯特编码,简单。

帧格式 使用7B的10101010作为前导,然后10101011作为开始。

地址第一位 单0组1 第二位全球0本地1 全1广播

image-20230218195725348

避免帧到达前就发完,发送时间大于2τ。(防止对向冲突)

快到对面的时候对面开始发,这样就Collision。减小站点距离或者加大帧长才能提速。最大冲突检测时间为51.2us

二进制指数后退 时槽为51.2us。第i次冲突后 等待0~2^i-1。到10位上界,16次彻底失败

用交换802.3LAN来减少冲突 ??大概是接入交换机,被缓存并并行转发?

以太网

快速以太网 HUB的10BaseT甚至100BaseT4

100BaseT44对非屏蔽双绞线1对Tohub1对FromHub,两对变换方向。

25MhzBaudrate。曼彻斯特编码,8B6T,8B映射到6个三进制位。每对带宽25*8/6 =33.3Mbps。正向100反向33.3??

TX 2对五类线,to和fromhub。125Mhz,4B5B编码。每对125/5*4=100Mhz

FX 2根多模光纤,全双工

HUB 共享:一个冲突域,CSMACD二进制指数后退,半双工

交换式。输入帧缓存,一个端口为一个冲突域

1000BASE X系列是8B10B编码

1000baseT 4B5B编码

一个冲突域只允许一个中继器

10GE 万兆以太网,全双工,不用CSMACD。只光纤,单模可以用在WAN MAN

多模的传输距离只有65-300M

image-20230218201935592

802.5 令牌环LAN

并不是广播,而是点到点组成的。完全公平且无冲突

Token,要有足够的延迟被容纳。

  • 要发数据,取下令牌,发送,发送站负责移除帧然后重新生成令牌开始监听。

  • 确认:帧内的比特域,初值0,目的站变1.

  • 重负载效率100%。

  • 引入1bit传输延迟。物理长度为信号传播速度/比特率

  • 屏蔽双绞线,差分曼彻斯特

  • 令牌持有时间10ms,有优先级

  • 环上竞争选出监控站,负责维护保证令牌不丢失,处理断环和坏帧

    image-20230218202626218

光线分布式数据接口 FDDI

多模光纤 类似TokenRing 100M 4B5B 200km 1000站

连接LAN的主干网,可以双环。站点发完后立即产生新令牌,环上可同时多个帧。

DPT RPR Dynamic Packet Transport

用于MAN 双环,双环都可以传输data和control

目的站取下报文,不占用

网桥

在LAN之间实现帧存储转发。可以分隔大LAN可以连接远LAN。

兼容不同类型,安全保密

中继器不能隔离冲突域,网桥|交换机可以

原理

多个物理层和MAC子层。

转换帧格式,缓存不同速率的帧,高层协议的定时器。甚至MTU最大帧长的区别。无法转发就扔掉

image-20230218205536134

一开始接受所有帧,洪泛转发帧。后来逆向学习,通过源地址收集MAC写入对应表。不断更新

多个网桥的回路问题 网桥间通信,用连接每个LAN的生成树覆盖拓扑。透明or生成树网桥

  • 网桥广播自己的编号,最小为root
  • 计算到根的最短路,构造生成树,使得LAN和桥到根最短
  • 故障重新计算
  • 不断更新

源路由网桥 如果不在自己的lan内,在帧里制定好路由序列。LAN的12位编号和Bridge的4位。每个站广播发现帧来获得最佳路由。

Ch7 路由选择和网络层 183 7

概述

在实体间交换网络服务数据单元。传送实体独立于路由选择和交换的方式

通信子网的最高层

传统电信vs互联网:可靠连接vs不可靠,复杂功能放在传输

路由算法

数据包分组交换vs虚电路分组交换,每个或者一次路由选择

最优化原则 最优路线的包含性,最优路线的子路线是最优路线

汇集树 类似生成树,只不过是所有src汇集到dst,是路由算法的目的

最短路径路由

DIJKSTRA

静态洪泛

重复分组多,回路。给分组设置寿命计数器,不要反复传播+记录经过的路径

改进为选择洪泛,转发到正确方向接近的线路,作为基准来评价

基于流量的路由算法

拓扑结构+网络负载。假设站点间流量平稳可预测,得到平均分组延迟来找最小延迟的路由算法。可以离线计算

需要通信量矩阵Fij和带宽矩阵Cij。即流量和带宽

计算平均延迟T = 1/(μ平均包大小1/800bits C带宽 - λ平均包量) ,为剩余网络带包数的倒数

距离矢量算法 Bellman Ford DV

应用:ARPANET RIP

路由器作为索引|出镜线路|距离估计值(hop)or延迟

每隔一段时间,向所有邻居发送自己的表

同时收到来自所有邻居的表更新自己的路由表,为min(到邻居的代价+这个邻居到目标的代价),这个过程不依赖老表?难道这个代价是重新测算or保存到一张长期有效的另外表中。

问题 无穷计算不收敛,好消息与坏消息

  • 突然很好很近的路径进来,很快被同步,大概是正比于路径跳数的时间
  • 宕机一个router,产生无穷计数,大家都缓慢的增大。因为宕机一个后,其他路由器还以为自己的邻居仍然有很好的路径能到宕机哥们那里。image-20221209224559844

禁止路由器向邻居返回一个从邻居获得的最佳路径(线性拓扑中的无穷级数)染毒逆向的水平分裂法 即如果我的路径包含你,我就告诉你是无穷大的。闭合Y字形失败。

问题的核心 当 X 告诉 Y 它有一条通往某个地方的路径, Y 无从知道自己是否已在这条路径上。

链路状态路由 发送自己周遭链路的状态 LS

OSPF ISIS

开始工作之前,每个router:

(1) 发现它的邻居节点, 并学习其网络地址

往每个线路发送hello,接受者加上自己的唯一身份。

广播LAN建议增加超节点,连接广播所及的节点

(2) 测量到每个邻居节点的距离或者成本度量值。

常用度量:带宽反比、链路延迟

(3) 构造一个包含所有刚刚获知的链路信息包。

发送方标识符,Seq用来自己控制版本新版加一,Age寿命过期就扔,表:邻居列表和对应成本

(4) 将这个包发送给所有其他的路由器,并接收来自所有其他路由器的信息包

洪泛,发一个新的就递增。接收方需要记录来自其他Router 的已接收最大序号,如果接收到同样包则丢弃不发送,收到小序号则过时

问题:序号绕回,用大范围;路由器崩溃,丢失序号记录,发的太小会被拒绝;序号被破坏,错误地增大很多seq导致新的被当做老的

解决:加入age年龄字段,每过1s减一,相当于有效期。

一般10s左右新的包就会来替换掉老包,年龄设为60检测宕机

链路状态数据包需要返回ack以确认

image-20221212121553893

image-20221212121545594

来自不同src的副本可能从任何邻居那里到来。到来的标记ack并发送ack,其他标记sentflag

(5) 计算出到每个其他路由器的最短路径

完整网络拓扑图,每条边被表示了两次。因为双方向不一定成本相同。运行Dij即可并存到路由表中。

评价 没有慢收敛,但可能路由震荡(当路径负载作为代价时,可能顺逆震荡),需要Onlogn,长时间定时或者重大变化才重发分组

路由算法依赖于路由器计算路径的处理,少数路由器瞎编也可以破坏网络。比如声称不存在的链路或者故意忽略链路。

分层路由

太大,表大,收敛慢,计算大。分层后不一定最优

最优lnN层,每个表项elnN个

移动主机路由

设定移动主机有不变的家乡位置和地址,每个区域有家乡代理和外部代理。分别记录登记在这人在外边的,和人在这的

  • 进入新区域的移动用户向本地的外部代理注册,告知家乡地址,目前链路地址和安全信息。外部代理会定期广播的自己的存在和地址分组。
  • 外部代理和家乡代理联系,更新其现在的位置和外部网络地址
  • 家乡代理检查通过,ack
  • 外部代理收到ack,登记并注册成功
  • 收:
    • 家乡局域网——家乡代理—隧道—外部代理,同时告诉发送方你直接隧道到外部代理就好了or移动主机通过外部代理告诉发送者自己的转交地址,以后直接隧道到这里来。外部代理发给用户(三角路由,后续直接优化到一条边了)

拥塞控制算法

开环控制:好的设计避免拥塞,不考虑网络状态

闭环:基于反馈,监控,调整

vs流量控制,拥塞是全局性的,流量是对点的,不要超过接收方处理能力

参数 丢包率 队列长度 重传量 延迟 延迟变化

反馈 丢包路由器向负载发生源头发送告警分组

分组头中保留拥塞域ECN,对应端口所有输出标记好,接收方ack也携带

端主机反馈

开环控制——流量整形

把突发性的变成均匀可以预测的

漏桶算法

不平滑数据分组流变平滑,可以固定or变长分组协议ATMorIP

字节计数,规定桶容量为B,出水速率为R。不灵活

令牌桶

t产生令牌,传送分组消耗令牌,可以累计发送权到桶大小。适合突发。如果路由器有9600KB的缓冲区和200Mpbs的速率,主机速率可到1000Mbps,则在主机端使用B9600KB R200Mpbs的令牌桶。

一开始全速发送一段时间直到填满缓冲区,然后削减到200Mpbs,桶空则延迟,流量慢于200的时候慢慢被填满。可以有一些突发。

双令牌桶 第二个桶的速率更高但几乎没有容量。即降低初始突发允许大的突发更加平滑的输出,而不是一开始很快后来降低到长期速率。

虚电路子网和准入控制

三方出具流说明,包含流模式,服务质量等。慢慢协商。协议后预留资源

拥塞问题解决前不允许建立新虚电路or可以建立但必须绕开

逐跳抑制分组 抑制分组通知源主机太慢了,每一跳都有抑制作用,更迅速,需要上游Router缓冲区更大

数据包子网拥塞

image-20221212131918083

包调度——公平队列

每个输出都有多个队列,循环扫描队列头发送包,队列优先级相同。即abcabc的发送。但是大包获得的带宽大

改进为加权队列 ——分组轮询变成字节轮询

时间按照发完分组的虚拟时间计算,可以有权重,时间除以权重

也就是一轮循环砍一个字节,有的管道砍得多。先被砍完的包先发送。

完成时间 = max 到达时间,同队列前面包的完成时间 + 长度/权重

image-20221212132526962

负载丢弃

多媒体 扔老的 milk 文件传输扔新的 wine

网络互联

中继器,物理层拷贝比特放大信号

网桥,数据链路层。局域网之间存储准发帧,可以改格式

多协议路由器,网络层。在网络之间存储转发,可以转协议

传输|应用网关:传输层转发|应用层互联

无连接网络互联

多协议路由器转协议,转分组格式和地址等等

隧道

源和目的主机网络相同,中间隧道打包。把原来的包作为载荷

互连网络的路由 更复杂,自治系统AS??

内部网关协议IGP:RIP OSPF ISIS

外部网关协议EGP:BGP

分段

透明分段:网关分片后每个片段必须经过同一个出口,再重组。对其他网络透明。

  • 需要数据包结束标识
  • 路由被限制在同路径,损失性能
  • 路由器工作大,需要拆分组装缓冲等

非透明:一旦分段,直到目的主机都不重组。需要的话可以继续拆分

  • 头太多开销太高,
  • 容易丢失

树形标记,0分为0.0和0.1再往下分。长度前后一致

偏移量法:原始分组seq,offset(仅数据层)和最后片指示

路径MTU发现,IP中有不允许分段的DF比特。如果接收到很大的数据包,会生成报错发给源主机然后丢弃此包

源端需要分段到路由器能处理,再次发送可能仍然被之后的路由器拒绝

需要更高层协议了解路径MTU并传给IP,比如TCPIP来传递,相当于把分段任务从网络交给主机

  • 启动延迟增大,需要来回找MTU
  • 可能会拦腰截断MTU

防火墙

两个路由器根据规则表过滤,或者边缘网关审查

互联网网络层协议

IPv4

20B变长到20+40image-20230219132434658

IHL 几个字的头。

Type 3个优先级位 3个标志位Delay T R 2个保留位,经常忽略

DF,不许分片,必须接受576B的片段

MF,还有更多分片,最后一片为0.

offset 片段偏移了多少字节,仅表示数据部分偏移

MTU1500时候最多20头+1480B数据。

生存期:寿命,TTL跳一次减一,丢弃后告警。最大255

Header校验和:16位取反循环相加,进位在末尾,和再取反

地址

网络号+主机号,分类

image-20230219133847044

全1广播 全0本机

host部分可以划分为subnet和host,划分子网

ICMP 互联网控制消息协议 报告错误和测试,封装在IP中

ARP 地址解析协议 解决IP和MAC地址的映射。建立ARP表,存放IPMAC地址对。同子网内查找arp,否则用默认缺省网关的IP查找。没找到就广播分组,目的主机需要应答,ARP增加。

每个主机启动的时候广播自己的映射。

表项有生存期。

RARP MAC找IP,也使用ARP消息。无盘工作站启动,由于路由器不转发广播帧,RARP服务器必须与无盘工作站在同一子网内 ??

区分BOOTP 使用IP UDP,可以分配其他信息。可以转发到其他子网

RIP 内部网关协议IGP,基于UDP

距离向量算法,用跳数衡量距离,30s一次。

6个周期180s没有邻居声明,则认为失效。所有经过其路由无效。声明发给其他邻居,并快速再次发出声明传播到全网。RIP可以快速传播链路失效

OSPF开放最短路径有限 内部网关协议IGP

多种衡量比如延迟,距离,带宽。链路状态算法。

基于服务类型路由、负载平衡、分层路由、安全措施、隧道技术

自治系统分为区域,每个AS有主干区域0.用星连接,局域内路由;区域间路由都到主干再转发目的;自治系统间路由

路由器可以重叠:区域内,区域间,主干,自治边界。

BGP边界网关协议 外部网关协议 基于TCP

特殊的跨域路由协议:控制流量路由,更注重策略而非性能

TCP连接传递路由信息,路径向量算法,路由信息中记录路径轨迹。类似距离向量。广播所有目的地的路径。通过告不告诉路径控制流量。

消息类型 open,建立对等TCP连接认证身份;UPD,更新路径或者撤销;KEEPALIVE,没有upd也告诉你连接有效,回应open;NOTIFICATION报告上条消息错误或者关闭连接

CIDR无类域间路由 B类地址浪费大量空间

将剩余的C类地址分成大小可变的地址空间,推广到所有单播地址,掩码确定前缀长度。

世界四大区各有一块连续的C类地址,增加mask掩码域。最长前缀匹配:多个匹配成功选择掩码最长的路由表。适用于所有IP地址???

分配地址的时候分配一些0和掩码。

匹配时,目的地址先and掩码,然后匹配根地址。并最后选择前缀最长(掩码最长)的表项即最具体的。

分配地址时,根据掩码数据对齐

IPV6

不兼容IPv4但兼容很多Internet协议如TCP UDP OSPF BGP DNS

简化IP头,定长不用IHL,取消分片的域。必须能支持1280B的分组,路由器报错主机分片。不要检验和。更好支持选项更高安全

40B

image-20230219212519752

Priority 流控或不能,表示优先级高低

Flowlabel 允许src和dst建立具有特殊属性的伪连接

Payloodlen并不是总len了

nexthdr指示扩展分组头,如果是最后一个则告诉tcp或tcp

  • 拉火车一般指示后面的分组头,目前六种
  • hopbyhop 指示挨个路由器检查的信息
  • routing 必须经过的路由器
  • fragmentation seq fragmentnum morefragment…

最大跳数

::192.1.1.1 表示v4地址

过渡方案

双栈,两套协议栈,主机根据DNS返回结果或对方版本号选择。路由器看版本

翻译,路由器可以翻译如NAT-64

隧道,把IPv6隧道进Ipv4里面传输,更有普适性?

路由器体系结构和关键技术

路由:建立端到端的路径

转发:确定next hop

难度在于:内存速度跟不上moore,性能要求(带宽增加)快于摩尔定律

结构发展

  • 单总线单处理器
  • 单总线多处理器,每个接口卡处理器来协调
  • 交换结构+专用硬件
  • 可扩展路由器

基本结构

  • 多套网络接口
  • 路由引擎,运行高层(路由)协议
  • 路由表:被引擎更新,包含所有路由信息,承上起下
  • 转发引擎,确定转发路径
  • 内部交换,在接口和引擎间高速数据通路

两条路径 数据和控制

控制,进引擎再出

数据,关键路径,在内部交换后被转发:路由查找+内部交换

基本功能 正确转发的路由查找,正确传送的内部交换

查找算法 值入手,穷举,TCAM硬件查找

长度入手:Trie树 长度空间二分

线性链表太慢

二分Trie 最坏logN 储存效率低

路径压缩Trie,把单分支的节点压缩。

多分支 O(logN /K) 更新慢,空间浪费

大RAM的查找表 两级分别是16位,包含地址、下一层地址和下一条

区间二分查找 log2(2N)最多到logk(2N) 更新很慢

TCAM 速度快芯片贵功耗大更新慢 低地址前缀最长,一个周期精确查找

高速报文转发

虚拟输出队列(队头堵塞)》输入队列

Ch8 端到端访问和传输层 67 1

传输服务

消除网络层不可考,提供端到端的进程可靠,与网络无关的数据传送

传送实体

1~4层为传送服务提供,往上叫用户

TPDU 传送协议数据单元

原语

CS模式:listen connect send receive disconnect

对称(双方单独关闭)或者不对称(任何一方)的关闭连接

非对称数据丢失,对称两军问题(不存在安全N次握手释放对称连接)。一般用三次握手+定时器释放,即释放+定时

连接和释放,都是自己执行原语+对方包到达

Berkeley Sockets

对称释放连接,都调用close

服务程序:socket创建分配表空间,返回fp;bind赋予地址;listen分配数据空间;accept阻塞等待连接,有连接请求的时候创建新的套接字和fp,原来的继续等待

客户程序:socket创建分配表空间,返回fp;connect阻塞并尝试连接;

传送层寻址

传送层编址

即标识TSAP传送服务接入点,连接应用进程。互联网的TSAP为ip+本地端口

可能约好,也可能从目录、名称服务器(连接,查询名称,得到TSAP,释放)查询

进程服务器,帮助一些服务进程监听。多个端口监听,客户进程在某几个TSAP建立请求。如果没有服务进程,那进程服务器和用户连接帮助唤起服务进程。即简单应答一下请求,并帮助叫人。

连接管理

三次握手
  • A发出序号X的CR TPDU
  • B发出序号Y的CC TPDU,并ack X CR
  • A发出序号X+1的data tpdu并确认Y CC
  • 解决网络层丢失、重复等问题

缓存和流控

不可靠的缓存

每个连接单独缓存,一边重传。接收方随意。

固定大小,可变大小,通用缓存池

流控

用可变滑动窗口,即窗口大小根据接收方的缓存情况给出(协商)。应该周期性发TPDU。

TCP协议

字节流,端到端,连接,可靠

双方都套接字,作为TSAP,IP地址+端口。256被保留。点到点双工用两个套接字表示。不支持组播广播,消息边界不保留。

PUSH标记不缓存,强迫发送

URGENT紧急数据

按照字节分配序号

TPDU叫做SEGment

20B头+选项+数据;段不超过65535的IP数据包,不超过数据链路层的MTU,以太网1500MTU

滑动窗口,确认序号是接收方希望接受的下一个序号;

TCP头

image-20230220100858916

头长度 4b,用几个word表示,包含option。

RST用来不可恢复的错误重置连接

SYN 连接建立指示 FIN释放连接指示

ECN explicit congestion notification显式拥塞通知时,ECE表示ECN Echo,让发送端放慢速度。发送端设置CWR给接收端表示已经放慢停止ECE

window size 从确认号开始可以再发多大字节流

checksum对TCP头 数据和伪头(addr+-+protocol+TCP段长)计算校验和

选项

三次握手建立

  • 服务器listen+accept 开始监听
  • 客户端connect 产生syn1 ack0 seq100的tcp segment
  • 服务器检查服务进程
    • 没有监听,回答RST重置连接
    • 有监听,服务进程选择接受。SYN1 ack1(101) seq300接受。
    • 客户方syn0 ack301 seq101 确认

服务机listen直接收到send,则去尝试SYN连接

SYNSENT后也在listen,收到SYN发送SYNACK到SYNRCVD

对称释放连接

双方都可以FIN释放,但是只是一方不再发送。所以FIN ACK共2对才能释放,可以中间既FIN又ACK而3段释放。可能会同时发送FIN,那么单独确认后关闭。

主动fin,进入finwait1。被对面ack自己的fin进入finwait2。常规。

主动fin在wait1时,同时收到对面fin,发送ack进入closing。等待ack即可timewait。

主动fin后被对面ack+fin,则自己应答ack进入timewait。

被动fin,发送ack进入close wait,等待自己发完。自己这边发完了就主动fin进入等待最后的last ack,等到对面ack就成功释放。

传送策略

在WIN0时候。紧急数据仍然可以发送,1字节端强迫接收端重新宣告ack和win叫做window probe窗口探测

  • 发送方缓存数据等待大段发出
  • 接收方期待捎带而非单独发
  • Nagle 发一个字节,然后每次等到ack后发送全部
  • Clark 解决傻窗口。应用层读一个造成window=1,至少多一点buffer再告诉发送方。比如一半buf或者最大段长

拥塞控制

原因:网络慢buffer大(拥塞窗口,慢启动,避免拥塞),快网络小buffer(随时window调整),按照最小值发送

慢启动

拥塞窗口congwin,初始值为最大段长MSS。先发最大段长,正确确认后拥塞窗口变为2个最大段长。被正确确认后加倍。直到超时or大于阈值threshold(64K)。也就是收到一个ack加一个段。

拥塞避免

大于阈值后线性增长,一个RTT周期增长一个段长。直到丢包超时。

如果超时则阈值阈值减半,窗口变为1个段长。开始慢启动

快速丢包超时——快速重传 超时or三个重复ack,直接认定超时。阈值减半窗口回1.

以上三个技术最早在Tahoe版本实现

image-20230220110822797

快速恢复??

TCP Reno会把当前的ssthresh的值设置为当前cwnd的一半,但是并不会回到slow start阶段,而是将cwnd设置为(更新后的)ssthresh+3MSS,之后cwnd呈线性增长。

有人说超时到慢启动,快速重传触发快速恢复。每接收到一个冗余的确认报文,cwnd就增加1MSS

快速回复再超时,慢启动。

非冗余ack,新ack,cwnd回到ssthresh开始拥塞避免

多用户竞争瓶颈链路带宽问题

有效性+公平性

M 与原点连线,A正规斜线??

MIAD 不稳定(需要初始带宽相同,且…),震荡;不公平收敛,大带宽全要;有效性不收敛

AIAD 稳定在ad==ai;不公平收敛;不有效

MIMD 稳定,来回震荡;不公平收敛;有效收敛(系数符合)

AIMD 公平收敛 有效收敛,越来越靠近y=x

UDP协议

无连接,端到端

更快、简单、小头、没有拥塞。但是可能乱序丢失,每个都独立。用于流媒体(可以丢包但是速度延迟很重要)

其他应用:RIP发送路由信息 DNS SNMP(网关信息)

image-20230220112940790

端口长度校验和

Ch9 网络应用 68 1

应用层

进程、线程通过os提供的IPC通信。不同主机则使用应用层协议通信。

用户代理user agent指的是用户和网络应用程序间的接口,如web浏览器,播放器

socket就是Internet API,两个进程读写socket通信。IP地址指明主机,端口指明进程。

TCP:email+smtp; remote terminal access+telnet; Web+Http; ftp; 流媒体+proprietary; remote file server+NFS;

UDP: 流媒体+proprietary; remote file server+NFS; Internet telephony+Skype; DNS

流媒体,远程文件服务器,网络电话

CS模型

请求——响应

服务器具备并发性,为每个客户建立进程or线程处理通信。一部分用于接受请求创建进程,另一部分负责实际处理和通信。可以同时使用tcpudp

域名服务 DNS

domain name service

小网络只需要查一个文件就可以对应主机和地址,但是大网络就不行

app调用解析器resolver,向本地域名服务器请求,以udp发送;本地域名服务器尝试解析,如果失败继续向上级域名服务器查询…直到解析完响应

名称空间

顶级域名由ICANN管理,over250个顶级域名,不断被划分成一棵树

顶级域名分为组织结构通用域名和地理结构国家地区两种,下面有子域名.

大小写无关,每部分最长63字符,整体最长255字符。是从底下向上到根节点。这样前面一样也并不会冲突。

新的细分域名(新域)要被上级的管理员认可。

DNS数据库

每个域都有一组关联的五元组资源记录,

域名——有关的资源记录

域名(可能有多个记录);生存时间;type;class(IN表示internet);value

  • type
    • SOA 名字管理员的电子邮件,域的基本信息
    • A or AAAA quadA 主机名——主机地址
    • MX name对应邮件服务器的hostname,通过@后面的地址找到邮箱服务器
    • NS 域名——权威域名服务器(地址)名字,所在域和子域的名字服务器,用于域名查询处理。
    • CNAME 规范名称别名——规范名称

DNS划分域名空间到很多zone,边界由人工设置。edu.cn 和 tsinghua.edu.cn为不同的zone,有各自的域名服务器。主和备份域名服务器,备份从主服务器获得信息。。。

多层DNS query example

image-20230220115725503

查本地直接查,如果查外地。本地域名服务器联系根服务器(很强),然后逐渐往下联系。查询robot.cs.washington.edu

本地——根——edu——washington.edu–查英语系直接获得答案,计算机系需要再往下找到cs.washington.edu

本地不能返回部分答案,需要递归查询(负责到底)。根服务器返回部分答案给本地,迭代查询(我不知道,你问他吧)

引入缓存 在本地域名服务器缓存一些常见的域名和IP,以及其权威域名服务器。不过缓存答案不一定及时更新(过期)

简单网络管理协议 SNMP

功能:性能、故障、配置、记账和安全管理。基于UDP

模型

被管理节点(主机路由器等网络设备):运行snmp agent维护本地数据库,描述自己的状态历史等,影响运行。

管理工作站:运行manager 使用管理协议与代理通信,维护管理信息库

管理信息:每个站点用多个变量(对象object)描述自己的状态,组成MIB管理信息库

管理协议:用于manager查询修改被管理节点状态。被管理节点也可以向管理站产生trap报告

抽象语法表示法 ASN.1

MIB采用树形结构,根在最上面。在不同计算机之间的对象描述和传输。分为数据描述定义传输语法定义

5数据类型

int bitstring octetstring(无符号字节) null object-identifier

任何标准中的对象都用对象命名树可以表示

比如tcp 1 3 6 1 2 1 6

构造新类型的方法:seq seq of (1type) set set of choice(union)

也可以通过标记新老的类型来创建新类型,四类标签…

传输语法 编码规则BER

标志符 + 数据长度域 + 数据域

  • 标志符:2Tag|1type|5number 大于30的num第五位11111用后面字节表示

    • 00 universal 01app 10 上下文特制 11private
    • 0 primitive原始类型 1constructed
  • 数据长度域

    • <128 一个字节,高位0
    • 更大时候第一字节高位1然后后面是表示长度的字节个数
  • 数据域

    • int 直接二进制编码

    • bit str 头部第一个字节是最后不用的位数,比如0x07

    • octet不变

    • null 长度0 无数据

    • objident 命名树编码整数序列。前两个数用一个字节40a+b 如1361

      编码为4 数据长度域 3 6 1

SMI和MIB

SNMP在ASN1上定义了4个宏和八个新数据类型来定义数据结构,叫做SMI

变量叫做object,相关对象叫group,group汇集成module

MIB包含十个组,管理站通过SNMP向站点agent查询这些对象的值

object属性:类型(名字)、语法(数据类型)、存取(access ro wo rw non)、状态(实现需要,比如必备实现,可以实现和废弃)

image-20230220195522793

电子邮件SMTP协议

结构

用户代理(用户进程)——消息传输代理(邮件服务器,OS后台进程,从源发到目的端)——简单邮件传输协议SMTP

基本功能和进阶功能:

撰写、传输、报告、显示、处理

自动转发、自动回复、收件箱、抄送、加密、优先级、群发的mailing list比如students@cs.tsinghua.edu.cn

组成

MIME 多用途因特网邮件扩展 多媒体支持,转换为ascii流发送

  • 信封:接收方信息,如名字地址,优先 安全
  • 邮件消息
    • 邮件头:用户代理的控制信息,比如from
    • 邮件体:实际内容

X.400地址/C=US/SP=MASSACHUSETTS/L=CAMBRIDGE/PA=360 MEMORIAL DR./CN=KEN SMITH/

SMTP描述

  • 25号端口,TCP连接
  • 接收方是服务器,首先发送准备接受消息
  • 客户发出Helo 消息,服务器回答Helo,开始传输
  • 首先发出FromRCPT To,服务器分别确定收信人存在,表示可以继续发送
  • 客户发送DATA,以CRLF.CRLF结尾,服务器可以确认
  • 服务器也会发送邮件给客户,过程相同。然后释放TCP连接QUIT

消息以7bit ascii为单位,特殊串如结束符不允许出现,可以base64编码之后

持久连接

POP3 用户代理和邮箱不在同机器,使用pop3取回邮箱的信件。

IMAP 多个用户代理访问同样邮箱

PGP/PEM 加密email

WWW

模型

  • Web页面
    • URL表示地址:协议+对象地址(域名orIP)+路径名
    • 对象object组成
    • HTML+引用对象
  • browser 访问网页的客户端
    • MS IE
    • Netscape Navigator
  • Web服务器,储存web对象
    • Apache
    • Microsoft Internet Information Server
  • 超文本传输协议HTTP

HTTP hyper text transfer protocol

TCP 80端口 cs模型,无状态协议不保存客户信息。

1.0 非持久连接 http1.0

1.1 持久连接

2.0 多路复用

3.0 HTTPoverQUIC

例子

建立连接——请求——响应一个页面——服务器关闭tcp——浏览器解析页面发现有十个引用的对象,再去请求对应的服务器

持久和非持久

非持久 HTTP1.0 服务器响应后马上关闭连接,每个obj取得至少两个RTT,都需要慢启动

持久 HTTP1.1 同一个TCP连接上,服务器解析请求响应,再解析新请求。客户端请求所有obj,较少RTT和慢启动。。

代理服务器缓存

web缓存如果有,直接返回。否则申请原服务器。有更小的延迟和减轻远端流量

文件传输FTP协议

tcp 21 cs模式,并行的tcp连接。

21端口用来控制,使用telnet。在protocol interpreter中

20端口传输数据,数据连接可以双向,不一定始终存在,单独的数据传输进程。

维护状态:当前目录、身份认证

常用协议集

  • 体系结构

    -

  • 物理层

    • SONET/SDH 光网络
  • 链路层

    • ATM
    • 面向字符:PPP字符填充,多协议多功能,改进SLIP,不滑动 DDCMP BSC BM XBM ,SLIP字符填充 原始IP包 标记字符定界
    • 面向bit:SDLC ASCCP HDLC(主、次、组合站,使用011111110定界 CRC校验 信息、监控、无序号帧) LAP LAPB(X.25,是HDLC子集)
  • MAC+LLC(HDLC)逻辑链路控制子层

    • 802.3:1-坚持CSMACD 10Base5… 曼彻斯特

      前导7字节10101010和一字节10101011

    • 以太网 MTU(前导8)46+18~1500+14+4B

      6字节地址 最短帧长大于2τ防止冲突

      100BaseT4 25MHz 8B6T编码 每对33.3Mbps

      10GE 只光纤 单模更好 不使用CSMACD 全双工

    • 802.5 令牌环 需要延迟容纳令牌 重负载100% 曼彻斯特编码 物理层违例定界;源路由网桥指定Lan序列

    • FDDI 多模光纤 100M 4B5B编码 物理层违例定界 类似令牌环

    • DPT|RPR 城域网双环 SRP

    • 802.11 WIFI——MACA(RTS+CTS 二进制指数后退) W确认,载波监听

    • 收发器:csma等

    • 交换机:隔离卡内冲突域,卡间并行无冲突

    • 网桥:互联lan,转帧格式,隔离冲突域;

      到根的最短路径为生成树,其他透明。

  • 网络层

    • 静态

      • 洪泛 DIj
      • 基于流量:剩余带包的导数
    • 距离向量路由:无穷计算 水平分裂:从你学的不给你报告 Y失败

    • 链路状态路由:Hello学地址,echo测开销;

      • 包:自己、Seq、Age(TTL、邻居代价
      • Onlogn 可能震荡
    • TCPIP

    • IPV6 1280B分组,主机分片;双栈、翻译(NAT64)、隧道

    • ICMP 报告错误和测试

    • ARP RARP:MAC IP

    • BOOTP 使用IP UDP,可以分配其他信息。可以转发到其他子网

    • CIDR 无类间域路由:解决ipv4不够,罪魁祸首B类——把剩余的C类分为大小可变的地址空间。

      不给B,多给几块C。世界上四段连续C类,

    • 域内IGP

      • RIP:UDP,距离向量;跳数为代价;30 180s

      • OSPF:链路状态 多种代价

        分层路由:区域和主干0号区域。穿越主干。四类路由器:域内、多域、主干、边界

      • ISIS:链路状态

    • 域间EGP:需要定义策略,而非性能

      • BGP:TCP 路径向量(类似距离向量)
    • 拥塞控制

      • 开环:漏桶(字节计数)、令牌桶
      • 虚电路:流说明、准入控制、资源预留
      • 数据包子网:抑制、逐跳抑制
      • 公平队列算法、加权公平队列——分组轮询到字节轮询
    • 分片:出口重组or目的重组

    • 路由器:网络接口、内部交换、转发引擎、路由表、路由引擎;完成路由查找 和 内部交换

  • 传输层

    • berkeley sockets 对称释放连接
    • TCP
      • 三次握手建立SYN,对称式关闭FIN(三次握手+定时)
      • 20字节开头,满足MTU
      • 可变窗口
      • Nagle:1 + all + all改善发送 Clark改善window
      • 不保证延迟和带宽
    • UDP,不握手,只有len和check
  • 应用层

    • FTP 控制tcp21+数据tcp
    • SNMP udp
      • 性能、故障、配置、安全、记账
      • 背管节点、工作站、管理信息MIB、管理协议SNMP
      • ASN1抽象表示,构造新类型,SMI管理信息结构。obj-grp-mod 10grp
      • obj:类型、语法、存取、状态
      • 传输语法:BER规则
        • 标志符 tag type tag,可以后延,最后一个首1
        • 数据长度域:高位0直接写,高位1表示有多少字节
        • 数据域:
          • Int 二进制直接传
          • bitstring 第一个串为最后不用的个数
          • octet str直接传
          • 命名树放编码,两个数合并40a+b
    • WWW结构框架HTTP tcp
    • Email:SMTP tcp
      • 撰写、传输、报告、显示、处理
      • 信封接收方 信头用户代理的控制信息 信体
      • MIME多媒体扩展
      • POP3 IMAP PGP PEM 给用户收件
    • DNS udp
      • 资源记录,type中A MX主机 NS CNAME SOA
      • ICANN管理顶级域名
      • 递归负责到底,迭代你问问它,本地服务器负责到底
    • Telnet tcp