《计算机网络原理》第七章 Internet基本原理
- 7.1 Internet概述
- 7.2 网际层协议
- 7.3 Internet路由协议
- 7.4 传输层协议
- 7.5 应用层
- 简答题
-
- 既然每台主机都有物理地址,为何还要采用 IP 地址?
- 常用的 3 类 IP 地址中网络号与主机号不同长度的划分有何优点
- 若将 B 类 IP 地址的网络部分从 16 位增加到 20 位,会有多少个 B 类 网络?
- 在 IP 协议中,校验和部分只用来对分组头部分进行校验.而不对数据部分进行校验,这样设计有何优点?
- 试述 ICMP 协议是如何协助 IP 协议工作的
- 在同一个网络中为何要同时提供 TCP 与 UDP 两种传输层协议?
- 既然 UDP 与 IP 协议一样提供无连接服务,能否让用户直接利用 IP 分组进行数据传递?
- 说明实现从 IPv4 到 IPv6 过渡的两种解决方案各自的特点。
- 在 TCP 协议中采用了什么机制来保证连接建立和连接施放的可靠性?
- TCP 协议中使用基于字节流的控制方式,与传统的基于报文的控制方式相比,有何特点?
- 简述应用层代理的功能以及它和应用层进程间的关系。
- 在客户/服务器模型中,服务器是否能同时为多个用户提供服务?如果能,是如何实现的。
- 浏览器/服务器模型又被称为“瘦客户端模型”,试分析为什么?
- P2P 模型与客户/服务器模型相比有何主要区别?
- 在 DNS 系统中,根域名服务器、本地域名服务器、授权域名服务器各完成什么样的功能?
- 在电子邮件协议中为什么要引入 MIME?
- 简单的说 SMTP 和 FTP 都是完成文件传输的,他们在本质上有何区 别?
- SMTP 协议是如何调用 TCP 协议完成电子邮件的传输的?
- 说明域名解析过程中递归方式和迭代方式相比各有何特点。
- 域名和 IP 地址的关系是什么?为什么要设计域名?
- 为什么发送邮件采用 SMTP 协议而接收邮件则采用 POP3 或其他协 议?
- URL 包含了哪些内容,其主要功能是什么?
- 浏览器的主要功能是什么?
- 在 FTP 协议中,21 和 20 端口各实现什么功能?
7.1 Internet概述
- Internet是世界上规模最大、用户数最多、影响也是最大的计算机互连网络
- Internet的原型是1969年美国国防部高级研究计划管理局为军事实验而建立的ARPANET(阿帕网)
- 1983年,ARPA和美国国防部通信局研制成功了用于异构网络的TCP/IP协议集,美国加利福尼亚伯克莱分校把该协议作为其BSD UNIX的一部分,使得该协议得以广泛流行起来,从而诞生了真正的Internet
- 1986年,美国国家科学基金会(National Science Foundation,NSF)利用ARPANET发展起来的TCP/IP 协议集,在5 个科研教育服务超级计算机中心的基础上建立了NSFnet广域网。
- 1989年,由CERN开发成功了WWW
- 1991年,美国的三家公司分别经营着自己的CERFnet、PSInet及Alternet 网络, 可以在一定程度上向客户提供Internet联网服务。
7.2 网际层协议
7.2.1 IP协议与IP地址
IP协议是TCP/IP协议网络层的主要协议,它提供无连接的数据报传送机制。
IP协议实现上非常简单,它对数据提供“尽力而为服务”,即它不能保证传输的可靠性,对IP协议只负责将分组送到目标节点,至于传输是否正确,不做验证,不发确认,也不保证分组的正确顺序,而将可靠性工作交给运输层处理。
IP协议主要功能
- 无连接数据报传输
- 数据报路由(IP路由)
- 分组的分段和重组
IP地址
- IP地址组成:网络号+主机号
- 地址表示采用用点分隔的十进制表示法,如:166.111.68.3
- IP地址分为5类:A类、B类、C类、D类和E类。其中:D类地址仅用于多播组的特殊定义,E类地址保留备用。
特殊地址
- 国际NIC组织对IP地址还有如下规定
- 主机号全“1”的网络地址用于指定网络的广播地址
- 主机号全“0”的网络地址表示网络本身
- 网络号全“0”的网络地址表示本网络
- 32位IP地址全“1”的网络地址用于本网广播,该地址又被称为有限广播地址
- A类网络地址127是一个保留地址,用于网络软件测试以及本地机进程间通信,称为回送地址
- NIC还为每类地址都保留了一个地址段用作私有地址,专门为组织机构内部使用。
- A类 10.0.0.0–10.255.255.255
- B类 172.16.0.0–172.31.255.255
- C类 192.168.0.0–192.168.255.255
子网
- 分而治之的思想:为了便于管理和使用,可以将网络分成若干供内部使用的部分,称为子网。对外界,该网络还是一个单独的网络。
- 在子网划分后,为了区分不同的子网引入了子网掩码的概念。子网掩码不能单独存在,它必须和IP地址一起使用,并采用和**IP地址相同的格式 **
- 子网划分
- 因特网规模的急剧增长,对IP地址的需求激增,
- 带来的问题是:
- IP地址资源的严重匮乏
- 路由表规模的急速增长
- 解决办法:
- 从主机号部分拿出几位作为子网号
- 这种在原来IP地址结构的基础上增加一级结构的方法称为子网划分。
- 前提:网络规模较小,IP地址空间没有全部利用。
- 例如:三个LAN,主机数为20,25,48,均少于C类地址允许的主机数。为这三个LAN申请3个C类IP地址显然有点浪费。
- 子网划分举例
- C类网络192.10.1.0,主机号部分的前三位用于标识子网号
- 子网号为全“0”全“1”不能使用,划分出23-2=6个子网,子网地址分别为:
- 11000000 00001010 00000001 00100000 – 192.10.1.32
- 11000000 00001010 00000001 01000000 – 192.10.1.64
- 11000000 00001010 00000001 01100000 – 192.10.1.96
- 11000000 00001010 00000001 10000000 – 192.10.1.128
- 11000000 00001010 00000001 10100000 – 192.10.1.160
- 11000000 00001010 00000001 11000000 – 192.10.1.192
- 子网掩码
- 采用子网掩码来分离网络号和主机号
- 子网掩码格式:32比特,网络号(包括子网号)部分全为“1”,主机号部分全为“0”。
- 子网掩码计算
- 子网地址计算
- 子网掩码∧ IP地址,结果就是该 IP地址的网络号
- 主机之间要能够通信,它们必须在同一子网内,否则需要使用**路由器(或网关)**实现互联。
- 子网规划举例
7.2.2 IP分组及其转发
IP头包括20个字节的固定部分和变长(最长40字节)的可选部分,从左到右传输
版本域(VERS):长度为4比特,表示与IP分组对应的IP协议版本号
头部长度:IP分组头长度,最小为5,最大为15,单位为32位
IP分组头
- 服务域类型
- 3个优先级位;3个标志位:D(Delay)、T(Throughput)、 R(Reliability)
- 2个保留位
- 目前,很多路由器都忽略服务类型域。
- 总长度域
- 标识域
- DF
- 所有机器必须能够接收小于等于576字节的段。
- MF
- 除最后一个段外的所有段都要置MF位。
- 段偏移量
- 除最后一个段外的所有段的长度必须是8字节(基本段长)的倍数。
- 生存期
- 实际实现中,IP包每经过一个路由器TTL减1,为0则丢弃,并给源主机发送一个告警包。
- 协议域
- 上层为哪种传输协议,TCP、UDP…
- 头校验和
- 只对IP包头做校验
- 算法:每16位求反,循环相加(进位加在末尾),和再求反
- 有简单算法
- 源地址和目的地址
- 选项
- 变长,长度为4字节的倍数,不够则填充,最长为40字节
IP分组的转发
- Internet中,IP分组的转发特点
- 每个IP 分组包含目的主机的IP地址
- IP地址中的网络地址唯一标识Internet中的一个物理网络
- 所有连接到相同物理网络的主机和路由器共享其地址中的网络地址部分,它们在这个网络上可以直接通信
- Internet中的每个物理网络至少有一个与之相连的路由器,通过定义还可至少和另一个物理网络相连,路由器可在该网上为主机或其它路由器转发分组
- 在路由器中根据目的IP地址,进行路由转发。路由器中的路由表格式如表7-3所示。在路由表,目标网络通常是使用IP地址和子网掩码的形式来描述。
- 路由表
7.2.3 ARP协议
解决网络层地址(IP地址)与数据链路层地址(MAC地址)的映射问题;
- 工作过程
- 建立一个ARP表,表中存放(IP地址,MAC地址)对;
- 若目的主机在同一子网内,用目的IP地址在ARP表中查找,否则用缺省网关的IP地址在ARP表中查找。若未找到,则发送广播包,目的主机收到后给出应答,ARP表增加一项
- 每个主机启动时,广播它的(IP地址,MAC地址)映射
- ARP表中的表项有生存期,超时则删除。
7.2.4 CIDR协议
- CIDR的提出
- Internet指数增长,IP地址即将用完
- 基于分类的IP地址空间的组织浪费了大量的地址
- 路由选择表暴涨
- CIDR基本思想
- 基本思想:将剩余的C类地址分成大小可变的地址空间
- 例如,需要2000个地址,则分配一个2048个地址(8个C类地址)的连续地址块,而不是一个B类地址;
- CIDR概况
- RFC 1519 改变了过去C类地址的分配规则,将世界分成4个区,每个区分配一块连续的C类地址空间
- 欧洲:194.0.0.0 ~ 195.255.255.255
- 北美: 198.0.0.0 ~ 199.255.255.255
- 中、南美: 200.0.0.0 ~ 201.255.255.255
- 亚太: 202.0.0.0 ~ 203.255.255.255
- 最长匹配原则:路由查找时,若多个路由表项匹配成功,选择掩码长(1比特数多)的路由表项
- 路由表中增加一个32位的掩码(mask)域
- CIDR思想可用于所有IP地址,没有A、B、C类之分
- 地址格式: a.b.c.d/x, x表示地址中网络部分的位数
- RFC 1519 改变了过去C类地址的分配规则,将世界分成4个区,每个区分配一块连续的C类地址空间
- 无类域间路由CIDR
- 西校区 需要2048个地址,202.117.0.0 ~ 202.117. 7.255,掩码255.255.248.0
- 东校区需要4096个地址, 202.117. 16.0 ~ 202.117. 31.255,掩码255.255.240.0
- 路由表内容
- CIDR地址分配原则
- 为了保证CIDR正确工作,这组C类地址的分配必须满足如下条件:
- 这组C类地址必须是连续的
- 这组C类地址的数量必须是2的指数,设为2^n个
- 这组C类地址的起始C类地址必须保证能被2^n整除。
- 为了保证CIDR正确工作,这组C类地址的分配必须满足如下条件:
7.2.5 ICMP协议
- 网际控制报文协议ICMP
- ICMP消息被封装在IP数据报里,用来发送差错报告和控制信息。
- 在IP路由的过程中,若主机或路由器发生任何异常,便可利用ICMP来传送相关的信息,而至于如何解决则不是它的管辖范围。
- ICMP定义了如下消息类型
- 目的端无法到达(Destination unreachable)
- 数据报超时(Time exceeded)
- 数据报参数错(Parameter problem)
- 重定向(Redirect)回声请求(Echo)
- 回声应答(Echo reply)
- 信息请求/应答(Information request/ reply )
- 地址请求/应答(Address request/ reply)
- ICMP消息被封装在IP数据报里,用来发送差错报告和控制信息。
- ICMP分组格式
- ICMP的封装
- ICMP分组格式
- ICMP的封装
- IP组管理协议IGMP
- IP组播地址
- IP采用D类地址来支持多播。每个D类地址代表一组主机。
- D类IP地址范围在224.0.0.0到239.255.255.255之间。
- 多播是由特殊的多播路由器来实现,各个多播路由器每分钟发送一个硬件多播信息给子网上的主机(目的地址为224.0.0.1),要求它们报告其当前所属的是哪一组。
- IP组播地址
- IGMP多播组加入
- 多播组的加入
- 多播路由器使用IGMP报文来记录与该路由器相连网络中组成员的变化情况。
- 多播路由器对每个接口保持一个表,表中记录接口上至少还包含一个主机的多播组。
- IGMP报文示例
- 多播组的加入
7.2.6 NAT协议
7.2.7 DHCP协议
7.2.8 服务质量
7.2.9 IPv6协议
7.3 Internet路由协议
7.3.1 Internet路由基本概念
为了便于管理,Internet将整个互连网络划分为相对较小的自治系统(AS,autonomous system)。
7.3.2 路由信息协议
内部网关协议IGP(interior gateway protocol)
- 自治系统AS内使用的路由算法,RIP、OSPF
- 路由信息协议 RIP
- RIP协议本质上是第六章介绍的距离向量路由选择算法的直接而简单的实现。
- RIP协议要求网络中的每个路由器都维护从自己到所有目的节点的距离。RIP使用跳数度量(hop count metric)来衡量到达目的站的距离。
- RIP设置最大“跳数”为16,RIP只适合于小型互联网。
- 作为距离向量路由选择算法,RIP协议中的每个节点定期和相邻路由器交换完整的距离表。
- RIP协议把参加通信的机器分为主动的(active)和被动的(passive或silent)。主动路由器向其他路由器通告其路由,而被动路由器接收通告并在此基础上更新其路由,它们自己并不通告路由。只有路由器能以主动方式使用RIP,而主机只能使用被动方式。
- RIP 协议报文格式
- 路由信息协议 RIP
外部网关协议EGP (exterior gateway protocol)
- 自治系统AS之间使用的路由算法,BGP
7.3.3 开放式最短路径优先协议
- 内部网关路由协议:OSPF
- 开放,公开发表
- 支持多种距离衡量尺度,例如,物理距离、延迟等
- 动态算法
- 支持基于服务类型的路由
- 负载平衡;支持分层系统
- 适量的安全措施
- 支持隧道技术
- OSPF 路由协议的网络类型
- OSPF路由协议的路由层次
- OSPF 数据包
- 作为一种链路状态的路由协议,OSPF将链路状态广播数据包LSA(Link State Advertisement)传送给在某一区域内的所有路由器。 OSPF将链路状态广播数据包LSA共分成5类,分别为:
- 在类型1的链路数据包中,OSPF路由器通过对数据包中某些特定数据位的设定,告诉其余路由器自身是一个区域边界路由器或是一个AS边界路由器。
- 类型2:又被称为网络链路信息数据包(Network Link)。
- 类型3和类型4:类型3和类型4的链路状态广播在OSPF路由协议中又称为总结链路信息数据包(Summary Link),该链路状态广播是由区域边界路由器或AS边界路由器产生的。
- 类型5:类型5的链路状态广播称为AS外部链路状态信息数据包。
- 作为一种链路状态的路由协议,OSPF将链路状态广播数据包LSA(Link State Advertisement)传送给在某一区域内的所有路由器。 OSPF将链路状态广播数据包LSA共分成5类,分别为:
- OSPF 的协议操作
- OSPF协议由Hello协议、交换协议、扩散协议组成。这里仅介绍Hello协议,其他两个协议可参考RFC2328中的具体描述。
- OSPF协议的具体工作过程如下
- 建立路由器的邻接关系
- 发现路由器
- 选择适当的路由器
- 维护路由信息
7.3.4 边界网关协议
- 边界网关协议 BGP
- 建立了BGP会话连接的路由器被称作对等体(peers or neighbors),对等体的连接有两种模式:IBGP(Internal BGP)和EBGP(External BGP)
- 通过TCP连接传送路由信息
- 采用路径向量(path vector)算法,路由信息中记录路径的轨迹
- 与距离矢量法非常类似
- 每个边界网关向邻居路由器广播到目的节点完整路径
- 例如:, 网关 X 可能发送到目的节点Z的路径如下:
- Path (X,Z) = X,Y1,Y2,Y3,…,Z
- 假设: 网关X将它的路径送到网关
- WW可能接受或者不接受X所提供的路径
- 如果W接受 X发来的路径,则:
- Path (W,Z) = w, Path (X,Z)
- 注意: X 可以通过控制是否广播某条路径来控制该路径的流量:
- BGP的消息类型
- BGP具有OPEN,UPDATE,KEEPALIVE以及NOTIFICATION四种消息类型
7.4 传输层协议
- 引入传输层的原因
- 消除网络层的不可靠性
- 提供从源端主机到目的端主机的可靠的、与实际使用 的网络无关的信息传输
- 传输服务
- 传输实体:完成传输层功能的硬软件
- 传输层实体利用网络层提供的服务向高层提供有效、 可靠的服务,用服务质量QoS来衡量
- 传输层提供两种服务
- 面向连接的传输服务:连接建立,数据传输,连接释放
- 无连接的传输服务。
- 传输层提供两种服务
- **Internet传输协议 **
- 传输控制协议TCP(Transmission Control Protocol)
- 面向连接的、可靠的、端到端的、基于字节流的传输协议
- RFC 793,1122,1323,2018,2581等。
- 用户数据协议UDP(User Data Protocol)
- 无连接的端到端传输协议
- RFC 768
- 端口号
- 传输控制协议TCP(Transmission Control Protocol)
7.4.1 用户数据报协议(UDP)
- 为什么设计UDP?
- 不需要建立连接(减少延时)
- 简单:发送者和接收者都不需要连接的状态
- 短报头
- 无拥塞控制: UDP可按需发送
- RFC 768
- 无连接:
- UDP收发者间不需要握手
- 每个UDP报文独立处理
- 经常用于流多媒体数据传输
- 低负载
- 速率敏感
- UDP 报头的封装
- UDP报头格式
- UDP源端口号:指示发送方的UDP端口号。当不需要返回数据时,可将这个域的值置为0。
- UDP目的端口号:指示接收方的UDP端口号。UDP将根据这个域内容将报文送给指定的应用进程。
- UDP报文长度:指示数据报总长度,包括报头及数据区总长度。最小值为8,即UDP报头部分的长度。
- UDP校验和:为0表示未选校验和,而全l(负0的反码)表示校验和为0
- UDP伪报头
- 伪报头位于UDP报头之前,用于验证UDP数据报是否被送到正确的目的节点。
- UDP中的多路分解
7.4.2 传输控制协议(TCP)
- TCP 协议
- 用于在各种网络上提供有序可靠的面向连接的数据传输服务。
- 为了使TCP具有独立于特定网络,TCP对报文长度有一个限定,即TCP传送的数据报长度一定小于64K字节。
- TCP协议是面向字节流的。
- 使用TCP连接进行数据传输
- TCP报头格式
- 源端口和目的端口:各16位;
- 序号和确认号:以字节为单位编号,各32位;
- TCP头的长度:4位,长度单位为32位字,包含可选项域;
- 6位的保留域;
- 6位的标识位:置1表示有效
- URG:和紧急指针配合使用,发送紧急数据;
- ACK:确认号是否有效;
- PSH:指示发送方和接收方将数据不做缓存,立刻发送或接收;
- RST:由于不可恢复的错误重置连接;
- SYN:用于连接建立指示;
- FIN:用于连接释放指示
- 窗口大小:用于基于可变滑动窗口的流控,指示发送方从确认号开始可以再发送窗口大小的字节流;
- 校验和:为增加可靠性,对TCP头,数据和伪头计算校验和;
- 可选项域。
- TCP连接管理
- 三次握手建立连接
- 服务器方执行LISTEN和ACCEPT原语,被动监听;
- 客户方执行connect原语,产生一个SYN为1和ACK为0的TCP段,表示连接请求;
- 服务器方的传输实体接收到这个TCP段后,首先检查是否有服务进程在所请求的端口上监听,若没有,回答RST置位的TCP段;
- 若有服务进程在所请求的端口上监听,该服务进程可以决定是否接受该请求。在接受后,发出一个SYN置1和ACK置1的TCP段表示连接确认,并请求与对方的连接;
- 发起方收到确认后,发出一个SYN置0和ACK置1的TCP段表示给对方的连接确认;
- 若两个主机同时试图建立彼此间的连接,则只能建立一条连接。
- 单向的连接释放
- 释放连接时,发出FIN位置1的TCP段并启动定时器,在收到确认后关闭连接。若无确认并且超时,也关闭连接。
- 三次握手建立连接
- TCP传输策略
- TCP的窗口管理机制
- 基于确认和可变窗口大小;
- 窗口大小为0时,正常情况下,发送方不能再发TCP段,但有两个例外
- 紧急数据可以发送;
- 为防止死锁,发送方可以发送1字节的TCP段,以便让接收方重新声明确认号和窗口大小。
- 如何改进传输层的性能?
- 策略1:
- 发送方缓存应用程序的数据,等到形成一个比较大的段再发出;
- 策略2:
- 在没有可能进行“捎带”的情况下,接收方延迟发送确认段;
- 策略3:
- 使用Nagle算法,当应用程序每次向传输实体发出一个字节时,传输实体发出第一个字节并缓存所有其后的字节直至收到对第一个字节的确认;
- 然后将已缓存的所有字节组段发出并对再收到的字节缓存,直至收到下一个确认;
- 策略4:
- 使用Clark算法解决傻窗口症状(silly window syndrome)
- 傻窗口症状:
- 当应用程序一次从传输层实体读出一个字节时,传输层实体会产生一个一字节的窗口更新段,使得发送方只能发送一个字节;
- 解决办法:
- 限制收方只有在具备一半的空缓存或最大段长的空缓存时,才产生一个窗口更新段。
- 策略1:
- TCP的窗口管理机制
- TCP中的流量控制
- TCP拥塞控制
- 出现拥塞的两种情况:
- 快网络小缓存接收者
- 慢网络大缓存接收者
- 导致网络拥塞的两个潜在因素是:网络能力和接收能力。
- TCP处理第一种拥塞(快网络小缓存接收者)的措施:
- 在连接建立时声明最大可接受段长度;
- 利用可变滑动窗口协议防止出现拥塞;
- TCP处理第二种拥塞(慢网络大缓存接收者)的措施
- 发送方维护两个窗口:可变发送窗口和拥塞窗口,按两个窗口的最小值发送;
- 拥塞窗口依照慢启动(slow start)算法和拥塞避免(congestion avoidance)算法变化。
- 慢启动(slow start)算法
- 连接建立时拥塞窗口(congwin)初始值为该连接允许的最大段长,阈值(threshold)为64K;
- 发出一个最大段长的TCP段,若正确确认,拥塞窗口变为两个最大段长;
- 发出(** 拥塞窗口/最大段长**)个最大长度的TCP段,若都得到确认,则拥塞窗口加倍;
- 重复上一步,直至发生丢包超时事件,或拥塞窗口大于阈值。
- 拥塞避免(congestion avoidance)算法
- 若拥塞窗口大于阈值,从此时开始,拥塞窗口线形增长,一个RTT周期增加一个最大段长,直至发生丢包超时事件;
- 当超时事件发生后,阈值设置为当前拥塞窗口大小的一半,拥塞窗口重新设置为一个最大段长;
- 执行慢启动算法。
- 快速重传和拥塞恢复
- 出现拥塞的两种情况:
7.5 应用层
7.5.1 应用层概述
应用程序: 具有通信功能的分布式进程
- 用户访问网络的接口
- 例如: email, file transfer, the Web
应用层协议:
- 应用程序的一部分
- 定义信息格式
- 定义通信规则
- 访问下层提供的服务
应用层及其采用的下层协议:
7.5.2 网络应用模式
客户/服务器模型
- 客户/服务器模型是所有网络应用的基础。客户/服务器分别指参与一次通信的两个应用实体,客户方主动地发起通信请求,服务器方被动地等待通信的建立。
客户与服务器软件
- 客户软件
- 任何一个应用程序当需要进行远程访问时成为客户,这个应用程序也要完成一些本地的计算;
- 一般运行于用户的个人计算机上;
- 向服务器主动发起通信请求;
- 可以访问多个服务器,但一次只能访问一个;
- 不需要特殊的硬件和复杂的操作系统
- 服务器软件
- 是专用的提供某种服务的特权程序,可以同时处理多个远程客户;
- 一般在系统启动时被执行,并连续运行以处理多次会话;
- 被动的等待远程客户发起通信;
- 需要特殊的硬件和复杂的操作系统。
重复型和并发型服务程序
- 重复型服务程序
- 并发型服务程序
浏览器/服务器模型
- 浏览器/服务器模型中,客户主机上的用户访问接口是通过WWW浏览器实现的;
- 其中,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现,形成所谓的三层(3-tier)结构。
7.5.3 域名服务
产生原因
- 32比特的IP地址难于记忆,应该使用符号地址,比如用www.xjtu.edu.cn表示交大web服务器的IP地址。但是,网络本身是使用IP地址的,因此需要一个完成二者之间相互转换的机制。
- 当网络规模比较小时,例如ARPANET,每台主机只需查找一个文件(UNIX的host),该文件中列出了主机与IP地址的对应关系。
- 当网络规模很大时,上述方法就不适用了,因此产生了域名系统DNS(Domain Name System)。
- 域名系统是一个典型的客户/服务器交互系统;域名系统是一个多层次的、基于域的命名系统,并使用分布式数据库实现这种命名机制。
域名的结构
- INTERNET的顶级域名分为组织结构和地理结构两种。每个域对它下面的子域和机器进行管理。
- DNS中,每台计算机的名字是由“.”所分开的字符数字串所组成的。例如www.xjtu.edu.cn.
- 域名是大小写无关的,“edu”和“EDU”相同。域名最长255个字符,每部分最长63个字符。
域名服务器
- 区域划分
- DNS将域名空间划分为许多无重叠的区域(zone) ,每个区域覆盖了域名空间的一部分并设有域名服务器对这个区域的域名进行管理。
- 每个区域有一个主域名服务器和若干个备份域名服务器,区域的边界划分是人工设置的
- 比如:edu.cn xjtu.edu.cn cs.xjtu.edu.cn是三个不同的区域,分别有各自的域名服务器。
- DNS: 根域名服务器
- 当本地域名服务器不能解析时,就向根域名服务器查询
- 根域名服务器:
- 如果域名映射未知,则向授权域名服务器查询
- 取得映射
- 将映射返回本地域名服务器
- DNS解析过程举例
- DNS: 迭代查询
- 递归查询
- 对根域名服务器造成工作负担
- 迭代查询
- 被查询的服务器直接把可查询的服务器地址返回
- “不懂这个域名, 但可以从这个服务器查到”
- 递归查询
- DNS: 缓存和更新纪录
- 一旦 (任何) 域名服务器得知了某个映射, 就将其 缓存
- 在一定的时间间隔后缓存的条目将会过期(自动消除)
- 更新/通知 机制由 IETF负责设计
- RFC 2136http://www.ietf.org/html.charters/dnsind-charter.html
- 一旦 (任何) 域名服务器得知了某个映射, 就将其 缓存
- DNS 资源记录
- DNS 协议, 报文
7.5.4 电子邮件传输协议
相关协议标准
- 1982年ARPANET提出了RFC821(传输协议)RFC822(消息格式)作为电子邮件协议;
- 1984年CCITT提出了X.400建议,但是没有得到普及。
体系结构
- 用户代理UA
- 又称为邮件阅读器。编辑、发送、阅读和管理电子邮件。
- 传输代理MTA
- 又称为邮件服务器。起“邮局” 作用,接收用户邮件,根据地址传输,传送到接收方的邮件服务器,并将邮件存放在用户邮箱内。
电子邮件传输模型
- 发送者将邮件发送到接收者的邮箱,经历了以下三个步骤:
- 发送者用户代理通过SMTP协议将邮件发送到自己的本地邮件服务器
- 在时机成熟后(例如发送缓存队列到达一定的长度,或者等待了一定的时间),发送者的邮件服务器通过SMTP协议将邮件发送到接收者的邮件服务器
- 接收者用户代理通过邮件访问协议(例如POP3,IMAP4等)访问自己邮件服务器上的邮箱
电子邮件的格式
- 电子邮件的组成
- 信封
- 接收方的信息,如名字、地址、邮件的优先级和安全级别;
- 信件内容
- 由首部和内容组成,信头包含了用户代理所需的控制信息,信体是真正的内容。
- 信封
- 用户代理
- 发送电子邮件
- email地址,例如,[email protected]
- mailing list,例如,[email protected]
- X.400地址,例如,/C=US/SP=MASSACHUSETTS/ L=CAMBRIDGE/PA=360 MEMORIAL DR./CN=KEN SMITH/
- 阅读电子邮件
- 用户代理在启动时检查用户的mailbox,通知用户是否有新邮件到来。并摘要性的显示邮件的主题、发送者及其邮件的状态。
- 发送电子邮件
- 信件格式
- RFC822
- 信件包括信封、若干信头域、一个空行和信体。
- 电子邮件的扩展
- MIME(Multipurpose Internet Mail Extensions),增加了对图像、声音、视频、可执行文件等的支持。使用不同的编码方法将信息转化为ASCII字符流
- RFC822
邮件报头中各个关键词的含义
邮件格式: 多媒体扩展
- MIME: multimedia mail extension, RFC 2045, 2056
- 在报文首部附加额外的信息声明 MIME 内容类型
MIME 类型声明
MIME多分部类型
SMTP协议
- 消息传送协议
- INTERNET使用简单邮件传输协议SMTP完成电子邮件的交换。
- 过程如下
- 消息传输代理在源端主机和目的主机的25号端口之间建立一条TCP连接,使用简单邮件传输协议SMTP协议进行通信
- 在TCP连接建立好之后,作为客户的邮件发送方等待作为服务器的邮件接收方首先传输信息
- 服务器首先发出准备接受的SMTP消息,客户向服务器发出HELO消息,服务器回答以HELO消息,双方进入邮件传输状态;
SMTP协议传送过程
- 邮件传输过程:客户首先发出邮件的发信人地址(MAIL FROM),然后发出收信人的地址(RCPT TO),服务器确认收信人存在后,发出可以继续发送的指示,客户发送真正的消息(DATA),以‘.’作为结束
- 当客户方邮件发送完之后,服务器开始发送邮件至客户,过程同上
- 两个方向的发送完成之后,释放TCP连接(QUIT)。
不同邮件传输协议
- **SMTP: **发送/存储 到接收方的服务器
- 邮件访问协议: 从服务器中取信
- **POP: **Post Office Protocol [RFC 1939]
- 认证 (agent <–>server) 和下载
- 用户代理和邮箱不在同一机器上,用户代理使用此协议将邮箱中的信件取回本地
- **IMAP: **Internet Mail Access Protocol [RFC 1730]
- 更多功能(更为复杂)
- 收信人使用多个用户代理访问同一邮箱,邮件始终保持在邮箱中。
- 在服务器中操作存储在那里的报文
- HTTP: Hotmail , Yahoo! Mail, 263.net,etc.
- 加密电子邮件协议:PGP与PEM协议。
- **POP: **Post Office Protocol [RFC 1939]
- POP3 协议
- 认证阶段
- 客户端命令
- user: 用户名
- pass: 口令
- 服务器响应
- +OK
- -ERR
- 客户端命令
- 交互阶段
- list: 列出报文号码
- retr: 用报文号码取信
- dele:用报文号码删信
- quit
- 认证阶段
7.5.5 万维网
WWW(World Wide Web)是用于访问遍布于Internet上的相互链接在一起的超文本的一种结构框架。
历史
- 1989年,设计WWW的思想产生于欧洲核研究中心CERN;
- 1991年,第一个原型在美国的Hypertext ’91会议上展示;
- 1993年,第一个图形化浏览器,Mosaic;
- 1994年,Andreessen创建NETSCAPE公司,开发WEB的客户和服务器软件;
- 同年,CERN和MIT共同创建WWW论坛,制定相关的协议标准,http://www.w3.org。
WWW概况
- 术语
- 网页Web page:
- 由 “对象”组成
- 通过统一资源定位器URL(Uniform Resource Locator)访问
- 多数网页由以下部分组成:
- 基本的 HTML页面
- 一些参考对象
- Web的用户代理即浏览器 browser:
- MS Internet Explorer
- Netscape Navigator
- Web server提供Web服务
- 网页Web page:
Web服务组成
- WWW服务包含Web服务器端、客户端和通讯协议三个部分。
- **Web服务器 **
- Web服务器结构中规定了服务器的传输设定、信息传输格式及服务器本身的基本开放结构。
- 客户端的用户代理(Web浏览器)
- WWW服务客户端的用户代理被称为Web浏览器,例如Microsoft Internet Explorer 、Netscape Navigator,其功能是向Web服务器发送资源查询请求,并将接收到的、从Web服务器下载的HTML格式的Web对象进行解释和显示。
- 通讯协议(HTTP协议)
- Web浏览器与Web服务器之间使用HTTP协议进行通讯传输。HTTP(HyperText Transfer Protocol,超文本传输协议)是分布式的Web应用的核心技术协议,它定义了Web浏览器向Web服务器发送的请求Web对象的格式,以及Web对象在Internet上的传输方式。
- **Web服务器 **
Web的客户/服务器模型
- 在每个WEB服务器上有一个服务进程在TCP的80端口上监听由浏览器发来的建立连接请求;在连接建立之后,浏览器和服务器之间使用超文本传输协议HTTP协议进行信息传输;
- 超级链接是使用URL(统一资源定位符)来找到目标网页的。URL由三部分组成协议://域名[:端口][/文档路径]:
- 协议类型(HTTP、FTP、TELNET等)
- 网页所在机器的地址(域名或IP地址)
- 包含网页的文件名称。
- 浏览器确定URL,通过DNS解析IP地址,建立TCP连接,向服务器发出HTTP的GET请求取回网页,释放连接,并显示网页中所有的文本。然后,浏览器逐一取回网页中的图象。
超文本传输协议HTTP
- HTTP协议由一套从浏览器发往服务器的请求和一套从服务器发往浏览器的响应组成。
- 请求分为两类
- 简单请求:GET网页文件名,服务器回答以网页内容
- 完全请求:GET网页文件名、协议版本号,服务器回答以使用MIME格式编码的网页内容。
- http1.0: RFC 1945
- http1.1: RFC 2068
- 持久连接和非持久连接
- http 举例
- http 报文格式: request(请求)
- http 报文格式: response(响应)
- http 报文
- http请求报文格式
- http响应报文格式
- http请求报文格式
- http 常用方法
- http 响应状态码和短语
- 位于(服务器->客户端)响应报文的第一行。样例:
- 位于(服务器->客户端)响应报文的第一行。样例:
用户-服务器的交互: 认证
- 认证 : 控制对服务器内容的访问
- 信用认证: 一般通过用户名, 口令进行
- 无状态: 客户端必须在每次请求前进行认证
- authorization: 就是要求在每个请求报文中提交认证的首部行
- 如果客户端没有提交 authorization: 首部行, 服务器将拒绝访问, 只是在响应报文首部中发送
Cookies: 保存 “状态
- 服务器产生一个 # , 服务器认识这个 #, 以备不时之需:
- 认证
- 记忆用户的前序访问, 先前的选择
- 服务器在响应报文中发送 “cookie” 给客户端
- Set-cookie: 1678453
- 客户端可以在后继的请求中发送“cookie”
- cookie: 1678453
Conditional GET: 客户端缓存机制
- 目的: 如果客户端缓存了最新的请求对象,则服务器不必重复发送
- 客户端: 在http请求报文中声明所缓存拷贝的生成日期
- If-modified-since:
- 服务器: 如果客户端缓存的拷贝是最新的,则在响应报文中不发请求的对象:
- HTTP/1.0 304 Not Modified
HTML HyperText Markup Language
- 为了在世界范围内发布信息,需要一种能够被普遍理解的语言,这就是万维网使用的超文本标记语言(Hypertext Markup Language,HTML)。
- 使用HTML的可以创建:
- 发布包括标题、正文、表格甚至照片的联机文档;
- 可以通过超链标记将所建的文档与其他联机文档建立访问关联;
- 设计浏览器表单进行远程交互服务,如查找信息、进行预订、购置产品等;
- 可以将电子表格、视频剪辑,声音节目和其他多媒体信息包括在HTML文档中。
HTML 示例
动态网页
- 产生背景
- 商业广告方面的要求,使得网页产生动态效果,来吸引人们的注意力
- 要求完成信息收集和交互的功能,使得网页可以成为网络信息管理系统的工具(成为网络商务平台的技术基础)
- Internet 中的网页分类
- 静态网页
- 动态网页
- 活动网页
- 目前,比较流行的服务器端动态网页程序设计语言有JSP、ASP、PHP等
7.5.6 远程文件传输(ftp)
- 远程文件传送协议FTP(File Transfer Protocol),是一个用于完成Internet上从一台主机到另一台主机文件传输的协议。
- 客户/服务器模式
- 客 户:本地主机
- 服务器:远程主机
- ftp: RFC 959
- ftp: 端口21
FTP中的控制连接和数据连接
ftp的控制和数据端口
ftp常用命令
7.5.7 简单网络管理协议
简答题
既然每台主机都有物理地址,为何还要采用 IP 地址?
- 不同的物理网络技术有不同的编址方式,不同物理网络中的主机有不同的物理地址。
- 因此,为了做到不同物理结构网络的互连和互通,要解决的首要问题就是统一编址.
- 即在互连网上采用全局统一的地址格式,为每一个子网、每一个主机分配一个全网唯一的地址。
- IP 地址就是 IP 协议为此而制定的
常用的 3 类 IP 地址中网络号与主机号不同长度的划分有何优点
- 适应不同网络规模。
若将 B 类 IP 地址的网络部分从 16 位增加到 20 位,会有多少个 B 类 网络?
- 2^20 个。
在 IP 协议中,校验和部分只用来对分组头部分进行校验.而不对数据部分进行校验,这样设计有何优点?
- 路由器实现简单,转发效率高
试述 ICMP 协议是如何协助 IP 协议工作的
- ICMP 对通信子网中的状态和差错进行报告。
在同一个网络中为何要同时提供 TCP 与 UDP 两种传输层协议?
- TCP 和 UDP 共存于一个互连网中,前者提供高可靠性服务,后者提供高效率服务。适应不同用户。
既然 UDP 与 IP 协议一样提供无连接服务,能否让用户直接利用 IP 分组进行数据传递?
- 不行,UDP 需要提供进程级的传输。
说明实现从 IPv4 到 IPv6 过渡的两种解决方案各自的特点。
- 双协议栈
- 隧道。
在 TCP 协议中采用了什么机制来保证连接建立和连接施放的可靠性?
- 采用三次握手协议建立连接,采用对称的连接释放方式。
TCP 协议中使用基于字节流的控制方式,与传统的基于报文的控制方式相比,有何特点?
- 不保留上层数据的边界。
简述应用层代理的功能以及它和应用层进程间的关系。
- 一般情况下,用户并不直接使用应用层协议,而是通过应用层代理程序间接的调用应用层协议完成特定的功能。
在客户/服务器模型中,服务器是否能同时为多个用户提供服务?如果能,是如何实现的。
- 可以,采用重复型服务及并发型服务。
浏览器/服务器模型又被称为“瘦客户端模型”,试分析为什么?
- 客户端只需要安装浏览器即可。
P2P 模型与客户/服务器模型相比有何主要区别?
- 参与通信的两个主机地位均等,负荷均担。
在 DNS 系统中,根域名服务器、本地域名服务器、授权域名服务器各完成什么样的功能?
- 根域名服务器:负责维护顶级域名的所有域名信息。
- 根域名服务器通常情况并不存贮关于域名的任何信息,只负责将顶级域名授权委派给其他的授权服务器,并记录对这些服务器的引用。
- 本地域名服务器:为本地用户提供域名查询服务。
- 授权域名服务器: 负责维护一个授权区域的所有域名信息,是特定的所有信息的权威信息源,数据可以修改。
在电子邮件协议中为什么要引入 MIME?
- SMTP协议为了保证简单性,规定只能发送7位ASCII格式的报文。
- 为此,多用途因特网邮件扩展协议MIME(Multipurpose Internet Mail Extensions)作为一种补充协议提出,用于解决视频、音频等二进制文件的传输问题。
简单的说 SMTP 和 FTP 都是完成文件传输的,他们在本质上有何区 别?
- SMTP 传文件时包括文件的内容,不包含格式信息。
- FTP 协议传文件的内容以及格式。
- 他们对 TCP 连接的使用也有所区别。
SMTP 协议是如何调用 TCP 协议完成电子邮件的传输的?
- SMTP 协议也采用客户/服务器模型实现
- 假设邮件服务器 1 为客户端,邮件服务器 2 为服务器端,TCP 为 SMTP 分配的默认端口号为 25。
- 具体步骤如下:
- 邮件服务器 1 通过三次握手协议与邮件服务器 2 的 25 号端口之间建立一条 TCP 连接;
- 在 TCP 连接建立好之后,作为客户端的邮件服务器 1 等待作为服务器的邮件服务器 2 首先传输信息;
- 服务器首先发出准备接受的 SMTP 消息,客户向服务器发出 HELLO 消息,服务器回答以 HELLO 消息,双方进入邮件传输状态
- 邮件传输过程:客户首先发出邮件的发信人地址(MAIL FROM),然后发出收信人的地址(RCPT TO),服务器确认收信人存在后,发出可以继续发送的指示,客户发送真正的消息(DATA),以‘.’作为结束;
- 当邮件服务器 1 发送完之后,邮件服务器 2 开始发送邮件至邮件服务器1,过程同上;
- 两个方向的发送完成之后,释放 TCP 连接(QUIT)。
说明域名解析过程中递归方式和迭代方式相比各有何特点。
- 从向根域名服务发送请求到最终在管理.xjtu.edu.cn 的 DNS 服务器中找到所需的 IP 地址这个过程中,需要经历多次查询过程
- 这个过程可以直接由根域名服务器来完成(这种方式称为递归方式)
- 也可以在根域名服务器查询到顶级域名服务器后,随后的查询由本地 DNS 服务器来完成(这种方式称为迭代方式)。
域名和 IP 地址的关系是什么?为什么要设计域名?
- 域名简单的说是 IP 地址的一种方便记忆的格式。
为什么发送邮件采用 SMTP 协议而接收邮件则采用 POP3 或其他协 议?
- SMTP 主要有两个缺点
- 无认证
- 无法远程操控邮箱。
URL 包含了哪些内容,其主要功能是什么?
- 一个 URL 使用如下形式:**protocol://machineaddress:port/path/filename **
- 其中
- protocol:所使用的访问协议,一般为 HTTP
- machine address:数据所在的机器的域名或 IP 地址
- port:Web 服务程序的端口号,如果这部分缺省,表示使用 Web 服务的标准端口:80
- path:数据在 Web 服务器上的路径
- filename:数据在 Web 服务器上的文件名
浏览器的主要功能是什么?
- 功能是
- 向 Web 服务器发送资源查询请求
- 并将接收到的、从 Web 服务器下载的 HTML 格式的 Web 对象进行解释和显示。
在 FTP 协议中,21 和 20 端口各实现什么功能?
- 21 端口负责建立连接
- 20 端口负责数据传输。
❤️这里是 三千步, 让我们一起学习进步~❤️