基本知识

网络协议组成要素

通信知识

分组交换

传输方式

时延

类型
计算

dnodal=dproc+dqueue+dtrans+dpropd_{nodal}=d_{proc}+d_{queue}+d_{trans}+d_{prop}

存储转发和直接转发的区别

分组丢失

分组到达速度大于发送速度,分组缓存容量有限,超出容量就会造成丢失

电路交换

实现方式

应用层

协议数据单元(PDU)

message,中文称报文、消息

协议

传输层(运输层)

协议数据单元(PDU)

segment,中文称报文段、分组、数据段等等

协议

TCP(传输控制协议)

TCP报文段结构

TCP报文段格式

往返时间(RTT)的估计和超时

估计往返时间

新的估计往返时间等于旧的估计往返时间和新的测量时间以一定比例相加
仅在某个时刻做一次测量,且不为重传的报文段测量RTT,只为传送一次的报文段测量

公式

RTT估算:
EstimatedRTT(RTTs)=(1α)×EstimatedRTT+α×SampleRTTEstimatedRTT(RTT_s)=(1-\alpha)\times EstimatedRTT+\alpha \times SampleRTT
α推荐为0.125

RTT变化程度:
DevRTT(RTTD)=(1β)×DevRTT+β×SampleRTTEstimatedRTTDevRTT(RTT_D)=(1-\beta)\times DevRTT+\beta\times |SampleRTT-EstimatedRTT|

设置重传超时间隔(Karn算法)

RTO(TimeoutInteval)=EstimatedRTT+4×DevRTTRTO(TimeoutInteval)=EstimatedRTT+4\times DevRTT
如果重传,RTO=2*RTO

功能

可靠数据传输
快速重传
特点
流量控制

发送方不能淹没接收方缓存

接受窗口rwnd

利用滑动窗口实现流量控制

拥塞控制
和流量控制的区别

拥塞控制针对全网,流量控制针对一对一连接

状态变量
拥塞的影响
方法

TCP连接管理

三个阶段

连接建立
1. 三次握手

三次握手的过程:

三次握手的原因:

拓展知识:
因为第二次握手(还没有正式开始传送数据)时,服务器就已经给TCP连接分配了缓存资源,这为经典的DoS攻击即SYN洪泛攻击(SYN flood attack)提供了环境。在这种攻击中,攻击者发送大量的TCP SYN报文段,而不完成第三次握手的步骤。随着这种SYN报文段纷至沓来,服务器不断为这些半开连接分配资源(但从未使用),导致服务器的连接资源被消耗殆尽。这种SYN洪泛攻击是被记载的众多DoS攻击中的第一种。

三次握手过程

2. 数据传送
3. 连接释放

连接释放的过程:
客户端向服务器发送一个特殊的TCP报文段,该报文段FIN标志位置为1。服务器收到后,给发送方回送一个确认报文段。然后服务器发送它自己的终止报文段,其FIN比特被置为1.最后,客户端对服务器的终止报文段进行确认。

连接释放过程

UDP(用户数据报协议)

无连接的

UDP报文段结构

UDP报文段结构

UDP校验和的计算

发送方的UDP对报文端中的所有16比特字的和进行反码运算,求和时遇到的任何溢出都被回卷。得到的结果被放在UDP报文段的校验和字段。举例来说,假定我们有下面3个16比特的字:

0110011001100000
0101010101010101
1000111100001100

前两个之和是

 0110011001100000
+0101010101010101
------------------
 1011101110110101

再将上面的和和第三个字相加,得出:

 1011101110110101
+1000111100001100
------------------ 
 0100101011000010

注意到最后一次加法有溢出,它要被回卷。反码运算就是将所有的0换成1,所有的1换成0.因此,该和0100101011000010的反码运算结果是1011010100111101,这就是校验和。在接收方,全部的4个16比特字(包括校验和)加在一起,如果该分组中没有引入差错,则显然在接收方处该和将是1111111111111111。如果有一个是0,就代表分组中出了差错。

传输层和网络层的关系

对于网络层和传输层的描述,考虑有两个家庭,一家位于辽宁沈阳,一家位于浙江宁波,每家有4口人。每个人每星期要互相写一封信,每封信都用单独的信封通过中国邮政传送。因此每个家庭每星期向另一家发送16封信。每一个家庭有个孩子负责收发邮件,浙江宁波家庭是小明,辽宁沈阳家庭是小红。每星期小红去她的家人那里收集邮件,并将这些信件投到社区的邮筒里。当新建到达沈阳的家庭时,小红也负责将信件分发给家里人。在宁波的小明家里也负责类似的工作。

在这个例子中,邮政服务为两个家庭间提供逻辑通信,邮政服务将信件从一家送到另一家,而不是从一个人送到另一个人。在另一方面,小明和小红为家人之间提供了逻辑通信,他们从家人那里收取信件或到家人那里交付信件。注意到从家人们的角度来看,小明和小红就是邮件服务,尽管他们只是端到端交付的一部分(即端系统部分)。类比关系如下:

进程 = 家人
主机(又称为端系统) = 家庭
传输层协议 = 小明和小红
网络层协议 = 邮政服务(包括邮筒)

小明和小红都是在自己家里进行工作的,他们没有参与任何一个中间邮件中心对邮件进行分拣,或者将邮件从一个邮件中心送到另一个邮件中心之类的工作。类似地,运输船协议只工作在端系统中。在端系统中,运输船协议将来自应用进程的报文移动到网络边缘(即网络层),反过来也是一样,但对有关这些报文在网络核心如何移动并不作任何规定。

多路复用(分用)和多路分解

多路复用(发送端)

从不同套接字收集数据块,为每个数据块封装上首部信息生成报文段,传递到网络层

多路分解(接收端)

将传输层报文段中的数据交付到正确的套接字,定向给进程

多路复用和多路分解的原理可以同样用上面这个家庭的例子来作类比。每一个家庭成员通过他们的名字来标识(相当于套接字)。当小明从邮递员出收到一批信件,并通过查看收信人名字而将信件交付给他的家人时,他执行的就是一个多路分解操作。当小红从家人那里收集信件并将它们投到邮筒中时,她执行的就是一个多路复用操作。

端口

可靠数据传输原理

可靠传输(RDT)的种类

信道无错误,无丢失

rdt1.0

rdt1.0

信道有错误,无丢失

rdt2.0(停止等待)

rdt2.0

错误处理方法

发送端重传

新增状态
存在缺陷

ACK或NAK出错时,发送方无法得知

rdt2.1

rdt2.1发送方
发送方收到含糊不清的ACK或NAK时,重传冗余分组

rdt2.1接收方

接收方需要判定数据是否重复,给每个分组加一个标签代表顺序号

rdt2.2

将两次对上个分组的ACK认为是当前分组的NAK

rdt2.2发送方

rdt2.2接收方

信道有错误,有丢失

rdt3.0

rdt3.0

设置定时器,超时即重传

采用流水线的方式发送以提高效率

网络层

协议数据单元

数据报(datagram)

转发和路由选择

区别:

路由器只工作到网络层

路由算法

虚电路和数据报网络

虚电路

特点:

改变VC号的目的:简化虚电路建立

信令协议:用于建立、保持、拆除虚电路

数据报网络

特点:

路由器工作原理

路由器结构

路由转发平面(硬件实现)

1 输入端口

功能:

2 交换结构

种类:

经内存交换

特点:

经总线交换

特点:

经互联网交换

特点:

3 输出端口

路由器转发控制平面(软件实现)

路由选择处理器

何处出现排队

网络层三个主要组件

1. 网际协议(IP)

提供:

不提供:

数据报格式

分片和重组

原因:不同的链路层有不同的MTU(最大传送单元)

特点:重组只在终点进行,路由器只做转发和选路

IPv4编址

长度32比特

CIDR(无类别域间路由选择)

子网掩码

NAT(网络地址转换)

特点:

争议:

2. ICMP(互联网控制报文协议)

用于主机和路由器交换信息,报错、回显请求等等

特点:通常被认为是IP的一部分,但从体系结构上讲它是位于IP之上的,因为ICMP报文承载在IP分组中

3. 路由选择

目的:给定一组路由器以及连接路由器的链路,找到一条从源路由器到目的路由器的好路径

算法

  1. 全局式路由选择算法,也称链路状态算法(LS算法)
    问题:若代价计算基于所承载的流量,会产生振荡,费用反复改变

内容:详见文章

  1. 分散式路由选择算法,也称距离向量算法(DV算法)
    问题:好消息传得快,坏消息传的慢,从而导致不断往复计算

解决方案:增加毒性逆转

内容:详见文章

分层路由

路由器不能保存全球所有的路由的信息

AS(自治系统)
  1. 同一个AS内部运行相同的路由协议(自治系统内部路由选择协议)
    热土豆路由
  2. 所有AS之间运行相同的路由协议(自治系统间路由选择协议)
    网关路由器

协议

域内协议
RIP(路由选择信息协议)

DV算法

代价和跳数对应

最大跳数15

RIP通告:30秒交换一次;180秒没有响应代表链路中断

运行在UDP之上,当作应用层进程来实现

OSPF(开放最短路径优先)

LS算法:Dijstra算法

过程:通告携带信息,广播到整个AS系统,OSPF通告包含在报文中,OSPF报文直接由IP承载

优点

域间协议
BGP(边界网关协议)

工作手段:

  1. 从相邻AS处获得子网可达性信息
  2. 向本AS内部的所有路由器传播这些可达性信息
  3. 基于可达性信息和AS策略,决定到达子网的“好”路由

####### BGP会话

性质:半永久的TCP连接

用途:用于一堆路由器交换路由信息

分类:

特点:BGP会话并非与物理链路一一对应

广播和多播路由

IGMP(因特网组管理协议)

数据链路层

协议数据单元(PDU)

帧(frame)

简介

功能:相邻结点的传输

术语:

特点:

提供的服务

多路访问协议

术语:
碰撞(collide)、争用期

信道划分协议

随机访问协议

轮流协议

交换局域网

寻址

MAC地址:48位

ARP(地址解析协议)

以太网

以太网帧

长度在64-1518字节,其中数据部分长度在46-1500字节之间

争用期

详见文章概念

10M以太网取51.2微秒为争用期

链路层交换机

特点:

功能:转发和过滤

性质:

使用以太网交换机可以实现虚拟局域网VLAN,这只是一种服务,并不是新型网络

高速以太网

100BASE-T

特点:

三种不同物理层标准

吉比特以太网

特点

物理层

10Gbit以太网

特点

以太网的特点

点对点传输

特点:面向连接,一个发送方,一个接收方,一条链路

协议

PPP点对点协议

三个组成部分

  1. 一个将IP数据报封装到串行链路的方法
  2. 链路控制协议
  3. 网络控制协议

需要提供的服务

不用提供的服务

三个基本问题

  1. 封装成帧
  2. 透明传输
  3. 差错检测

链路层

协议数据单元

比特(bit)

拓扑种类

接入方式

物理媒介

双绞线
按用途分类:

按有无屏蔽分类

同轴电缆

光纤

无线电