最大传送单元 MTU:规定了所能传送的帧的数据部分长度上限
误码率 BER:在一段时间内,传输错误的比特占所传输比特总数的比率
**循环冗余检验 CRC **
帧检验序列 FCS(+余数)
数据链路层
- 封装成帧
- 透明传输
- 差错检测
PPP 点对点协议
作用 / 功能:
- 全双工操作
- 有动态分配 IP 地址的能力
- 支持多种网络协议
- 错误检测
组成:
- 一个将 IP 数据报封装到串行链路的方法
- 一个链路控制协议 LCP
- 一套网络控制协议 NCP
CSMA / CD 协议:(总线)
要点:
-
多点接入
-
载波监听:“边发送边监听”
-
碰撞检测
-
发生碰撞后:适配器立即停止发送,等待一段随机事件后再次发送
-
进行碰撞检测的原因:信号传播时延对载波监听产生了影响
-
重传的时机:采用截断二进制指数退避确定
- 发生碰撞的站停止发送数据后,要退避一个随机时间后再发送数据
- 基本退避时间 = 2
- 当重传达 16 次仍不能成功时即丢弃该帧,并向高层报告
- 发生碰撞的站停止发送数据后,要退避一个随机时间后再发送数据
-
强化碰撞:人为干扰信号
- 立即停止发送数据帧,接着就发送 32 或 48 比特的人为干扰信号
-
使用集线器的星形拓扑
以太网
-
有效的 MAC 帧长度为 64~ 1518 字节之间;一般用于计算的是 1500
-
检查出的无效的 MAC 帧丢弃
-
FCS 字段
当数据字段的长度小于 46 字节时,应在数据字段的后面加入整数字节的填充字段,以保证以太网的 MAC 帧长不小于 64 字节
-
碰撞域:
- 指网络中一个站点发出的帧会与其他站点发出的帧产生碰撞或冲突的那部分网络
- 碰撞域越大,发生碰撞的概率越高
-
网桥:根据 MAC 帧的目的地址对收到的帧进行转发和过滤。或者转发或者丢弃。
-
交换机:多端口的网桥。可明显的提高以太网的性能;以太网交换机具有并行性
-
以太网交换机的每一个接口都是一个碰撞域
-
星形结构不使用 CSMA / CD 协议
生成树协议 SPT:不改变网络的实际拓扑,但在逻辑上则切断某些链路,使得从一台主机到所有其他主机的路径是无环路的树状结构,从而消除了兜圈子现象
以太网存在的问题:
广播风暴:
- 一个以太网是一个广播域
- **广播域:**网络中任何一台设备发出的广播通信都能被该部分网络中的所有其他设备所接收
- 交换机之间的冗余链路形成广播风暴
**安全问题:**无法隔离不同部门的通信
管理困难
虚拟局域网 VLAN:
- 是由一些局域网网段构成的与物理位置无关的逻辑组,而这些网段具有某些共同的需求。每一个 VLAN 的帧都有一个明确的标识符,指明发送这个帧的计算机是属于哪个 VLAN
- 虚拟局域网限制了接收广播信息的工作站数,使得网络不会因传播过多的广播信息而引起性能恶化
- VLAN 标识符 12 位,最多允许 4096 个 VLAN
网络层
使用转发器或网桥不称为网络互连
- 转发器、网桥或交换机仅把一个网络扩大了,仍然是一个网络
软件定义网络 SDN
网际组管理协议 IGMP
互联网上每台主机(或路由器)的每个接口分配一个在全世界唯一的 IP 地址。
传统IPv4:分 A,B,C,D类
无分类域间路由选择 CIDR:划斜线
构造超网
IP 地址的特点:
- 每个 IP 地址都由网络前缀和主机号两部分组成
- IP 地址是标志一台主机(路由器)和一条链路的接口
- 转发器和交换机连接起来的若干个区域仍为一个网络
- 在 IP 地址中,所有分配到网络前缀的网络都是平等的
路由器只根据目的站的 IP 地址进行转发
地址解析协议 ARP
ARP 作用:从 IP 地址中解析出 MAC 地址
ARP 高速缓存:
- 存放 IP 地址到 MAC 地址的映射表
- 映射表动态更新(新增或超时删除)
- 超过生存时间的项目都从高速缓存中删除,以适应网络适配器变化
ARP 查找 IP 地址对应的 MAC 地址:
- 本局域网上广播发送 ARP 请求(路由器不转发 ARP 请求)
- **ARP 请求分组:**包含发送方硬件地址 / 发送方 IP 地址 / 目标方硬件地址(未知时填 0) / 目标方 IP 地址
- ARP 分组封装在以太网帧中传输
ARP 高速缓存的作用:
- 存放最近获得的 IP 地址到 MAC 地址的绑定
- 减少 ARP 广播的通信量
- 为进一步减少 ARP 通信量,主机 A 再发送 ARP 请求分组时,就将自己的 IP 地址到 MAC 地址的映射写入 ARP 请求分组
- 当主机 B 收到 A 的 ARP 请求分组时,就将主机 A 的 IP 地址及其对应的 MAC 地址映射写入主机 B 自己的 ARP 高速缓存中。不必再发送 ARP 请求
IP数据报格式:
-
首部长度:克表示的最大数值是 15个单位(一个单位为 4 字节),因此 IP 的首部长度的最小值是 20 字节,最大值是 60 字节
-
总长度:指首部和数据之和的长度,单位为字节,总长度必须不超过最大传送单元 MTU
-
标识:是一个计数器,用来产生 IP 数据报的标识
-
标志:目前只有前两位有意义。
- 标志字段的最低位是 MF:MF = 1 标识后面还有分片,MF = 0 表示最后一个分片
- 标志字段中间的一位是 DF 只有当 DF = 0 时才允许分片
-
片偏移:指出较长的分组在分片后某片在原分组中的相对位置。以 8 个字节为偏移单位
-
生存时间:记为 TTL,指示数据报在网络中可通过的路由器数的最大值
-
协议:指出此数据报携带的数据使用何种协议,以便目的主机的 IP 层将数据部分上交给那个处理过程
- IP 协议支持多种协议,IP 数据报可以封装多种协议 PDU
-
-
首部检验和:只检验数据报的首部,不检验数据部分。
IP 层转发分组的过程:
基于终点的转发:寻找前缀匹配 --> 多个地址满足时则选择前缀最长的一个作为匹配的前缀(最长前缀匹配原则)
**主机路由(又称特定主机路由):**网络前缀就是 a.b.c.d/32
**默认路由:**用特殊前缀 0.0.0.0/0 表示
网际控制报文协议 ICMP
-
ICMP 允许主机或路由器报告差错情况和提供有关异常情况的报告
-
报文种类:
-
差错报告报文,询问报文
-
**差错报文:**3 --> 终点不可达,11 --> 时间超过,12 – > 参数问题,5 – > 路由重定向
-
询问报文:8 / 0 – > 回送请求或回答;13 / 14 --> 时间戳请求或回答
不应发送 ICMP 差错报告报文的几种情况
- 对 ICMP 差错报告报文不再发送 ICMP 差错报告报文
- 对第一个分片的数据报片的所有后续数据报片都不发送 ICMP 差错报告报文
- 对具有多播地址的数据报都不发送 ICMP 差错报告报文
- 对具有特殊地址(如 127.0.0.0 或 0.0.0.0)的数据报不发送 ICMP 差错报告报文
- 回送请求或回答:
- 由主机或路由器向一个特定的目的主机发出的询问
- 收到此报文的主机必须给源主机或路由器发送 ICMP 回送回答报文
-
-
PING
- 用来测试两个主机之间的连通性
- 使用了 ICMP 回送请求和回送回答报文
- 应用层直接使用网络层 ICMP,没有通过运输层的 TCP 或 UDP
-
Traceroute
- 用来跟踪一个分组从源点到终点的路径
- 它利用 IP 数据报中的 TTL字段、ICMP 时间超过差错报告报文 和 ICMP 终点不可达差错报告报文 实现对从源点到终点的路径的跟踪
路由选择协议:
内部网关协议 IGP:在一个自治系统内部使用的路由选择协议
外部网关协议 EDP:在不同自治系统之间进行路由选择时使用的协议
内部网关协议 RIP:
-
RIP 距离向量: 是一种分布式的、基于距离向量的路由选择协议
- ”距离“ 的最大值为 ”16“ 时即相当于不可达
- 交换的信息是当前本路由器的整个路由表
- 按固定时间间隔交换路由信息
-
距离向量算法
对每个相邻路由器(假设其地址为 X)发送过来的 RIP 报文,路由器:
-
修改 RIP 报文中的所有项目(即路由):把 ”下一跳” 字段中的地址都改为 X,并把所有的 “距离” 字段的值加 1。
-
对修改后的 RIP 报文中的每一个项目,重复以下步骤:
若路由表中没有目的网络 N,则把该项目添加到路由表中。否则
若路由表中网络 N 的下一条路由器为 X,则用收到的项目替换原路由表中的项目。否则
若收到项目中的距离小于路由表中的距离,则用收到项目更新原路由表中的项目。否则
什么也不做
-
若三分钟还未收到相邻路由器的更新路由表,则把此相邻路由器记为不可达路由器,即将距离置为 16(表示不可达)
-
-
RIP 协议的优缺点
- **优点:**实现简单,开销较小
- 缺点:
- 网络规模有限。最大距离为 15
- 交换的路由信息为完整路由表,开销较大
- 坏消息传播的慢,收敛时间过长
内部网关协议 OSPF:使用最短路径算法
-
三个主要特点
- 采用洪范法,向本自治系统中所有路由器发送信息
- 发送的信息是与本路由器相邻的所有路由器的链路状态,但这只是路由器所知道的部分信息
- 链路状态:说明本路由器都和哪些路由器相邻,以及该链路的度量
- 当链路状态发生变化或每隔一段时间,路由器才用洪范法向所有路由器发送此信息
-
OSPF 中的路由器:
- 区域边界路由器 ABR
- 主干路由器 BR
- 自治系统边界路由器 ASBR
-
优点:OSPF 更新过程收敛速度快
-
**划分区域的优点:**使每一个区域内部交换路由信息的通信量大大减小,因而使 OSPF 协议能够用于规模很大的自治系统中
-
特点:
- 可实现多路径间的负载均衡
- 所有在 OSPF 路由器之间交换的分组都具有鉴别的功能
- 支持可变长度的子网划分和无分类编址 CIDR
-
OSPF 工作过程
- 确定领站可达
- 相邻路由器每隔 10 秒要交换一次问候分组
- 若有 40 秒钟没有收到某个相邻路由器发来的问候分组,则可认为该相邻路由器是不可达的
- 同步链路状态数据库
- 同步:指不同路由器的链路状态数据库的内容是一样的
- 两个同步的路由器叫做完全邻接的路由器
- 更新链路状态
-
只要链路状态发送变化,路由器就使用链路状态更新分组,采用可靠的洪泛法向全网更新链路状态
-
为确保链路状态数据库与全网的状态保持一致,OSPF 还规定,每隔一段时间,要刷新一次数据库中的链路状态
-
- 确定领站可达
-
指定的路由器 DR
- 多点接入的局域网采用了指定的路由器 DR的方法,使广播的信息量大大减少
- 指定的路由器代表该区域网上所有的链路向连接到该网络上的各路由器发送状态信息
-
路由器的主要工作:转发分组
- 交换结构
- 常用三种交换方法:通过存储器、通过总线、通过纵横交换结构
- 交换结构
网络地址转换 NAT
-
所有使用本地地址的主机在和外界通信时,都要在 NAT 路由器上将其本地地址转换成全球 IP 地址,才能和互联网连接
-
网络地址与端口号转换 NAPT
- NAPT 可以使多台拥有本地地址的主机,共用一个全球 IP 地址,同时和互联网上的不同主机进行通信
- 格式:IP地址:端口
IPv6:
运输层:
运输协议数据单元 TPDU:两个对等运输实体在通信时传送的数据单位
端口:
-
复用:应用进程都可通过运输层再传送到网络层
-
分用:运输层从 IP 层收到发送给应用进程的数据后,必须分别交付给指明的各应用进程
-
软件端口
- 协议栈层间的抽象的协议端口
- 是应用层的各种协议进程与运输实体进行层间交互的地点
-
硬件端口
- 不同硬件设备进行交互的接口
-
UDP
- 111:RPC
- 53:DNS
- 69:TFTP
- 161:SNMP
- 162:SNMP(trap)
-
TCP
-
25:SMTP
-
21、20:FTP
-
23:Telnet
-
80:HTTP
-
443:HTTPS
-
UDP:
在 IP 数据报服务之上添加了:复用和分用,差错检测功能
UDP 的特点
- 无连接
- 尽最大努力交付
- 面向报文
- 没有拥塞控制。网络出现的拥塞不会使源主机的发送速率降低。适合多媒体通信的要求
- 支持一对一、一对多、多对一、多对多等交互通信
- **首部开销小,**只有 8 个字节
- UDP 通信的特点:简单方便,但不可靠
UDP 首部格式
-
源端口:源端口号。在需要对方回信时使用。不需要时可用全 0
-
**目的端口:**目的端口号。终点交付报文时必须使用
-
**长度:**UDP 用户数据报的长度,其最小值是 8(仅有首部)
-
**校验和:**检测 UDP 用户数据报在传输中是否有错。有错就丢弃
在计算检验和时,临时把 12 字节的“伪首部”和 UDP 用户数据报连接在一起。伪首部仅仅是为了计算检验和。UDP 基于端口的分用
- 接收方 UDP 根据首部中的目的端口号,把报文通过相应的端口上交给应用进程
- 如果接收方 UDP 发现收到的报文中的目的端口号不正确(即不存在对于于该端口号的应用进程),就丢弃该报文,并由 ICMP 发送 “端口不可达” 差错报文给发送方
TCP
特点:
-
面向连接的
-
每一条 TCP 连接只能有两个端点
-
可靠交付
-
全双工通信
-
面向字节流
- TCP 中的 “流” 指的是流入或流出进程的字节序列
- 面向字节流:虽然应用程序和 TCP 的交互是一次一个数据块,但 TCP 把应用程序交下来的数据看成仅仅是一连串无结构的字节流
-
TCP 面向流的概念
- TCP 不保证接收方应用程序所收到的数据块和发送方应用程序所发出的数据块具有对应大小的关系
- 但接收方应用程序收到的字节流必须和发送方应用程序发出的字节流完全一样
TCP 的连接:
-
TCP 把连接作为最基本的抽象
每一条 TCP 连接有两个端点
TCP 连接的端点:套接字(socket)或插口
-
套接字
- 套接字 socket = (IP 地址 :端口号)
- 每一条 TCP 连接唯一的被通信两端的两个端点(即两个套接字)所确定
- TCP 连接 ::= {socket1,socket2} = {(IP1 : port1), (IP2 : port2)}
-
TCP 连接,IP 地址,套接字
- TCP 连接就是由协议软件所提供的一种抽象
- TCP 连接的端点是抽象的套接字,即(IP 地址:端口号)
- 同一个 IP 地址可以有多个不同的 TCP 连接
- 同一个端口号也可以出现在多个不同的 TCP 连接中
停止等待协议:
- 每发送完一个分组就停止发送,等待对方的确认。在收到确认后再发送下一个分组
出现差错:
-
两种情况:
-
B 接收 M1 时检测出了差错,就丢弃 M1,其他什么也不做(不通知 A 收到有差错的分组)
-
M1 在传输过程中丢失了,这时 B 当然什么也不知道,什么都不做
-
-
解决方法:超时重传
- A 为每一个已发送的分组设置一个超时计时器
- A 只要在超时计时器到期之前收到了相应的确认,就撤销该超时计时器,继续发送下一个分组 M2
- 若 A 在超时计时器规定时间内没有收到 B 的确认,就认为分组错误或丢失,就重发该分组
-
确认丢失和确认迟到:
-
**优点:**简单。**缺点:**信道利用率太低
总结:
- 停止等待。发送方每次只发送一个分组。在收到确认后再发送下一个分组。
- 暂存:在发送完一个分组后,发送方必须暂存已发送的分组的副本,以备重发。
- **编号:**对发送的每个分组和确认都进行编号。
- **超时重传。**发送方为发送的每个分组设置一个超时计时器。若超时计时器超时位收到确认,发送方会自动超时重传分组
- 超时计时器的重传时间应当比数据在分组传输的平均往返时间**更长一些,**防止不必要的重传。
- 简单,但信道利用率太低。
-
提高传输效率:流水线传输
- 在收到确认之前,发送方连续发出多个分组
- 由于信道上一直有数据不间断的传送,流水线传输可获得很高的信道利用率
- 连续 AQS 协议和滑动窗口协议采用流水线传输方式
连续 ARQ 协议:
- 发送窗口:发送方维持一个发送窗口,位于发送窗口内的分组都可被连续发送出去,而不需要等待对方的确认
- 发送滑动窗口:发送方每收到一个确认,就把发送窗口向前滑动一个分组的位置
- 累积确认:接收方对按序到达的最后一个分组发送确认,表示:到这个分组为止的所有分组都已正确收到了
- **优点:**容易实现,即使确认丢失也不必重传
- **缺点:**不能向发送方反映出接收方已经正确收到的所有分组的信息
TCP 报文段的首部格式:
确认号 seq:占4字节,是期望收到对方的下一个报文段的数据的第一个字节的序号。
记住:若确认号 = N,则表明:到序号 N – 1 为止的所有数据都已正确收到。
数据偏移(即首部长度):占 4 位,指出 TCP 报文段的数据起始处距离 TCP 报文段的起始处有多远。单位是 32 位字(以 4 字节为计算单位)。
紧急 URG:控制位。当 URG = 1 时,表明紧急指针字段有效,告诉系统此报文段中有紧急数据,应尽快传送 (相当于高优先级的数据)。
确认 ACK:控制位。只有当 ACK =1 时,确认号字段才有效。当 ACK =0 时,确认号无效。
推送 PSH (PuSH) :控制位。接收 TCP 收到 PSH = 1 的报文段后,就尽快(即“推送”向前)交付接收应用进程,而不再等到整个缓存都填满后再交付。
复位 RST (ReSeT) :控制位。当 RST=1 时,表明 TCP 连接中出现严重差错(如主机崩溃或其他原因),必须释放连接,然后再重新建立运输连接。
同步 SYN (SYNchronization) :控制位。
- 同步 SYN = 1 表示这是一个连接请求或连接接受报文
- 当 SYN = 1,ACK = 0 时,表明这是一个连接请求报文段。
- 当 SYN = 1,ACK = 1 时,表明这是一个连接接受报文段
终止 FIN (FINish) :控制位。用来释放一个连接。FIN=1 表明此报文段的发送端的数据已发送完毕,并要求释放运输连接。
窗口:占 2 字节。窗口值告诉对方:从本报文段首部中的确认号算起,接收方目前允许对方发送的数据量(以字节为单位)。
- 记住:窗口字段明确指出了现在允许对方发送的数据量。窗口值经常在动态变化。
-
**选项:**长度可变,最长可达40字节。
- MSS 是 TCP 报文段中的数据字段的最大长度。
-
强调三点
第一,发送窗口是根据接收窗口设置的,但在同一时刻,发送窗口并不总是和接收窗口一样大(因为有一定的时间滞后)
第二,TCP 标准没有规定对不按序到达的数据应如何处理。通常是先临时存放在接收窗口中,等到字节流中所缺少的字节收到后,在按序交付上层的应用进程
第三,TCP 要求接收方必须有累计确认的功能,以减小传输开销。接收方可以在合适的时候发送确认,也可以在自己有数据要发送时把确认信息顺便捎带上。但接收方不应过分推迟发送确认,否则会导致发送方不必要的重传,捎带确认实际上并不经常发生
-
选择确认 SACK
解决问题:当收到的报文段无差错,只是未按序号,中间还缺少一些序号的数据时,设法只传送缺少的数据而不重传已经正确到达接收方的数据
-
持续计时器:只要 TCP 连接的一方收到对方的零窗口通知,就启动该持续计时器
- 若持续计时器设置的时间到期,就发送一个零窗口探测报文段(仅携带 1 字节的数据),对方在确认这个探测报文段时给出当前窗口值
- 若窗口仍为零,收到这个报文段的一方就重新设置持续计时器
- 若窗口不为零,则死锁的僵局就可以打破了
-
糊涂窗口综合症:每次仅发送一个字节或很少几个字节的数据时,有效数据传输效率变得很低的现象
-
有效数据传输效率 = 数据所占字节 / 总字节长度
-
发送方糊涂窗口综合征
- 发送方 TCP 每次接收到一字节的数据后就发送
- **解决方法:**使用 Nagle算法
-
接收方糊涂窗口综合征
- 原因:接收方应用进程消耗数据太慢,例如:每次只读取一个字节
- 解决方法:让接收方等待一段时间,使得接受缓存已有足够空间容纳一个最长的报文段,或者等到接收缓存已有一半空闲的空间。只要出现这两种情况之一,接收方就发出确认报文,并向发送方通知当前的窗口大小
-
拥塞控制
-
在某段时间,若对网络中某资源的需求超过了该资源所能提供的可用部分,网络的性能就要明显变坏,整个网络的吞吐量将随输入负荷的增大而下降。这种现象称为拥塞
-
拥塞产生的原因
-
引起的因素:
- 节点缓存容量太小
- 链路容量不足
- 处理机处理速率太慢
- 拥塞本身会进一步加剧拥塞
-
出现网络拥塞的条件:
-
Σ对资源需求 > 可用资源
-
增加资源不能解决拥塞,而且还可能使网络的性能更坏
如:
- 增大缓存,但未提高输出链路的容量和处理机的速度,排队等待时间将会大大增加,引起大量超时重传,解决不了网络拥塞
- 提高处理机处理的速率会将瓶颈转移到其他地方
- 拥塞引起的重传并不会缓解网络的拥塞,反而会加剧网络的拥塞
-
-
-
拥塞控制与流量控制的区别
- 拥塞控制
- 防止过多的数据注入到网络中,避免网络中的路由器或链路过载
- 是一个全局性的过程,涉及到所有的主机、路由器,以及与降低网络传输性能有关的所有因素
- 流量控制
- 抑制发送端发送数据的速率,以使接收端来得及接收
- 点对点通信量的控制,是个端到端的问题
- 拥塞控制
-
分组的丢失是网络发生拥塞的征兆,而不是原因
-
开环控制和闭环控制
- 开环控制
- 在设计网络时,事先考虑周全,力求工作时不发生拥塞
- 但一旦整个系统运行起来,就不再中途进行改正了
- 闭环控制
- 基于反馈环路的概念
- 根据网络当前运行状态采取相应控制措施
- 措施
- 监测
- 传送
- 调整
- 开环控制
-
TCP 采用基于滑动窗口的方法进行拥塞控制,属于闭环控制方法
-
真正的发送窗口值 = Min(接收方通知的窗口值,拥塞窗口值)
-
发送方判断拥塞的方法:隐式反馈
-
超时重传计时器超时:网络已经出现了拥塞
-
收到 3 个重复的确认:预示网络可能会出现拥塞
-
主动队列管理 AQM
TCP 连接
释放:
-
必须等待 2MSL 的时间
- 第一:保证发送的最后一个 ACK 报文段能够到达 B
- 第二:防止 ”已失效的连接请求报文段“ 出现在本连接中
-
保活计时器
- 用来防止在 TCP 连接出现长时期空闲
- 通常设置为 2 小时
- 若服务器过了 2 小时还没有收到客户的信息,它就发送探测报文段
- 若发送了 10 个探测报文段(每一个相隔 75 秒)还没有响应,就假定客户出了故障,因而就终止该连接
应用层
- 万维网 – HTTP;电子邮件 – SMTP(发送协议), POP3、IMAP(访问协议);文件传输 – FTP
域名系统 DNS
- 将域名转换为 IP 地址
- 域名采用层次树状结构的命名方法
- DNS 是一个联机分布式数据库系统,采用客户服务器方式。
域名服务器
- 一个服务器所负责管辖的(或有权限的)范围叫做区
- 每一个区设置相应的权限域名服务器,用来保存该区中的所有主机的域名到 IP 地址的映射
- 根域名服务器采用任播技术,当 DNS 客户向某个根域名服务器发出查询报文时**,路由器能找到离这个 DNS 客户最近**的一个根域名服务器。
- 根域名服务器并不直接把域名转换成 IP 地址(根域名服务器也没有存放这种信息),而是告诉本地域名服务器下一步应当找哪一个顶级域名服务器进行查询
- 本地域名服务器
- 非常重要
- 当一个主机发出 DNS 查询请求时,该查询请求报文就发送给本地域名服务器
- 每一个互联网服务提供者 ISP 或者一个大学,都可以拥有一个本地域名服务器
- 当所要查询的主机也属于同一个本地 ISP 时,该本地域名服务器立即就能将所查询的主机名转换为它的 IP 地址,而不需要再去询问其他的域名服务器
- 本地域名服务器有时也称为默认域名服务器
万维网:
统一资源定位符 URL
- URL 的格式
-
一般形式:<协议>://<主机>:<端口>/<路径>
- 协议:ftp – 文件传送协议、http – 超文本传输协议
- 主机:存放资源的主机在互联网中的域名,也可以是 IP 地址
- 端口:HTTP 默认端口号:80
-
超文本传送协议 HTTP
-
定义了浏览器与万维网服务器通信的格式和规则
-
是万维网上能够可靠的交换文件的重要基础
-
HTTP 的主要特点
- HTTP 使用了面向连接的 TCP 作为运输层协议,保证了数据的可靠传输
- HTTP 协议本身也是无连接的
- HTTP 是无状态的,简化了服务器的设计,使服务器更容易支持大量并发的 HTTP 请求
- 请求一个万维网文档所需的时间 >= RTT(三报文握手建立 TCP 连接) + RTT(请求和接受文档) + 文档的传输时间
-
协议 HTTP/1.0 的主要缺点
- 每请求一个文档就要有两倍 RTT 的开销
- 客户和服务器每一次建立新的 TCP 连接都要分配缓存和变量
- 这种非持续连接使服务器的负担很重
-
协议 HTTP/1.1 使用持续链接
-
持续连接:服务器在发送响应后仍然在一段时间内保持这条连接(不释放),使同一个客户(浏览器)和该服务器可以继续在这条连接上传送后续的 HTTP 请求报文和响应报文
-
只要文档都在同一个服务器上,就可以继续使用该 TCP 连接
-
工作方式:非流水线方式或流水线方式
-
-
协议 HTTP/2
- 服务器可以并行发回响应(使用同一个 TCP 连接)
- 允许客户复用 TCP 连接进行多个请求
- 把所有的报文都划分为许多较小的二进制编码的帧,并采用了新的压缩算法,不发送重复的首部字段,大大减小了首部的开销,提高了传输效率
- 向后兼容
-
代理服务器
(1)浏览器访问互联网的服务器时,先于校园网的高速缓存建立 TCP 连接,并向高速缓存发出 HTTP 请求报文
(2)若高速缓存已经存放了所请求的对象,则将此对象放入 HTTP 响应报文中返回给浏览器
(3)若未存放,高速缓存就代表浏览器与互联网上的源点服务器建立 TCP 连接,并发送 HTTP 请求报文
(4)源点服务器将所请求的对象放在 HTTP 响应报文中返回给校园网的高速缓存
(5)高速缓存收到对象后,先复制到本地存储器中(留待以后用),然后将该对象放在 HTTP 响应报文中,通过已建立的 TCP 连接,返回给请求该对象的浏览器
-
动态主机配置协议 DHCP
- 在协议软件中,给协议参数赋值的动作叫做协议配置
- 一个协议软件在使用之前必须是已正确配置的
- 具体配置信息取决于协议栈
- 连接到互联网的计算机的协议软件需要正确配置的参数包括:
- IP 地址
- 子网掩码
- 默认路由器的 IP 地址
- 域名服务器的 IP 地址
- 动态主机配置协议 DHCP提供了即插即用连网的机制,允许一台计算机加入网络和获取 IP 地址,而不用手工配置
- DHCP 给运行服务器软件、且位置固定的计算机指派一个永久地址,给运行客户端软件的计算机分配一个临时地址
DHCP 工作方式
- DHCP 使用客户服务器方式,采用请求/应答方式工作
- DHCP 基于 UDP 工作,DHCP 服务器运行在 67 号端口,DHCP客户运行在 68 号端口
- DHCP 中继代理
- 每一个网络至少有一个 DHCP 中继代理,它配置了 DHCP 服务器的 IP 地址信息**。**