1.1 引言
- TCP/IP协议族允许不同厂家生产的各种型号运行完全不同的操作系统的计算机互相通信。
- 本章主要对TCP/IP协议族进行概述,为其余章节提供背景知识。
1.2 分层
一个协议族是一组不同层次上的多个协议的组合,以TCP/IP协议族为例:
四个层次:
- 链路层:包括设备驱动程序、计算机网卡,作用是处理与电缆等其他传输媒介的物理接口细节。
- 网络层:负责处理分组在网络中的活动。(IP、ICMP、IGMP)
- 运输层:为应用程序提供端到端的通信。(TCP、UDP)
- 应用层:负责处理特定的应用程序细节。(提供Telnet 远程登录、FTP文件传输协议、SMTP简单邮件传送协议、SNMP简单网络管理协议等)
假设在局域网中有两台主机如图所示:
- 典型的客户端/服务器模式。
- 同一层通过对应的一个或多个协议进行通信。
- 应用层通常为一个用户进程,关心应用程序的细节,下三层在操作系统内核中执行,对应用程序一无所知。
- TCP/IP只是四层协议组合成的协议族中的两种协议。
理解将网络层和运输层划分为不同层次的原因:
- 应用层网关:一个连接两种不同协议族的进程,为某个特定的应用程序服务。
- 两个通过路由器连接的网络,两边为端系统,中间为路由器。
- 应用层与运输层使用端到端协议(End-to-end),网络层使用逐跳协议(Hop-by-hop)。
- 网络层IP提供不可靠服务,只用于尽可能快的传输分组,运输层TCP通过超时重传、发送和接收端到端的确认分组等机制提供可靠服务,所以运输层和网络层分别负责不同的功能。
- 一个路由器具有两个或多个网络接口层,主机在进行特殊配置后也可以作为路由器使用。
- 应用层用于隐藏所有物理细节。
网桥与路由器:
- 网桥在链路层上对网络进行互连。
- 路由器在网络层上对网络进行互连。
- TCP/IP倾向于使用路由器而不是网桥来连接网络。
1.3 TCP/IP的分层
TCP/IP 协议族的不同层次:
- TCP和UDP为运输层协议,二者使用提供不可靠服务的IP作为网络层协议。
- TCP:提供可靠的运输层服务。
- UDP:提供不可靠服务为应用程序发送和接收数据报。
- IP:TCP和UDP的每组数据都通过端系统和每个中间路由器中的IP层在互联网中进行传输,也有较为少见的直接访问IP的应用程序。
- ICMP:IP层使用ICMP与其他主机或路由器交换错误报文和其他重要信息。
- IGMP:Internet组管理协议。用来把一个UDP数据报多播到多个主机。
- ARP:和RARP(逆地址解析协议)是某些网络接口用来转换IP层和网络接口层使用的地址的协议。
1.4 互联网的地址
IP地址长32bit位,以下为5类互联网地址:
- 点分十进制表示法:32位地址通常写为四个十进制的数,每个整数对应一个字节。
各类地址的取值范围:
- 多接口主机具有多个IP地址。
- 由互联网洛信息中心为每个接口分配唯一的IP地址。
1.5 域名系统
- IP地址可以识别主机上的网络接口,进而访问主机。
- 域名系统DNS提供了IP地址和主机名之间的映射。
- 任何程序都可以调用标准库函数查看给定名字的主机IP地址,相反的,也有逆函数。
1.6 封装
- 应用程序通过TCP传送数据时,首先将数据放入协议栈,而后逐个通过每一层并在每一层都增加首部或尾部信息。
- TCP报文段:TCP传给IP的数据单元。
- UDP数据报:UDP传给IP的信息单元。
- IP数据报:IP传给网络接口层的数据单元。
- 帧:通过以太网传输的比特流。
- 协议域:由于TCP、UDP、ICMP、IGMP都要向IP传送数据,因此IP在首部存入了一个8bit的数值用于标明数据属于哪一层。(1表示 ICMP协议、2表示IGMP协议、6表示为TCP协议、17表示UDP协议)
- 运输层协议通过在生成报文首部时存入一个应用程序的标识符来达到应用程序通过TCP或UDP传送数据的功能。(TCP和UDP都用一个16bit的端口号来表示不同的应用程序)
- TCP和UDP将源端口号和目的端口号分别存入报文首部中。
- 网络接口用于发送和接收IP、ARP、RARP数据,以太网的帧首部也有16bit的帧类型域用以指明生成数据的网络层协议。
1.7 分用
- 分用即为封装的逆过程。
- 在逻辑上,ICMP和IGMP处于IP的下一阶段。
1.8 客户-服务器模型
重复型:
- 等待一个客户请求的到来。
- 处理客户请求。
- 发送响应给发送请求的用户。
- 循环。
缺点:在2状态时,不能为其他客户机提供服务。
并发型:
- 等待一个客户请求的到来。
- 启动新服务器来处理客户的请求,利用操作系统的支持,生成新的进程、任务或线程,对全部请求进行处理,处理结束后,终止这个服务器。
- 循环。
优点:利用生成其他服务器的方法来处理客户请求,对于多任务的操作系统可同时为多个客户服务。
一般的:
TCP服务器是并发的,UDP服务器是重复的。
1.9 端口号
- FTP服务器的TCP端口号:21。
- Telnet服务器的TCP端口号:23。
- TFTP服务器的UDP端口号:69。
- 1~1023间的端口号用于TCP/IP实现提供的服务。
- 1~255 间为知名的端口号,255~1023间的为Unix特定服务端口号。
-1024~5000间为TCP/IP给临时端口分配的端口号。- 大于5000的端口号是为其他不常用的服务器预留。
保留端口号:
Unix系统中具有超级用户特权的进程才允许给自己分配一个1~1023间的保留端口号。
(完)