本章知识点:
TCP/IP协议族,四层协议系统,互连网,路由器互联网络,网关,物理细节的隐藏,ICMP,IGMP,互联网的地址分类和范围,InterNIC,域名系统,封装,分用,重复型(迭代型)或并发型服务器实现步骤,四种端口号,标准的简单服务,应用编程接口
本章内容:
TCP/IP协议族是一种网络通信协议,最初源于美国政府资助的一个分组交换网络研究项目,之后发展成为计算机之间最常应用的组网形式,称作全球互联网的基础。是一组不同的协议组合在一起构成的协议族。
TCP/IP通常被认为是一个四层协议系统:
链路层:包括设备驱动程序及网络接口卡,处理与传输媒介的物理接口细节,以太网协议,令牌环协议,ARP,RARP;
网络层:处理分组在网络中的活动,IP、ICMP和IGMP;
运输层:为两台主机上的应用程序提供端到端的通信,TCP(传输控制协议,数据分成合适的小块)和UDP(用户数据报协议);
应用层:处理特定的应用程序细节,Telnet,FTP,SMTP,SNMP。
应用程序通常是一个用户进程来处理应用程序细节,而下三层则一般在(操作系统)内核中执行来处理通信细节。
一个互连网就是一组通过相同协议族互连在一起的网络。
路由器的好处是为不同类型的物理网络提供连接:以太网、令牌环网、点对点的链接和FDDI(光纤分布式数据接口)等等。
应用层网关:一个连接两种不同协议族的进程。应用层和运输层使用端到端(En d - t o - e n d)协议,网络层提供的却是逐跳( Ho p - b y - h o p)协议。
大多数的TCP/IP实现也允许一个多接口主机来担当路由器的功能,但是主机为此必须进行特殊的配置。
互联网的目的之一是在应用程序中隐藏所有的物理细节,应用层并不关心通信中的一台主机是在以太网上,而另一台主机是在令牌环网上,也不关心通信途中经过多少路由器。
ICMP是IP协议的附属协议。IP层用它来与其他主机或路由器交换错误报文和其他重要信息。Ping和Traceroute,它们都使用了ICMP。IGMP是Internet组管理协议。它用来把一个UDP数据报多播到多个主机。
InterNIC(互联网络信息中心)只分配网络号。主机号的分配由系统管理员来负责。
互联网的地址分类和范围 ,如下图 :
有三类IP地址:单播,广播和多播。
域名系统(DNS)是一个分布的数据库,由它来提供IP地址和主机名之间的映射信息。
封装就是在数据前面加上特定的协议头部。当应用程序用TCP传送数据时,封装过程如下:
由于TCP、UDP、ICMP和IGMP都要向IP传送数据,因此IP必须在生成的IP首部中加入某种标识,以表明数据属于哪一层。为此,IP在首部中存入一个长度为8bit的数值,称作协议域。如1表示为ICMP协议,2表示为IGMP协议,6表示为TCP协议,17表示为UDP协议。
当目的主机收到一个以太网数据帧时,数据就开始从协议栈中由底向上升,同时去掉各层协议加上的报文首部。每层协议盒都要去检查报文首部中的协议标识,以确定接收数据的上层协议。这个过程称作分用。
重复型(迭代型)服务器步骤:
I1. 等待一个客户请求的到来。
I2. 处理客户请求。
I3. 发送响应给发送请求的客户。
I4. 返回I 1步。
并发型服务器步骤:
C1. 等待一个客户请求的到来。
C2. 启动一个新的服务器来处理这个客户的请求。在这期间可能生成一个新的进程、任务或线程,并依赖底层操作系统的支持。这个步骤如何进行取决于操作系统。生成的新服务器对客户的全部请求进行处理。处理结束后,终止这个新服务器。
C3. 返回C 1步。
TCP和UDP采用16 bit的端口号来识别应用程序。如FTP服务器的TCP端口号都是21,每个Telnet服务器的TCP端口号都是23,每个TFTP(简单文件传送协议)服务器的UDP端口号都是69。
服务器一般都是通过知名端口号( 1~1023)来识别的,客户端口号又称作临时端口号(即存在时间很短暂,1024~5000),这是因为它通常只是在用户运行该客户程序时才存在。大于5000的端口号是为其他服务器预留的(Intenet上并不常用的服务)。Unix系统有保留端口号的概念。只有具有超级用户特权的进程才允许给它自己分配一个保留端口号。
以下是一些服务程序,而客户程序通常选择Telnet访问:
使用TCP/IP协议的应用程序通常采用两种应用编程接口(API):socket和TLI(运输层接口)
本书中所有的例子运行的测试网络如下,其中网络号为140.252,所有的主机都属于.tuc.noao.edu这个域,如右下方的操作系统为SunOS4.1.3的多宿主机的名字为sun.tuc.noao.edu,IP地址为140.252.1.29和140.252.13.33: