IOS中TCP/IP协议的概述
(1)物理地址的长度,格式等是物理网络技术的一部分,物理网络不同,物理地址也不同.
(2)同一类型不同网络上的站点可能拥有相同的物理地址.
以上两点决定了,不能用物理网络进行网间网通讯.
在网络术语中,协议中,协议是为了在两台计算机之间交换数据而预先规定的标准。TCP/IP并不是一个而是许多协议,这就是为什么你经常听到它代表一个协议集的原因,而TCP和IP只是其中两个基本协议而已。
你装在计算机-的TCP/IP软件提供了一个包括TCP、IP以及TCP/IP协议集中其它协议的工具平台。特别是它包括一些高层次的应用程序和FTP(文件传输协议),它允许用户在命令行上进行网络文件传输。
TCP/IP是美国政府资助的高级研究计划署(ARPA)在二十世纪七十年代的一个研究成果,用来使全球的研究网络联在一起形成一个虚拟网络,也就是国际互联网。原始的Internet通过将已有的网络如ARPAnet转换到TCP/IP上来而形成,而这个Internet最终成为如今的国际互联网的骨干网。
如今TCP/IP如此重要的原因,在于它允许独立的网格加入到Internet或组织在一起形成私有的内部网(Intranet)。构成内部网的每个网络通过一种-做路由器或IP路由器的设备在物理上联接在一起。路由器是一台用来从一个网络到另一个网络传输数据包的计算机。在一个使用TCP/IP的内部网中,信息通过使用一种独立的叫做IP包(IPpacket)或IP数据报(IP datagrams)的数据单元进--传输。TCP/IP软件使得每台联到网络上的计算机同其它计算机“看”起来一模一样,事实上它隐藏了路由器和基本的网络体系结构并使其各方面看起来都像一个大网。如同联入以太网时需要确认一个48位的以太网地址一样,联入一个内部网也需要确认一个32位的IP地址。我们将它用带点的十进制数表示,如128.10.2.3。给定一个远程计算机的IP地址,在某个内部网或Internet上的本地计算机就可以像处在同一个物理网络中的两台计算机那样向远程计算机发送数据。
TCP/IP提供了一个方案用来解决属于同一个内部网而分属不同物理网的两台计算机之间怎样交换数据的问题。这个方案包括许多部分,而TCP/IP协议集的每个成员则用来解决问题的某一部分。如TCP/IP协议集中最基本的协议-IP协议用来在内部网中交换数据并且执行一项重要的功能:路由选择--选择数据报从A主机到B主机将要经过的路径以及利用合适的路由器完成不同网络之间的跨越(hop)。
TCP是一个更高层次的它允许运行在在不同主机上的应用程序相互交换数据流。TCP将数据流分成小段叫做TCP数据段(TCP segments),并利用IP协议进行传输。在大多数情况下,每个TCP数据段装在一个IP数据报中进行发送。但如需要的话,TCP将把数据段分成多个数据报,而IP数据报则与同一网络不同主机间传输位流和字节流的物理数据帧相容。由于IP并不能保证接收的数据报的顺序相一致,TCP会在收信端装配TCP数据段并形成一个不间断的数据流。FTP和Telnet就是两个非常流行的依靠TCP的TCP/IP应用程序。
另一个重要的TCP/IP协议集的成员是用户数据报协议(UDP),它同TCP相似但比TCP原始许多。TCP是一个可靠的协议,因为它有错误检查和握手确认来保证数据完整的到达目的地。UDP是一个“不可靠”的协议,因为它不能保证数据报的接收顺序同发送顺序相同,甚至不能保证它们是否全部到达。如果有可靠性要求,则应用程序避免使用它。同许多TCP/IP工具同时提供的SNMP(简单网络管理协议)就是一个使用UDP协议的应用例子。
其它TCP/IP协议在TCP/IP网络中工作在幕后,但同样也发挥着重要作用。例如地址转换协议(ARP)将IP地址转换为物理网络地址如以太网地址。而与其对应的反向地址转换协议(RARP)做相反的工作,即将物理网络地址转换为IP地址。网际控制报文协议(ICMP)则是一个支持性协议,它利用IP完成IP数据报在传输时的控制信息和错误信息的传输。例如,如果一个路由器不能向前发送一个IP数据报,它就会利用ICMP来告诉发送者这里出现了问题。
TCP/IP网络的七层结构模型
网络设计者在解决网络体系结构时经常使用ISO/OSI(国际标准化组织/开放系统互连)七层模型,该模型每一层代表一定层次的网络功能。最下面是物理层,它代表着进行数据转输的物理介质,换句话说,即网络电缆。其上是数据链路层,它通过网络接口卡提供服务。最上层是应用层,这里运行着使用网络服务的应用程序。
TCP/IP是同ISO/OSI模型等价的。当一个数据单元从网络应用程序下流到网络接口卡,它通过了一列的TCP/IP模块。这其中的每一步,数据单元都会同网络另一端对等TCP/IP模块所需的信息一起打成包。这样当数据最终传到网卡时,它成了一个标准的以太帧(假设物理网络是以太网)。而接收端的TCP/IP软件通过剥去以太网帧并将数据向上传输过TCP/IP栈来为处于接收状态的应用程序重新恢复原始数据(一种最好的了解TCP/IP工作实质的方法,是使用探测程序来观察网络中的到处流动的帧中被不同TCP/IP模块所加上的信息)。为了勾勒TCP/IP在现实网络世界中所扮演的角色,请考虑当使用HTTP(超文本传输协议)的Web浏览器从连接在Internet上的Web服务器上获取一页HTML数据时所发生的情况。为形成同Web服务器的虚链路,浏览器使用一种被抽象地称为套接口(socket)的高层软件。为了获取Web页,它通过向套接口向套接口写入HTTPGET命令来向Web服务器发出该指令。接下来套接口软件使用TCP协议向Web服务器发出包含GET命令的字节流和位流,TCP将数据分段并将各独立段传到IP模块,该模块将数据段转换成数据报并发送给Web服务器。
如果浏览器和服务器运--在不同物理网络的计算机上(一般情况如此),数据报从一个网络传到另一个网络,直到抵达服务器所在的那个网。最终,数据被传输到目的地址并被重新装配,这样Web服务器通过读自己的套接口来获得数据主干,并进而查看连续的数据流。对浏览器和服务器来说,数据在这一端写入套接口而在另一端出现如同魔术一般,但这只是底下发生的各种复杂的交互,它创造了数据经过网络无缝传输的假象。
这就是TCP/IP所做的:将许多小网联成一个大网。并在这个大网也就是Internet上提供应用程序所需要的相互通信的服务。

我们介绍说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 放在同一层上,那是因为事实上它们是IP的附属协议。但是在这里,我们又把它们放在 I P 层的上面,这是因为ICMP和IGMP报文都被封装在IP数据报中。
对于 A R P 和R A R P , 我 们 也 遇 到 类 似 的 难 题 。 在 这 里 把 它 们 放 在 以 太 网 设 备 驱 动 程序的上方,这是因为它们和 I P 数据报一样,都有各自的以太网数据帧类型。
当进一步描述 T C P 的细节时,我们将看到协议确实是通过目的端口号、源 I P 地 址 和 源 端 口号进行解包的。
客户-服务器模型
大部分网络应用程序在编写时都假设一端是客户,另一端是服务器,其目的是为了让服务器为客户提供一些特定的服务。
可以将这种服务分为两种类型:重复型或并发型。
重复型服务器通过以下步骤进行交互:
-
I1. 等待一个客户请求的到来。
-
I2. 处理客户请求。
-
I3. 发送响应给发送请求的客户。
-
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 之 间 的 端 口 号 。
浙公网安备 33010602011771号