ISP 因特网服务提供者
三网:电信,电视,互联网
三种交换方式:电路交换,报文交换,分组交换
路由器工作方式:分组交换,存储转发
网络分类:
覆盖范围:广域网 WAN,域域网 MAN,局域网 LAN,个人局域网 PAN
使用者:公用,专用,虚拟专用
计算为b/s的时候除以8
吞吐量
在单位时间内通过某个网络(或信道、接口)的数据量
具有实际意义
时延
是数据从一端到另一端的时间
发送时延
发送数据时,数据帧从结点进入到传输媒体所需要的时间
传播时延
电磁波在信道中需要传播一定的距离而花费的时间(介质的物理性质决定P)
处理时延
交换节点为存储转发而进行的一些必要的处理花费的时间,路由器存储和查询的时间
排队时延
缓存队列分组排队的时延
长短取决于当时的通信量
时延带宽积
时延带宽积 = 传播时延 *带宽,单位比特
往返时间 RTT(Round-Trip Time)
送发送方发送开始,到发送方收到接收方的确认消息的时间
ping
利用率
信道利用率指出某信道有百分之几的时间是被利用的(有数据通过)
网络利用率则是全网络的信道利用率的加权平均值
网络协议:为进行网络中的数据交换而建立的规则
注意:要实现本层协议,必须要下一层提供的服务
语法:数据与控制信息的格式
语义:需要发出何种控制信息,完成何种动作以及做出何种响应
同步:事件实现顺序的详细说明
五层协议的体系结构
下层为上层提供服务
应用层,运输层,网络层,数据链路层,物理层
TCP/IP 四层:应用层,运输层,网络层,数据链路层
实体:表示任何可发送或接收信息的硬件或软件进程
协议是控制两个对等实体进行通信的规则集合
统一系统相邻两层的实体进行交互的地方称为服务访问点SAP
物理层考虑的是怎么样才能在连接各种计算机的传输媒体上传输数据比特流
物理层作用尽可能地屏蔽掉不同传输媒体和通信手段的差异
用于物理层的主要任务描述为物理层的规程
特性:机械,电气,功能,过程
传输方式一般是串行传输,即逐个比特按照时间顺序传输
一个数据通信系统包括三大部分:源系统(或发送端、发送方)、传输系统(或传输网络)和目的系统(或接收端、接收方)。
常用术语:
消息:语音,文字,图片等
数据:运送消息的实体
信号:数据的电气或电磁的表现
数字信号:代表消息的取值是离散的
码元:不同离散数值的基本波形
信道比:信号的平均功率和噪声的平均功率之比
有关信道的概念
信道:表示向某一个方向传送信息的媒体
单向通信:只有一个方向的通信
双向交替通信,半双工:通信双方都可发送消息但不能同时
双向同时通信,全双工:可以同时
基带信号:来自信源的信号,带有较多的低频成分
基带调制:编码
带通调制:用载波把基带信号频率范围调到较高的
带通信号:记过载波调制后的信号
模拟信号和数字信号的区:一个连续,一个离散
常用编码方式
不归零制:正电平1,负电平0
归零制:正脉冲代表1,负脉冲代表0
曼彻斯特编码
差分曼彻斯特
基本的带通调制方法
调幅AM:载波的振幅随基带数字信号而变化
调频FM:频率
调相:初始相位
每个码元对应4bit
限制码元在信道上的传输速率的因素有
信道能过通过的频率范围
码元的传输速率是有上限的,否则会出现码间串扰
频带越宽,就可以用更高的速率传送
信噪比
信号平均功率和噪声的平均功率之比,常记作S/N
香农公式
W为信道的带宽
导引型:有线
如 双绞线(用于局域网。类型标准5类和超5类),同轴电缆(有限电视),光纤(分为多模:多条不同角度入射的光线在一条光纤上传输 和单模:一根光纤 )
非导引型:无线
短波通信:有阻挡
微波:无阻挡
地面微波接力通信
卫星通信
ISM不用申请,2.4 GHZ~5.8 GHZ
是一种将若干个彼此独立的信号,合并为一个可在同一信道上同时传输的复合信号的方法
频分复用FDM:所有的用户在同样的时间占用不同的带宽资源
时分复用TDM:在不同时间占用同样的频带宽度,可能会造成浪费
统计时分:按动态分配资源
波分复用:光的频分复用,,特殊的频分复用
码分复用CDM:用户挑选不同的编码,可以同频率进行通信
比特时间:发送一个比特波形所占的时间
码片:每一个比特时间划分的m个短间隔
码片序列:mbit
如发送比特 1,则发送自己的 m bit 码片序列。
如发送比特 0,则发送该码片序列的二进制反码
扩频信道
直接序列扩频:码片序列
跳频扩频:不同信道按一个随机函数产生的序列跳跃
CDMA
每隔站分配的码片序列必须各不相同,并且还必须互相正交,实用系统中使用伪随机码序列
计算方法:
先将码元转换为m码片序列,1就是正常的,0为反码
发出去的信号是多个站叠加的
接收端要接收的信号就用接收端的码片序列去乘以叠加的信号
按位相乘相加,结果除以m,结果为0则没有这个站的数据,为1,-1则有,且1代表该站发送的是1,-1是0。
简单模型
两种通信模型
点对点,广播
链路:一条无源的点到点的物理线路段,中间没有任何其他的交换节点
数据链路:除了物理线路外,还必须有通信协议来控制这些数据的传输,把实现这些协议的硬件和软件加到链路上就构成了数据链路,数据链路层发送传送的是帧
常用的是使用适配器(网卡NIC), 一般包括了数据链路层和物理层这两层的功能
透明传输:对上层应用不可见,解决在数据中出现控制字符的问题
字节填充或字符填充
发送端的数据链路层在数据中出现控制字符“SOH”或“EOT”的前面插入一个转义字符“ESC”,十六进制是1B
接收端会在将数据送往网络层之前删除插入的转义字符
如果转义字符也出现在数据当中,那么应在转义字符前面插入一个转义字符 ESC。当接收端收到连续的两个转义字符时,就删除其中前面的一个。
差错控制:检测数据帧是否出错,一般是CRC校验
比特差错 :在传输过程中0和1发生突变
传输错误的比特占所传输比特总数的比例称为误码率,它与信噪比有很大的关系
无差错接受:凡是接受的帧(即不包括丢弃的帧),我们都能以非常接近 于 1 的概率认为这些帧在传输过程中没有产生差错
可靠传输:发送什么就收到什么,需要加上确认和重传机制
用户使用拨号电话线接入互联网时,用户计算机和ISP进行通信时所使用的数据链路层协议就是PPP
协议满足的需求
封装成帧:规定特殊的字符作为帧定界符
透明性:数据传输的透明性
多种网络协议:同一条链路上同时支持多种网络层协议
多种类型链路
差错检测
检测连接状态
最大传送单元:对每一种类型的点对点链路设置最大传送单元 MTU 的标准默认值,促进各种实现之间的互操作性
网络层地址协商:提供一种机制使通信的两个网络层实体能够通过协商知道或能够配置彼此的网络层地址
数据压缩协商:提供一种方法协商使用数据压缩算法
协议三个组成部分
一个将IP数据报封装带串行链路的方法
链路控制协议LCP(Link Control Protocol)
负责创建,维护或终止一次物理连接
网络控制协议NCP(Network Control Protocol)
负责解决物理连接上运行什么网络协议以及解决上层网络协议发生的问题
认证协议,最常用的包括口令验证协议PAP(Password Authentication Protocol)(密码是明文)和
挑战握手验证协议CHAP(Challenge-Handshake Authentication Protocol)
协议的帧格式
协议字段补充:
若为0xC021,则表示是PPP链路控制数据
若为0xC023,则表示是鉴别数据
标志字段F,地址字段A实际上不起作用,控制字段C
PPP是面向字节的,所有的PPP帧的场地都是整数
透明传输
同步传输链路,协议规定采用硬件来完成比特填充(HDLC)
异步传输,使用特殊的字符填充法
字符填充
将信息字段中出现的每一个0x7E字节转变成为2 字节序列(0x7D, 0x5E)
若信息字段中出现一个0x7D的字节,则将其转变成为2字节序列(0x7D, 0x5D)。
若信息字段中出现ASCII码的控制字符(即数值小于0x20的字符),则在该字符前面要加入一个0x7D字节,同时将该字符的编码加以改变
零比特填充
PPP 协议用在 SONET/SDH 链路时,使用同步传输(一连串的比特连续传送)。这时 PPP 协议采用零比特填充方法来实现透明传输。
在发送端,只要发现有 5 个连续 1,则立即填入一个 0。
接收端对帧中的比特流进行扫描。每当发现 5 个连续1时,就把这 5 个连续 1 后的一个 0 删除
状态图
PPP链路建立过程
三个阶段:创建,认证,网络协商阶段
创建PPP链路:
LCP
协商最大接受单元,对验证协议进行选择
用户验证:
客户端会将自己的身份发送给远端的接入服务器。
使用安全验证方式避免第三方窃取数据或冒充远程客户接管与客户端的连接。
在认证完成之前,禁止从认证阶段前进到网络层协议阶段。
如果认证失败,认证者应该跃迁到链路终止阶段。
最常用的认证协议有口令验证协议(PAP)和挑战握手验证协议(CHAP)
调用网络协议
认证阶段完成之后,PPP将调用在链路创建阶段(阶段1)选定的各种网络控制协议(NCP)。选定的NCP解决PPP链路之上的高层协议问题,例如,在该阶段IP控制协议(IPCP)可以向拨入用户分配动态IP地址和主从DNS服务器地址
提供在广播室网络中多台主机连接到远端的访问集中器(宽带接入服务器)上的一种标准
在以太网上传输PPP数据包的协议
两个阶段:发现阶段,会话阶段
会话阶段和PPP的会话过程是一样的,只是多了一个报文头
以太网帧格式
发现阶段,数据域内的数据内容会填充一些Tag标记;在会话阶段则会携带PPP报文
发现阶段以太网类型字段为0x8863,会话阶段则是0x8864
发现阶段
会话阶段
PPP数据报文被填充在PPPOE的净载荷中传输
信道划分方法
静态划分:频分,时分,波分,码分等
动态媒体接入,多点接入:信道不是固定分配的。又分为以下两类
随机接入
受控接入
以太网两个标准
DIX Ethernet V
IEEE 802.3
数据链路的两个子层
LLC 逻辑链路控制
与传输媒体无关,几乎是透明的
MAC 媒体接入控制
适配器的作用 adapter NIC
重要功能
以太网采用曼彻斯特编码
Carrier Sense Multiple Access with Collision Detection
载波监听多点接入/碰撞检测
多点接入:表示许多计算机以多点接入的方式连接在一根总线上
载波监听:就是用电子技术检测总线上有没有其他计算机发送的数据信号。
碰撞检测:计算机边发送数据边检测信道上的信号电压大小
每一个正在发送数据的站,一旦发现总线上出现了碰撞,就要立即停止发送,免得继续浪费网络资源,然后等待一段随机时间后再次发送
半双工通信
最短有效帧长:争用期(端到端往返时延),如果经过争用期这段时间还没有检测到碰撞,就肯定这次发送不会发生碰撞,规定发送帧的最小长度,长度64字节。小于64字节的帧都是由于冲突而异常终止的无效帧
强化碰撞:碰撞出现后,停止传输,并且立即发送人工干扰信号,让所有用户知道产生了碰撞
二进制指数型退避算法
采用双绞线的以太网采用星型拓扑结构,星型的中心就是集线器
物理地址
48位,高24位是组织唯一标识符(IEEE注册管理机构向厂家分配的),低24位是扩展唯一标识符(厂家自行指派),保证无重复
全F地址代表广播
特殊位:I/G(0/1):单站/组 L/G:全球管理/本地管理
适配器MAC地址检查
发往本站的帧则收下,否则丢弃
本站帧:单播(unicast),广播(broadcast),多播(multicast)
所有适配器都能识别单和广播帧,广播和多播只能是目的地址
混杂模式:检测到的帧全部接收下来
帧格式
类型字段标识上一层用的是什么协议,然后把数据交给这个协议处理
MAC客户数据字段,最小长度64 bytes-18 bytes的首部和尾部 = 最小长度。即数据长度区间为46~1500,不够则填充0
FCS是差错检测
IEEE 802.3规定的MAC帧的第三个字段是“长度/类型”,大于0x0600时表示类型,反之长度
帧间最小间隔
一个站在检测到总线开始空闲后,还要等待的时间才能再次发送数据。
这样做是为了使刚刚收到数据帧的站的接收缓存来得及清理,做好接收下一帧的准备
光纤扩展
通常是一对光纤和一对光纤调制解调器连接到集线器
集线器扩展
多个集线器可连接成更大的,多级星型结构以太网
只要连接到一个集线器的就是在同一个碰撞域
以太网交换机
实质上是一个多接口网桥,全双工工作模式,并行性
接口有存储器用于缓存,即插即用设备(内部有自学习算法的帧交换表),转发速率很快
优点
用户独享带宽增加了总容量
接入设备等不需要改动
多速率接口
交换机工作方式
存储转发
直通方式
接收后就立即按数据帧的目的MAC地址决定该帧的转发接口,不检查差错
交换机自学习功能
自动维护交换表,表中的项目设置有有效时间
是局域网给用户提供的一种服务
作用:控制广播域,加强网络安全性和健壮性和降低延迟
原理:在普通MAC帧基础上多了一个VLAN的标志字段,每个帧中发送前要检测这个字段的值,判断有没有权限到目的网络。没有的话就被过滤掉了
帧格式不变
T开头是铜缆,F是光纤
10G以上以太网是全双工
虚电路与数据报服务的对比
是TCP/IP体系中主要协议之一
配套使用的其他协议
网络互联中间设备,中继系统
直接交付与间接交付判断标准是交给主机还是路由器
唯一的32位标识符,由互联网名字和数字分配机构ICANN分配
定义:IP 地址 ::= { <网络号>, <主机号>}
各类IP地址网络号和主机字段
指派范围
A类减去2的原因是,网络字号全0 的是保留地址,表示本网络,全1 的表示本地软件环回测试即127不是网络地址
不用的特殊的IP
全1就是广播,广播无法辨别来源不能做源地址
全0是自己,自己地址不能做目的
IP地址与硬件地址
从网络层使用的 IP 地址,解析出在数据链路层使用的硬件地址
ARP高速缓存:每一个主机都设有一个 ARP 高速缓存 (ARP cache),里面有所在的局域网上的各主机和路由器的 IP 地址到硬件地址的映射表。
作用:存放最近获得的 IP 地址到 MAC 地址的绑定,以减少 ARP 广播的数量。
一些要点
注意问题
arp缓存
缓存项目最后的静态和动态
静态就是人为添加的,arp高速缓存不会自己删掉
动态就是通过arp协议获得的,到了生存时间就会删掉
ARP欺骗
通过伪造IP地址和MAC地址实现ARP欺骗,能够在网络中产生大量的ARP通信量使网络阻塞或者实现“man in the middle” 进行ARP重定向和嗅探攻击。
用伪造源MAC地址发送ARP响应包,对ARP高速缓存机制的攻击。
攻击者只要持续不断的发出伪造的ARP响应包就能更改目标主机ARP缓存中的IP-MAC条目,造成网络中断或中间人攻击。
arp
由首部和数据两部分组成
首部20字节,固定长度,首部是协议规定了含义,可以解析的字段
首部20字节,所有的IP数据报必须有的,可选字段长度可变
版本4位,根据值来确定IPV4或IPV6
首部长度4位,可表示最大数值是15个单位,一个单位为4字节,则最大值为60字节
总长度16字节,首部和数据之和的长度,最大为65535字节,必须不超过最大传送单元MTU
标识16位,用来产生IP数据报的标识
标志(flag) 3 位,目前只有前两位有意义。标志字段的最低位是 MF (More Fragment)。
MF = 1 表示后面“还有分片”。MF =0 表示最后一个分片。标志字段中间的一位是 DF (Don’t Fragment) 。只有当 DF =0 时才允许分片。
片位移:相对于用户数据字段的起点,该片从何处开始
生存时间(TTL):指示数据报在网络中可通过的路由器的最大值
协议8 位,指出此数据报携带的数据使用何种协议,以便目的主机的 IP 层将数据部分上交给那个处理过程
首部检验和16 位,只检验数据报的首部,不检验数据部分,使用简单计算方法(反码求和)
特定主机路由
为特定的目的主机指明一个路由
指定的路由器ip放在可选字段
默认路由
直接交付,间接交付,源路由,匹配路由,默认路由
子网掩码
从一个 IP 数据报的首部并无法判断源主机或目的主机所连接的网络是否进行了子网划分。
使用子网掩码(subnet mask)可以找出 IP 地址中的子网部分
长度32位
某位 = 1:IP地址对应位为网络号和子网号,为0则是主机号
子网号的位数中没有0,1,15,16。这没有意义
目的ip和源ip的子网掩码做与操作,得到的网络地址,跟源ip所在网络地址对比。相同就是一个子网
无分类域间路由选择
路由聚合构成超网
常用CIDR地址块
有多个匹配项的前提下,路由选择是最长前缀匹配,前缀越长,越精确
网际控制报文:辅助ip数据包传输
ICMP 允许主机或路由器报告差错情况和提供有关异常情况的报告。
ICMP 不是高层协议,而是 IP 层的协议。
ICMP 报文作为 IP 层数据报的数据,加上数据报的首部,组成 IP 数据报发送出去。
tracert原理:利用ip数据报中的TTL字段和ICMP时间超过差错报告报文实现对源点到终点的跟踪
种类
动态生成路由表
静态路由选择:非自适应路由,人工配制的,不能适应网络状态变化
动态路由选择:自适应
AS自治系统:
自治系统 AS 的定义:在单一的技术管理下的一组路由器
一个 AS 对其他 AS 表现出的是一个单一的和一致的路由选择策略
IGP 内部网关协议
在一个自治系统内部使用的路由选择协议
如:RIP和OSPF
EGP 外部网关协议
使用一种协议将路由选择信息传递到另一个自治系统中
如:BGP-4
内部协议
路由信息协议,分布式,基于距离向量的路由选择协议
要求网络中的每一个路由器都要维护从它自己到其他每一个目的网络的距离记录
网络故障传播的很慢
距离
一个路由器到直接连接的网络的距离定义为1,经过一个路由器就+1
注意
RIP允许一条路径最多只能包含15个路由器(适用于小型互联网)
RIP不能在两个网络之间同时使用多条路由
特点
(1) 仅和相邻路由器交换信息。
(2) 交换的信息是当前本路由器所知道的全部信息,即自己的路由表。
(3) 按固定的时间间隔交换路由信息,例如,每隔 30 秒。当网络拓扑发生变化时,路由器也及时向相邻路由器通告拓扑变化后的路由信息。
距离向量算法
先看目的(不在则添加),再看下一跳(同则更新,不同则比较(小则更新))
报文格式
内部网关协议,开放最短路径优先
要点
链路状态数据库:各路由器之间交换信息形成,是全网的拓扑结构,在全网范围内是一致的
区域:OSPF 将AS自治系统划分为若干更小范围,有32位的区域标识符
主干区域:在上层的区域,标识符规定为0.0.0.0 作用是用来连通其他在下层的区域
特点
OSPF不用UDP而是直接用IP数据报传送,数据报很短,且还要分片传送的数据报丢失一个就必须重传
多路径间的负载平衡:到同一个目的网络有多条相同代价的路径,把通信量分配给这几条路径
分组有鉴别功能,支持可变长度的子网划分和CIDR
规定每30分钟刷新一次数据库的链路状态
基操
RIP和OSPF区别
外部网关协议
不同AS的路由器之间交换路由信息的协议
BGP发言人
每一个自治系统的administrator要选择至少一个路由器作为发言人,一般来说是边界路由器。
BGP 所交换的网络可达性的信息就是要到达某个网络所要经过的一系列 AS
特点
BGP 协议交换路由信息的结点数量级是自治系统数的量级,这要比这些自治系统中的网络数少很多
BGP 支持 CIDR
在 BGP 刚刚运行时,BGP 的邻站是交换整个的 BGP 路由表。但以后只需要在发生变化时更新有变化的部分
报文
网络层设备
具有多个输入和输出端口,任务是转发分组
结构
路由选择部分
控制部分,任务是根据选定的路由选择协议构造出路由表,同时经常或定期地和相邻路由器交换路由信息而不断地更新和维护路由表。
分组转发部分
交换结构:根据转发表对分组进行处理
输入端口(硬件端口)
路由器的输入端口里面装有物理层、数据链路层和网络层的处理模块。
数据链路层剥去帧首部和尾部后,将分组送到网络层的队列中排队等待处理。这会产生一 定的时延。 输入端口中的查找和转发功能在路由器的交换功能中是最重要的。
输出端口
输出端口里面装有物理层、数据链路层和网络层的处理模块。
输出端口从交换结构接收分组,然后把它们发送到路由器外面的线路上。
在网络层的处理模块中设有一个缓冲区(队列)。当交换结构传送过来的分组的速率超过输出链路的发送速率时,来不及发送的分组就必须暂时存放在这个队列中。
数据链路层处理模块将分组加上链路层的首部和尾部,交给物理层后发送到外部线路。
转发和路由选择区别:路由表是根据路由选择算法得出的。而转发表是从路由表得出的
分组丢弃
若路由器处理分组的速率赶不上分组进入队列的速率,则队列的存储空间最终必定减少到零,这就使后面再进入队列的分组由于没有存储空间而只能被丢弃。
路由器中的输入或输出队列产生溢出是造成分组丢失的重要原因
输入和输出端口发生分组丢弃时都会发送一个ICMP包,但源ip不一样
交换结构
把分组从一个输入端口转移到某个合适的输出端口
常用交换方法
存储器
当路由器的某个输入端口收到一个分组时,就用中断方式通知路由选择处理机。然后分组就从输入端口复制到存储器中。
路由器处理机从分组首部提取目的地址,查找路由表,再将分组复制到合适的输出端口的缓存中。
若存储器的带宽(读或写)为每秒 M 个分组,那么路由器的交换速率(即分组从输入端口传送到输出端口的速率)一定小于 M/2。
总线
数据报从输入端口通过共享的总线直接传送到合适的输出端口,而不需要路由选择处理机的干预。
因为每一个要转发的分组都要通过这一条总线,因此路由器的转发带宽就受总线速率的限制。
现代的技术已经可以将总线的带宽提高到每秒几比特的速率,因此许多的路由器产品都采用这种通过总线的交换方式。
纵横交换结构
这种交换结构常称为互连网络 (interconnection network)。
它有 2N 条总线,可以使 N 个输入端口和 N 个输出端口相连接。
当输入端口收到一个分组时,就将它发送到与该输入端口相连的水平总线上。
若通向所要转发的输出端口的垂直总线是空闲的,则在这个结点将垂直总线与水平总线接通,然后将该分组转发到这个输出端口。
但若该垂直总线已被占用(有另一个分组正在转发到同一个输出端口),则后到达的分组就被阻塞,必须在输入端口排队。
更大地址空间,扩展的地址层次,灵活的首部格式,改进的选项
允许协议继续扩充,自动配置无需DHCP,支持资源预分配,首部为8字节对齐
包括 arp 和 igmp
组成部分
基本首部是固定的40字节
通信量类:区分不同数据报的类别或优先级
流标号20位:“流”是互联网络上从特定源点到特定终点的一系列数据报, “流”所经过的路径上的路由器都保证指明的服务质量。所有属于同一个流的数据报都具有同样的流标号。
有效载荷长度16位:除基本首部以外的字节数
下一首部:
跳数限制8位:值为0的时候就丢弃
扩展首部:
IPv6把原来IPv4首部中选项的功能都放在扩展首部中,并将扩展首部留给路径两端的源站和目的站的主机来处理。
数据报途中经过的路由器都不处理这些扩展首部(只有一个首部例外,即逐跳选项扩展首部)
128位
单播,多播
任播(单播和多播一起):任播的目的站是一组计算机,但数据报在交付时只交付其中的一个,通常是距离最近的一个。
冒号十六进制计法:0压缩
分类:
未指明地址:只有一个,主机当做源地址使用
环回地址,多播地址:和v4一样
本地链路单播地址:路由器不转发带有链路本地源地址或目的地址的数据报文给其他链路
双协议栈:看到哪个网络就用那种地址,但v6转换v4会有缺失
隧道技术:把 IPv6 数据报封装成为 IPv4 数据报
ICMPv6取消arp协议,通过邻接点请求报文(NS)和邻接点公告报文(NA)的交互来解析链路层地址
网际管理协议
让连接在本地局域网上的 多播路由器知道本局域网上是否有主机参加或退出了某个多播组
使用IP数据报传递报文,IGMP报文加上IP首部构成IP数据报
工作阶段
三种方法
隧道技术
多协议标记交换
支持上下层,“标记”是指每个分组被打上一个标记,根据该标记对分组进行转发
作为一种IP增强技术
特点
进程之间的通信,是面向连接的运输层协议,为相互通信的应用进程提供逻辑通信,属于面向通信部分的最高层,也是用户功能中的最底层
当网络的边缘部分中的两个主机使用网络的核心部分的功能进行端到端的通信时,只有位于网络边缘部分的主机的协议栈才有运输层
作用
复用和分用
操作系统的 多个进程(这里一个端口表示一个进程) 利用一个运输层协议(或者称为运输层接口)发送数据称为复用
同理,接收时叫做 分用
屏蔽作用
运输层向高层用户屏蔽了下面网络核心的细节(如网络拓扑、所采用的路由选择协议等),它使应用进程看见的就是好像在两个运输层实体之间有一条端到端的逻辑通信信道
端口
可以把端口想象是通信的终点,因为我们只要把要传送的报文交到目的主机的某一个合适的目的端口,剩下的工作(即最后交付目的进程)就由 TCP 来完成
分类:软件端口(在协议栈层的抽象协议端口)和硬件端口(路由器或交换机上的端口)
硬件端口是不同硬件设备进行交互的接口,而软件端口是应用层的各种协议进程与运输实体进行层间交互的一种地址
注意
常用端口号:53(DNS) 25(SMTP) 20 21(FTP) 23(Telnet) 80(HTTP) 443(HTTPS)
特点
用户数据报协议,不可靠信道
提供无连接服务:发送数据之前不需要建立连接
最大努力交付
面向报文
没有拥塞控制
传送的数据单位协议是 UDP 报文或用户数据报。
对方的运输层在收到 UDP 报文后,不需要给出任何确认。
支持一对一、一对多、多对一和多对多的交互通信
首部8字节
工作流程
发送方 UDP 对应用程序交下来的报文,在添加首部后就向下交付 IP 层。UDP 对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界。
应用层交给 UDP 多长的报文,UDP 就照样发送,即一次发送一个报文
接收方 UDP 对 IP 层交上来的 UDP 用户数据报,在去除首部后就原封不动地交付上层的应用进程,一次交付一个完整的报文
应用程序必须选择合适大小的报文
首部格式
传输控制协议,全双工可靠信道
提供面向连接的服务。
传送的数据单位协议是 TCP 报文段 (segment)。
TCP 不提供广播或多播服务。
点对点连接
面向字节流
TCP 中的“流”(stream)指的是流入或流出进程的字节序列。
“面向字节流”的含义是:虽然应用程序和 TCP 的交互是一次一个数据块,但 TCP 把应用程序交下来的数据看成仅仅是一连串无结构的字节流
TCP的连接
每一条 TCP 连接有两个端点
TCP 连接的端点叫做套接字 (socket) 或插口。
端口号拼接到 (contatenated with) IP 地址即构成了套接字
套接字 socket = (IP地址 : 端口号)
TCP 连接 ::= {socket1, socket2}
= {(IP1: port1),(IP2: port2)}
停止等待协议
就是每发送完一个分组就停止发送,等待对方的确认(ACK)。在收到确认后再发送下一个分组。
为保证接收方正确接收消息:超时重传
发送方为每一个已发送的分组都设置了一个超时计时器
只要在超时计时器到期之前收到了相应的确认,就撤销该超时计时器,继续发送下一个分组
确认丢失
确认迟到
在发送完一个分组后,必须暂时保留已发送的分组的副本,以备重发。
分组和确认分组都必须进行编号。
超时计时器的重传时间应当比数据在分组传输的平均往返时间更长一些
自动重传请求
重传的请求是自动进行的,接收方不需要请求发送方重传某个出错的分组
信道利用率
流水线传输
发送方可连续发送多个分组,不必每发完一个分组就停顿下来等待对方的确认
连续ARQ协议
位于发送窗口内的分组都可连续发送出去,而不需要等待对方的确认。
发送方每收到一个确认,就把发送窗口向前滑动一个分组的位置
累计确认
接收方一般采用累积确认的方式。即不必对收到的分组逐个发送确认,而是对按序到达的最后一个分组发送确认,这样就表示:到这个分组为止的所有分组都已正确收到了
回退
如果发送方发送了前 5 个分组,而中间的第 3 个分组丢失了。这时接收方只能对前两个分组发出确认。发送方无法知道后面三个分组的下落,而只好把后面的三个分组都再重传一次
表示需要再退回来重传已发送过的 N 个分组
报文格式
分为首部和数据,而 TCP 的全部功能都体现在它首部中各字段的作用。
首部最小长度20字节
首部格式
源端口和目的端口字段——各占 2 字节。端口是运输层与应用层的服务接口。运输层的复用和分用功能都要通过端口才能实现。
序号字段——占 4 字节。TCP 连接中传送的数据流中的每一个字节都编上一个序号。序号字段的值则指的是本报文段所发送的数据的第一个字节的序号
确认号字段——占 4 字节,是期望收到对方的下一个报文段的数据的第一个字节的序号
数据偏移(即首部长度)——占 4 位,它指出 TCP 报文段的数据起始处距离 TCP 报文段的起始处有多远
重要
紧急 URG —— 当 URG =1 时,表明紧急指针字段有效。它告诉系统此报文段中有紧急数据,应尽快传送
确认 ACK —— 只有当 ACK = 1 时确认号字段才有效。当 ACK = 0 时,确认号无效
推送 PSH (PuSH) —— 接收 TCP 收到 PSH = 1 的报文段,就尽快地交付接收应用进程,而不再等到整个缓存都填满了后再向上交付
复位 RST (ReSeT) —— 当 RST = 1 时,表明 TCP 连接中出现严重差错(如由于主机崩溃或其他原因),必须释放连接,然后再重新建立运输连接
同步 SYN —— 同步 SYN = 1 表示这是一个连接请求或连接接受报文
终止 FIN (FINish) —— 用来释放一个连接。FIN 1 表明此报文段的发送端的数据已发送完毕,并要求释放运输连接
窗口字段 —— 占 2 字节,用来让对方设置发送窗口的依据,单位为字节
紧急指针字段 —— 占 16 位,指出在本报文段中紧急数据共有多少个字节(紧急数据放在本报文段数据的最前面)
TCP可靠通信的实现
TCP 的滑动窗口是以字节为单位的
B给出窗口值20,和确认好31,那么A就构造从31开始的20个字节的发送窗口
确认号是指下一个希望收到的,假如没收到31,收到了32,33。还是会返回确认号31
发送缓存都是来自应用程序
发送缓存用来暂时存放:
发送应用程序传送给发送方 TCP 准备发送的数据;
TCP 已发送出但尚未收到确认的数据。
接收缓存用来暂时存放:
按序到达的、但尚未被接收应用程序读取的数据;
不按序到达的数据
强调
发送窗口和接收窗口不总是一样大,有时间滞后
TCP先临时存放在接收窗口中,等到字节流中所缺少的字节收到后,再按序交付上层的应用进程
接收方必须有累积确认的功能
SACK(选择确认)
接收方收到了和前面的字节流不连续的两个字节块。
如果这些字节的序号都在接收窗口之内,那么接收方就先收下这些数据,但要把这些信息准确地告诉发送方,使发送方不要再重复发送这些已收到的数据。
用滑动窗口实现流量控制
死锁
解决死锁办法:持续计时器
在收到TCP连接的一方收到对方的零窗口通知,就启动该计时器,若时间到期就发送一个零窗口探测报文对方就在确认这个探测报文段时给出了现在的窗口值。若窗口仍然是零,则收到这个报文段的一方就重新设置持续计时器。若窗口不是零,则死锁的僵局就可以打破了
拥塞控制和流量控制区别
拥塞控制是一个全局性的过程,涉及到所有的主机、所有的路由器,以及与降低网络传输性能有关的所有因素
流量控制往往指点对点通信量的控制,是个端到端的问题(接收端控制发送端)
TCP拥塞控制方法:
拥塞窗口:真正的发送窗口值 =Min(公告窗口值,拥塞窗口值)
防止过多的数据注入到网络使网络路由器或链路过载
拥塞判断:
重传定时器超时
收到三个相同重复的ACK
拥塞控制算法
超时
三个确认ACK
快重传:
算法首先要求接收方不要等待自己发送数据时才进行捎带确认,而是要立即发送确认,即使收到了失序的报文段也要立即发出对已收到的报文段的重复确认
快恢复:连续收到3个重复的确认时
当发送端收到连续三个重复的确认时,由于发送方现在认为网络很可能没有发生拥塞,因此现在不执行慢开始算法,而是执行快恢复算法
总结:门限折半,从半加1
**发送窗口上限值=Min [rwnd, cwnd] **
运输连接管理
连接采用C/S架构
三个阶段
连接建立,数据传送,连接释放
防止 “已失效的连接请求报文段”出现在本连接中。A 在发送完最后一个 ACK 报文段后,再经过时间 2MSL,就可以使本连接持续的时间内所产生的所有报文段,都从网络中消失。
有限状态机
域名系统
域名结构
域名的结构由标号序列组成,各标号之间用点隔开:
… . 三级域名 . 二级域名 . 顶级域名
各标号分别代表不同级别的域名
根服务器(13套装置)一共13个,从a到m
域名服务器:根域名服务器,顶级域名服务器,权限域名服务器,本地域名服务器
解析过程
文件传送协议
传输层采用TCP
WWW,万维网用链接的方法能非常方便地从互联网上的一个站点访问另一个站点,从而主动地按需获取丰富的信息
C/S架构
实例
SMTP:发送邮件的协议
POP3和IMAP:读取邮件的协议
MIME 在其邮件首部中说明了邮件的数据类型(如文本、声音、图像、视像等),使用 MIME 可在邮件中同时传送多种类型的数据
POP3
POP 也使用客户-服务器的工作方式。
在接收邮件的用户 PC 机中必须运行 POP 客户程序,而在用户所连接的 ISP 的邮件服务器中则运行 POP 服务器程序
IMAP
用户在自己的 PC 机上就可以操纵 ISP 的邮件服务器的邮箱,就像在本地操纵一样。
因此 IMAP 是一个联机协议。当用户 PC 机上的 IMAP 客户程序打开 IMAP 服务器的邮箱时,用户就可看到邮件的首部。若用户需要打开某个邮件,则该邮件才传到用户的计算机上
MIME
通用互联网邮件扩充 MIME 并没有改动 SMTP 或取代它。
MIME 的意图是继续使用目前的 [RFC 822] 格式,但增加了邮件主体的结构,并定义了传送非 ASCII 码的编码规则。