内容摘自TCP/IP详解(卷1)
1. TCP/IP体系介绍
推荐书籍
T C P / I P通常被认为是一个四层协议系统
-
链路层,有时也称作数据链路层或网络接口层,通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡。它们一起处理与电缆(或其他任何传输媒介)的物理接口细节。
-
网络层,有时也称作互联网层,处理分组在网络中的活动,例如分组的选路。在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组管理协议)。
-
运输层主要为两台主机上的应用程序提供端到端的通信。在 T C P / I P协议族中,有两个互不相同的传输协议:T C P(传输控制协议)和U D P(用户数据报协议)。
-
应用层负责处理特定的应用程序细节。几乎各种不同的 T C P / I P实现都会提供下面这些通用的应用程序:
• Telnet 远程登录。
• FTP 文件传输协议。
• SMTP 简单邮件传送协议。
• SNMP 简单网络管理协议。
TCP/IP的分层
在T C P / I P协议族中,有很多种协议。图给出了将要讨论的其他协议。
互联网的地址
互联网上的每个接口必须有一个唯一的 I n t e r n e t地址(也称作 I P地址)。I P地址长32 bit。
有三类I P地址:单播地址(目的为单个主机)、广播地址(目的端为给定网络上的所有主机)以及多播地址(目的端为同一组内的所有主机)。
域名系统(DNS)
在 T C P / I P领域中,域名系统( D N S)是一个分布的数据库,由它来提供 I P地址和主机名之间的映射信息。
封装
TCP传给IP的数据单元称作 TCP报文段或简称为 TCP段(TCP segment)。IP传给网络接口层的数据单元称作 IP数据报(IP datagram)。通过以太网传输的比特流称作帧(Frame )。
U D P数据与T C P数据基本一致。唯一的不同是 U D P传给I P的信息单元称作 U D P数据报(UDP datagram),而且U D P的首部长为8字节。
分用
每层协议盒都要去检查报文首部中的协议标识,以确定接收数据的上层协议。这个过程称作分用( D e m u l t i p l e x i n g),图1 - 8显示了该过程是如何发生的。
客户-服务器模型
两种类型:重复型或并发型。
重复型服务器通过以下步骤进行交互:
I1. 等待一个客户请求的到来。
I2. 处理客户请求。
I3. 发送响应给发送请求的客户。
I4. 返回I 1步。
重复型服务器主要的问题发生在 I 2状态。在这个时候,它不能为其他客户机提供服务。
相应地,并发型服务器采用以下步骤:
C1. 等待一个客户请求的到来。
C2. 启动一个新的服务器来处理这个客户的请求。在这期间可能生成一个新的进程、任务或线程,并依赖底层操作系统的支持。这个步骤如何进行取决于操作系统。生成的新服务器对客户的全部请求进行处理。处理结束后,终止这个新服务器。
C3. 返回C 1步。
并发服务器的优点在于它是利用生成其他服务器的方法来处理客户的请求。
端口号
服务器一般都是通过知名端口号来识别的。
对于每个 T C P / I P实现来说,F T P服务器的T C P端口号都是2 1,每个Te 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号分配机构(Internet Assigned Numbers Authority, IANA)来管理。
标准化过程
有四个小组在负责I n t e r n e t技术。
-
Internet协会(I S O C,Internet Society)是一个推动、支持和促进 I n t e r n e t不断增长和发展的专业组织,它把I n t e r n e t作为全球研究通信的基础设施。
-
Internet体系结构委员会(I A B,Internet Architecture Board)是一个技术监督和协调的机构。它由国际上来自不同专业的 1 5个志愿者组成,其职能是负责 I n t e r n e t标准的最后编辑和技术审核。I A B隶属于I S O C。
-
Internet工程专门小组(I E T F,Internet Engineering Task Force)是一个面向近期标准的组织,它分为9个领域(应用、寻径和寻址、安全等等)。I E T F开发成为I n t e r n e t标准的规范。为帮助IETF主席,又成立了Internet工程指导小组(IESG, Internet Engineering Steering Group)。
-
Internet研究专门小组(IR I F,Internet Research Task Force)主要对长远的项目进行研究。I RT F和I E T F都隶属于I A B。文献[Crocker 1993]提供了关于I n t e r n e t内部标准化进程更为详细的信息,同时还介绍了它的早期历史。
RFC
所有关于I n t e r n e t的正式标准都以R F C(Request for Comment)文档出版。
标准的简单服务
客户程序通常选择 Te l n e t。
图1 - 9描述了这些服务。
互联网
世界范围内的互联网—I n t e r n e t。
i n t e r n e t意思是用一个共同的协议族把多个网络连接在一起。而 I n t e r n e t指的是世界范围内通过T C P / I P互相通信的所有主机集合(超过 1 0 0万台)。I n t e r n e t是一个i n t e r n e t,但i n t e r n e t不等于I n t e r n e t。
应用编程接口
使用T C P / I P协议的应用程序通常采用两种应用编程接口( A P I):s o c k e t和T L I(运输层接口:Transport Layer Interface)。
测试网络
第2章 链 路 层
引言
在T C P / I P协议族中,链路层主要有三个目的:
(1)为I P模块发送和接收I P数据报;
(2)为A R P模块发送A R P请求和接收A R P应答;
(3)为R A R P发送R A R P请求和接收R A R P应答。
以太网和IEEE 802封装
主机需求R F C要求每台I n t e r n e t主机都与一个10 Mb/s的以太网电缆相连接:
- 必须能发送和接收采用RFC 894(以太网)封装格式的分组。
- 应该能接收与RFC 894混合的RFC 1042(IEEE 802)封装格式的分组。
- 也许能够发送采用RFC 1042格式封装的分组。如果主机能同时发送两种类型的分组数据,那么发送的分组必须是可以设置的,而且默认条件下必须是 RFC 894分组。
尾部封装
RFC 893[Leffler and Karels 1984]描述了另一种用于以太网的封装格式,称作尾部封装(trailer encapsulation)。
现在,尾部封装已遭到反对。
SLIP:串行线路IP
S L I P的全称是Serial Line IP。它是一种在串行线路上对 I P数据报进行封装的简单形式。
环回接口
大多数的产品都支持环回接口( Loopback Interface),以允许运行在同一台主机上的客户程序和服务器程序通过 T C P / I P进行通信。A类网络号1 2 7就是为环回接口预留的。根据惯例,大多数系统把I P地址1 2 7 . 0 . 0 . 1分配给这个接口,并命名为 l o c a l h o s t。一个传给环回接口的 I P数据报不能在任何网络上出现。
第3章 IP:网际协议
引言
I P是T C P / I P协议族中最为核心的协议。所有的 T C P、U D P、I C M P及I G M P数据都以I P数据报格式传输(见图 1 - 4)。
IP首部
I P数据报的格式如图3 - 1所示。普通的I P首部长为2 0个字节,除非含有选项字段。
图3 - 2列出了对不同应用建议的 TO S值。
I P路由选择主要完成以下这些功能:
- 搜索路由表,寻找能与目的 I P地址完全匹配的表目(网络号和主机号都要匹配)。如果找到,则把报文发送给该表目指定的下一站路由器或直接连接的网络接口(取决于标志字段的值)。
- 搜索路由表,寻找能与目的网络号相匹配的表目。如果找到,则把报文发送给该表目指定的下一站路由器或直接连接的网络接口(取决于标志字段的值)。目的网络上的所有主机都可以通过这个表目来处置。例如,一个以太网上的所有主机都是通过这种表目进行寻径的。这种搜索网络的匹配方法必须考虑可能的子网掩码。
- 搜索路由表,寻找标为“默认( d e f a u l t)”的表目。如果找到,则把报文发送给该表目指定的下一站路由器。
第4章 ARP:地址解析协议
引言
只对 T C P / I P协议簇有意义的 I P地址。数据链路如以太网或令牌环网都有自己的寻址机制(常常为 48 bit地址),这是使用数据链路的任何网络层都必须遵从从逻辑I n t e r n e t地址到对应的物理硬件地址需要进行翻译。这就是 A R P的功能。
ARP高速缓存
A R P高效运行的关键是由于每个主机上都有一个 A R P高速缓存。这个高速缓存存放了最近I n t e r n e t地址到硬件地址之间的映射记录。高速缓存中每一项的生存时间一般为 2 0分钟。
第6章 ICMP:Internet控制报文协议
引言
I C M P经常被认为是 I P层的一个组成部分。它传递差错报文以及其他需要注意的信息。
ICMP端口不可达差错
对于T F T P服务器来说, U D P的公共端口号是 6 9。但是大多数的 T F T P客户程序允许用c o n n e c t命令来指定一个不同的端口号。这里,我们就用它来指定 8 8 8 8端口:
ICMP报文的4.4BSD处理
第17章 TCP:传输控制协议
第18章 TCP连接的建立与终止
连接建立协议
- 请求端(通常称为客户)发送一个 S Y N段指明客户打算连接的服务器的端口,以及初始序号(I S N,在这个例子中为1 4 1 5 5 3 1 5 2 1)。这个S Y N段为报文段1。
- 服务器发回包含服务器的初始序号的 S Y N报文段(报文段2)作为应答。同时,将确认序号设置为客户的I S N加1以对客户的S Y N报文段进行确认。一个S Y N将占用一个序号。
- 客户必须将确认序号设置为服务器的 I S N加1以对服务器的S Y N报文段进行确认(报文段3)。
这三个报文段完成连接的建立。这个过程也称为三次握手( three-way handshake)。
连接终止协议