计算机网络-自定向下方法之应用层
5月箴言
住进布达拉宫,我是雪域最大的王。流浪在拉萨街头,我是世间最美的情郎。
第二章
本章节主要是对应用层相关的概述。主要是摘出觉得比较重要或者关键的部分,以及个人理解
2.1
研发网络应用程序核心就是写出能够运行在不同的端系统和通过网络彼此通信的程序。
网络核心程序并不在应用层起作用,而尽在较低层起作用,特别是在网络层及以下层次起作用。
套接字是同一台主机内应用层与运输层之间的接口。套接字是建立在网络应用程序的可编程接口,因此套接字也被称为应用程序和网络之间的应用程序编程接口。
应用程序开发者可以控制套接嘴在应用层端的一切,但是对该套接字的运输层及户没有控制权。
应用程序开发者对运输层的控制权仅限于:1)选择运输层协议;2)也许能设定几个运输层参数(例如最大缓存和最大报文字段程度等)。
运输层协议(UDP/TCP)能够提供的服务:
- 可靠数据传输
- 吞吐量
- 定时
- 安全性
TCP:面向连接的、可靠的数据传输服务。其安全是SSL(Secure Sockers Layer),它不会与TCP/UDP在相同层次上的第三种运输层协议,而是一种对TCP的加强,这种强化是在应用程上实现的。一般邮件、远程终端访问、Web、文件传输、流式多媒体使用TCP传输协议。
UDP:是一种不提供不必要服务的轻量级运输协议,它仅提供最小服务,它是无连接的。一般网络电话会选择UDP,但是许多防火墙配置成阻挡UDP流量,所以网络电话应用通常设置为如果UDP通信失败就使用TCP作为备份。
应用层协议定义了运行在不同端锡荣上的应用程序进程如何进行传递报文。特别是定义了:
- 交换的报文类型,例如请求报文和响应报文。
- 各种报文类型的语法,如报文中的各个字段以及这些字段是如何描述的。
- 字段的语义,即这些字段中的信息的含义。
- 确定一定进程何时以及如何发送报文,对报文进行响应的规则。
应用层协议:例如HTTP(超文本传输协议)、SMTP(简单邮件传输协议)
2.2 Web 和 HTTP
HTTP(HyperText Transfer Protocol)超文本传输协议。HTTP由两个程序实现:一个客户程序和一个服务器程序。
分层体系结构最大的优点,即HTTP协议不用担心数据丢失,也不关心TCP从网络数据丢失和乱序故障中恢复的细节。
非持续连接和持续连接(HTTP默认使用持续连接,HTTP客户和服务器也能配置成使用非持续连接)
2.3 因特网中的电子邮件
电子邮件系统由三个主要组成部分:用户代理、邮件服务器和简单邮件传输协议(Simple Mail Transfer Protocol,SMTP)
SMTP和HTTP的区别:
- HTTP主要是一个拉协议,即在方便使用的时候,某些人在Web服务器上装载信息,用户使用HTTP从该服务器拉取这些信息。这里的TCP连接是想接收文件的机器发起的。
- SMTP基本上是一个推协议,即发送哟见服务器把文件推向接收邮件服务器。这里的TCP连接是由想发送该文件的机器发起的
- SMTP要求每个报文(包括它们的体)才有7比特ASCII码格式,HTTP不受这个规则限制。
- HTTP把每个对象封装到它自己的HTTP响应报文中,SMTP则把所有的报文对象放在一个报文之中。
2.4 DNS:因特网的目录服务
DNS是:一个由分层的DNS服务器实现的分布式数据库,一个使得主机能够查询分布式数据库的应用层协议。实现的是主机名到IP地址转换的目录服务。
DNS协议运行在UDP之上,使用53端口。
三种类型的DNS服务器
- 根DNS服务器
- 顶级域DNS服务器
- 权威DNS服务器
还有一种是本地DNS服务器
DNS查询:递归查询和迭代查询。实际应用中一般是:从请求到本地DNS服务器查询是递归的,其他的查询是迭代的。
DNS自身已经显示了对抗攻击的令人惊讶的健壮性。至今为止,还没有一个攻击已经成功的妨碍了DNS服务。
对DNS攻击:
- 分布式拒绝服务带宽洪泛攻击:因为大多数本地DNS服务器缓存了顶级域名服务器的IP地址,使得这些请求通常绕过DNS根服务器
- 向顶级域名服务器发送大量的DNS请求:本地DNS服务器中的缓存技术可将部分缓解
- 中间人攻击:这个攻击难以实现,因为它们要求截获分组或扼制住服务器
2.5 P2P文件分发
2.6 视频流和内容分发网
2.7 套接字编程:生成网络应用