##==第一章==
1.1.1internet的组成
边缘部分+核心部分
边缘部分由所有连接在英特网上的主机设备组成
核心部分由大量网络和连接这些网络的路由器组成
1.1.2基于ISP的三层结构的internet
第一层ISP:主干网络(范围:国际性区域)
第二层ISP:区域性或国家性覆盖规模
第三层ISP(本地ISP):一般覆盖范围窄,如校园网和企业网
1.2.1三种交换方式
电路交换:电话交换机接通电话的方式称为电路交换
交换就是按照某种方式动态的分配传输线路的资源
电路交换的三个步骤:建立连接(分配通信资源)、通话(一直占用通信资源)、释放连接(归还通信资源)
缺点:
分组交换
发送方:构造分组、发送分组
路由器:缓存分组、转发分组
接收方:接收分组、还原报文
报文交换
报文交换是将报文整体由同一个节点转发到另一个节点
各种交换方式的优缺点
1.3计算机网络的分类
1.4 计算机网络的性能指标
速率:
数据量的单位(用2的次幂表示)
8 bit = 1 Byte
1 KB = 2^10 B
1 MB = K.KB = 2^20 B
GB = K.MB = 2^30 B
TB = K.GB = 2^40 B
常用数据率单位(用10的次幂表示)
bit/s = (b/s) = bps
kb/s = 10^3 b/s
Mb/s = k.kb/s = 10^3.10^3 b/s = 10^6 b/s
Gb/s = 10^9 b/s
Tb/s = 10^12 b/s
带宽
在模拟信号系统中带宽:信号所包含的各种频率所占据的频率的范围
单位:Hz、KHz、MHz、GHz(一般从300Hz开始取值)
在计算机网络中的意义:
表示网络的通信线路所能传输数据的能力
单位:b/s、kb/s、
吞吐量
单位时间内通过某个网络(信道、接口)的数据量
吞吐量受网络导带宽和额定速率的限制
时延
时延包括:发送时延、传播时延、处理时延、网络时延
发送时延 = 分组长度(b)/ 发送速率(b/s)
传播时延 = 信道长度(m)/ 电磁波传播速度(m/s)
时延带宽积
时延带宽积 = 传播时延 x 带宽
往返时间:Round - Trip Time
网络上的信息不仅仅是单方向传输,而是双向交互的
利用率
信道利用率:表示某信道百分之几的时间是被利用的(有数据通过)
网络利用率:全网络的利用率的加权平均
根据排队论:某信道的利用率增大时,信道引起的延时将会迅速增加(信道利用率并非越大越好)
网络当前时延 D ,网络空闲时延D~0~,通道利用率U;D = D~0~/(1 - U);一般信道利用率到达50%就要考虑扩容了
丢包率
概念:丢失分组的数量与总分组的比值(接口丢包率、节点丢包率、链路丢包率、路径丢包率、网络丢包率)
1.5计算机网络体系结构
OSI体系结构(法律上的国际标准)
从上到下:应用层->表示层->会话层->运输层->网络层->数据链路层->物理层
TCP/IP体系结构(事实上的国际协议)
从上到下:应用层->运输层->网际层->网络接口层
IP协议可以为各种网络应用提供服务(every over IP)
使用IP协议互联不同的网络接口(IP over everything)
原理体系结构(适用于教学)
从上到下:应用层->运输层->网络层->数据链路层->物理层
1.5.1分层的必要性
各层网络体系的作用
应用层:解决通过应用进程的交互来实现特定网络应用的问题
运输层:解决进程之间基于网络的通信问题
网络层:解决分组在多个网络上传输(路由)的问题
数据链路层:解决分组在一个网络(或一段链路)上传输的问题
物理层:解决使用何种信号来传输比特的问题
举例应用进程间基于网络的通信
第一步:应用层封装好需要发送的报文(报文中需要封装的信息后面将协议的时候会讲到)
第二部:运输层在报文首部添加TCP头部(TCP头部包含的内容将在后面TCP协议中讲解),形成报文段
第三步:网络层在报文段的首部添加IP头部(IP头部包含的内容将在后面TCP协议中讲解),形成IP数据报
第四步:数据链路层 在数据报的首位添加帧的头部和尾部
第五步:物理层将数据帧变成比特流并添加前导码
第六步:数据通过中间路由器或交换机时再将数据一步步还原,再加工(整体视图如下)
专用术语
实体:任何可发送或接收信息的硬件或软件进程
对等实体:收发双方相同层次中的实体
协议:控制两个对等实体进行逻辑通信的规则的集合
协议的三要素:语法(定义所交换信息的格式)、语意(定义收发双方要完成的操作)、同步(定义收发双方的时序关系)
协议数据单元PDU
“对等层次”之间传输的数据包称为该层的协议数据单元
服务数据单元SDU
同一系统内,层与层之间交换的数据包称为服务数据单元
多个SDU可以合成为一个PDU;一个SDU也可以划分为几个PDU
服务
在协议的控制下,两个对等实体间的逻辑通信使得本层能够向上一层提供服务
要实现本层协议,还要使用下面一层所提供的服务
协议是水平的服务是垂直的
服务访问点
在同一 系统中相邻两层的实体交换信息的逻辑接口,用于区分不同的服务类型
数据链路层的服务访问点为帧的“类型”字段、网络层的服务访问点为IP数据报首部中的“协议字段”、运输层的服务访问点为“端口号”
服务原语
上层使用下层所提供的服务必须通过与下一层交换一些命令,这些命令称为服务源语
==第二章物理层==
2.1物理层的基本概念
导引型传到媒体
双绞线
同轴电缆
光纤
非引导型传输媒体
微波通信(2~40GHz)
物理层的基本概念
物理层考虑的是如何在各种计算机的传输媒体上传输数据比特流;物理层为数据链路层屏蔽了各种传输媒体的差异,使数据链路层只需要考虑如何完成本层的协议和服务。
物理层协议的主要任务:
机械特性 |
指出接口所用接线器的形状和尺寸引脚数目和排列、固定和锁定装置 |
电器特性 |
指出在接口电缆的各条线上出现的电压的范围 |
功能特性 |
指出某条线上出现的某一电平的电压表示和种含义 |
过程特性 |
指出对于不同功能的各种可能事件的出现顺序 |
2物理层下面的传输媒体
引导型传输媒体
非引导型传输媒体
同轴电缆
无线电波
双绞线
微波
光纤
红外线
电力线
可见光
2.3传输方式
串行传输:数据是一个比特一个比特发送的;在发送方和接收方只需要一线即可完成传输 并行传输:发送端一次发送N个比特,;因此在发送端到接收端需要N根线
1.同步传输:字节之间没有间隔。接收方在每个字节的中间时刻进行检测,来判别接收到的是比特0还是比特1
1.1接收方在每个字节的中间时刻进行检测
1.2收发双方时钟同步的方法
外同步:在接收双方添加一条单独的时钟信号线
内同步:发送端将时钟同步信号编码到发送的数据中一起传输(如曼彻斯特 编码)
2.异步传输:
字节之间的异步(字节之间的时间间隔是不固定的)
字节中的每个比特仍然要同步(个比特的持续时间相 同)
单向通信(单工):例如无线电广播;仅需一条信道
双方交替通信(半双工):例如对讲机;需要两条信道
双向同时通信(全双工):如手机;需要两条信道
2.4编码与调质
码元:在使用时间域的波形表示数字信号时,代表不同离散数值的基本波形
传输媒体和信道
传输媒体 ≠ 传输信道;一个传输媒体可以包含多个信道
常见的编码
1. 不归零编码(需要额外解决同步问题):
1.1 需要额外一根时钟同步线
2.归零编码:
2.1每个码元传输结束后都要信号归零,不需要单独的 时钟信号
2.2时钟信号用归零的放式编码在数据之内,这称之 为"自同步”信号
2.3但是归零编码中的大部分数据带宽都用来传输“归 零”而浪费了
3.曼彻斯特编码:
码元的中间时刻的跳变表示时钟,又表示数据。且负跳变表示1正跳变表示0;码元中间的跳变既表示时钟又表示数据(传统以太网就是曼彻斯特编码)
3.基本调质方法
2.5信道的极限容量
信道的传输速率公式:
3.1数据链路概述
链路:相邻节点间的物理线路,中间上没有其他交换节点
数据链路:实现通信协议的硬件和软件加到链路上,就构成了数据链路
数据链路层以帧为单位传输和处理数据
3.1.1数据链路层的三个问题
1.分装成帧:
2.差错检测:根据帧中的检错码检测帧中是否误码
3.可靠传输:将错误的帧丢弃,在有需要的时候进行重传
3.2封装成帧
概念:数据链路层给上层交付的协议数据单元添加帧头和帧尾
帧头和帧尾中包含重要的控制信息
帧头和帧尾的作用之一就是帧界定
透明传输是指数据链路层对上层交付的传输数据没有任何限制,好像数据链路层不存在一样。(例如上层传输的数据中包含了物理层首部信息但不会影向数据的传输:实现的原理就是使用转意字符)
为了提高帧的传输效率;应该使帧的数据部分的长度选择的纪念尽量大一些;考虑到控制差错等多种因素,每一种数据链路层的协议都规定了最大的传输单元MTU(Maximum Transfer Unit)
3.3差错检测
误码率(Bit Error Rate):在一段时间内传输错误的比特占所传输总数的比率
1.奇偶检验:在发送的数据报后面天剑一位奇偶检验位,使数据中(包含所添加的校验位在内)中的“1”的个数为奇数(奇校验)或为偶数(偶校验)
2.循环冗余校验CRC(cyclic Redundancy Check)
1.接收双发约定好一个生成多项式G(x)
2.发送方将带发送的数据和多项式计算产生检测码(冗余码),并将其添加到被传输 的数据后面一起传输;
3.接收双发通过生成多项式来计算收到的数据是否产生了误码
3.4.1可靠传输的基本概念
使用差错检错技术(例如循环冗余校验CRC),接收方的数据链路层就可以检测出帧在传输过程中是否产生了误码(比特错误)
数据链路层向上层提供的服务类型
不可靠传输服务:仅仅丢弃误码的帧,不做其他动作、
可靠传输服务:想办法实行发送方发送什么,接收方就收到什么
1.一般情况下,有线链路的误码率比较低,为了减小开销,并不要求数据链路层向上层提供可靠的数据传输服务,即使出现了误码,可靠传输的问题有上层处理
2.无线链路易受干扰,误码率比较高,因此要求数据链路层必须向上层提供可靠的传输服务
1.比特差错只是传输差错中的一种
2.传输差错还包括分组丢失、分组失序、分组重复
* 这几种差错一般不会出现在数据链路层而是出现在其他层
3.发送法接收到却确认分组后才能发送先一分组
3.4.2可靠传输协议的实现机制
三种可靠传输协议不仅仅局限于数据链路层,而适用于整个计算机网络体系结构
停止-等待协议SW
SW的具体实现:
1.发送方向接收方发送数据分组DATA;
2.接收方接收后进行差错检测,如果没有误码则接收方向发送方发送确认分组ACK
2.1如果发送方发送的数据分组有误码,则接收方会丢弃这个分组,并向发 送方发送NAK
3.发送方接收到ACK后继续发送下一分组
3.1如果发送方接收到的NAK这会立马重复发上一分组
----------------------------------------------------
问题:如何最开始发送的分组接收方没收到这接收方就不会发送ACK或NAK的消息了发送方就会一直处于等待的状态
解决发送方一直处于等待的状态的问题
解决发送方多次发送同一分组的问题
会退N帧协议GBN(滑动窗口协议)
选择重传协议SR
3.5点对点协议PPP
协议简介
点对点协议ppp的帧格式
实现透明传输的方法
转义字符法
2.比特填充法
PPP协议的差错与检测
接收方每收到一个PPP帧,就进行CRC检验。若CRC检验正确,就收下这个帧;反之,就丢弃这个帧。使用PPP的数据链路层向上不提供可靠的传输服务。
3.6.1媒体接入控制的基本概念
共享信道要着重考虑的一个问题就是如何协调多个发送和接收节点对一个共享传输媒体的占有,即媒体接入控制MAC(Medium Access Control)
静态划分通道
复用是通过一条物理线路同时传输多路用户的信号
常用的静态划分信道复用 1.频分复用FDM 2.时分复用TDM 3.波分复用WDM 4.码分复用CDM
3.6.3媒体接入控制--冬动态输入控制--随机接入
解决碰撞的方法
CSMA/CD----最小帧长、最大帧长度要求
3.6.4媒体接入控制--动态接入控制--随机接入
载波监听多址接入/碰撞避免CSMA/CA
3.7MAC地址、IP协议、ARP协议(地址解析协议)
MAC地址是以太网的MAC子层所使用的地址(属于数据链路层)
IP地址是TCP/IP体系结构网际层使用的地址
ARP协议属于TCP/IP体系结构的网际层,其作用是为已知设备分配IP地址,使用ARP协议可通过IP地址获取MAC地址
MAC地址
使用点到点的数据链路层不需要使用地址
当多个主机接入到同一信道上,想要实现两个主机之间的通信每个主机就要有一个唯一的标识,即唯一的数据链路层地址;每个主机发送的帧中必须携带标识发送主机和接收主机的地址(MAC地址:虽然叫物理地址MAC却属于数据链路层);MAC一般固化到网卡中EEPROM中,因此也叫硬件地址
IP地址(网络层)
IP地址是网络上的主机和路由器使用的地址,用于标识两部分信息;网络编号:标记因特网上的网络数以万计的主机编号。主机编号:标识同一网络上的不同主机
网络体系中各层需要添加的头部
ARP地址解析协议
每台主机都保存有ARP高速缓存表,里面记录有IP地址与MAC地址的对应关系
3.8集线器与交换机的区别
早期的总线型的以太网使用机械接头不可靠
之后使用的双绞线和集线器HUB使用RJ-45水晶头接口可靠
使用集线器HUB在物理层扩展以太网
以太网交换机
集线器和交换机的对比
3.9以太网交换机的自学习和转发帧的流程
* 以太网交换机工作在数据链路层(也包括物理层)
* 以太网交换机收到帧后,在帧交换表中查找帧的MAC地址对应的接口,然后通过该接口转发帧
* 交换机是一种即插即用设备,启动时帧交换表中的数据是空的,随着网络中主机之间的通信,一台网交换机通过自学习算法逐渐建立帧交换表
自学习与转发过程图解
当帧数据表中没有数据时交换机将会盲目转发(在帧教皇表中消息从哪个口进到交换机,就将主机的MAC地址与多口号绑定)
3.10以太网交换机的生成树协议STP
1.问题的提出:如果网络链路之间发生故障将个主机之间将无法正常进行数据交换。 2.如何提高以太网的可靠性?(增加冗余链路) 3.冗余链路的问题:将导致数据环路 导致网络风暴,大量消耗网络资源 主机收到重复的广播帧,大量消耗主机资源 交换机的帧交换表震荡(导致交换表一直更新改变)
生成树协议STP(spanning Tree protocol)
作用:在增加冗余链路的同时,避免了网络环路带来的影响。交换机自动构建一个逻辑上没有环路的网络
3.11虚拟局域网VLAN概述
问题的提出:使用多个以太网交换机相互连接建立起来的交换式以太网中的所有站点都属于同一个广播域。随着交换式以太网的规模扩大广播域也相应扩大。这将导致难以管理和维护、广播风暴、潜在安全问题。
网络中很多协议都会使用广播:
TCP/IP协议栈中很多协议都会使用广播
地址解析协议ARP(已知ip地址,找出相应的MAC地址)
路由信息协议RIP(一种小型的内部路由协议)
动态主机配置协议DHCP(用于自动配置ip地址)
==分割广播域的方法==
使用路由器以隔离广播域(缺点路由器的成本较高)
使用虚拟局域网VLAN(virtual Local area networks)技术隔离局域网:将局域网中的设备划分为与物理位置无关的逻辑组的技术,这些逻辑组具有某些共同的需求。
3.11.1虚拟局域网VLAN的实现机制
交换机的端口交换类型 |
|
Access |
一般用于连接用户计算机且一个端口只能属于一个VLAN,一般只接收未打标签的普通以太网MAC帧,根据接收帧的PVID给帧打标签,若帧中的vid与端口的AVID相等,则“去标签”并转发该帧,否则不转发 |
Trunk |
一般用于交换机之间,或交换机与路由器之间的互联,trunk的端口可以属于多个VLAN,用户可以设置trunk端口的PVID值,默认为1;对vid = pvid的帧,“去标签再转发”,接收到未打标签的帧,根据接收帧端口的pvid的值给帧打标签 |
Hybrid |
同样用于交换机与交换机或路由器之间(同trunk),也可用于交换机与用户计算机之间,bybird属于多个VLAN;Hybird发送处理方法与trunk端口不同,查看帧的vid是否在端口的”去标签“列表中,若存在则去标签转发,若不存在直接转发 |
==第四章 网络层==
4.1网络层概述
网络层的主要任务是实现网络互连,进而实现数据包在网络之间的传输
需要网络层解决的问题:
1.网络层先传输层提供怎样的服务(可靠还是不可靠服务)
2.网络层的寻址问题
3.路由选择问题
网络各层次主要使用的协议
4.2网络层提供的两种服务
面向连接的虚电路服务
可靠通信由网络保证
必须建立网络层的连接——虚电路VC(virtual circuit)
通信双方沿已经建立的虚电路发送分组
目的主机的地址仅在建立阶段使用,之后每个分组的首部只需要携带一条虚拟电路的编号(构成虚拟电路的每一段链路都有一个虚拟的电网编号)
通信结束后需要释放之前建立的虚拟电路
无连接的数据报服务
可靠通信应当由用户主机来保证
不需要建立网络层连接
每个分组可走不同的路径
每个分组的首部必须携带目的主机的完整地址
这种通信方式所传送的分组可能误码、丢失、重复、失序
由于网络本身不提供端到端的可靠传输服务,这就使网络中的路由器可以做的比较简单、价格低廉
4.3IPv4地址及其应用
IPv4地址就是因特网上每一台主机(或路由器)的每一个接口分配一个全世界范围内的唯一的32比特的表示符
1981 分类编址 |
1985 划分子网 |
1993 无分类编址 |
4.3.2分类编址的IPv4地址
最小网络号0,保留不指派;第一个可指派的网络号为1,网络地址为1.0.0.0;最大网络号为127,作为本地环回测试地址,不指派;最后一个可指派的网络号为126,网络地址为126.0.0.0;综上:可指派的网络数量为:2^(8-1)^ -2 = 126个(减2是因为除掉最大最小网络号,8-1是取出最小网络号);每个网络中可分配的IP地址数量为2^(24-1)^ -2 = 16777214(减2是去除全0的网络地址和全1的广播地址)
4.4.3划分子网的IPv4地址
32 位的子网掩码可以表明分类IP地址的主机号被借用了几个bit用作子网号
1.子网掩码使用联系的比特1来对应**网络号**和**子网号**
2.子网掩码使用连续的比特0来对应主机号
3.划分子网的IPv4与其相应的子网掩码进行逻辑与运算就可以得到IPv4的所在子网的网络地址
4.3.4无分类编址的IPv4地址
路由聚合
4.3.5IPv4地址的应用
定长子网掩码FLSM
使用同一个子网掩码来划分子网
每一个子网所分配的IP地址数量相同造成IP地的浪费
变长子网掩码VLSM
使用不同的子网掩码来划分子网
每一个子网分配的IP地址数量可以不同,尽可能减少IP地址的浪费
4.4 IP数据报的发送和转发过程
1.主机发送IP数据报
2.路由器转发IP数据报
主机发送IP数据报过程
若在同一个网络中,属于直接交付
若不在同一个网络中,这属于间接交付,传输给主机所在网络的默认网关(路由器),由默认网关帮忙转发。
路由器转发IP数据报
检查IP数据报首部是否出错;出错直接丢弃并告知源主机,没有出错进行转发
根据IP数据报的目的地址在路由表中查找匹配的条目;若找到匹配的条目,则转发给条目中指示下一跳;若找不到则丢弃改IP并报告主机
4.5静态路由配置和可能产生的路由环路问题
静态路由配置是人工配置静态路由表,这种配置方式的开销小方式简单,但不能及时适应网络的变化;一般只在小规模的网络中使用。
可能存在的问题:配置错误、聚合了不存在的网络
静态路由的配置
例如R1想将数据报发送给网络192.168.2.0/24,则R1收到数据报后会根据人工配置的路由表将数据发送给给R2的0号端口
默认路由
将具有想用下一跳的不用目的网络的地址配置成默认路由条目:0.0.0.0/0
特定主机路由
在路由表中配置到达某个特定主机的转发表
在转发的过程中将使用最前缀最长(也就是最具体的那个路由条目)
由于人工配置的静态路由配置错误将导致路由环路问题
为了解决路由环路问题:在IP数据报的首部添加TTL(time to live)字段,若转发次数较多时自动删除此数据报
问题2:聚合了不存在的路由
解决方式:添加对不存在的地址的黑洞路由null
4.6.1路由选择协议概述
静态路由选择:由人工配置网络路由、默认路由、特定主机路由、黑洞路由等;这种人工配置方式简单、开销小、不能及时使用网络状态,一般只在小规模网络中采用
动态路由选择协议:自动获取路由信息、比较复杂、开销大、能较好的适应网络的变化、适用于较大规模网络。
路由选择协议选择的特点 |
|
自适应 |
动态路由选择,能较好的适应网络状态的变化 |
分布式 |
路由器之间交换信息 |
分层次 |
整个英特网之间划分许多较小的自治系统AS |
英特网采用分层次的路由选择协议
路由器的基本结构
路由选择协议是使用不同的协议周期性的与别的路由器交换信息,更新路由选择表
4.6.2路由信息协议RIP的基本工作原理
路由信息协议要求自治系统内的每一个路由器都要维护从他到AS内的其他每一个距离记录。这是一组距离,称为距离向量Dstance vector;RIP使用跳数作为度量,来衡量到达网络的距离。
1.路由器将到达直连网络的距离定为1
2.路由器到非直连网络的距离定义为所经过的路由器数加一
3.运行一条路径上最多包含15个路由器,距离等于16时相当于不可达,因此RIP只适用于小型互联网络
RIP认为路径最短的路线是最好的路由,当有多条最短路径的时候RIP协议在多条线路上进行赋值均衡
RIP交换信息的三个要点
坏消息传得慢问题
4.6.3开方最短路径优先OSPF(open shortest path first)的基本工作原理
OSPF相邻路由器之间通过交换问候分组建立和维护邻居关系
使用OSPF的每个路由器都会产生链路状态通告LSA(Link state advertisement);其中包含直连链路的状态信息和邻居路由器的链路信息
LSA被封装在链路状态更新分组:LSU中,采用洪泛法发送;使用OSOF的路由器都有一个链路状态数据库LSDB,用于存储LSA
OSPF中的五种分组
当一个网络中的相邻路由器太多时就会增加交换信息时的负担,解决方法选取DR和BDR
较大规模网络的信息交换
4.6.4边界网关协议BGP的基本原理
判断路径是否会兜圈子
BGP四种报文
本节小结
4.7IPv4数据报的首部格式
数据报的首部格式
4.8网际控制报文协议ICMP(internet control message protocol)
1.主机或路由器使用ICMP来发送差错报告报文和询问报文
2.ICMP报文被封装在IP数据报中发送
ICMP的五种差错
不发送ICMP差错报告报文的情况
常用的ICMP询问报文
ICMP应用举例
4.9虚拟专用网络VPN与网络地址转换NAT
局域网内部的主机之间使用的是私有地址,私有地址不能在共有网络中使用,只能在局域网内部使用。当路由器法相源地址为私有地址时不对数据报进行转发
网络地址转换NAT(network address translation)
当局域网中的某个主机想要和局域网外的主机通信时,网络地址装换器会为局域网中的主机临时分配一个全球ip地址用于与外界通信
==第五章运输层==
5.1运输层概述
如何为运行在不同主机上的进程提供直接的通信服务是运输层的任务,运输层协议又称端到端的协议。
1.之前介绍的体系结构中的物理层、数据链路层、以及网络层共同解决了主机到主机之间的通信
2.计算机网络中真正要思想通信的主体是位于通信两端主机中的进程
5.2运输层端口号、复用与分用的概念
1.计算机上的进程使用进程标识符PID来标志
2.TCP/IP体系的引用进程使用端口号来区分不同的进程
端口号使用16比特表示,取值范围0~65535
1.发送方的复用:应用报文无论是使用 UDP协议封装的 用户数据报,还是使用TCP协议封装的报文段,最终都是被网络层封装层 IP数据报,这称为IP复用。IP数据报首部协议字段中的值表明封装的是何种数据信息
2.TCP/IP体系的应用层常使用的运输层熟知端口号
5.3UDP/TCP的对比
1.UDP(user datagram protocol)在传输数据前不需要建立连接,直接进行数据的传输
2.TCP(transmission control protocol)在传输数据之前要先进行3次握手建立连接,在数据传输完成之后要进行4次挥手释放连接
UDP用户数据报协议
UDP对应用进程传下来的应用层报文既不拆分也不合并保留这些报文的边界,UDP 是面向报文的
传输层UDP向上层应用层提供的是无连接的不可靠的传输服务(网际层提供的也是不可靠的服务)
TCP将应用进程传下来的数据块仅仅看成字节流,然后根据发送策略进行数据转发
向上层应用层提供的是面向连接的可靠传输服务
TCP与UDP的首部格式对比
5.4TCP的流量控制
5.5TCP拥塞控制
拥塞的定义:若对网络中某一资源的需求超出了该资源所能提供的可用部分,网络性能就会变坏,产生拥塞
拥塞控制的四种算法 |
|||
慢开始 |
拥塞避免 |
快重传 |
快恢复 |
慢开始算法是每次发送的拥塞窗口的长度为前一次的倍数,进而可以使发送的报文段的数目快速增加;当报文段的数目达到了慢开始门限值时就会转向拥塞避免算法
当使用的是拥塞避免算法时,每次成功发送和接收报文段时拥塞窗口的大小都会增加1,当发送数据丢失时就会将拥塞窗口的大小变为1,门限值减小到当前拥塞窗口大小的一半,此时开始执行慢开始算法,并当拥塞窗口的大小达到门限值时又开始执行拥塞避免算法。
快重传是快速重传丢失的报文,而不是等到超时后再重传
发送方一旦接收到3个连续的重复确认(如果接收方接收不到下一个报文就会重复发送前一条报文的确认信息),就将相应的报文进行立即重传,而不是等到超时重传定时器超时再重传
快恢复
发送发将慢开始门限值ssthresh和拥塞窗口cewd的值调整为当前窗口的一半,开始执行拥塞避免算法
5.6TCP超时重传时间的选择
5.7TCP可靠传输的实现
TCP基于以字节为单位的滑动窗口来实现可靠传输
使用3个指针描述滑动窗口的状态
5.8.1TCP的运输连接管理——TCP的连接建立
1.TCP连接的3个阶段:
建立连接:三报文握手建立TCP连接
数据传送
释放连接:四报文挥手释放连接
2.三报文握手建立连接的具体过程
在建立连接之前服务器和客户端都首先建立传输控制块
TCP连接请求报文段的 同步位SYN = 1表示这是TCP连接请求报文段,SYN= 1的报文段不能携带数据但要消耗一个序号; 序号字段seq = x作为进程选择的初始序。
服务器发送确认报文段,(其中SYN = 1,ACK = 1表明这是一个确认报文段),seq = y,ack = x+1
采用三报文握手的原因
防止TCP客户段发送的连接请求开始未到达,并进行重新发送当通信结束后最开始的连接请求报文又到达了服务器端,导致服务器端进入连接就绪状态而占用资源
5.8.2TCP的运输连接管理——TCP连接释放
TCP通过四次挥手释放连接
释放连接时的终止位FIN和确认位ACK被设置成1,表明这是一个TCP连接释放报文,TCP练级释放报文段也对之前传输的报文进行确认,seq = n,n = 之前传输的报文序号加一;ack = 之前已经收到的数据的序号加一,FIN = 1的报文段即使不携带数据也要消耗一个序号
5.9TCP 报文段的首部格式
1.源端口:占16比特,用来标识发送该TCP报文段的应用进程
2.目的端口号:占16比特,用来标识接收该TCP报文段的应用进程
3.序号:占32比特,用于指出TCP报文段的数据载荷的第一个字节序号,序号增加到最后一个时重新回到0
4.确认号:占32比特,指出期望收到对方下一个TCP报文段的数据载荷的第一个字节的序号,同时也是对之前接收到的所有数据的确认。
5.确认标志位ACK:取值为1时确认字段才有效;取值为0时确认字段无效
TCP规定,在建立连接后所有的传送TCP报文段都必须把ACK置1
6.数据偏移字段:占4比特,并以4字节为单位;用于指出TCP报文段的起始处距报文段的起始处有多远,实践效果是指出了TCP报文段的长度,首部固定长度为20字节,因此数据偏移字段的最小值为5,最大值为15。
7.窗口:占16比特,以字节为单位,指出发送本报文的一方的接收窗口的大小。作用是:以接收方的能力来控制发送方的发送能力,称为流量控制。
8.校验和:占16比特,检查范围包括TCP报文段的首部和数据载荷两部分。在计算校验和的时候要在TCP报文段的前面加上12字节的伪首部。
9.同步标志位SYN:在建立TCP连接时来同步序号
10.终止标志位FIN:用来释放TCP连接
11.复位标志位:用来复位TCP连接,当RST = 1时表明TCP连接出现了异常,必须释放连接然后再建立新的连接。
13.推送标志位PSH:接收方的TCP收到标志位为1的报文会尽快上交应用进程,而不是必须等待到接收缓冲填满后再上交
14.紧急标志位URG:取值为1时紧急指针字段有效;取值为0时紧急字段为无效字段;占16比特,以字节为单位,用来指明紧急数据的长度(当发送方有紧急数据时,可以将紧急数据插入到发送缓冲区的最前面,并立刻封装到一个TCP报文段进行发送。
15.最大报文段长度选项MSS:TCP报文段数据载荷部分的最大长度
16.窗口扩大选项:为了扩大窗口(提高吞吐率)、
17:时间戳选项:用来计算往返时间RTT
18:填充:由于选项的长度可变,因此使用填充来确保报文段首部能被4整除(因为数据偏移字段是以4字节为单位的)
==第六章==
6.1应用层概述
与网络相关的协议
万维网(www)域名解析系统DNS 动然主机配置协议DHCP
电子邮件 文本传输协议FTP P2P文件共享 多媒体网络应用
6.2客户/服务器方式(C/S方式)和对等方式(P2P方式)
常见的C/S服务方式:万维网、电子邮件系统、文件传输协议FTP
P2P方式:没有固定的请求者与服务者,分布在网络中的应用进程是对等的,每一个对等方即使服务的提供者,又是服务的请求者。常见的P2P应用,P2P文件共享、及时通信、P2P流媒体、分布式存储等(P2P系统中的个体通常是个人计算机)
P2P的最大优势是可扩展性强,系统的性能不会因为规模的增大而简体性能;具有成本上的优势,不需要庞大的服务器和服务带宽。
6.3动态主机配置协议DHCP
建立一个DHCP服务器,网络上的各主机在开机后直接在DHCP服务其中请求获取本主机的网络配置信息
DHCP工作过程:在DHCP服务器中运行服务器进程,在主机中运转DHCP主机进程(使用UDP协议)
DHCP中继代理:
当一个(域)网络被路由器阻隔时,局部网络中的主机无法广播发送地址请求信息,此时需要将局部网络与外界网络相连的路由器设置为中继代理。将网络中主机的请求单播的发送给某个DHCP中继代理服务器。
6.4域名系统DNS
英特网采用层次数状结构的域名结构;域名级别越高的写在最右边,完整的域名不超过255字节。
不同国家的域名的使用不同:
英特网的域名空间:
域名解析的查询过程
递归查询与迭代查询
为了提高DNS的查询效率减少查询次数,并减轻根域名服务器的负荷,在域名服务器中(用户主机中也会使用高速缓存)广泛采用高速缓存。高速缓存用于存方最近的查询记录;由于域名到IP 的映射不是不变的因此还需要保持高速缓存中内容的准确性,每项记录设置的有保存时间,时间到期后自动删除记录。
6.5文件传输协议FTP
FTP提供交互式的访问,允许客户指文件的类型与格式(如指明是否使用ASCII码),并允许文件具有存储权限(如要要求用户通过授权后才能使用);FTP屏蔽了各种计算机系统的细节,;因而适合在异构网络中任意计算机之间的文件传输
FTP的应用是在计算机之间传输文件,求其是批量上传文件;网站设计者将构成网站的大量内容文件上传到他们的web服务器
FTP协议主机与服务器之间建立连接的两种方式
主机与服务器之间都是建立两条通道连接;一条是用于传输控制命令、一条是用于传送数据。
6.6电子邮件系统
三个主要构成 |
用户代理 |
邮件服务器 |
电子邮件所需的协议(邮件发送协议SNTP和读取协议POP3) |
用户代理:是客户有电子邮件系统的接口,又称为电子;邮件客户端软件
邮件服务器:是电子邮件系统的基础设施,英特网上所有的ISP都有邮件服务器,功能是发送和接收邮件,同时还要负责维护用户的邮箱
电子邮件所需的协议(邮件发送协议SNTP和读取协议POP3)
SMTP的基本工作过程
SMTP只能传送ASCII码文本数据,不能传送可执行文件或其他二进制对象。不能传送多媒体文件,其他国建的文字也无法传送。
为了解决传统的SMTP传送的限制,提出了多用途英特网邮件扩展MIME(mutilate Internet mail extension),其实MIME也用于面向ASCII的HTTP协议
常见的读取协议
基于互联网的文件邮件协议
6.7万维网www
为了方便的访问世界各地的文档,万维网使用统一资源定位符URL来指明英特网上的任何种类的资源的位置
URL(统一资源定位符)的结构为:<协议>://<主机>:<端口>/<路径>
==第七章==
7.6访问控制
1.访问第一道防线身份鉴别:将未授权的用户隔离在信息系统之外
2.访问第二道防线方问控制:限制;用户只能访问限定范围的内容
合法用户一般遵循最小特权原则,使用户拥有最小的能完成任务的权限
访问控制主要包含以下基本要素 |
|
主体 |
访问活动的发起者,可以是用户、用户执行的进程、服务和设备等 |
客体 |
访问活动中被访问的对象,凡是可以被操作的信息、文件、设备、服务等资源都可以看成客体 |
访问 |
访问指主体对客体的各种操作类型读、写、删、改等 |
访问策略 |
用s(主体)o(客体)p(许可)表示,许可p,明确了主体对客体进行的访问类型;访问策略一般放在系统的授权服务器中 |
著名的访问控制器模型
三种典型的访问控制策略
自主访问策略
强制访问策略
一般不允许主体进行访问权限的设置;主体和客体被赋予一定的安全级别,只有系统管理员具有安全级别的设定
基于角色的访问控制策略
万维网的文档:
HTML超文本标记语言:使用多种标签来描述网页的结构和内容
CSS层叠样式表:从审美的角度来描述网页的样式
Javascript:控制网页的行为
超文本传输协议HTTP
定义了浏览器(客户端)向万维网服务器请求万维网文档,以及万维网服务器如何把万维网文档发送给浏览器。
HTTP报文格式:
HTTP请求报文段
HTTP相应报文段
使用cookie在服务器上记录用户信息
万维网代理服务器