网络传输协议概述——第三讲:TCP/IP协议分层

在上一讲我们介绍说tcp/ip协议分为七层。但是一般而言我们吧应用层,会话层,表达层归为一层。

网络协议通常分不同层次进行开发,每一层分别负责不同的通信功能。一个协议族,比如 T C P / I P ,是一组不同层次上的多个协议的组合。 T C P / I P 通常被认为是一个四层协议系统

每一层负责不同的功能:


1) 链路层,有时也称作数据链路层或网络接口层,

通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡。它们一起处理与电缆(或其他任何传输媒介)的物理接口细节。

2) 网络层,有时也称作互联网层,

处理分组在网络中的活动,例如分组的选路。在T C P / I P 协 议 族 中 , 网 络 层 协 议 包 括 I P 协 议 ( 网 际 协 议 ), I C M P 协议( I n t e r n e t 互联网控制 报 文 协 议 ),以及 I G M P 协议( I n t e r n e t 组 管 理 协 议 )。

3) 运输层主要为两台主机上的应用程序提供端到端的通信。

T C P / I P 协 议 族 中 , 有 两 个互 不 相 同 的 传 输 协 议 : T C P ( 传 输 控 制 协 议 ) 和 U D P ( 用 户 数 据 报 协 议 )。

T C P 为两台主机提供高可靠性的数据通信。它所做的工作包括把应用程序交给它的数据分成合适的小块交给下面的网络层,确认接收到的分组,设置发送最后确认分组的超时时钟等。由于运输层提供了高可靠性的端到端的通信,因此应用层可以忽略所有这些细节。而另一方面, U D P 则 为 应 用 层 提 供 一 种 非 常 简 单 的 服 务 。 它 只 是 把 称 作 数 据 报 的 分 组从一台主机发送到另一台主机,但并不保证该数据报能到达另一端。任何必需的可靠性必须由应用层来提供。这两种运输层协议分别在不同的应用程序中有不同的用途,这一点将在后面看到。

4) 应用层负责处理特定的应用程序细节。几乎各种不同的 T C P / I P 实 现 都 会 提 供 下 面 这 些通用的应用程序: 

• Telnet 远程登录。
• FTP 文件传输协议。
• SMTP 简单邮件传送协议。• SNMP 简单网络管理协议。 


T C P / I P 协议族中,网络层 I P 提 供 的 是 一 种 不 可 靠 的 服 务 。 也 就 是 说 , 它 只 是 尽 可 能 快地把分组从源结点送到目的结点,但是并不提供任何可靠性保证。而另一方面, T C P 在不可靠的 I P 层 上 提 供 了 一 个 可 靠 的 运 输 层 。 为 了 提 供 这 种 可 靠 的 服 务 , T C P 采 用 了 超 时 重 传 、 发送和接收端到端的确认分组等机制。由此可见,运输层和网络层分别负责不同的功能 


TCP/IP的分层   

T C P / I P 协议族中,有很多种协议。图 1 - 4给 出 了 本 书 将 要 讨 论 的 其 他 协 议 。    

I C M P 是I P 协议的附属协议。I P 层 用 它 来 与 其 他 主 机 或 路 由 器 交 换 错 误 报 文 和 其 他 重 要 信 息 。    

I G M P I n t e r n e t组管理协议。它用来把一个 U D P 数据报多播到多个主机。    

互联网的地址 

五类互联网地址  

各类IP地址对应的范围



Internet注册服务(IP地址和DNS域名)过去由NIC来负责,其网络地址是nic.ddn.mil。InterNIC由三部分组成:注册服务(rs.internic.net),目录和数据库服务(ds.internic.net),以及信息服务(is.internic.net)。 

尽管通过 I P 地 址 可 以 识 别 主 机 上 的 网 络 接 口 , 进 而 访 问 主 机 , 但 是 人 们 最 喜 欢 使 用 的 还是主机名。在 T C P / I P 领域中,域名系统( D N S )是一个分布的数据库,由它来提供 I P 地址和主机名之间的映射信息。 

当应用程序用 T C P 传 送 数 据 时 , 数 据 被 送 入 协 议 栈 中 , 然 后 逐 个 通 过 每 一 层 直 到 被 当 作一串比特流送入网络。其中每一层对收到的数据都要增加一些首部信息(有时还要增加尾部信 息 )。TCP 传给 I P 的 数 据 单 元 称 作 T C P 报 文 段 或 简 称 为 T C P 段( T C Ps e g m e n t )。 I P 传给网络接口层的数据单元称作 I P 数据报 ( I P d a t a g r a m ) 。 通 过 以 太 网 传 输 的 比 特流称作帧 (F r a m e ) 。 以太网数据帧的物理特性是其长度必须在 4 6 ~ 1 5 0 0 字节之间。     


U D P 数 据 与 T C P 数 据 基 本 一 致 。唯 一 的 不 同 是 U D P 传给 I P 的 信 息 单 元 称 作 U D P 数 据 报( U D P d a t a g r a m ),而且 U D P 的首部长为 8 字节。 

由于 T C P U D P I C M P I G M P 都要向 I P 传 送 数 据 , 因 此 I P 必须在生成的 I P 首 部 中 加 入 某 种 标 识 , 以 表 明 数 据 属 于 哪 一 层 。 为 此 , I P 在 首 部 中 存 入 一 个 长 度 为8 b i t 的 数 值 , 称 作 协 议 域 。 1 表示为 I C M P 协议, 2 表示为 I G M P 协议, 6 表示为 T C P 协议, 1 7 表示为 U D P 协议。 

类似地,许多应用程序都可以使用 T C P U D P 来 传 送 数 据 。 运 输 层 协 议 在 生 成 报 文 首 部时 要 存 入 一 个 应 用 程 序 的 标 识 符 。 T C P U D P 都用一个 1 6 b i t 的 端 口 号 来 表 示 不 同 的 应 用 程 序 。T C P U D P 把源端口号和目的端口号分别存入报文首部中。 

网络接口分别要发送和接收 I P A R P和 R A R P  某种形式的标识,以指明生成数据的网络层协议。为此,以太网的帧首部也有一个 16 bit的数 据 , 因 此 也 必 须 在 以 太 网 的 帧 首 部 中 加 入类型域。 

分用   

当目的主机收到一个以太网数据帧时,数据就开始从协议栈中由底向上升,同时去掉各层协议加上的报文首部。每层协议盒都要去检查报文首部中的协议标识,以确定接收数据的上 层 协 议 。 这 个 过 程 称 作 分 用 ( D e m u l t i p l e x i n g


为协议 I C M P I G M P 定位一直是一件很棘手的事情。在图 1 - 4中, 把它们与 I P 放在同一层上,那是因为事实上它们是I P的附属协议。但是在这里,我们又把它们放在 I P 层的上面,这是因为ICMP和IGMP报文都被封装在IP数据报中。 

对于 A R P 和R A R P , 我 们 也 遇 到 类 似 的 难 题 。 在 这 里 把 它 们 放 在 以 太 网 设 备 驱 动 程序的上方,这是因为它们和 I P 数据报一样,都有各自的以太网数据帧类型。 

当进一步描述 T C P 的细节时,我们将看到协议确实是通过目的端口号、源 I P 地 址 和 源 端 口号进行解包的。 

客户-服务器模型   

大部分网络应用程序在编写时都假设一端是客户,另一端是服务器,其目的是为了让服务器为客户提供一些特定的服务。

可以将这种服务分为两种类型:重复型或并发型。

重复型服务器通过以下步骤进行交互: 

  1. I1.  等待一个客户请求的到来。

  2. I2.  处理客户请求。

  3. I3.  发送响应给发送请求的客户。

  4. I4.  返回 I 1 步。

     重复型服务器主要的问题发生在 I 2状 态 。 在 这 个 时 候 , 它 不 能 为 其 他 客 户 机 提 供 服 务 。 

并发型服务器采用以下步骤:   

C1. 等待一个客户请求的到来。

C2. 启动一个新的服务器来处理这个客户的请求。在这期间可能生成一个新的进程、任务或线程,并依赖底层操作系统的支持。这个步骤如何进行取决于操 作系统。生成的新服务器对客户的全部请求进行处理。处理结束后,终止这个新服务器。

C3. 返回 C 1 步。

并发服务器的优点在于它是利用生成其他服务器的方法来处理客户的请求。也就是说,每个客户都有它自己对应的服务器。如果操作系统允许多任务,那么就可以同时为多个客户服务。 

一般来说, T C P 服务器是并发的,而 U D P 服 务 器 是 重 复 的 , 但 也 存 在 一 些 例 外 。    

端口号   

T C P U D P 采用 1 6 b i t 的 端 口 号 来 识 别 应 用 程 序 。    

服务器一般都是通过知名端口号来识别的。例如,对于每个 T C P / I P 实现来说, F T P 服务器的 T C P 端 口 号 都 是 2 1 ,每个 T e l n e t 服 务 器 的 T C P 端 口 号 都 是 2 3 ,每个 T F T P ( 简 单 文 件 传 送 协议 ) 服 务 器 的 U D P 端 口 号 都 是 6 9 。任何 T C P / I P 实 现 所 提 供 的 服 务 都 用 知 名 的 1 ~ 1 0 2 3 之 间 的 端口号。这些知名端口号由 I n t e r n e t 号分配机构( I n t e r n e t A s s i g n e d N u m b e r s A u t h o r i t y , I A N A )来管理。 

客户端通常对它所使用的端口号并不关心,只需保证该端口号在本机上是唯一的就可以了。客户端口号又称作临时端口号(即存在时间很短暂)。这是因为它通常只是在用户运行该客户程序时才存在,而服务器则只要主机开着的,其服务就运行。 

大多数 T C P / I P 实 现 给 临 时 端 口 分 配 1 0 2 4 ~ 5 0 0 0 之 间 的 端 口 号 。   






  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
编辑推荐 本书是网络构建原型——4.4BSD的建造者的倾力之作,《TCP/IP解析》中的第1卷,主要TCP/IP协议方面的内容。与其他的TCP/IP书藉的最大不同在于,本书不仅仅述了RFCS的标准协议,而且结合大量实例述了TCP/IP协议包的定义原因及在各种不同的操作系统中(如Sunos4.1.3、Soloris2.2、AIX3.2.2)的应用与工作方式,这样可以以动态方式TCP/IP的知识,使读者可以轻松掌握TCP/IP的知识:路由协议、寻址协议、组控制协议、简单邮件传输协议等。全书内容实用性强,是在校生学习TCP/IP知识的良师益友。 内容简介  《TCP/IP详解,卷1:协议》是一本完整而详细的TCP/IP协议指南。描述了属于每一层的各个协议以及它们如何在不同操作系统中运行。作者用Lawrence Berkeley实验室的tcpdump程序来捕获不同操作系统和TCP/IP实现之间传输的不同分组。对tcpdump输出的研究可以帮助理解不同协议如何工作。 本书适合作为计算机专业学生学习网络的教材和教师参考书。也适用于研究网络的技术人员。 作者简介 W.Richard Stevens(1951-1999)是一位非常受人尊敬的专家,除了《TCP/IP详解》三卷本外,他还有其他两部最为畅销的作品:《UNIX环境高级编程》和《UNIX网络编程》(两卷本)。 目录 译者序 前言 第1章 概述 1 1.1 引言 1 1.2 分层 1 1.3 TCP/IP的分层 4 1.4 互联网的地址 5 1.5 域名系统 6 1.6 封装 6 1.7 分用 8 1.8 客户-服务器模型 8 1.9 端口号 9 1.10 标准化过程 10 1.11 RFC 10 1.12 标准的简单服务 11 1.13 互联网 12 1.14 实现 12 1.15 应用编程接口 12 1.16 测试网络 13 1.17 小结 13 第2章 链路层 15 2.1 引言 15 2.2 以太网和IEEE 802封装 15 2.3 尾部封装 17 2.4 SLIP:串行线路IP 17 2.5 压缩的SLIP 18 2.6 PPP:点对点协议 18 2.7 环回接口 20 2.8 最大传输单元MTU 21 2.9 路径MTU 21 2.10 串行线路吞吐量计算 21 2.11 小结 22 第3章 IP:网际协议 24 3.1 引言 24 3.2 IP首部 24 3.3 IP路由选择 27 3.4 子网寻址 30 3.5 子网掩码 32 3.6 特殊情况的IP地址 33 3.7 一个子网的例子 33 3.8 ifconfig命令 35 3.9 netstat命令 36 3.10 IP的未来 36 3.11 小结 37 第4章 ARP:地址解析协议 38 4.1 引言 38 4.2 一个例子 38 4.3 ARP高速缓存 40 4.4 ARP的分组格式 40 4.5 ARP举例 41 4.5.1 一般的例子 41 4.5.2 对不存在主机的ARP请求 42 4.5.3 ARP高速缓存超时设置 43 4.6 ARP代理 43 4.7 免费ARP 45 4.8 arp命令 45 4.9 小结 46 第5章 RARP:逆地址解析协议 47 5.1 引言 47 5.2 RARP的分组格式 47 5.3 RARP举例 47 5.4 RARP服务器的设计 48 5.4.1 作为用户进程的RARP服务器 49 5.4.2 每个网络有多个RARP服务器 49 5.5 小结 49 第6章 ICMP:Internet控制报文协议 50 6.1 引言 50 6.2 ICMP报文的类型 50 6.3 ICMP地址掩码请求与应答 52 6.4 ICMP时间戳请求与应答 53 6.4.1 举例 54 6.4.2 另一种方法 55 6.5 ICMP端口不可达差错 56 6.6 ICMP报文的4.4BSD处理 59 6.7 小结 60 第7章 Ping程序 61 7.1 引言 61 7.2 Ping程序 61 7.2.1 LAN输出 62 7.2.2 WAN输出 63 7.2.3 线路SLIP链接 64 7.2.4 拨号SLIP链路 65 7.3 IP记录路由选项 65 7.3.1 通常的例子 66 7.3.2 异常的输出 68 7.4 IP时间戳选项 69 7.5 小结 70 第8章 Traceroute程序 71 8.1 引言 71 8.2 Traceroute 程序的操作 71 8.3 局域网输出 72 8.4 广域网输出 75 8.5 IP源站选路选项 76 8.5.1 宽松的源站选路的traceroute程序示例 78 8.5.2 严格的源站选路的traceroute程序示例

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值