应用层,建立在传输层的基础上,规定了应用程序的数据格式。
我们所使用的软件都在应用层上工作,每一个应用具有自己的数据格式
,也就是要有共同方言。
只有规定好了数据格式,应用程序才可以和服务端正常交互,用户也才能正常使用这些应用程序。
这些数据格式,也被约定俗成为一些通用协议,也可以自定义协议。
比如:Email、HTTP、FTP都属于应用层协议。
应用程序通过实现这些协议,将应用层数据封装成协议规定的格式,然后由TCP
或者UDP
来进行传输。
每一层对应的封装如下:
常见的应用层协议有:DNS、HTTP。
DNS域名解析协议
IP地址,即使采用十进制点分法
来标识,要记住也是比较困难的,因此产生了域名
。
域名,相比IP地址来说,会比较容易记住,如:www.baidu.com.
而DNS协议
是用来解析域名
,获取真实IP地址的一种协议。
通过nslookup + 域名
,再使用wireshark
抓包,可以看到DNS查询的时候,采用的是UDP
协议,而DNS服务器之间进行数据推送的时候,会采用TCP
协议。
HTTP超文本传输协议
HTTP协议,将数据以明文
的方式传输,所有的www文件
都采用这种方式。
以浏览器
为客户端,以TCP
为底层传输方式。
通过浏览器向服务端发送请求,服务端向客户端浏览器返回响应。