文章目录
- 名词含义
- 1.应用层
- 1.1网络应用原理
- 1.1.1网络应用体系
- 1.1.2进程通信
- 1.1.3可供程序使用的运输服务
- 1.1.4因特网的运输服务
- 1.1.5应用层协议
- 1.2WEB和HTTP
- 1.2.1HTTP概述
- 1.2.2持续与非持续连接
- 1.2.3报文格式
名词含义
ISP(Internet Service Provider,因特网服务提供商):
ISP通过不同的技术和协议将用户的设备与互联网连接,ISP不仅提供上网服务,还可以提供域名注册、网页托管、数据中心、网络安全等附加服务。
分类大概为:个人/家庭ISP、商用/企业ISP、托管ISP等
主机(端系统):
包括传统的如pc、服务器、手机等,和非传统的包括电视、汽车、家用电器、运输控制系统等设备。
套接字接口(socket interface):
是一种用于网络通信的编程接口,允许程序通过网络与其他计算机上的程序进行数据交换。它定义了程序如何请求操作系统利用网络基础设施将数据从本地端系统传输到远程端系统的特定程序。
DSL、DSLAM:
DSL(Digital Subscriber Line,数字用户线):宽带接入住宅的方式其一(另一个是电缆),每个用户的DSL调制解调器使用电话线与本地中心局(CO)中的数字用户线接入复用器(DSLAM)进行交换数据。
**AON、PON:**两种光纤分布体系
AON(Active Optical Network,有源光纤网络):本质上是交换以太网
PON(Passive Optical Network,无源光纤网络):
1.应用层
1.1网络应用原理
1.1.1网络应用体系
现代网络应用程序中两种主流体系结构:客户-服务器体系结构(CS)、对等体系结构(P2P)
客户-服务器体系结构(CS)
特点:客户之间不能直接通信、有固定的ip地址
常见这类的应用程序:Web、FTP、Telnet、电子邮件
由于单台服务器很难跟上所有客户请求,因此出现了托管大量主机的数据中心(被用于创建强大的虚拟服务器 )
P2P体系结构
特点:对位于数据中心的专用服务器依赖很小、应用程序在间断连接的主机之间直接通信。还具有自拓展性
1.1.2进程通信
进程通信实际上是进程。 在一对进程之间的通信中,发起通信的进程被标志为客户,在绘画开始等待联系的进程为服务器。
多个进程运行在相同的端系统上时,使用进程间通信机制进行通信。
两个不同端系统通过跨越计算机网络 交换报文 进行通信
进程与网络间的接口(socket)
多数程序由通信进程对组成,每对的两个进程互相发送报文,一个进程向另一个进程发送报文必须经过网络。进程通过一个叫**套接字(socket)**的软件接口向网络发送报文和接受报文。
(就像两个房子之间通过一个快递员来回通信,套接字就是那个门)
套接字是同一台主机内应用层与传输层之间的接口。这个套接字是建立网络应用程序的可编程接口,因此也被称为应用编程接口(API,Application Programming Interface)
开发者可以控制套接字在应用端的一切
但对传输层的控制仅限于对传输层协议的选择和设定几个传输层参数
进程寻址
一台主机的进程为了向另一台主机运行的进程发送分组,接收进程需要有一个地址。
标识该进程需要定义: 主机的地址;在目的主机中指定接收进程的标识符
1.1.3可供程序使用的运输服务
1.1.4因特网的运输服务
1.TCP服务
特点:面向连接服务,可靠的数据传输服务 ,还具有拥塞控制机制
面向连接服务:客户和服务器之间进行三次握手之后,TCP连接就会在两个进程的套接字之间建立。当要解除连接时,需要进行四次挥手。
可靠的数据传输服务:进程依靠TCP通信,能够无差错、按适当顺序交付所有发送的数据,且没有自己的丢失和冗余。
2.UDP服务
特点:不提供不必要的服务、无连接
在两个进程之间没有握手过程,是一种不可靠数据传输协议
由于TCP和UDP本身没有任何加密机制,所以出现了TCP加强版:TLS(Transport Layer Security),有加密、数据完整型、端点鉴别的服务。
1.1.5应用层协议
HTTP(超文本传输)、DNS(域名系统)、FTP(文本传输协议)、Telnet(远程终端协议)、SMTP(电子邮件系统)、POP3(邮件读取协议)、SNMP(简单网络关系协议)、DHCP(动态主机设置协议)等
1.2WEB和HTTP
1.2.1HTTP概述
HTTP(HyperText Transfer Protocol)是Web的应用层协议。HTTP定义了客户和服务器之间报文的结构和报文交换方式。
HTTP使用TCP运输协议。客户先发起一个与服务器的TCP连接,连接建立之后,浏览器和服务器进程就可以通过套接字端口访问TCP。
HTTP初始版本为HTTP/1.0 ,到2020年为止,大部分HTTP事务采用HTTP/1.1 现在也出现了HTTP/2.0
HTTP是一个无状态协议,不会保存任何关于客户的任何信息
1.2.2持续与非持续连接
非持续连接的HTTP
每个TCP连接只传输一个请求报文和响应报文。如果一个web页面中有10个png图片和1个html文件,那么请求该页面需要11次TCP连接。
持续连接的HTTP
服务器在发送响应之后保持该TCP连接打开
HTTP/1.0采用非持续连接 HTTP/1.1采用持续连接
1.2.3报文格式
请求报文
请求方法:GET、POST、HEAD、PUT、DELETE
POST /index.html HTTP/1.1 请求方法 url 协议/版本号
Host: node4.anna.nssctf.cn:28511 localhost 主机地址
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:10.0.2) Gecko/20100101 Firefox/10.0.2
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-cn,zh;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive
Referer: <a target=_blank href="http://localhost/" style="color: rgb(51, 102, 153); text-decoration: none;">http://localhost/</a>
Cookie:
Content-Length: 25
Content-Type: application/x-www-form-urlencoded
请求空行 标志着请求头结束,请求正文(请求体)的开始
username=aa&password=1234
如果是GET请求 在队友目录后面加?之后进行传参。例如:GET /index.php?name=1 HTTP/1.1
响应报文