在TCP/IP协议中,传输层使用的端口号用一个16位的二进制数表示。因此,在传输层如果使用TCP协议进行进程通信,则可用的端口号共有216个。由于UDP也是传输层一个独立于TCP的协议,因此,使用UDP协议时也有216个不同的端口。另外,当服务器要向客户端传输数据时,由于服务器可以从客户的请求报文中获得其端口号,因此也可以正常通信。......
2023-11-20
1.ARP协议
在TCP/IP体系结构中,除了IP地址这一重要的概念之外,还有另外一个重要的地址概念,即硬件地址MAC。IP地址与MAC地址的区别在于IP地址放在IP数据报的首部,而硬件地址则放在MAC帧的首部。网络层及其以上层次使用的是IP地址,而链路层以下使用的是硬件地址。
ARP(Address Resolution Protocol)称为地址解析协议,它与IP配套使用,其功能是将一个目的地IP地址映射到待求的物理网卡地址上。
由于IP地址有32位,而局域网的MAC地址是48位,因此它们之间不存在简单的转换关系。此外,在一个网络上可能经常会有新的主机加入进来,或者撤走一些主机,更换网卡也会使主机的硬件地址改变,而任何IP数据报又必须经过物理网络(如以太网)传送。于是就提出这样一个问题:假设计算机A要通过物理网络向计算机B发送一个IP分组,A只知道B的IP地址,如何把这个IP地址变成B的物理地址MAC呢?TCP/IP协议设计人员采用一种创造性的方法,解决了诸如以太网这样具有广播能力物理网络的地址转换问题。为了避免依赖一个映射表,选择了一种低层协议动态地映射地址,这就是所谓的地址解析协议ARP。使用ARP协议的每台主机都要维护一个IP地址到MAC的转换表,称ARP表。进行通信时,通过查ARP表,实现从IP地址到物理地址的变换。ARP表放在内存储器ARP高速缓存中,其中的登录项是在第一次需要使用而进行查询时通过ARP协议自动填写的。
当主机A欲向本局域网上的某个主机B发送IP数据报时,就先查看ARP表,如果有主机B的IP地址,就可以直接查出其对应的硬件地址,再将此硬件地址写入MAC帧,然后通过局域网将MAC帧发往此硬件地址。如果IP模块在ARP表中找不到主机B的IP地址的登录项,而任何IP数据报又必须经过物理网络(如以太网)传送,在这种情况下,主机A就自动运行ARP,然后按以下步骤找出主机B的硬件地址。
(1)如果IP模块在ARP表中找不到主机B的IP地址的登录项,源主机A的ARP就使用广播以太网地址发一个ARP请求分组给网上每一台计算机(内含目的主机B的IP地址)。
(2)收到广播的每个ARP模块检查请求分组中的目标IP地址,当该地址和自己的IP地址相同时,目的主机B就向源主机A发送一个ARP响应分组,附上自己的硬件地址。
(3)源主机A收到目的主机B的ARP响应分组后,就在ARP高速缓存中写入目的主机B的IP地址到硬件地址的映射表中。
已知主机IP地址、主机MAC地址和服务器IP地址,需要请求服务器MAC地址,ARP的工作原理如图2-19所示。
图2-19 ARP的工作原理
使用ARP协议,一是不必预先知道连接到网络上的主机或网关的物理地址就能发送数据;二是当物理地址和IP地址的关系随时间的推移发生变化时,能及时给予修正。一般情况下,两个主机之间相互通信的情况是存在的,为了减少网络上的通信量,源主机A在发送到ARP请求分组时,就将自己的IP地址到硬件地址的映射写入ARP请求分组中。收到广播的目的主机B一方面向源主机A发送一个ARP响应分组,附上自己的硬件地址,同时目的主机B也将源主机A的这一地址映射写入自己的ARP高速缓存中。这就为主机B以后向主机A发送数据报提供了方便。
2.RARP协议
RARP(Reverse Address Resolution Protocol)是反向地址解析协议。RARP协议可以实现MAC地址到IP地址的转换。反向地址解析协议RARP广泛用于获取无盘工作站的IP地址。
通常,一台计算机的IP地址保存在其外存储器(一般是磁盘)中,操作系统在启动时从这里找出这个地址。那么,无盘工作站如何确定自己的IP地址呢?反向地址解析协议RARP就是为这一目标而设计的。
(1)RARP允许在网上站点广播一个RARP请求分组(其格式与ARP数据报类似),无盘工作站将自己的硬件地址同时填写在发送方硬件地址段和目标硬件地址段中。
(2)网上的所有机器收到这一请求,但只有那些被授权提供RARP服务的计算机才处理这个请求,并且发送一个回答,称这样的计算机为RARP服务器(为了运行无盘工作站,在每个以太网上必须有一个RARP服务器,广播帧是不能通过IP路由器转发的。RARP服务器上存放有一张事先做好的无盘工作站硬件地址和IP地址的映射表)。当RARP服务器收到RARP请求后,它就从此映射表中查找该无盘工作站的IP地址,然后写入RARP响应分组,并且将响应分组直接发送给请求的机器。
(3)请求的机器从所有的RARP服务器接收回答,尽管只需要一个回答就够了,从而获得自己的IP地址。
这一切都只在系统初启动时发生,RARP此后不再运行,除非该无盘设备重新设置或者重新启动。
3.ICMP协议
ICMP(Internet Control Message Protocol)是互联网控制报文协议。如果一个网关不能为IP分组选择路由,或者不能递交IP分组,或者这个网关测试到某种不正常状态,如网络拥挤影响IP分组的传递,那么就需要使用ICMP协议来通知源发主机采取措施,避免或纠正这类问题。因此,ICMP协议提供的服务有:测试目的地的可达性和状态、报告报文不可达的目的地、数据报的流量控制、路由器路由改变请求等。
ICMP也是在网络层中与IP一起使用的协议。ICMP是封装在IP数据报中传输的,通常由某个监测到IP分组中错误的站点产生。从技术上说,ICMP是一个差错报告机制,当发现数据报有错时,将ICMP报文置入IP数据报内,只向该数据报的原始报源发送差错报告,由源站点执行纠错。例如,如果IP分组无法到达目的地,那么就可能使用ICMP警告分组的发送方:网络、机器或端口不可到达。ICMP也能通知发送方网络出现拥挤。
ICMP的使用主要包括以下3种情形。
(1)IP分组不能到达目的地。
(2)在接收设备接收IP分组时,缓冲区大小不够。
(3)网关或目标主机通知发送方主机,应该选用较短的路径(如果这种路径确实存在)。
提示
ICMP数据报和IP分组一样,同样不能保证可靠传输,ICMP信息也可能丢失。为了防止ICMP信息无限地连续发送,对ICMP数据报传输的问题不能再使用ICMP传达。另外,对于被划分成报片的IP分组而言,只对偏置等于0的分组片(也就是第1个分 组片)才能使用ICMP协议。
ICMP报文需要如图2-20所示的两级封装。每个ICMP报文都在IP分组的数据段中通过互联网传输,而IP分组本身又在帧的数据段中穿过每个物理网。
图2-20 ICMP的两级封装
为标识ICMP,在IP分组协议段中包含的值是1。重要的是,尽管ICMP报文使用IP协议封装在IP分组中传送,但ICMP不被看成是高层协议的内容,它只是IP中要求的一部分。之所以使用IP递交ICMP报文,是因为这些报文可能要跨过几个物理网络才能够到达最终报宿。因此,ICMP报文不能依靠单个物理网络来递交。
ICMP报文有两种:一种是错误报文,另一种是查询报文。每个ICMP报文的开头都包含3个段:1字节的类型段、1字节的编码段和2字节的检验和段。8位的类型段标识报文,表示13种不同的ICMP报文中的一种。8位编码段提供关于一个类型的更多信息。16位的检验和的算法与IP头的检验和算法相同,但检查范围限于ICMP报文结构。
表2-5给出了ICMP 8位类型段定义的13种报文的名称,每一种都有自己的ICMP头部格式。如图2-21所示为回送请求和回送应答报文的格式范例。(www.chuimin.cn)
回送请求报文(类型=8)用来测试发送方通过互联网到达接收方的通信路径。在许多主机上,这个功能叫作“ping”。发送方发送一个回送请求报文,里面包含一个16位的标识符及一个16位的序列号,也可以将数据放在报文中传输。当目的地机器收到该报文时,把源地址和目的地址倒过来,重新计算检验和,并传回一个回送应答(类型=0)报文,数据段中的内容(如果有的话)也要返回给发送方。
表2-5 ICMP报文类型
图2-21 回送请求和回送应答报文
4.Telnet协议
远程登录是互联网提供的一个服务。远程登录就是用户通过网络登录到远程计算机系统中,使用远程计算机系统的资源。远程登录的根本目的在于访问远程系统的资源。Telnet(Telephone Network)是一个简单的远程终端协议。用户用Telnet就可在其本地通过TCP连接登录到远程的另一个主机上(使用主机名或IP地址)。Telnet能把用户的击键传输到远程主机,同时也能把远程主机的输出通过TCP连接返回到用户屏幕。这种服务是透明的,用户感觉好像键盘和显示器是直接连在远程主机上的。
Telnet也使用客户/服务器模式。当用户使用Telnet登录到远程计算机时,事实上启动了两个程序:一个叫作Telnet客户程序,它运行在本地机上;另一个叫作Telnet服务器程序,它运行在远程计算机上。本地机上客户程序完成如下功能。
(1)建立与服务器的TCP连接。
(2)将本地终端上的键盘输入传送到远程系统。
(3)从远程系统接收输出的信息,并把该信息显示在本地终端屏幕上。
Telnet服务器程序完成如下功能。
(1)通知本地机远程计算机系统已经准备好了。
(2)等候用户输入命令,并对用户命令做出反应(如显示目录内容或执行某个程序等)。
(3)远程系统将结果送回本地终端。
由此可知,远程登录过程分为3个步骤:Telnet允许某台机器上的用户与远程计算机上的登录服务器建立TCP连接;然后通过该连接将用户键入的命令直接传送到远程计算机上;远程计算机执行命令,并将结果返回到用户机器的屏幕上。
在以上过程中,输入/输出均对远程系统内核透明,远程登录服务本身对用户也是透明的,用户好像直接连入了远程系统中。这种透明性是Telnet的重要特点,也是Telnet内部机制的重要部分。
Telnet协议实现了如下三大功能。
(1)它定义了一个网络虚拟终端协议,为远程系统提供一个标准终端接口。
(2)Telnet允许客户进程与登录服务器进行选项协商,并且Telnet协议还提供一组标准选项。
(3)Telnet对称处理连接的两端。
像应用层的许多其他服务一样,远程登录也采用客户/服务器方式。远程登录的工作过程如图2-22所示。首先,本地机器上的Telnet客户程序与远程登录服务器建立TCP连接;然后,客户程序将从用户终端接收键盘输入命令,并将其通过TCP传送给Telnet服务器,同时它会接收服务器返回的字符数据,并通过本地操作系统将它显示在用户终端上。
图2-22 远程登录的工作过程
5.FTP协议
FTP(File Transfer Protocol)是文件传输协议。FTP是Internet上最早出现的服务功能之一,到目前为止,它仍然是Internet上最常用的也是最重要的服务之一。文件传输协议FTP是一个通用协议,用于主机间传送文件,主机类型可以相同,也可以不同;可以传送不同类型的文件,如计算机软件、声音文件、图像文件等。
FTP采用的是客户机/服务器模型。当用户启动FTP进行文件传输时,事实上启动了两个程序:一个是本地机上的FTP客户程序,它向FTP服务器提出下载文件的请求;另一个是远程计算机上的FTP服务器程序,它响应用户的请求,把用户指定的文件下载到用户的计算机上。客户机与服务器之间建立两条TCP连接;一条用于传送控制信息,一条用于传送文件内容。FTP的控制连接使用了Telnet协议,主要用于利用Telnet提供的简单身份认证系统,供远程系统鉴别FTP用户的合法性。
FTP是一种功能很强的协议,除了从服务器和客户机传送文件外,还可以进行第三方传送。这时客户机必须分别开通两个主机(比如A和B)之间的控制连接。如果客户机获准从A机传送出文件,并向B机传入文件,则A服务器程序就建立一条到B服务器程序的数据连接。客户机保持文件传送的控制权,但不参与数据传送。
6.SMTP协议
SMTP(Simple Mail Transfer Protocol)是简单邮件传输协议。当邮件传输程序与远程服务器通信时,它构造了一个TCP连接并在此上面进行通信。一旦连接存在,这两个程序就遵循简单邮件传输协议,它允许发送方说明自己、指定接收方及传输电子函件信息。
尽管邮件传输看起来很简单,但SMTP协议仍需处理许多细节。例如,SMTP要求可靠的传递——发送方必须保存一个信息的副本直到接收方将一个副本放至不易丢失的存储器(如磁盘)上。另外,SMTP允许发送方询问一个给定的邮箱在服务器所在的计算机上是否存在。
SMTP的最大特点就是简单。SMTP只定义了邮件如何在邮件传输系统中通过发送方和接收方之间的TCP连接进行传输,但它没有规定邮件服务器与用户之间的接口以及邮件的存储、邮件系统多长时间发送一次邮件等操作。
有关计算机网络技术及应用的文章
在TCP/IP协议中,传输层使用的端口号用一个16位的二进制数表示。因此,在传输层如果使用TCP协议进行进程通信,则可用的端口号共有216个。由于UDP也是传输层一个独立于TCP的协议,因此,使用UDP协议时也有216个不同的端口。另外,当服务器要向客户端传输数据时,由于服务器可以从客户的请求报文中获得其端口号,因此也可以正常通信。......
2023-11-20
而BACnet标准考虑到楼宇自控网络可靠性和实时性及运行效率,并根据BACnet网络的特点,对ISO-RM网络层功能进行了简化。对BACnet报文分段是BACnet网络的应用层功能,因此网络层不再涉及报文分段及相关的管理,因此网络层的功能进一步简化。BACnet网络层功能简化具体体现在网络层处理和传输的BACnet报文最大长度仅仅取决于网络层下层连接的不同局域网传输报文长度中的最小报文长度。......
2023-08-29
与TCP配合使用的网络层协议是IP,人们常常称这些相关协议为TCP/IP协议。虽然TCP和IP不是OSI标准,但已被公认为当前的工业标准,称为目前最流行的传输层协议。下面将TCP/IP和相应的OSI层次进行对比,如图3—31所示。图3—31TCP/IP和OSI层次对比对应于OSI的5~7层,相应的高层协议有:SMTP,简单邮件传输协议,关于电子邮件方面的。对应于OSI的第四层的协议有三个:TCP传输控制协议,是面向连接的协议,也是最主要的协议。......
2023-10-22
TCP是传输控制协议,它是TCP/IP协议簇中的一个重要协议。图2-9显示出了从发送方的高层协议通过TCP到达接收方的高层协议数据传输的完整过程。TCP允许两个应用程序建立一个连接,然后发送完数据并终止连接。总之,TCP协议使两台计算机上的程序通过互联网以类似于电话的方式进行通信成为可能。TCP将自动检测丢失的数据包,并且要求对方计算机在数据丢失时重发数据。......
2023-11-04
网络协议即网络中传递、管理信息的一些规范,在计算机之间相互通信需要共同遵守一定的规则,这些规则称为网络协议。之所以命名为TCP/IP协议,因为TCP、IP协议是两个很重要的协议,所以以TCP/IP命名。UDP协议使用IP层提供的服务把从应用层得到的数据从一台主机的某个应用程序传给网络上另一台主机上的某一个应用程序。......
2023-10-17
直到1982年,TCP/IP协议的具体规范才被最终定下来,并于1984年或为互联网唯一指定的协议。与OSI参考模型不同,TCP/IP模型更侧重于互联设备间的数据传送,而不是严格的功能层次之分。因此,OSI参考模型在解释互联网络通信机制上比较合适,但TCP/IP成为互联网络协议的市场标准。通常所说的TCP/IP协议实际上包含了大量的协议和应用,由多个独立定义的协议组合在一起。因此,TCP/IP并不是指TCP和IP两个协议,而是表示Internet所使用的体系结构或整个协议簇。......
2023-10-22
TCP/IP协议是一个协议集,其中最重要的是TCP协议与IP协议,因此通常将这诸多协议统称为TCP/IP协议集,如图2.8所示。图2.8TCP/IP模型中的协议与网络图1.网际层协议网际协议IP。1).IP协议特点:一是提供无连接的数据报传输机制;二是能完成点对点的通信。2)IP协议的作用:用于主机与网关、网关与网关、主机与主机之间的通信。网际控制报文协议ICMP:为IP协议提供差错报告。UDP与IP比较,增加了提供协议端口的能力以保证进程间的通信。......
2023-10-18
应用层安全协议很多,这里以电子邮件协议为例,来说明应用层协议的安全性。典型的安全电子邮件协议有PGP 和PEM。PGP 协议PGP是1991年发布的一个完整的电子邮件安全协议,它提供了方便使用的加密、鉴别、数字签名和压缩功能。图10.6PGP 对邮件的加密PEM 采用更结构化的密钥管理机制,由认证中心发布证书,证书上面有用户姓名、公钥和密钥的使用期限。PEM 存在的问题是没有公认的证书权威机构。......
2023-10-19
相关推荐