传输层之上的便是应用层。传输层的 UDP 报文和 TCP 报文段的数据部分就是应用层交付的数据。 应用层协议是多种多样的,有DNS、FIP、Telnet、SMTP、HTTP、RIP、NFS等。
DNS(域名服务器)协议基于UDP,使用端口号53。 IP地址的别名——域名,域名与IP地址是相对应的,这种对应关系保存在DNS服务器之中。 和网络层的ARP协议不同的是:DNS提供的是域名与IP地址的对应关系,而ARP提供的是IP地址和MAC地址的对应关系。
DNS服务器 根DNS服务器有13台,编号为A到M,其中大部分位于美国; 顶级(TLD)DNS服务器负责如com、org、edu等顶级域名和所有国家顶级域名; 权威DNS服务器是大型组织、大学、企业的域名解析服务; 本地DNS服务器通常与我们主机最近。 域名解析过程有迭代查询和递归查询两种方式。 host命令 在linux系统中,可以用host命令进行DNS查询,查看一个指定域名的IP。 DNS报文 主机向DNS服务器发出的查询叫做DNS报文,问答报文的内容,都是IP和域名的对应信息,问题中包含域名,类型,类信息,回答中包含指针,类型,类,TTL,长度,IP地址信息。 DNS缓存和hosts文件 使用DNS缓存:当一个DNS服务器接收到一个DNS回答后,会将其信息缓存一段时间,当再有一个对相同域名的查询时,便可直接回复。 通过DNS缓存,其实很多查询都只需要本地DNS服务器便可完成。 hosts 文件可以看作是一个小型的 DNS 服务器。sudo gedit /ect/hosts可以打开hosts文件。 我们可以用 dig 命令进行域名查询。 sudo tcpdump -nt udp port 53可以捕获DNS。 查询的第一个数据包是由本机向首选DNS服务器的53端口发送的DNS查询报文。第二个数据包是应答报文。 sudo tcpdump -nn -vvv -X udp port 53可以查看以十六进制输出的报文内容。
FTP基于TCP,使用端口号20和21。它的主要功能是减少或消除在不同操作系统下处理文件的不兼容性,以达到便捷高效的文件传输效果。
FTP只提供文件传输的基本服务,它采用客户端—服务器的方式,一个FTP服务器可同时为多个客户端提供服务 在进行文件传输时,FTP的客户端和服务器之间会建立两个TCP连接:21号端口建立控制连接,20号端口建立数据连接。 FTP的传输有两种方式:ASCII传输模式和二进制数据传输模式。 可以用sudo tcpdump -r 加上FTP报文信息例包就可以解析例包,前面三帧是客户端与服务器的三次握手,第四帧是服务器向客户端发送相关信息,控制连接建立完成。下面的部分就是客户端向服务器端发送请求,然后服务器端响应客户端的过程。 被动模式中,服务端会创建一个新的随机的非特权端口P与客户端建立数据通道连接。
HTTP基于TCP,使用端口号80或8080. 原理:
点击一个链接后,浏览器向服务器发起TCP连接; 连接建立后浏览器发送HTTP请求报文,然后服务器回复响应报文; 浏览器将收到的响应报文内容显示在网页上; 报文收发结束,关闭TCP连接。 HTTP报文会被传输层封装为TCP报文段,然后再被IP层封装为IP数据报。 报文可分为3部分: 开始行:用于区分是请求报文还是响应报文,请求报文中开始行叫做请求行,而响应报文中,开始行叫做状态行。 首部行:用于说明浏览器、服务器或报文主体的一些信息。 实体主体:请求报文中通常不用实体主体。 请求报文的方法字段是对所请求对象进行的操作,而响应报文的状态码是一个3位数字,分为5类33种: 1xx; 2xx; 3xx; 4xx; 5xx。 我们可以通过浏览器的开发者工具来查看状态码。开发者工具对消息做了一些处理,使输出更为易读,如果我们想查看原始头的信息,可以点击原始头按钮。可以看到消息的请求头和响应头,请求头里包含请求的网址,请求方法,协议版本等。响应头里包含了消息类型,编码,时间等信息。
Telnet协议是TCP/IP协议族中的一员,是Internet远程登录服务的标准协议和主要方式,它基于TCP协议,使用端口23。终端使用者在本地电脑上使用telnet程序,用它连接到服务器,终端使用者可以在telnet程序中输入命令,这些命令会在服务器上运行,就像直接在服务器的控制台上输入一样。 使用Telnet协议的条件:
在本地计算机上必须装有包含Telnet协议的客户程序; 必须知道远程主机的IP地址或域名; 必须知道登录标识与口令。 Telnet远程登录服务的过程: 本地与远程主机建立连接。该过程实际上是建立一个TCP连接,用户必须知道远程主机的IP地址或域名; 将本地终端上输入的用户名和口令及以后输入的任何命令或字符以 NVT格式传送到远程主机。该过程实际上是从本地主机向远程主机发送一个IP数据包; 将远程主机输出的NVT格式的数据转化为本地所接受的格式送回本地终端,包括输入命令回显和命令执行结果; 最后,本地终端对远程主机进行撤消连接。该过程是撤销一个TCP连接。 语法:telnet IP 端口(可选) telnet可以测试目标机器的TCP端口是否开放。 连接失败可能原因: 防火墙屏蔽。 目标机器没有启用相关远程桌面服务。 修改了默认占用xx端口。 netstat -pantu可以验证查询结果。
TFTP是TCP/IP协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务,它基于UDP协议,使用端口69。 TFTP协议设计的时候是进行小文件传输的,与FTP相比少了许多功能,它只能从文件服务器上获得或写入文件,不能列出目录,不进行认证。 优点:
TFTP可用于UDP环境; TFTP代码所占的内存较小,这对于小型计算机或者某些特殊用途的设备来说是很重要的,TFTP具有更多的灵活性,也减少了开销。 TFTP报文格式: 操作码是RRQ:读文件请求,客户端请求读取位于服务器上的文件。 操作码为WRQ:写文件请求,客户端请求写入位于服务器上的文件。 操作码为DATA:数据包,用于传输数据文件。 操作码为ACK:确认包,回应确认信息。 操作码为ERROR:错误包,它用于服务器不能处理读请求或者写请求的情况。
SMTP是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式,它使用TCP协议,使用端口25。 SMTP存在两个端:
在发信人的邮件服务器上执行的客户端。 在收信人的邮件服务器上执行的服务器端。 SMTP的客户端和服务器端同时运行在每个邮件服务器上。当一个邮件服务器在向其它邮件服务器发送邮件消息时,它是作为SMTP客户在运行。 连接和发送过程: 建立TCP连接; 客户端向服务器发送HELO命令以标识发件人自己的身份,然后客户端发送MAIL命令; 服务器端以OK作为响应,表示准备接收; 客户端发送RCPT命令; 服务器端表示是否愿意为收件人接收邮件; 协商结束,发送邮件,用命令DATA发送输入内容; 结束此次发送,用QUIT命令退出;
POP3是TCP/IP协议族中的一员 ,主要用于支持使用客户端远程管理在服务器上的电子邮件,使用TCP协议,使用端口110。POP3邮件服务器大都可以“只下载邮件,服务器端并不删除,也就是改进的POP3协议。 工作过程:
用户运行用户代理; 用户代理与邮件服务器的110端口建立TCP连接; 客户端向服务器端发出各种命令,来请求各种服务; 服务端解析用户的命令,做出相应动作并返回给客户端一个响应; 上述的两个步骤交替进行,直到接收完所有邮件转到下一步,或两者的连接被意外中断而直接退出; 用户代理解析从服务器端获得的邮件,以适当地形式的形式呈现给用户。 POP3和SMTP可以协同工作:
通过smtp协议连接到smtp服务器,然后发一封邮件给A的smtp服务器; 通过smtp协议将邮件转投给sina的smtp服务器; 将接收到的邮件存储到B邮件账号分配的存储空间中; 通过POP3协议连接到POP3服务器收取邮件; 从B账号的存储空间当中取出邮件; POP3服务器将取出来的邮件回送给B账
学习时间 0分钟
操作时间 0分钟
按键次数 0次
实验次数 1次
报告字数 3495字
是否完成 完成