计算机网络
- 绪论
- 1.1 计算机网络
- 1.计算机网络向用户提供的两个最重要的功能
- 1.连通性
- 所谓连通性,就是互联网使上网用户之间,不管相距多远,都可以非常便捷、非常经济的交换各种信息,好像这些用户终端都彼此直接连通一样。
- 2.共享
- 所谓共享就是指资源共享。
- 1.连通性
- 1.计算机网络向用户提供的两个最重要的功能
- 1.2 因特网(互联网)概述
- 1. 因特网发展的三个阶段
- 1.第一阶段: 从单个网络ARPANET向互联网发展的阶段。1983年TCP/IP协议成为ARPANET上的标准协议,因此1983年又称为互联网的诞生时间。
- 2.第二阶段:建成三级结构的因特网:主干网、地区网和校园网。
- 3.第三阶段:形成多层次的ISP结构的因特网
- ISP:互联网服务提供者,其可以从互联网管理中申请到很多IP地址,同时拥有通信线路以及路由器等联网设备,因此任何机构和个体只要向某个ISP缴费,就可以从该ISP获取所需的IP地址的使用权,并可通过该IP地址接入到互联网中。
- 1. 因特网发展的三个阶段
- 1.3 互联网的组成
- 边缘部分:由所有链接在因特网上的主机组成,这部分由用户直接使用,用来通信和资源共享。
- 核心部分:由大量的网络和连接这些网络的路由器组成,这部分是为边缘部分提供服务的。
- 处于边缘部分的用户的通信方式
- 1.客户服务器方式:客户是服务的请求方,服务器是服务的提供方。
- 2.对等方式(P2P):对等连接中的每一个主机既是客户又同时是服务器
- 处于核心部分的交换技术
- 1.电路交换:建立连接——通话——释放连接。在通话时,两用户之间占用端到端的资源,而由于绝大部分时间线路都是空闲的,所以线路的传输速率往往很低。
- 2.报文交换:整个报文传送到相邻结点,全部存储下来以后查询转发表,转发到下一个结点。
- 3.分组交换:采用存储转发技术,即 收到分组——存储分组——查询路由——转发分组。
- 组成:报文、首部、分组。
- 优点:高效、灵活、迅速、可靠。
- 缺点:时延、开销。
- 关键构件:路由器
- 三种交换的比较:
- 电路交换:端对端通信质量因约定了通信资源获得可靠保障,对连续传送大量数据效率高。
- 报文交换:无须预约传输带宽,动态逐段利用传输带宽对突发式数据通信效率高,通信迅速。
- 分组交换:给予报文交换的高效、迅速,且各分组小,路由灵活,网络生存性能好
- 1.4 计算机网络的分类
- 1.分类
- 广域网、局域网、城域网
- 2.性能指标
- 1.速率
- 指能连接在计算机网络上的主机在数字信道上传送数据的速率
- 2.带宽
- 数字信道所能传送的最高速率
- 3.吞吐量
- 单位时间内通过某个网络的实际数据量,其绝对上限等于带宽
- 4.时延
- 数据从网络的一端传送到另一端的时间
- 1.发送时延
- 主机或路由器发送数据帧所需的时间,也就是从发送数据帧的第一个比特算起,到该帧的最后一个比特发送完毕所需的时间
- 2.传播时延
- 电磁波在信道中传输一定距离所需花费的时间
- 3.处理时延
- 主机或路由器处理收到的分组所花费的时间
- 4.排队时延
- 分组在输入队列中等待处理的时间加上其在输出队列中的等待转发的时延
- 总时延
- 发送时延+传播时延+处理时延+等待时延
- 1.发送时延
- 数据从网络的一端传送到另一端的时间
- 5.时延带宽积
- 传播时延*带宽 表示链路的容量
- 6.往返时间RTT
- 从发送方发送数据开始,到发送方收到接收方的确认所花费的时间
- 1.速率
- 1.分类
- 1.5计算机网络的体系结构
- 1.网络协议
- 简称协议,是为了进行网络中的数据交换而建立的规则、标准和约定
- 2.协议的三要素
- 1.语法
- 数据与控制信息的结构或格式
- 2.语义
- 需要发出何种控制信息,完成何种动作以及做出何种响应
- 3.同步
- 事件实现顺序的详细说明
- 1.语法
- 3.体系结构 :计算机网络的各层及其协议的集合
- 4.OSI的七层体系结构:物理层、数据结构层、网络层、运输层、会话层、表示层、应用层
- 6.TCP/IP的四层体系结构:网络接口层、网际层IP、运输层、应用层
- 7.五层协议的体系结构
- 1.物理层:透明的传送比特流,确定连接电缆插头的定义及连接法
- 2.数据链路层:将网络层交下来的IP数据包封装成帧,在两个相邻结点间的链路上“透明”的传送以帧为单位的数据。每一帧包括数据和必要的控制信息。在收到数据时,控制信息使收到端直到哪个帧从哪个比特开始和结束。
- 3.网络层:选择合适的路由,使发送站的运输层所传下来的分组能够正确无误的按照地址找到目的站,并交付给目的站的运输层。(IP、ARP)
- 4.运输层:向上一层的进行通信的两个进程之间提供一个可靠的端对端服务,使他们看不见运输层以下的数据通信的细节。(TCP、UDP)
- 5.应用层:直接为用户的应用进程提供服务 。(HTTP、FTP)
- 1.网络协议
- 1.1 计算机网络
- 物理层
- 2.1物理层下的传输媒体
- 1.导向传输媒体
- 1.1.双绞线
- 双绞线已成为局域网中的主流传输媒体,分为:
- 1.屏蔽双绞线(STP)
- 2.无屏蔽双绞线(UTP)
- 双绞线已成为局域网中的主流传输媒体,分为:
- 1.2 同轴电缆
- 1.细缆:适合短距离,安装简单,价格低
- 2.粗缆:适合较大局域网,布线距离长,可靠性好
- 1.3光纤 :光纤具有很好的抗电磁干扰特性和很宽的频带,主要用在环型网中
- 1.多模光纤:用发光二极管,便宜,定向性较差
- 2.单模光纤:注入激光二极管,定向性好
- 1.1.双绞线
- 2.非导向传输媒体
- 微波、红外线、激光、卫星通信
- 1.导向传输媒体
- 2.2关于信道的几个基本概念
- 1.通信方式
- 1.单向通信(单工):只能有一个方向的通信而没有反方向的交互。
- 2.双向交替通信(半双工通信):通信的双方都可以发送信息,但不能双方同时发送,也不能同时接收
- 3.双向同时通信(双工通信):通信的双方可以同时发送和接收信息
- 2.基带信号
- 来自信源的信号
- 3.带通信号
- 经过载波调制之后的信号
- 常用的基带调制方式
- 不归零制
- 正电平表示1,负电平表示0
- 归零制
- 正脉冲表示1,负脉冲表示0
- 曼彻斯特编码
- 位周期中心的向上跳动代表1,位周期中心向下跳动代表0
- 不归零制
- 1.通信方式
- 2.1物理层下的传输媒体
-
-
- 4.基本带通调制的方法
- 调幅:即载波的波幅随基带数字信号而变化
- 调频:即载波的频率随基带数字信号而变化
- 调相:即载波的初始相位随基带数字信号而变化
- 4.基本带通调制的方法
- 信道复用技术
- 频分复用:所有的用户在同样的时间内占用不同的频率带宽资源
- 时分复用:将时间划分为一段段等长的时分复用帧
- 统计时分复用:改进的时分复用,提高信道的利用率,其按需动态分配时隙
- 波分复用:光的频分复用
- 码分复用(码分多址):各用户使用经过特殊挑选的不同码型,因此各用户之间不会造成干扰
-
- 数据链路层
- 数据链路层使用的信道主要有以下两种类型
- 点对点信道
- 广播信道
- 3.1使用点对点信道的数据链路层
- 1.链路:从一个结点到相邻结点的一段物理线路
- 2.数据链路:把实现相关通信协议的硬件和软件加载到链路上就是数据链路
- 常用的方法是使用网络适配器来实现这些协议
- 3.三个基本问题
- 1.封装成帧
- 就是在一段数据的前后分别添加首部和尾部,然后就构成了一个帧。首部和尾部的一个重要作用就是进行帧定界
- 帧定界是分组交换的必须要求
- 2.透明传输
- 为了达到透明传输,在数据中出现的控制字符“SOH”或“EOT”的前面插入一个转义字符“ESC”
- 透明传输避免消息符号与帧定界符号相混淆
- 3.差错检测
- 循环冗余检测CRC
- 循环冗余检测CRC
- 1.封装成帧
- 3.2点对点协议 PPP
- 1.PPP协议的组成部分
- 1.一个将IP数据报封装到串行链路的方法
- 2.链路控制协议LCP
- 3.网络控制协议NCP
- 2.PPP协议的帧格式
- 首部
- 标志字段F(Flag)规定为0x7E,标志字段表示一个帧的开始
- 连续两帧之间只需要用一个标志字段
- 地址字段A规定为0xFF,控制字段规定为0x03,这两个字段没有意义
- 两个字节的协议字段
- 当值为0x0021时,PPP帧的信息字段就是IP数据报
- 当值为0xC021时,PPP帧的信息字段就是PPP链路控制协议LCP的数据
- 当值为0x8021时,PPP帧的信息字段就是网络层的控制数据
- 标志字段F(Flag)规定为0x7E,标志字段表示一个帧的开始
- 尾部
- 第一个字节是使用CRC的帧检测序列FCS
- 标志字段F表示一个帧的结束
- 首部
- 3.透明传输的方法
- 1.字节填充--PPP使用异步传输
- 2.零比特填充——PPP使用同步传输
- 只要发现有5各连续的1就插入一个0
- 4.PPP协议的工作状态
- 链路静止——建立物理层——链路建立——PC发出LCP——NCP发配IP地址——链路打开,网络层建立
- 1.PPP协议的组成部分
- 3.3使用广播信道的数据链路层
- 1.局域网的数据链路层
- 1.逻辑链路控制LLC子层:与传输媒体无关
- 2.媒体接入控制MAC子层:和局域网对LLC子层来说是透明的
- 2.CSMA/CD协议
- 以太网采用CSMA/CD协议的方式来协调总线上各计算机的工作。
- 在使用CSMA/CD协议的时候,一个站不可能同时进行发送和接收,因此使用CSMA/CD协议的以太网不可能进行全双工通信,只能进行双向交替通信(半双工)
- CDMA/CD的要点
- 多点接入:计算机以多点接入的方式连接在一根总线上
- 载波监听:发送前先监听,即每一个站在发送数据前先要检测一下总线是否有其他站在发送数据,如果有则暂时不要发送数据,要等到信道为空闲
- 碰撞检测:边发送边监听,即适配器边发送数据边检测信道上的信号电压的变化情况
- 适配器
- 进行数据串行传输和并行传输的转变
- 适配器和局域网之间的数据传输是串行传输的
- 适配器和计算机之间的数据传输是并行传输的
- 网络上的数据传输速率和计算机总线上的数据率不同,因此在适配器中装有缓存
- 进行数据串行传输和并行传输的转变
- 1.局域网的数据链路层
- 3.4以太网的MAC层
- 1.MAC地址
- 硬件地址,又叫物理地址,实际上是适配器地址或适配器标识符。
- 高位24位由IEEE指派
- 地位24位由厂家自行指派
- 2.MAC帧的格式
- V2标准
- 由5个字段组成
- 前两个字段分别为目的地址和源地址,第三个字段是类型字段,第四个字段为数据字段,第五个为FCS
- 由5个字段组成
- V2标准
- 1.MAC地址
- 3.5 扩展的以太网
- 1.在物理层扩展——集线器
- 使用光纤和一对光纤调制解调器
- 光纤调制解调器的作用是进行电信号和光信号的转换
- 使用光纤和一对光纤调制解调器
- 2.在数据链路层扩展——网桥
- 网桥工作在数据链路层,它根据MAC帧的目的地址对收到的帧进行转发或过滤。
- 当网桥收到一个帧的时候,并不是向所有的接口转发这个帧,而是检查此帧的目的MAC地址,然后再确定将该帧转发到哪一个接口,或者是把他丢弃
- 后来用多接口网桥的交换式集线器替换了网桥
- 其具有自学功能,会把当前交换表不具有的接口信息自动存入
- 后来用多接口网桥的交换式集线器替换了网桥
- 1.在物理层扩展——集线器
- 数据链路层使用的信道主要有以下两种类型
- 网络层
- 网络层向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务
- 4.1网际协议IP
- 1.地址解析协议ARP
- 解决同一个局域网上的主机或路由器的IP地址和硬件地址的映射问题
- 2.逆地址解析协议RARP
- 解决同一个局域网上的主机或路由器的硬件地址和IP地址的映射问题
- 3.网际控制报文协议ICMP
- 提供差错报告和查询报文,以提高IP数据交付成功的机会
- 4.网际组管理协议
- 用于探寻、转发本局域网内的组成员关系
- 4.1.1虚拟互联网络
- 因为没有一种单一的网络能够适应所有用户需求,在市场上有很多不同性能、不同网络协议的网络供不同的用户使用
- 将网络连接起来需要使用一些不同的中间设备
- 物理中间设备:转发器
- 中继器
- 用于扩展局域网网段的长度,在两个局域网网段间实现电信号的恢复和整形之后的转发
- 集线器
- 具有信号放大功能,对接收到的信号进行再生整形放大,以扩大网络的传输距离
- 中继器
- 数据链路中间设备:网桥或桥接器
- 网桥
- 网桥检查帧的源地址和目的地址,如果目的地址和源地址不在同一个网络段上,就把帧转发到另一个网络段上;若两个地址在同一个网络段上,则不转发,所以网桥能起到过滤帧的作用
- 网桥
- 网络层中间设备:路由器
- 路由器用于连接多个逻辑上分开的网络,当数据从一个子网传输到另一个子网时,可通过路由器来完成。
- 网络层以上的中间设备:网关
- 一个网络连接另一个网络的关口
- 物理中间设备:转发器
- 4.1.2 分类的IP地址
- IP地址就是给每个连接在因特网上的主机(适配器)分配一个在全世界范围是唯一的32位的标识符。
- 由CANN进行分配
- IP地址编制方法的三个阶段
- 分类的IP地址
- 子网的划分
- 构成超网
- 每一类地址都由网络号和主机号组成,主机号中全0表示网络地址,全1表示广播地址
- 4.1.3 IP地址与硬件地址
- 硬件地址是数据链路层和物理层使用的地址
- IP地址是网络层和以上各层使用的地址,是一种逻辑地址
- IP地址放到IP数据报的首部,而硬件地址放在MAC帧的首部
- 当数据报放入数据链路层的MAC帧中后,整个IP数据报就成为MAC帧的数据,所以在数据链路层看不到数据报的IP地址
- 4.1.4地址解析协议ARP
- 网络层使用的是IP地址,但是实际网络的链路上传送数据帧时,最终使用的还是网络的硬件地址,又因为IP地址和硬件地址之间由于格式不同所以不存在简单的映射关系,所以便有了ARP
- ARP是解决同一个局域网上的主机或路由器的IP地址和硬件地址的映射问题
- 每一个主机都设有一个ARP告诉缓存,里面有所有的局域网上的个主机和路由器的IP地址到硬件地址的映射表
- 如果所要找的主机和源主机不在同一个局域网上,那么就要通过ARP找到一个位于本局域网上的某个路由器的硬件地址,然后把分组发送给这个路由器,让这个路由器把分组转发给下一个网络
- 4.1.5 IP数据报
- 1.IP数据报格式
- 一个IP地址报由首部和数据两部分组成
- 2.分组转发
- 1.从数据报的首部提取出目的主机的IP地址D,得出目的网络地址为N
- 2.若网络N与此路由器直接相连,则把数据报直接交付目的主机D;否则是间接交付,执行3
- 3.若路由表中有目的地址为D的特定主机路由,则把数据报传送给路由表中所指明的下一跳路由;否则执行4
- 4.若路由表有到达网络N的路由,则把数据报传送给路由表指明的下一跳路由器;否则执行5
- 5.若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由器;否则执行6
- 6.报告转发分组出错
- 4.若路由表有到达网络N的路由,则把数据报传送给路由表指明的下一跳路由器;否则执行5
- 3.若路由表中有目的地址为D的特定主机路由,则把数据报传送给路由表中所指明的下一跳路由;否则执行4
- 2.若网络N与此路由器直接相连,则把数据报直接交付目的主机D;否则是间接交付,执行3
- 1.从数据报的首部提取出目的主机的IP地址D,得出目的网络地址为N
- 1.IP数据报格式
- 1.地址解析协议ARP
- 4.2 划分子网
- 1.两级IP地址缺陷
- 1.IP地址空间的利用率有时很低
- 2.给每一个物理网络分配一个网络号会使路由表变得太大因而使网络性能变坏
- 3.两级的IP地址不够灵活
- 2.子网划分的基本思路
- 1.划分子网纯属是一个单位内部的事情,单位对外仍然表现为没有划分子网的网络
- 2.划分子网的方法是从主机号借用若干个位作为子网号
- 选定的子网掩码将创建多少个子网?
- 2^x个,其中x是子网掩码借用的主机位数。如:192.168.10.32/28,我们知道C类ip的默认子网掩码为:255.255.255.0,而由上文的CIDR知识,我们了解到这个ip的实际子网掩码是:255.255.255.240。原本最后一个字节应该是0(00000000),现在却是240(11110000)。故其借用了主机位4位来充当网络位。
- 每个子网可包含多少台主机?
- 2^y-2台,其中y是没被借用的主机位的位数。-2是因为,主机位全为0的部分是这个子网的网段号(Net_id),全为1的部分是这个网段的广播地址。
- 选定的子网掩码将创建多少个子网?
- 3.路由器在收到IP数据报后,按目的网络号和子网号定位目标子网
- 4.3构造超网
- 1.CIDP(无分类域间路由选择)的主要特点
- 1.CIDR消除了传统的A、B、C类地址以及划分子网的概念,用网络前缀替代网络号和子网号,后面的部分指明主机。因此,CIDR使IP地址从三级编制(使用子网掩码),又回到了两级编制,但这已是无分类的两级编制
- 2.CIDR把网络前缀相同的连续的IP地址组成一个“CIDR地址块”,只要知道CIDR地址块的任何一个地址,就可以知道这个地址块的起始地址和最大地址,以及地址块中的地址数
- 2.地址掩码
- 一连串的1和0组成,1的个数就是网络前缀长度,在斜线记法中,斜线后面的数字就是地址掩码中1的个数
- 3.构成超网
- 由于一个CIDR地址块中含有很多地址,所以在路由表中就利用CIDR地址块来查找目标网络,这种地址的聚合常称为路由聚合,也成为构成超网
- 1.CIDP(无分类域间路由选择)的主要特点
- 4.4 网络控制报文协议ICMP
- 为了更有效的转发IP数据报和提高交付成功的机会,在网际层使用了ICMP,ICMP允许主机或路由器报告差错情况和提供有关异常情况的报告
- 1.ICMP的种类
- 1.ICMP差错报告报文
- 1.终点不可达
- 2.源点抑制
- 3.时间超过
- 4.参数问题
- 5.改变路由
- 2.ICMP询问报文
- 1.回送请求和回答报文
- 2.时间戳请求和回答报文
- 1.ICMP差错报告报文
- 4.5路由选择协议
- 1.两大路由选择协议
- 1.内部网关协议IGP:一个自治系统内部使用的路由选择协议,如RIP和OSPF
- RIP:内部网关协议
- 一种分布式的基于距离向量的路由选择协议
- 从一路由器到直接连接的网络的距离定义为1
- 从一路由器到非直接连接的网络的距离定义为所经过的路由器加1
- RIP只允许一条路径最懂只能包含15个路由器,因此距离等于16时相当于不可达
- 特点:
- 1.仅和相邻的路由器交换信息
- 2.路由器交换的信息是当前路由器所知道的全部信息,即自己现在的路由表
- 路由表中的信息为:到某个网络的距离,以及应经过的下一跳地址
- 3.按固定的时间间隔交换路由信息
- 距离向量算法
- 每一个相邻路由器发送过来的路由表都要经过以下步骤:
- 对地址为X的路由器发过来的路由表,先修改此路由表中的所有项目:把“下一跳”字段中的地址改为X,并把所有”距离”字段都加1。
- 对修改后的路由表 中的每一个项目,进行以下步骤:
- 将X的路由表(修改过的),与S的路由表的目的网络进行对比。
- 若在X中出现,在S中没出现,则将X路由表中的这一条项目添加到S的路由表中。
- 对于目的网络在S和X路由表中都有的项目进行下面步骤
- 1.在S的路由表中,若下一跳地址是x
- 则直接用X路由表中这条项目替换S路由表中的项目。
- 2.在S的路由表中,若下一跳地址不是x
- 若X路由表项目中的距离d小于S路由表中的距离,则进行更新。
- 3.若3分钟还没有收到相邻路由器的更新表,则把此相邻路由器记为不可到达路由器,即把距离设置为16。
- 每一个相邻路由器发送过来的路由表都要经过以下步骤:
- 优点:
- 实现简单,开销小
- 限制了网络的规模,使能使用的最大距离为15
- 缺点:
- 当出现网络故障时,要经过比较长的时间才能将此信息传送到所有的路由器中
- 随着网络规模的扩大,开销也增大
- OSPF:开放最短路径优先协议
- 最主要的特征就是使用分布式的链路状态协议
- 主要特点
- 1.使用洪泛法向本自治系统中的所有路由器发送信息
- 2.发送的信息是与本路由器相邻的所有路由器的链路状态
- 3.只有当链路状态发生改变时,路由器才会使用洪泛法向所有的路由器发送此信息
- RIP:内部网关协议
- 2.外部网关协议EGP:若源主机和目的主机不在一个自治系统中,当数据报传到一个自治系统的边界时,将路由选择信息传递到另一个自治系统中,如BGP
- BGP
- 采用路径向量路由选择协议
- 主要特点:
- 1.自治系统AS之间的路由选择必须考虑有关策略
- 2.BGP只能力求寻找一条能够到达目的网络较好的路由,而非要寻找一条最佳路由
- BGP
- 1.内部网关协议IGP:一个自治系统内部使用的路由选择协议,如RIP和OSPF
- 1.两大路由选择协议
- 1.两级IP地址缺陷
- 运输层
- 5.1运输层协议概述
- 1.运输层功能
- 1.运输层为应用进程之间提供端到端的逻辑通信(网络层是为主机)
- 2.运输层还要对收到的报文进行差错检测
- 3.运输层需要有两种不同的运输协议,即面向连接的TCP和无连接的UDP
- 2.运输层的两个协议
- 1.传输控制协议TCP
- 提供面向连接的服务
- 不提供广播或多播的服务
- 每一条TCP连接只能有两个端口,每一条TCP连接只能是点对点的
- TCP提供全双工的可靠交付的服务
- 可靠传输的原理
- 1.停止等待协议
- 每发送完一个分组就停止发送,等待对方的确认,在收到确认后再发送下一个分组
- 自动重传请求ARQ,即重传的请求是自动进行的,接收方不需要请求发送方重传某个出错的分组
- 2.连续ARQ协议
- 发送窗口,累积确认(对按序达到的最后一个分组发送确认)
- 1.停止等待协议
- 可靠传输的原理
- 面向字节流
- 在传送数据之前必须先建立连接,数据传送结束后要释放连接
- TCP连接建立的三次握手
- 1.在建立之前服务器进程B先创建传输控制模块TCB,等待客户进程A发送连接请求
- 2.客户进程A也是首先创建传输控制模块TCB,然后向B发送连接请求报文段
- 报文段的SYN=1,同时选择一个初始序号seq=x
- SYN使用一个序号,但不携带数据
- 报文段的SYN=1,同时选择一个初始序号seq=x
- 3.B收到连接请求报文段后,如果同意建立连接,则向A发送确认信息
- SYN和ACK都置为1,确认号ack=x+1,同时也为自己选择一个初始序号y
- 这个报文段仍然是消耗一个序号,但不携带数据
- SYN和ACK都置为1,确认号ack=x+1,同时也为自己选择一个初始序号y
- 4.A收到B的确认信息以后,再给B回复一个确认信息
- 置ACK=1,ack=y+1,seq=x+1
- 此使可以携带数据,但不携带数据的时候不消耗序号
- TCP连接释放的四次挥手
- 1.A的应用进程先向B发送连接释放报文段,并停止发送数据,主动关闭TCP
- A把连接释放报文段的终止控制位FIN置为1,其序号seq=u,A进入FIN-WAIT-1状态,等待B的确认
- FIN消耗一个序号,不携带数据
- 2.B接收到连接释放报文段后即发出确认
- 确认号是ack=u+1,自己的序号seq=v,等于B前面传送过的数据的最后一个字节的序号+1,进入CLOSE-WAIT
- 此时B的数据可能还没有发送完毕,所以此时是A->B的连接释放了,但B->A的连接还没有释放
- 3.A收到B的确认信息后,进入FIN-WAIT状态,等待B数据传送完发送的连接释放报文段
- 4.B的数据发送完后,给A发送连接释放请求报文段
- FIN=1,ACK=1,ack=u+1,seq=w
- B进入LAST-ACK状态
- A收到B的连接释放请求后,给B发送确认信息
- ACK置为1,确认号ack=w+1,自己的序号seq=u+1
- A等待2MSL后自动进入CLOSED状态,连接释放完毕
- 1.A的应用进程先向B发送连接释放报文段,并停止发送数据,主动关闭TCP
- TCP报文段的首部格式
- 1.源端口和目的端口
- 各占两个字节,分别写入源端口号和目的端口号
- 2.序号
- 占4个字节
- 序号使用mod2^32运算
- TCP连接中传送的字节流中的每一个字节都按顺序编号
- 首部中的序号字段指的是本报文段所发送的数据的第一个字节的序号
- 3.确认号
- 占4个字节
- 期望收到对方下一个报文段的第一个数据字节的序号
- 若确认号=N,则表明:到序号N-1为止的所有数据都已经正确收到
- 4.数据偏移
- 指出TCP报文段的数据起始处距离TCP报文段的起始处有多远
- 占4位,单位为4个字节
- 指出TCP报文段的数据起始处距离TCP报文段的起始处有多远
- 5.保留
- 占6位,保留为今后使用,目前全部置为0
- 6.紧急URG
- 当URG=1时,表明紧急指针字段有效,告诉系统此报文段有紧急数据,应尽快传送,而不是按照原来的排队顺序来传送
- 7.确认ACK
- 仅当ACK等于1时确认字段才有效
- 在建立连接后所有传送的报文段都必须把ACK置1
- 8.推送PSH
- 接收方TCP收到PSH为1 的报文段时,就尽快的交付接收应用进程,而不再等到整个缓存都填满了后再向上交付
- 9.复位RST
- 当RST为1时,表示TCP连接中出现严重差错,必须释放连接,然后再重新建立运输连接
- 10.同步SYN
- 再连接建立时用来同步序号
- 当SYN为1时而ACK为0时,表明这是一个连接请求报文段,对方若同意建立连接,则在响应的报文段中使SYN和ACK置为1
- 11.终止FIN
- 当FIN为1时,表明此报文段的发送方的数据已发送完毕,并要求释放运输连接
- 12.窗口
- 窗口指的是发送本报文段的一方的接收窗口
- 窗口值告诉对方:
- 从本报文段首部中的确认号算起,接收方允许对方发送的数据量
- 窗口值作为接收方让发送方设置其发送窗口的依据
- 13.检验和
- 14.紧急指针
- 紧急指针只有在URG=1时才有效
- 指出本报文段中的紧急数据的字节数
- 15.选项
- 1.源端口和目的端口
- 2.用户数据报协议UDP
- UDP的主要特点
- UDP是无连接的,即发送数据之前不需要建立连接
- UDP使用尽最大努力交付,即不保证可靠交付,同时也不使用拥塞控制
- UDP是面向报文的
- UDP支持一对一、一对多和多对多的交互通信
- UDP的首部开销小
- UDP首部格式
- 1.源端口
- 源端口号,在需要对方回信时选用,不需要时可用全0
- 2.目的端口
- 目的端口号,这在重点交付时必须使用
- 3.长度
- UDP用户数据报的长度,最小值是8(仅有首部)
- 4.检验和
- 检测UDP用户数据报是否有错,有则丢弃
- 1.源端口
- UDP的主要特点
- 1.传输控制协议TCP
- 1.运输层功能
- 5.1运输层协议概述
- 应用层
- 6.1域名系统DNS
- 6.1.1域名系统概述
- 域名系统DNS是互联网使用的命名系统,用来把便于人们使用的机器名字转换成IP地址
- 当某一个应用进程需要把主机名解析为IP地址时,该应用进程就调用解析程序,并成为DNS的一个客户
- 1.应用进程把待解析的域名放在DNS请求报文中,以UDP用户数据报的方式发送给本地域名服务器
- 2.本地域名服务器在查找到域名后,把对应的IP地址放在回答报文中返回
- 若本地域名服务器不能回答该请求,即本地服务器没有查找到该待解析的域名的IP地址时
- 此域名服务器就暂时成为DNS中的另一个客户,并向其他域名服务器发出查询请求,这种进程直至找到能够回答该请求的域名服务器为止
- 若本地域名服务器不能回答该请求,即本地服务器没有查找到该待解析的域名的IP地址时
- 3.应用进程获得目的主机的IP地址后即可进行通信
- 6.1.2互联网的域名结构
- 互联网采用层次树状结构的命名方法
- 任何一个连接在互联网上的主机或路由器,都有一个唯一的层次结构的名字,即域名,域的名字空间有一个可被管理的划分
- 域还可以划分为子域,而子域还可以继续划分为子域的子域,这样就形成了顶级域,二级域、三级域等
- 每一个域名都由标号序列组成,而各标号之间用点隔开
- 级别最低的域名放到最左边,级别最高的顶级域名放到最右边
- 各级域名都由上一级的域名管理机构管理,最高的顶级域名则由ICANN进行管理
- 6.1.3域名服务器
- 一个服务器所负责管辖的范围叫做区
- 每一个区设置相应的权限域名服务器
- DNS服务器的管辖范围以区为单位
- 当某个DNS服务器不能进行域名到IP地址的转换时,该服务器就会去找互联网上的域名服务器进行解析
- 分为:
- 1.根域名服务器
- 2.顶级域名服务器
- 3.权限域名服务器
- 4.本地域名服务器
- 域名的解析过程
- 1.主机向本地域名服务器的查询一般采用递归查询
- 如果主机查询的本地域名服务器不知道被查询域名的IP地址,那么本地域名服务器就以DNS客户的身份,向其他根域名服务器继续发出查询请求报文
- 递归查询返回的结果要么是所要查询的IP地址,要么是报错,即没有找到所要寻找的IP地址
- 2.本地服务器向根域名服务器的查询通常是迭代查询
- 当根域名服务器收到本地域名服务器的迭代查询请求报文段时,要么给出所要查询的IP地址,要么告诉本地域名服务器:”你下一步应当去哪一个域名服务器进行查询“,然后让本地域名服务器进行后续的查询
- 1.主机向本地域名服务器的查询一般采用递归查询
- 6.1.1域名系统概述
- 6.2文件传送协议FTP
- 6.2.1FTP概述
- FTP提供交互式的访问,允许客户指明文件的类型与格式,并允许文件具有存储权限
- FTP屏蔽了各计算机系统的细节,因而适合于在异构网络中任意计算机之间按传送文件
- 6.2.2FTP的基本工作原理
- 依靠TCP可靠的运输服务,主要功能是减少或消除在不同操作系统下处理文件的不兼容性
- FTP使用客户服务器方式,一个FTP服务器进程可同时为多个客户进程提供服务
- 主进程负责接收新的请求
- 工作步骤
- 1.打开熟知端口,使客户进程能够连接上
- 2.等待客户进程发出连接请求
- 3.启动从属进程处理客户进程发来的请求
- 从属进程对客户进程的请求处理完毕后即终止,但从属进程在运行期间根据需要还可能创建一些其他的子进程
- 4.回到等待状态,继续接收其他客户进程发来的请求
- 工作步骤
- 从属进程负责处理单个请求
- FTP的工作情况
- 在进行数据传输时,客户进程和服务器进程要建立两个并行的TCP连接:控制连接和数据连接
- 控制连接在传整个会话期间一直保持打开
- FTP客户所发出的传送请求,通过控制连接发送给服务器端的控制进程
- 实际用于传输文件的数据连接
- FTP上就算只是修改一点数据,都需要先将文件从B传输到A,A更改后再把文件从A传送到B
- 控制连接在传整个会话期间一直保持打开
- 在进行数据传输时,客户进程和服务器进程要建立两个并行的TCP连接:控制连接和数据连接
- 网络文件系统NFS
- NFS允许应用进程远程打开一个远地文件,并能在该文件的某一个特定的位置上开始读写数据
- 在网络上传送的只是少量的修改数据
- 6.2.3简单文件传送协议TFTP
- TFTP虽然也使用客户服务器方式,但是使用UDP数据报
- TFTP只支持文件传输而不支持交互
- 主要特点
- 1.每次传送的数据报文中有512字节的数据,最后一次可不足512字节
- 2.数据报文按序编号,从1开始
- 3.支持ASCII码或二进制传送
- 4.可对文件进行读或写
- 5.使用很简单的首部
- 若文件长度为512的整数倍,在文件传送完毕后,还需要发送一个只含首部而无数据的数据报文
- 6.2.1FTP概述
- 6.3远程终端协议TELNET
- TELNET能将用户的击键传到远地主机,同时也能将远地主机的输出通过TCP连接返回到用户屏幕
- 6.4万维网WWW
- 6.4.1 万维网概述
- 万维网是一个大规模的、联机式的信息储藏所
- 万维网用链接的方法能非常方便的从互联网上的一个站点访问另一个站点,从而主动的按需获取丰富的信息
- 每一个万维网站点都存放了许多文档,文档中有些地方含有超链接
- 超文本是万维网的基础
- 万维网文档所驻留的主机运行服务器程序,因此这台主机也称为万维网服务器
- 客户程序向服务器程序发出请求,服务器程序向客户程序送回客户所需的万维网文档
- 6.4.2统一资源定位符URL
- 一般形式
- <协议>://<主机>:<端口>/<路径>
- 一般形式
- 6.4.3超文本传送协议HTTP
- HTTP协议定义了浏览器怎样向万维网服务器请求万维网文档,以及服务器怎样把文档传送给浏览器
- HTTP是面向事务的应用层协议
- 用户浏览页面有两个方法
- 1.在浏览器的地址窗口输入所要找的页面的URL
- 2.在某一个页面中用鼠标点击一个可选部分,这是浏览器会自动在互联网上找到所要链接的页面
- 6.4.1 万维网概述
- 6.5电子邮件
- 简单邮件传送协议SMTP
- 只能传送可打印的7位ASCII码邮件
- 通信的三个阶段
- 1.连接建立
- SMTP不使用中间的邮件服务器
- 当接收方邮件服务器出现故障时,发送方只能等待一段时间再尝试和该邮件服务器建立TCP连接,而不能先找到一个中间的邮件服务器建立连接
- 2.邮件传送
- 3.连接释放
- 1.连接建立
- 互联网文本报文格式
- 通用互联网邮件扩充
- 简单邮件传送协议SMTP
- 6.6动态主机配置DHCP
- 当我们将客户主机IP地址设置为动态获取方式时,DHCP服务器就会根据DHCP协议给客户端分配IP,使得客户机能够利用这个IP上网
- DHCP的实现分为4步
- 1.客户端在局域网内发起DHCP Discover包,目的是想发现能够给它提供IP的DHCP服务
- 2.可用的DHCP服务接收到Discover包之后,通过发送DHCP offer包给予客户端应答,意在告诉客户端它能够提供IP地址
- 3.客户端接收到offer包之后,发送DHCP Request包请求分配IP
- 4.DHCP 服务发送ACK数据包,确认信息
- 简单网络管理协议SNMP
- 网络管理包括对硬件、软件和人力的使用、综合与协调,以便对网络资源进行监控、测试、配置、分析、评价和控制,这样就能以合理的价格满足网络的一些需求,如实时运行性能、服务质量等。
- 网络管理常称为网管
- 实际上,SNMP的操作只有两种基本的管理功能,即
- 1.读操作,用Get报文来检测各被管对象的状况
- 2.写操作,用Set报文来改变各被管对象的状况
- SNMP的报文格式
- 1.请求标识符(request ID)
- 由管理进程设置的4字节整数值
- 代理进程在发送响应报文时也要返回此请求标识符
- 管理进程可同时向许多代理发出请求读取变量值的报文
- 设置请求标识符可使管理进程能够识别返回的响应是对应于哪一个请求报文
- 2.差错状态(error status)
- 在请求报文段中这个字段是0
- 当代理进程响应时,就填入0-18中的一个数字
- 3.差错索引(error index)
- 在请求报文中,这个字段是0
- 当代理进程响应时,若出现”noSuchName“,"badValue","readonly"的差错,代理进程就设置一个整数,指明有差错的变量在变量列表中的偏移
- 4.变量绑定
- 指明一个或多个变量的名和对应的值
- 1.请求标识符(request ID)
- 6.7 P2P应用
- P2P应用指的是具有P2P体系的网络应用
- 对等方式(P2P):对等连接中的每一个主机既是客户又同时是服务器
- 6.1域名系统DNS