TCP/IP协议(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)是Internet中计算机进行通信的标准,其命名起源于该组协议中最重要的两个协议TCP和IP。任何关于Internet协议的讨论必须由TCP/IP开始,它也是其他所有协议的基础。TCP/IP协议是Internet网络的共同语言,主机之间必须利用TCP/IP互通信息。
TCP/IP协议目前已经成为发展最成功的通信协议之一,它起源于20世纪60年代末美国政府资助的一个分组交换网络研究项目,允许分布在各地的使用不同操作系统的网络进行通信。随着世界范围个人电脑的普及,日常无论收发邮件、访问网页和文件传输都已经离不开TCP/IP协议,TCP/IP协议已经成为Internet的基础。
1. TCP/IP协议簇简介
TCP/IP实际上就是在物理网上的一组完整的协议。其核心部分是传输层协议(TCP/UDP)、网络层(IP)和物理接口层,这三层通常在操作系统内核中实现。TCP/UDP层提供了传输层服务,而IP协议提供了网络层服务。
1.1 TCP/IP结构
TCP/IP协议是一个四层协议。
1. 链路层
也称数据链路层或网络接口层,通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡,它们一起处理与传输媒介的物理接口细节。
该层所包含的协议有:
• ARP地址解析协议(Address Resolution Protocol) 此协议负责将硬件地址映射到网络地址。
• RARP反向地址转换协议(Reverse Address Resolution Protocol) 此协议负责将网络地址映射到硬件地址。
2. 网络层
也称互联网层,负责分组在网络中的活动。
该层包含的协议包括:
• IP网间协议(Internet Protocol) 负责主机间用户数据的路由和网络上数据的存储。同时为ICMP、TCP、UDP提供分组发送服务。
• ICMP 网间报文控制协议(Internet Control Message Protocol) 处理网关和主机间的差错和传送控制。
3. 传输层
该层主要为两台主机上的应用程序提供端到端的数据通信,它分为两个不同的协议:
• TCP传输控制协议(Transfer Control Protocol) 提供端到端的质量保证的数据传输,该层负责数据的分组、质量控制和超时重发等,应用层就可以忽略保证数据传输可靠性的措施。如通过HTTP协议访问WEB站点就是采用TCP协议传输数据。
• UDP用户数据报协议(User Diagram Protocol) 只提供简单的把数据从一端发送到另外一端,至于数据是否到达或按时到达、数据是否损坏和丢失则必须由应用层来解决,也就是说我们必须自己编写程序来控制。例如QQ用户间通信就采用UDP协议,所以必须指定一定的应答机制来保证数据被可靠接收。
4. 应用层
该层负责处理实际的应用程序细节。
包括一些大家常用的协议:
• FTP文件传输协议(File Transfer Protocol) 允许用户以文件操作的方式与另外一个主机相互通信、传输文件。
• SMTP简单邮件传输协议(Simple Mail Transfer Protocol) 用于发送电子邮件。
• TELNET终端协议(Telnet Terminal Protocol) 允许用户以虚拟终端的方式访问远程主机。
• HTTP超文本传输协议(Hypertext Transfer Protocol) 是万维网WWW的基础,使用户可以以简单的方式访问丰富多彩的Internet。
• TFTP简单文件传输协议(Trivial File Transfer Protocol),FTP的一种简化版本。
TCP/IP协议的核心部分是传输层协议,而协议并不为用户接触到,大家平时感受到的只是应用程序所提供的网络功能。如用户通过打开浏览器可以访问WWW主页,打开QQ可以和网友聊天,他们所感受到的是应用程序带来的网络功能,并不能感受到TCP/IP协议的传输层和网络层协议功能。因为协议上的各层对上一层是透明的,即应用层只负责应用程序之间的通信逻辑,并不用关心网络传输细节;对于链路层则只用负责传输数据,而不用去关心传输的数据是声音数据还是图像数据。
应用程序通过调用操作系统所提供的网络应用程序接口(Socket)来实现网络功能。
1.2 IP地址
如果一个通信系统允许任一主机与其他任何主机进行通信,则需要一个全球都能接受的方法来表示网络上所有计算机。对于地址,TCP/IP设计人员选择了一种类似于物理网络编址的方法,其中,互联网上的每个主机都被分配了一个32位的整数地址,叫做互联网地址(Internet Address)或称为IP地址。TCP/IP互联网上的每台主机都分配了一个惟一的32位互联网地址,该地址用于所有与该主机的通信。最新出台的IPv6中的IP地址已经升至128位,因此IP地址内容更加丰富。
每个IP地址被分割为两部分:网络号和主机号。网络号用于确定计算机所属的物理网络,而主机号则用于标识网络上的惟一的计算机。互联网中每一个物理网络都具有一个惟一的值作为网络号(Network Number),由此可以保证每台计算机分配网络上惟一的地址。在不同网络内可以有相同主机号的机器。
IP地址共分5类:A类、B类、C类、D类和E类,其中A类、B类、C类为基本类,D类用于多播播送,E类属于保留类,暂未使用。A类网络的最高位值为0,网络号8位,主机号24位,只标识127个不同的物理网络,每个网络可容纳16 777 216台主机。B类网络的最高位值为10,网络号16位,主机号16位,可标识2 097 152个不同的物理网络,每个网络可容纳65 536台主机,用于为数不少的中型网络。C类网络的最高位值为110,网络号24位,主机号8位,只标识2 097 152个不同的物理网络,每个网络可容纳256台主机,用于为数众多的小型网络,目前日常使用的网络均为C类网络。
网络格式如下:
A类:0******* xxxxxxxx xxxxxxx xxxxxxxx
B类:10****** ******** xxxxxxx xxxxxxxx
C类:110***** ******** ******* xxxxxxxx
D类:1110xxxx xxxxxxxx xxxxxxx xxxxxxxx
E类:1111xxxx xxxxxxxx xxxxxxx xxxxxxxx
其中,*表示的是网络号,而x表示的是主机号。
IP地址一般采用点分十进制的表示方式,例如61.176.134.25为163拨号沈阳用户IP地址。采用点分式表示后地址分类如表2-1所示。
表2-1 各类IP地址点分式范围
类型 范围
A类 0.0.0.0~127.255.255.255
B类 128.0.0.0~191.255.255.255
C类 192.0.0.0~223.255.255.255
D类 224.0.0.0~239.255.255.255
E类 240.0.0.0~247.255.255.255
此外,还有以下特殊保留地址:
• 网络地址(Network Address) IP地址中,主机号码各位都为0的地址表示网络地址代表该网络,如A类地址26.0.0.0即为该网络的网络地址。
• 广播地址(Broadcast Address) IP地址中,主机号码各位都为1的地址表示广播地址代表该网络,如A类地址26.255.255.255即为该网络广播地址。
• 回送地址(Loopback Address) IP地址为127.0.0.1即为回送地址,一般用于测试TCP/IP及本机进程间的通信。
由于A类和B类地址为主机号分配了太多的空间,因此主机都要求支持子网掩码(netmask RFC 950[Mogul and Postel 1985])。已经不把IP地址看成由单纯的一个网络号和一个主机号组成,而是把主机号再分成一个子网号和一个主机号。子网掩码也是一个32位数,根据IP地址的分级,子网掩码中与网络号相对应的位保留为1,而主机号的位都为0。将子网掩码与IP地址进行AND运算的结果即为网络号码。因此A类网络的掩码一般都为255.0.0.0,B类掩码为255.255.0.0,C类掩码为255.255.255.0。
1.3 端口号
TCP和UDP都是采用16位的端口号来识别应用程序。服务器一般都是通过知名端口来识别,协议里面低于1024的端口都有确切的定义,它们对应着因特网上常见的一些服务。这些常见的服务可以划分为使用TCP端口(面向连接,如打电话)和使用UDP端口(无连接,如写信)两种。
使用TCP端口的常见服务有:
• FTP 定义了文件传输协议,使用21号端口。常说某某主机开了FTP服务便是文件传输服务。下载文件和上传主页都要用到FTP服务。
• TELNET 你上过BBS吗?以前的BBS是纯字符界面的,支持BBS的服务器将23号端口打开,对外提供服务。其实TELNET的真正意思是远程登录,用户可以以自己的身份远程连接到主机上。
• SMTP 定义了简单邮件传送协议。现在很多邮件服务器用的是这个协议,用于发送邮件,服务器开放的是25号端口。
• HTTP 这可是大家用得最多的协议了——超文本传送协议。上网浏览网页就需要用到它,那么提供网页资源的主机就得打开其80端口以提供服务。
• POP3 和SMTP对应,POP3用于接收邮件。通常情况下,POP3协议所用的是110端口。
使用UDP端口的常见服务有:
• DNS 域名解析服务。因特网上的每一台计算机都有一个网络地址与之对应,这个地址就是我们常说的IP地址,它以纯数字的形式表示。然而这却不便于记忆,于是出现了域名。访问主机的时候只需要知道域名,域名和IP地址之间的变换由DNS服务器来完成。DNS用的是53端口。
• SNMP 简单网络管理协议,使用161端口,用来管理网络设备。由于网络设备很多,无连接的服务就体现出其优势。
• 聊天软件QQ QQ的程序既接受服务又提供服务,这样两个聊天的人才是平等的。QQ用的是无连接的协议,其服务器使用8000端口,侦听是否有信息到来;客户端使用4000端口,向外发送信息。
本文摘自《Visual C++网络游戏建模与实现》第二版,本文版权属于作者苏羽和http://www.wantsoft.com共同所有,引用本文请保留此版权信息。
TCP/IP基础协议
最新推荐文章于 2025-06-12 20:28:44 发布