TCP/IP详解:协议(TCP协议在应用层的应用)

时间:2021-03-04 20:45:10

@本系列文章是在阅读TCP/IP协议:详解的过程中,根据稳重内容,对重要知识点做的总结,不包含个人观点,插图均来自书中。

第25章:SNMP: 简单网络管理协议

TCP/IP详解:协议(TCP协议在应用层的应用) 

第26章:Telnet和Rlogin:远程登录

TCP/IP详解:协议(TCP协议在应用层的应用)
TCP/IP详解:协议(TCP协议在应用层的应用) 

第27章:文件传输协议

  • 文件传送(file transfer),由FTP提供
     文件存取(file access),由NFS提供
  • 与Te l n e t类似,F T P最早的设计是用于两台不同的主机,这两个主机可能运行在不同的操作系统下、使用不同的文件结构、并可能使用不同字符集。F T P支持有限数量的文件类型(A S C I I,二进制,等等)和文件结构(面向字节流或记录)。
  • FTP使用两个TCP连接传输一个文件:
    • 控制连接,以C/S方式建立。服务器以被动方式打开21号端口,等待客户端的连接,客户端以主动方式打开一个随机分配的端口号建立连接到服务器21号端口。该连接将命令从客户传给服务器,并传回服务器的应答。由于命令通常是由用户键入的,所以 I P对控制连接的服务类型就是“最大限度地减小迟延”。
    • 数据连接。由于该连接用于传输目的,所以I P对数据连接的服务特点就是“最大限度提高吞吐量”。
    • 使用两个协议解释器。分别用于把命令转换成控制连接上的FTP命令,和解释传回的服务器的应答成用户所需的交互格式。
      TCP/IP详解:协议(TCP协议在应用层的应用)
  • 文件类型
    F T P协议规范提供了控制文件传送与存储的多种选择。
    • 文件类型
      • ASCII码。在数据连接中传输使用NVT ASCII
      • EBCDIC文件类型 该文本文件传输方式要求两端都是 E B C D I C系统
      • 图像文件类型(也称为二进制文件类型)
      • 本地文件类型该方式在具有不同字节大小的主机间传输二进制文件。每一字节的比特数由发方规定。对使用8 bit字节的系统来说,本地文件以8 bit字节传输就等同于图像文件传输。
    • 格式控制
      该选项只对 A S C I I和E B C D I C文件类型有效。
      • 非打印 (默认选择)文件中不含有垂直格式信息。
      • 远程登录格式控制 文件含有向打印机解释的远程登录垂直格式控制。
      • Fortran 回车控制 每行首字符是F o r t r a n格式控制符。
    • 结构
      • 文件结构 (默认选择)文件被认为是一个连续的字节流。不存在内部的文件结构。
      • 记录结构 该结构只用于文本文件( A S C I I或E B C D I C)。
      • 页结构
        每页都带有页号发送,以便收方能随机地存储各页。该结构由 TO P S - 2 0操作系统提供(主机需求 R F C不提倡采用该结构)。
    • 传输方式
      • 流方式
        (默认选择)文件以字节流的形式传输。对于文件结构,发方在文件尾提示关闭数据连接。对于记录结构,有专用的两字节序列码标志记录结束和文件结束。
      • 块方式
        文件以一系列块来传输,每块前面都带有一个或多个首部字节。
      • 压缩方式
        一个简单的全长编码压缩方法,压缩连续出现的相同字节。在文本文件中常用来压缩空白串,在二进制文件中常用来压缩 0字节(这种方式很少使用,也不受支持。现在有一些更好的文件压缩方法来支持 F T P)。
    • 上述许多控制方式已经废弃,所以选择并不是很复杂
      TCP/IP详解:协议(TCP协议在应用层的应用)
  • FTP命令
    • 命令和应答在客户和服务器的控制连接上以 NVT ASCII 码形式传送。这就要求在每行结尾都要返回 C R、L F对(也就是每个命令或每个应答)。
    • 常用命令
      TCP/IP详解:协议(TCP协议在应用层的应用)
  • FTP应答
    • 应答都是A S C I I码形式的3位数字,并跟有报文选项。其原因是软件系统需要根据数字代码来决定如何应答,而选项串是面向人工处理的。
      TCP/IP详解:协议(TCP协议在应用层的应用)
    • 第3位数字给出差错报文的附加含义。
    • 一些典型的应答,都带有一个可能的报文串
      TCP/IP详解:协议(TCP协议在应用层的应用)
  • 连接管理
    • 数据连接有以下三大用途:
      • 从客户向服务器发送一个文件
      • 从服务器向客户发送一个文件
      • 从服务器向客户发送文件或目录列表
    • 控制连接一直保持到客户-服务器连接的全过程,但数据连接可以根据需要随时来,随时走。
    • 数据连接的建立过程
      • 正由于是客户发出命令要求建立数据连接,所以数据连接是在客户的控制下建立的。
      • 客户通常在客户端主机上为所在数据连接端选择一个临时端口号。客户从该端口发布一个被动的打开
      • 客户使用P O RT命令从控制连接上把端口号发向服务器
      • 服务器在控制连接上接收端口号,并向客户端主机上的端口发布一个主动的打开。服务器的数据连接端一直使用端口 2 0

第28章:SMTP: 简单邮件传送协议

  • 用T C P / I P交换电子邮件示意
    TCP/IP详解:协议(TCP协议在应用层的应用)
    • 用户与用户代理( user agent)打交道,可能会有多个用户代理可供选择。常用的 U n i x上的用户代理包括 M H,Berkeley Mail, Elm和M u s h。用户可以选择它们自己的用户代理。
    • 用T C P进行的邮件交换是由报文传送代理 M TA(Message Transfer Agent)完成的。最普通的U n i x系统中的 M TA是S e n d m a i l。用户通常接触MTA。
  • 两个M TA之间用 NVT ASCII进行通信。客户向服务器发出命令,服务器用数字应答码和可选的人可读字符串进行响应。
  • 常用命令
    • H E L O命令标识自己,参数必须是完全合格的的客户主机名: s u n . t u c .n o a o . e d u。
    • M A I L命令标识出报文的发起人
    • R C P T,标识接收方。如果有多个接收方,可以发多个 R C P T命令。
    • 邮件报文的内容由客户通过 D ATA命令发送。报文的末尾由客户指定,是只有一个句点的一行。
    • 命令 Q U I T,结束邮件的交换
    • R S E T命令异常中止当前的邮件事务并使两端复位。丢掉所有有关发送方、接收方或邮件的存储信息。
    • V R F Y命令使客户能够询问发送方以验证接收方地址,而无需向接收方发送邮件。通常是系统管理员在查找邮件交付差错时手工使用的
    • N O O P命令强迫服务器响应一个 O K应答码(2 0 0)
  • 信封、首部和正文
  • 中继代理
    TCP/IP详解:协议(TCP协议在应用层的应用)
  • 重试间隔
    用户把一个新的邮件报文传给它的 M TA时,通常立即试图交付。如果交付失败, M TA必须把该报文放入队列中以后再重试。Host Requirements RFC推荐初始时间间隔至少为 3 0分钟。发送方至少 4 ~ 5天内不能放弃。
  • SMTP的未来
    • 信封的变化:扩充的SMTP(E S M T P)
    • 首部变化:非ASCII字符
    • 正文变化:通用Internet邮件扩充(M I M E) 

第29章:网络文件系统(NFS)

  • N F S的基础是Sun RPC(远程过程调用).客户程序使用 N F S不需要做什么特别的工作,当 N F S内核检测到被访问的文件位于一个N F S服务器时,就会自动产生一个访问该文件的 R P C调用。
  • RPC
    • 一般来说,客户发送命令给服务器,服务器向客户发送应答。远程过程调用RPC (Remote Procedure Call)是一种不同的网络程序设计方法。客户程序编写时只是调用了服务器程序提供的函数。这只是程序员所感觉到的,实际上发生了下面一些动作。
      • 1) 当客户程序调用远程的过程时,它实际上只是调用了一个位于本机上的、由 R P C程序包生成的函数。这个函数被称为客户残桩( s t u b)。客户残桩将过程的参数封装成一个网络报文,并且将这个报文发送给服务器程序。
      • 2) 服务器主机上的一个服务器残桩负责接收这个网络报文。它从网络报文中提取参数,然后调用应用程序员编写的服务器过程。
      • 3) 当服务器函数返回时,它返回到服务器残桩。服务器残桩提取返回值,把返回值封装成一个网络报文,然后将报文发送给客户残桩。
      • 4)客户残桩从接收到的网络报文中取出返回值,将其返回给客户程序。
    • 所有网络程序设计的细节都被 R P C程序包、客户残桩和服务器残桩所隐藏。
    • 使用 U D P 时,一个R P C过程调用报文的格式
      TCP/IP详解:协议(TCP协议在应用层的应用)
      • 事务标识符( X I D)由客户程序设置,由服务器程序返回。
      • 调用( c a l l )变量在过程调用报文中设置为 0,在应答报文中设置为 1
      • 程序号、版本号和过程号,标识了服务器上被调用的特定过程。
      • 证书 ( c r e d e n t i a l )字段标识了客户
  • 总结
    TCP/IP详解:协议(TCP协议在应用层的应用) 

第30章:其他的TCP/IP应用程序

TCP/IP详解:协议(TCP协议在应用层的应用)