Ch1:概述

来源:互联网 发布:java const 参数 编辑:程序博客网 时间:2024/06/05 09:40


一、 摘要

本章快速地浏览了TCP/IP协议族,介绍了在后面的章节中将要详细讨论的许多术语和协议。

TCP/IP协议族分为四层:链路层、网络层、运输层和应用层,每一层各有不同的责任。在TCP/IP中,网络层和运输层之间的区别是最为关键的:网络层(IP)提供点到点的服务,而运输层(TCP和UDP)提供端到端的服务。

在一个互联网上,每个接口都用IP地址来标识,尽管用户习惯使用主机名而不是IP地址。域名系统为主机名和IP地址之间提供动态的映射。端口号用来标识互相通信的应用程序。服务器使用知名端口号,而客户使用临时设定的端口号。


二、 分层

TCP/IP是一个四层协议系统,如下图所示。


图1. TCP/IP四层协议系统中不同层次的协议

  • 链路层。有时也称作数据链路层或网络接口层,通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡。
  • 网络层。有时也称作互联网层,处理分组在网络中的活动,例如分组的选路。网络协议包括IP、ICMP、IGMP。
  • 运输层。主要为两台主机上的应用程序提供端到端的通信。该层有两种传输协议:TCP和UDP。
  • 应用层。负责处理特定的应用程序细节。通用应用程序:Telnet、FTP、SNMP等。

三、 互联网的地址



图2. 五类互联网地址及其范围

四、 封装与分用

4.1 封装


图3. 数据进入协议栈时的封装过程

当应用程序传送数据时,数据被送入协议栈中,然后逐个通过每一层直到被当作一串比特流送入网络。其中每一层对收到的数据都要增加一些首部信息(有时还要增加尾部信息)。

而首部中为了区分不同协议的数据报文,增加一个标识域。

  • 应用层采用端口号才表示不同的应用程序;
  • 传输层存入一个8 bit的协议域(1:ICMP,2:IGMP,6:TCP,17:UDP);
  • 链路层在数据帧中加入16 bit的帧类型域表示IP、ARP、RARP等数据帧(ARP:0x0806,RARP:0x0835,IP:0x0800)。

4.2 分用


图4. 以太网数据帧的分用过程

分用是封装的一个逆过程。当目的主机收到一个以太网数据帧时,数据就开始从协议栈中由底向上升,同时去掉各层协议加上的报文首部。每层协议盒都要去检查报文首部中的协议标识,以确定接收数据的上层协议。


五、 端口号

  • TCP和UDP采用16 bit的端口号来标识应用程序,即共有6536个可用端口(0~65535)。
  • TCP/IP协议实现中的数值端口号——FTP:21,SSH:22,Telnet:23,DNS:53,TFTP:69 等。
  • 大多数TCP/IP实现给临时端口分配1024~5000之间的端口号,Internet上不常用服务使用大于5000的端口号。

六、 应用编程接口

TCP/IP协议的应用程序通常采用两种应用编程接口(API,Application Programming Interface):

  • socket,有时称作“ Berkeley socket”,表明它是从伯克利版发展而来的。
  • TLI(运输层接口:Transpot Layer Interface),是由AT&T开发的,有时称作XTI(X/Open运输层接口),以承认X/ Open这个自己定义标准的国际计算机生产商所做的工作。XTI实际上是TLI的一个超集。


(完)

0 0