计算机网络
1、概述
基础概念
三网融合包括:电信网络、有线电视网络 和 计算机网络
互联网的两个重要基本特点:连通性 和 共享
网络三要素:语法、语义、同步(时序)
互联网服务提供者 ISP(Internet Service Provider) ,常译为互联网服务提供商。互联网服务提供者 ISP 可以从互联网管理机构申请到很多IP地址,同时拥有通信线路以及路由器等连网设备
计算机之间通信:主机 A 的某个进程和主机 B 上的另一个进程进行通信
通信方式
两大类通信方式:
客户机-服务器方式 (C/S)
浏览器-服务器方式 (B/S) 也是 C/S 方式的一种特例
对等连接方式 (peer-to-peer P2P) :对等连接中的每一台主机既是客户同时又是服务器
数据交互方式
数据交互方式:电路交换、报文交换、分组交换
网络核心部分起特殊作用的 路由器,路由器实现 分组交换 的关键构建,其任务是 转发收到的分组
电路交换
交换:就是按照某种方式动态地分配传输线路的资源
电路交换特点:
- 建立连接(占用通信资源)
- 通话(一直占用通信资源)
- 释放连接(归还通信资源)
电路交换的一个重要特点:在通话的全部时间内,通话的两个用户 始终占用端到端的通信资源 ,缺点就是线路的传输效率很低
报文交换
分组交换
分组交换是 存储转发 技术,把要发送的整块数据称为一个报文,在发送报文之前,先把较长的报文划分为一个个更小的等长数据段,在每个数据段前,加上一些必要的控制信息组成的首部后,就构成了一个分组(packet)。分组又称为包,而分组的首部也可称为“包头”,分组是在互联网中传送的数据单元
分组中的首部是非常重要的,正是由于 分组的首部 包含了诸如 目的地址 和 源地址 等重要控制信息,每个分组才能在互联网中独立地选择传输路径,并被正确地交付到分组传输的终点
分组交换 在传送数据之前 不必先占用一条端到端的通信资源。分组在哪段链路上传送才占用那段链路通信资源
电路交换:整个报文的比特流连续地从源点直达终点,始终占用一条端到端的物理链路连续传送大量数据,电路交换传输速率较快。
报文交换:整个报文先传送到相邻节点,全部存储下来后查找转发表,转发到下一个节点
分组交换:单个分组(只是整个报文的一部分)传送到相邻节点存储下来后查找转发表,转发到下一个节点
过去,话音通信适合电路交换,而分组交换适合数据通信
目前,无论话音通信还是数据通信都是用分组交换
计算机网络的分类
- 按网络作用范围分类
- 广域网 WAN(Wide Area Network)
- 城域网 MAN(Metropolitan Area Network)
- 局域网 LAN(Local Area Network)
- 个人区域网 PAN(Personal Area Network)
- 按照网络的使用者进行分类
- 公用网:指电信公司(国有或私有)出资建造的大型网络。“公用”指所有愿意按电信公司的规
定交纳费用的人都可以使用这种网络 - 专用网:指某个部门为满足本单位的特殊业务工作的需要而建造的网络。不对外提供服务
- 公用网:指电信公司(国有或私有)出资建造的大型网络。“公用”指所有愿意按电信公司的规
计算机网络的新能
速率、带宽、吞吐量、时延、时延带宽积、往返时间 RTT、利用率
网络体系结构
TCP/IP 四层协议:
TCP/IP 四层体系 | OSI 七层体系 | 协议 | 设备 | 数据格式 |
---|---|---|---|---|
应用层 | 应用层 表示层 会话层 | DNS、HTTP、SMTP | 报文 | |
运输层 | 运输层 | TCP、UDP | 数据报、虚电路 | |
网络层 | 网络层 | IP、ICMP、ARP、RARP、OSPF | 路由器、防火墙 | IP数据报 |
链路层 | 数据链路层 | PPP | 网桥、交换机、网卡 | 帧 |
(链路层、同上) | 物理层 | 中继器、集线器、网线、网卡 | 比特流 |
2、物理层
物理层基本特性:机械特性、电气特性、功能特性、过程特性
数据通信系统可划分为三大部分:源系统、传输系统、目的系统
信号分类
- 模拟型号:连续信号——代表消息的参数的取值是连续的
- 数字信号:
- 离散信号——代表消息的参数取值是离散的。代表不同离散数值的基本波形称为 码元,二进制编码中,码元有两种“0”状态和“1”状态
通信交互方式
- 单工通信:能有一个方向的通信而没有反方向的交互
- 半双工通信:通信的双方都可以发送信息,但不能双方同时发送
- 全双工通信:通信的双方可以同时发送和接收信息
带通调制方法
- 调幅(AM),即载波的振幅随基带数字信号而变化
- 调频(FM),即载波的频率随基带数字信号而变化
- 调相(PM),即载波的初始相位随基带数字信号而变化
物理层下的传输媒介
- 双绞线
- 非屏蔽双绞线 UTP(Unshielded Twisted Pair)
- 屏蔽双绞线 STP (Shielded Twisted Pair)
- 同轴电缆:同轴电缆 具有很好的抗干扰特性,被广泛用于传输较高速率的数据
- 光缆:光纤通信就是利用光导纤维(简称光纤)传递光脉冲来进行通信。数百 Gbit/s
存在多条不同角度入射的光线在一条光纤中传输称为 多模光纤
信道复用技术
- 频分复用 FDM (Frequency Division Multiplexing)
频分复用的各路信号在同样的时间占用不同的带宽资源
让 N 个用户各使用一个频带,或让更多的用户轮流使用跟这个这 N 个频带,称为频分多址接入 FDMA (Frequency Division Multiple Access) 简称频分多址 - 时分复用 TDM(Time Divison Multiplexing)
时分复用的所有用户是在不同的时间占用同样的频带宽度
在时分信道中,让 N 个用户使用一个时隙,或让更多的用户轮流使用时隙,称为时分多址接入 TDMA
(Time Division Multiple Access) - 波分复用 WDM(Wavelength Division Multiplexing)是光的频分复用
- 码分复用
- CDM(Code Division Multiplexing),各用户使用经过特殊挑选的不同码型,因此各用户之间不会造成干扰,有很强的抗干扰能力。
带宽接入技术
- ADSL
非对称数字用户线ADSL(Asymmetric Digital Subscriber Line) ADSL 的 下行(从ISP到用户)带宽都 远远大于上行(从用户
到ISP)带宽。ADSL所能得到的最高数据传输速率与实际的用户线上的信噪比密切相关。 - 光纤同轴混合网(HFC网)
- FTTx 技术
信道的极限容量
信号在信道上传输时会不可避免地产生 失真,但在接收端只要我们从失真的波形中能够识别出原来的信号,这种失真对通信质量无影响
码元 传输的速率越高、信号 传输的距离越远、噪声干扰越大 或 传输媒体质量越差,接收端的波形的 失真就越严重
码间串扰:高频信号减弱,附近频段跟着减弱
在带宽为 W(Hz)的低通信道中,若不考虑噪声影响,则码元传输的最高速率是 2W(码元/秒)。传输速率超过此上线,就会出现严重的码间串扰的问题,使接收端对码元的判决成为不可能
信噪比、香农公式
3、数据链路层
基本概念
链路:一个节点到相邻节点的一段物理线路,中间无其他交换节点
数据链路:物理线路 + 通信协议。实现这些协议的硬件和软件加到链路上,就构成了数据链路。使用网络适配器实现这些协议。
帧:点对点信道的 数据链路层 的协议 数据单元
封装成帧 就是在一段数据的前后分别添加 首部 和 尾部,就构成了帧
首部尾部的作用:进行 帧定界(即确定帧的界限)
MTU(Maximum Transfer Unit)最大传输单元:数据链路层中 帧 的 数据部分 的 长度上限
差错检测:
比特在传输过程中可能会产生差错:1变成0,0变成1,称为 比特差错
传输错误的比特与传输比特总数的比率称为 误码率
误码率与信噪比有很大的关系。信噪比越高,误码率越小
CRC 循环冗余检验(Cyclic Redundancy Check) (略)
MAC 地址是固化在适配器 ROM 中的地址
PPP 协议
互联网用户通常都要连接到某个 ISP 才能介入到互联网,PPP 协议就是用户 计算机 和 ISP 进行通信时所使用的 数据链路层协议
以太网
局域网 的优点:
- 具有 广播 功能,从一个站点可很方便地访问全网。局域网上的主机可共享连接在局域网上的各种硬件和软件资源
- 便于系统的扩展和逐渐地演变,各设备的位置可灵活调整和改变
- 提高了系统的可靠性(reliability)、可用性(availability)和生存性(survivability)
以太网 的两个主要标准:DIX Ethernet V2,IEEE 802.3
IEEE802 把局域网的数据链路层分为两个子层
- 逻辑链路控制 LLC(Logical Link Control) 子层
- 媒体接入控制 MAC(Medium Access Control) 子层
CSMA/CD 协议
总线 的特点: 一台计算机发送数据时,总线上的 所有计算机都能检测到这个数据,这就是 广播 通信方式。在发送数据帧时,在帧的首部写明接收站的地址,仅当数据帧中的目的地址与适配器 ROM 中存放的硬件地址一致时,适配器才接受这个数据帧,反之丢弃。这样使具有广播特性的总线上就实现了一对一的通信。
以太网 的两种措施:
采用 无连接 的工作方式:不必先建立连接就直接发送数据,发送数据帧也不进行编号,也不要求对方发送确认。尽力交付。对有差错的的帧是否需要重传由高层决定。同一时间只能允许一台计算机发送数据,否则各计算机之间就会互相干扰使用的协议使 CSMA/CD(载波监听多点接入/碰撞检测 Carrier Sense Multiple Access WithCollision Detection)
曼切斯特码,这种信号的最大问题是当出现一长串连续的1或连续的0时,接收端就无法从受到的比特流中提取位同步信号。缺点:所占频带宽度比原始的基带信号增加了一倍
以太网规定最短帧长为 64字节 即 512 比特
CSMA/CD 的特点:
- 多点接入:说明是总线型网络,许多计算机以多点接入的方式连接在一根总线上
- 载波监听:边发送边监听,载波最佳译为载体或者媒体。载波监听主要描述,不管在想要发送数据之前,还是在发送数据中,每个站都必须不停的检测信道
- 碰撞检测:适配器边发送数据边检测信道上的信号电压的变化情况。当几个站同时发送数据的时候,信道中的信号电压变化幅度将会增大(叠加)。当适配器检测到电压超过一定门限值,表明总线上至少有两个站同时在发送数据,表明发生了碰撞
CSMA/CD 协议中,一个站不可能同时发送和接受数据,所以 CSMA/CD 协议是 半双工通信
CSMA/CD 流程以及要点归纳:
- 准备发送:适配器从网络层获得一个分组,加上以太网的首部和尾部,组成以太网帧,放入适配器的缓存中,但在发送之前,必须先检测信道
- 检测信道:若信道忙,则继续不停的检测,直到信道空闲,此时若在96比特时间内信道仍然保持空闲(保证了帧间最小间隔),就发送这个帧
- 在发送过程中,不断检测信道,即网络适配器便发送边监听
- 发送成功:在一个争用期内未检测出碰撞,就认为发送成功,若接收到有差错的帧就丢弃
- 发送失败:在争用期内检测到碰撞。这是立即停止发送数据 ,并按规定发送认为干扰信
适配器执行退避算法,等待r被个争用期时间后,准备重传,如果重传16次后仍然不能成功,则停止重传向上报错
4、网络层
基础概念
网络层要设计得要尽量简单,向其上层只提供 简单灵活 的、无连接 的、尽最大努力交付 的数据包服务
路由器之间传送的信息有两大类:
- 转发源主机和目的主机直接按传送的数据,把源主机所发送的分组
- 路由信息,根据路由选择协议所使用的路由算法,维护路由表
网络层划分为 数据层面(转发层面)和 控制层面。
网际协议 IP
与 IP 协议配套的协议:
- 地址解析协议 ARP(Address Resolution Protocol)
- 网际控制报文协议 ICMP(Internet Control Message Protocol)(ping 命令使用的协议)
- 网际组管理协议 IGMP(Internet Group Management Protocol)
IP 地址
127 作为环回测试
D类地址作为多播地址使用,E类地址保留为今后使用
IPV6(128 位) 地址采用 冒号分十六进制 记法
地址压缩方法:可以省略前导0,地址压缩中可以使用双冒号省略连续的0,但是双冒号只能用一次:
无分类编制 CIDR,全名无分类域间路由选择(Classless Inter-Domain Routing)
- 网络前缀,CIDR 把网络号改为“网络前缀”,用于指明网络,剩下的仍然为主机号,
- 地址块,把所有网络前缀相同的所有IP地址组成一个 CIDR 地址块
- 地址掩码,掩码与 IP 地址向'与‘,得到网络地址,子网掩码表示这个网段的网络前缀有多少位,前缀部分全 1,剩下的全 0。在与IP地址向与的时候,网络前缀部分该是多少就是多少,因为全1出1.剩下的都是 0
路由聚合,用一个路由条目,表达多个子网
网络前缀越短的地址块所包含的地址数越多
IP 数据报 的格式:
- 版本:占4位,协议 IP 的版本,通信双方使用 IP 协议的版本必须相同,IP 协议的版本号为 4
- 首部长度:占 4 位,可表示的最大十进制数值为 15。这4位二进制多少表示了首部有多少个 32 位字长(即表示有多少个4字节),IP首部固定长度位20字节,所以首部长度字段最小值是 5(0101),当首部字段全 1 时,即表示 IP 首部有 60 个字节。当 IP 分组的首部长度不是 4字节的整数倍时,必须利用最后的填充字段加以填充
- 区分服务:占 8 位,用来获得更好的服务。一般情况下不使用这个字段
- 总长度:总长度指首部和数据之和的长度,单位为字节。总长度字段为16位,因此最大长度为65535 字节。然而实际上传送这样长度的数据包在现实中时极少遇到的
以太网规定其 MTU(最大传送单元 Maximum Transfer Unit)1500 字节,数据包过长就会分片处理。
IP 层转发分组的过程
路由器收到待转发的分组,查找转发表找到下一跳路由器的 IP 地址后,将 IP 地址填入首部中,然后将其交给数据链路层,数据链路层通过ARP找到下一个路由器接口的 MAC 地址,MAC 填入 MAC 帧后,传送到下一个路由器的数据链路层,再脱离数据链路层MAC帧首部后再交给网络层,重复上述操作。必须使用 ARP 协议找到 MAC 地址。不可以跳过
为什么不直接使用MAC地址?
使用抽象的 IP 地址,本来就是为了隐蔽各种底层网络的复杂性而比那与分析和研究问题。这样就不可避
免地要付出些代价,例如再选择路由时多了一些开销。但反过来再转发表中直接使用 MAC 地址,就会带
来麻烦,甚至无法找到对方的机器。
网际控制报文协议 ICMP
互联网的路由选择协议
- 内部网关协议 RIP (RIP 基于 UDP)
- 仅和相邻路由器交换信息
- 路由器之间通过交换自己的路由表的方式完成收敛
- 按固定的时间间隔交换路由信息,每个一段时间会发送报文路由表信息更新自己的路由表
- OSPF (OSPF 基于 IP)
- 外部网关协议 BGP (BGP 基于 TCP)
虚拟专用网 VPN 和网络地址转换 NAT
5、运输层
运输层 提供 端到端的可靠传输
运输层需要两种不同的运输层协议,面向连接 的 TCP 和 无连接 的 UDP
用户数据报协议 UDP(User Datagram Protocol)
传输控制仪协议 TCP(Transmission Control Protocol)
TCP 协议的报文称为 TCP 报文段
UDP 协议的报文称为 UDP 数据报
5.1、UDP
只在 IP 的数据报上增加一点功能:复用和分用 以及 差错检测
UDP 特点:
UDP 是无连接的,发送数据之前不用建立连接,减少了开销还有发送数据之前的时延
UDP 使用尽最大努力交付,不保证可靠交付,因此主机不需要维持复杂的连接状态表
UDP是 面向报文 的。UDP 对于应用层交下来的报文,既不会拆分也不会去合并,而是交下来是多
长,UDP 就加上一个首部按照多长发送。对于接收方也是直接拆开头部直接交给应用层。若报文太
长,在 IP 层会进行分片,这会降低IP层的效率。若报文太短,UDP 把它交给 IP 层后,会使 IP 数据包
的首部的相对长度太大,这也降低了 IP 层的效率UDP没有拥塞控制
实时 应用要求主机以恒定的速率发送数据,并且允许在网络发送拥塞时丢失一些数据,但却不允许数据有太大的延时,UDP 正好适合这种要求
UDP 支持一对一、一对多、多对一和多对多的交互通信
UDP 的首部开销小,只有8个字节
UDP 发送的报文在传输过程中可能会丢失,且不能保证到达对端的顺序
UDP 差错检测,采用 检验和 的方式
UDP 用户数据包的检验和,即检查了源端口号和目的端口号以及 UDP 用户数据报的数据部分,又检查了 IP 数据包的源IP地址和目的地址。
UDP 数据报有两个字段,数据字段和首部字段
首部字段只有 8 个字节
5.2、TCP
TCP 特点:
- TCP 是面向连接的传输层协议。应用程序在使用 TCP 协议之前,必须先建立 TCP 连接。在传送数据完
毕后,释放 TCP 连接 - TCP 只能在点到点(一对一)
- TCP提供可靠交付的服务,TCP连接传送的数据,无差错、不丢失、不重复、并且按序到达
- TCP提供全双工通信
- 面向字节流,TCP 把应用程序交下来的数据仅仅看成是一连串的无结构字节流。TCP并不知道所传
送的字节流的含义
TCP 的连接:TCP的端点是套接字,是将 IP 地址 和 端口号 拼接起来
每一条 TCP 连接唯一地被通信两端的两个端点
5.3、可靠传输的工作原理
理想传输条件的两个特点:
- 传输信道不产生差错
- 不管发送方以多块的速度发送数据,接收方总是来得及处理收到的数据
停止等待协议:发送完一个分组就停止发送,等待对方确认后再发送下一个分组
连续 ARQ 协议:发送方维持的发送窗口,它的意义是:位于发送窗口内的5个分组都可以连续发送出去,而不需要等
待对方的确认
5.4、TCP 报文端的首部格式
- 源端口和目的端口:各占2个字节,分别写入源端口号和目的端口号 (注意没有 IP 地址是因为源目 IP 地址在 IP 层首部里面,不要混为一谈)
- 序号:占 4 个字节,序号字段标志着整个报文段数据部分第一个字节的序号
- 确认号:期望收到下一个报文段的第一个数据字节的序号,也就是说,首部中没有字段明确表示数据长度,而是通过该报文数据的第一个字节的序号(序号)和下一个 TCP 报文段第一个字节的序号(确认号)标志报文段数据的长度
- 数据偏移:占 4 位 ,字段实际指出 TCP 报文段的首部长度
- 保留 占 6 位,保留为今后使用,但目前应置为 0
- 紧急 URG(URGent)。当 URG=1 时,表明紧急指针字段有效。表明此报文段中有紧急数据,应尽快传送(相当于最高优先级),URG 置 1 时,发送应用进程就高速发送方 TCP 有紧急数据要传送。发送方就把该报文段放到队列的最前面,配合首部字段中的紧急指针使用
- 确认ACK(ACKnowledgment),ACK=1表示TCP连接建立成功,当没有建立成功的时候ACK字段都是0,报文段就无效。当TCP连接建立成功后,报文段首部的ACK字段都是1
- 推送 PSH(PuSH)两个应用程序进行交互式通信,一端的某条命令希望在发送后理解获得响应,那么就将 PSH 字段置 1,接收方在收到PSH字段为 1 的报文段的时候就尽快交付接受应用程序,而不再等到整个缓存都满了再向上交付
- 复位 RST(ReSeT)当 RST=1 时,表明 TCP 连接中出现严重差错,需要断开 TCP 连接,并重新建立连接。将 RST 为置1还可以拒绝接受某个非法的报文段或拒绝打开某个连接
- 同步 SYN(SYNchronization):在建立连接时用来同步序号。当 SYN=1 而 ACK=0时,表明这是一个连接请求报文段。当对方同意建立连接,则应在响应的报文段中使 SYN=1 和 ACK=1。因此 SYN 置为 1 就表示这是一个连接请求或连接接受报文
- 终止FIN(FINish)用来释放连接。当FIN=1时,表明此报文段的发送方的数据已发送完毕,并要求释放运输连接
- 窗口 占2字节。窗口值是0~2的16次方-1之间的整数。发送本报文段的一方的接受窗口。窗口值表示:告诉对方,从本报文段首部中的确认号算起,接收方目前允许对方发送的数据量(以字节为单位)之所以要有这个限制,是因为接收方的数据缓存空间是有限的。窗口值作为接收方让发送方设置其发送窗口的依据。窗口值与本报文段没有关系,而是关系着后面的报文,目的是告诉对方,我还可以接收多少的缓存,对方在读取首部中的窗口值来决定下一次发送数据时的发送窗口大小(窗口字段明确指出了现在允许对方发送的数据量,窗口值经常在动态变化着)
- 检验和 占2字节 检验和字段检验的方位包括首部和数据这两个部分。和UDP用户数据包一样,在计算检验和时,要在TCP报文段的前面加上12字节的伪首部。TCP的协议号为6,计算方法不再多说
- 紧急指针 2个字节,紧急指针仅在URG=1时才有意义,它指出本报文段中的紧急数据的字节数(因为紧急数据结束后就是普通数据),因此紧急指针指出了紧急数据的末尾的报文段中的位置。注意:即使窗口为0也可发送紧急数据。
- 选项 长度可变,最长可达40字节。若没有选项字段TCP首部长度为20字节,最后的填充字段仅仅是为了使整个TCP首部长度是4字节的整数倍。
5.5.、TCP 可靠传输的实现
以字节为单位的滑动窗口
接收方会把自己的接收窗口数值放在窗口字段中发送给对方
发送方的发送窗口不能超过接收方的接收窗口
超时重传时间的选择
TCP 采用一种自适应算法:发送端记录发送某报文段的时间和收到该报文段确认报文段的时间,两者相减得到报文段的往返时间RTT,TCP保留一个平滑的往返时间
5.6、TCP 流量控制
每个连接设有一个持续计时器(persistence timer)。只要TCP连接的乙方收到对方的零窗口通知,就会启动计时器。若计时器时间到期就会发送一个零窗口探测报文段(仅携带1字节的数据),而对方就在确认这个报文段的时候给出现在的窗口值
5.7、TCP 拥塞控制
拥塞控制的算法有四种:慢开始、拥塞避免、快重传、快恢复
5.8、三次握手、四次挥手
TCP 的三次握手过程:
A 的 TCP 客户进程也是首先创建传输控制块 TCB。然后在打算建立 TCP 连接时,向B发出连接请求报文段,这时首部中的同步位 SYN=1,同时选择一个初始序号 seq=x。TCP规定SYN报文段不能携带数据,但要消耗掉一个序号。这时TCP客户进程进入SYN-SENT(同步以发送)状态
B 收到连接请求报文段后,如果同意建立连接,则向A发送确认。在确认报文段中应把SYN和ACK位都置1,确认号是ack=x+1,同时也为自己选择一个初始序号seq=y。报文段不能携带数据,但要消耗掉一个序号,服务器进程进入SYN-RCVD(同步收到)状态
TCP客户进程收到B的确认后,还要向B给出确认。确认报文段的ACK置1,确认号ack=y+1,而自己的序号seq=x+1,TCP标准规定,ACK报文段可以携带数据。但如果不携带数据则不消耗序号,若不携带数据,则下一个自己的序号仍然是x+1,此时TCP连接已经建立,A进入ESTABLISHED状态
B收到A的确认后,也进入ESTABLISHED状态
相关信息
第三次握手的必要性:
当没有第三次握手时,会出现一种情况,就是A发送第一个请求报文段,该报文段没有丢失而是在网络中滞留了一段时间,以致延误到连接释放以后某个时间才到达B。本阿里这是一个早就已经失效的报文段,但是B收到此报文段,却误以为A又发出了一次新的连接请求。于是就向A发出确认报文段,同意建立连接,若不采用报文握手,那么只要B发出确认,新的连接就建立了。此时A因为没有向B发送请求所以不会向B发送任何数据,但是B却以为已经建立连接所以一直在等到A发送数据。网络资源白白浪费
TCP 的四次挥手过程
TCP释放连接的四次挥手:
- 数据传输结束后,通信的双方都可以释放连接。现在A和B都处于ESTABLISHED状态。A的应用程序先向期TCP发出连接释放报文段,并停止再发送数据,主动关闭TCP连接。A把连接释放报文段首部的终止控制位FIN置1,其序号seq=u,u等于前面已传送过的数据的最后一个字节的序号加1.这时A进入FIN-WAIT-1(终止等待1)状态,等待B的确认。FIN报文段即使不携带数据也要消耗一个序号
- B收到连接释放报文段后发出确认,确认号是ack=u+1,而这个报文段自己的序号是v,等于B的前面以传送过的数据的最后一个字节的序号加1.然后B就进入CLOSE-WAIT(关闭等待)状态。因而从A到B这个方向的连接就释放掉了(此时B还可以向A发送数据),这时TCP连接处于半关闭状态,即A已经没有数据要发送了,但B若发送数据,A仍要接收
- A收到来自B的确认后,就进入FIN-WAIT-2状态,等待B发出的连接释放
- 若B已经没有要向A发送的数据,其应用进程就通知TCP释放连接。这时B发出的连接释放报文段必须使FIN=1.现假定B的序号为w(在半关闭状态B可能还要发送一些数据)。B还必须重复上次已发送过的确认号ack=u+1.这时B就进入LAST-ACK(最后确认)状态,等待A的确认
- A在收到B的连接释放报文段后,必须对此发出确认。在确认报文段中把ACK置1,确认号ack=w+1,而自己的序号是seq=u+1.然后进入到TIME-WAIT(时间等待)状态。此时TCP连接还没有释放掉,必须经过时间等待计时器(TIME-WAIT timer)设置的时间2MSL后,A才进入到CLOSED状态,时间MSL叫做最长报文段寿命(Maximum Segment Lifetime)
6、应用层
6.1、域名系统 DNS
DNS 规定,域名中的标号都由英文字母和数字组成,每一个标号不超过 63 个字符,也不区分大小写字母,标号中只能使用 -
不能使用其他符号,级别最低的域名写在最左边,级别最高的域名写在最右边。由多个标号组成的完整域名总共不超过 255 个字符。
域名服务器:DNS 服务器的管辖范围不是以域为单位,而是以区为单位,区是 DNS 服务器世纪管辖的范围
域名解析过程:
主机向本地域名服务器的查询一般都采用递归查询,递归查询就是当本域名服务器不知道被查询的域名的 IP 地址时,不是告诉下级接着找谁,而是自己作为其他 DNS 服务器的客户去向别的域名服务器发送查询报文
本地域名服务器向根域名服务器的查询通常采用迭代查询。迭代查询当根域名服务器收到本地域名服务器发出的迭代查询请求报文时,要么给出所要潮汛的 IP 地址,要么告诉本地域名服务器该去找哪个域名服务器。根域名服务器通常告诉本地域名服务器去找哪个顶级域名服务器,而本地域名服务器会告诉本地域名服务器去找哪个权限域名服务器
为了高 DNS 的查询效率,域名服务器广泛使用 高速缓存。在一定时间内若客户再次查询某地址,可以直接从缓存中读取
6.2、文件传送协议 FTP
文件传送协议 FTP(File Transfer Protocol),提供交互式访问,允许客户知名文件的类型与格式,FTP 屏蔽了各计算机系统的细节,因而适合于在异构网络中的任意计算机之间传送文件
FTP 的基本工作原理: FTP 的服务器进程由 两个部分 组成:一个 主进程,负责接收新的请求,另外 若干个从属进程 负责处理单个请求
- 主进程:端口号为21,使客户进程能够连接上
文件传输时,FTP 的客户和服务器之间要建立 两个并行的 TCP 连接:控制连接 和 数据连接
FTP 运行过程:客户进程向服务器端发出建立连接请求时,要寻找 服务器的 21 号端口,同时还要告诉服务器自己用于数据传送连接的端口号。接着服务器用自己的 传送端口 20 和客户提供的端口号建立数据传送连接
简单文件传送 TFTP :使用 UDP 数据包,因此TFTP需要有自己的差错改正措施。TFTP 只支持文件传输不支持文件交互。TFTP 没
有庞大的指令集,没有列目录的功能,也不能对用户进行身份鉴别
6.3、远程终端协议 TELNET
用户通过 telnet 就可以在其所在地通过 TCP 连接注册到远地的另一台主机上
6.4、万维网 WWW
统一资源定位符 URL
超文本传送协议 HTTP :HTTP 是面向事务的(transaction-oriented)应用层协议,是万维网上能够可靠地交换文件的重要基
础。协议 HTTP 不仅传送完成超文本跳转所必须的信息,而且也传送任何可从互联网上得到的信息。
http 下 cookie 是明文传递的
https下 cookie 是加密传送的
6.5、电子邮件
一个电子邮件系统具有三个主要组成构件:用户代理、邮件服务器和邮件发送协议(SMTP)以及邮件接收协议(POP3)
用户代理 UA(User Agent)是用户与电子邮件系统的接口。大多数情况下就是运行在用户计算机中的一个程序。用户代理又称为电子邮件客户端软件。提供一个用户友好的程序来发送和接收邮件
邮件传送协议 SMTP
SMTP通信的三个阶段:建立连接、邮件传送 、连接释放
邮件读取协议 POP3 和 IMAP
POP3 协议采用客户服务器的工作方式,特点就是 只要用户从 POP3 服务器读取了邮件,POP3 服务器就把该邮件删除
IMAP 同样采用客户服务器模式,用户计算机安装 IMAP 客户程序,IMAP 服务器程序建立 TCP 连接。用户可以在自己的计算机上操纵邮件服务器,就像在本地操纵一样。因此IMAP协议是一个联机协议。用户若想打开某个哟见,则该邮件才传到用户的计算机上。用户可以以文件夹的形式管理邮件,只到用户发出删除邮件的命令之前,IMAP服务器邮箱中的邮件都会一致保留
通用互联网邮件扩充 MIME
SMTP的缺点:
- SMTP 不能传送可执行文件或其他二进制对象
- SMTP 限于传送 7 位的 ASCII 码许多其他非英语国家的文字就无法传送。
- SMTP 服务器会拒绝超过一定长度的邮件
- 某些 SMTP 的实现并没有完全按照 SMTP 的互联网标准
MIME 主要包括以下三部分:
- 5 个新的邮件首部字段,他们可包含在原来的邮件首部中。这些字段提供了有关邮件主体的信息
- 定义了许多邮件内容的格式,对多媒体电子邮件的表示方式进行了标准化
- 定义了传送编码,可对仍和内容格式进行转换,而不会被邮件系统改变
MIME 新增的5个邮件首部的名称及其意义:
- MIME-Version:标志MIME的版本
- Content-Description:这是刻度字符串,说明此邮件主体是否是图像、音频或视频
- Content-Id:邮件的唯一标识符
- Content-Transfer-Encoding:在传送时邮件的主体是如何编码的
- Content-Type:说明邮件主体的数据类型和子类型
6.5、动态主机配置协议 DHCP
动态主机配置协议 DHCP( Dynamic Host Configuration Protocol),提供一种即插即用联网(plugand-play networking)
当 DHCP 中继代理收到主机A以广播形式发送的发现报文后,就以单播方式向DHCP服务器转发此报文并等待其回答
DHCP 客户使用的UDP端口是 68,DHCP 服务器使用的 UDP 端口是 67