DNS

域名系统(Domain Name System, DNS)是因特网使用的命名系统,用来把便于人们记忆的具有特定含义的主机名转换为便于机器处理的IP地址。
相对于IP地址,人们更喜欢使用具有特定含义的字符串来标识因特网上的计算机。
DNS系统采用客户/服务器模型,其协议运行在UDP之上,使用53号端口。
从概念上可将DNS分为3部分:层次域名空间、域名服务器和解析器。

大致工作流程
image.png
因特网采用层次树状结构的命名方法。采用这种命名方法,任何一个连接到因特网的主机或路由器,都有一个唯一的层次结构名称,即域名。
域是名字空间中一个可被管理的划分。
域还可以划分为子域,而子域还可以继续划分为子域的子域,这样就形成了顶级域、二级域、三级域等。
在域名系统中,每个域分别由不同的组织进行管理。每个组织都可以将它的域再分成一定数目的子域,并将这些子域委托给其他组织去管理。
image.png
每个域名都由标号序列组成,而各标号之间用点(“.”)隔开。
image.png

DHCP

DHCP(动态主机配置协议)是一个局域网的网络协议。指的是由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分配的IP地址和子网掩码。DHCP是应用层协议,它是基于UDP的。

DHCP的工作原理如下

使用客户/服务器方式
需要IP地址的主机在启动时就向DHCP服务器广播发送发现报文,这时该主机就成为DHCP客户。本地网络上所有主机都能收到此广播报文,但只有DHCP服务器才回答此广播报文。
DHCP服务器先在其数据库中查找该计算机的配置信息。若找到,则返回找到的信息。
若找不到,则从服务器的IP地址池中取一个地址分配给该计算机。DHCP服务器的回答报文称为提供报文。
image.png

HTTP

HTTP定义了浏览器(万维网客户进程)怎样向万维网服务器请求万维网文档,以及服务器怎样把文档传送给浏览器。
从层次的角度看,HTTP是面向事务的应用层协议,它规定了在浏览器和服务器之间的请求和响应的格式与规则,是万维网上能够可靠地交换文件(包括文本、声音、图像等各种多媒体文件)的重要基础。

操作过程
在浏览器和服务器之间的请求与响应的交互,必须遵循规定的格式和规则,这些格式和规则就是HTTP。
HTTP有两类报文:
请求报文(从Web客户端向Web服务器发送服务请求)
响应报文(从Web服务器对Web客户端请求的回答)。
从协议执行过程来说,浏览器要访问WWW服务器时,首先要完成对www服务器的域名解析。
一旦获得了服务器的IP地址,浏览器就通过TCP向服务器发送连接建立请求。
image.png
每个万维网站点都有一个服务器进程,它不断地监听TCP的端口80(默认),当监听到连接请求后便与浏览器建立连接。
TCP连接建立后, 浏览器就向服务器发送请求获取某个Web页面的HTTP请求。
服务器收到HTTP请求后,将构建所请求Web页的必需信息,并通过HTTP响应返回给浏览器。
浏览器再将信息进行解释, .然后将Web页显示给用户。
最后,TCP连接释放。

HTTP特点
HTTP是无状态的。也就是说,同一个客户第二次访问同一个服务器上的页面时,服务器的响应与第一次被访问时的相同。
因为服务器并不记得曾经访问过的这个客户,也不记得为该客户曾经服务过多少次。
HTTP的无状态特性简化了服务器的设计,使服务器更容易支持大量并发的HTTP请求。

在实际应用中,通常使用Cookie 加数据库的方式来跟踪用户的活动(如记录用户最近浏览的商品等)。
Cookie 是一个存储在用户主机中的文本文件,里面含有一-串“识别码”,如“123456”,用于Web服务识别用户。
Web服务器根据Cookie就能从数据库中查询到该用户的活动记录,进而执行一些个性化的工作,如根据用户之前浏览过的商品向其推荐新产品等。

HTTP采用TCP作为运输层协议,保证了数据的可靠传输。
HTTP不必考虑数据在传输过程中被丢弃后又怎样被重传。
但是,HTTP本身是无连接的。也就是说,虽然HTTP使用了TCP连接,但通信的双方在交换HTTP报文之前不需要先建立HTTP连接。

HTTP既可以使用非持久连接,也可以使用持久连接(HTTP/1.1支持)。

对于非持久连接,每个网页元素对象(如JPEG图形、Flash 等)的传输都需要单独建立一个TCP连接。
也就是说,请求一个万维网文档所需的时间是该文档的传输时间(与文档大小成正比)加上两倍往返时间RTT(一个RTT用于TCP连接,另一个RTT用于请求和接收文档)。

持久连接,是指万维网服务器在发送响应后仍然保持这条连接,使同一个客户和服务器可以继续在这条连接上传送后续的HTTP请求与响应报文。
持久连接又分为非流水线和流水线两种方式。
对于非流水线方式,客户在收到前一个响应后才能发出下一个请求;
HTTP/1.1 的默认方式是使用流水线的持久连接。这种情况下,客户每遇到一个对象引用就立即发出一个请求,因而客户可以逐个地连续发出对各个引用对象的请求。如果所有的请求和响应都是连续发送的,那么所有引用的对象共计经历1个RTT延迟,而不是像非流水线方式那样,每个引用都必须有1个RTT延迟。

Telnet

Telnet协议是TCP/IP协议族中的一员,是Internet远程登录服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主机工作的能力。在终端使用者的电脑上使用telnet程序,用它连接到服务器。终端使用者可以在telnet程序中输入命令,这些命令会在服务器上运行,就像直接在服务器的控制台上输入一样。可以在本地就能控制服务器。要开始一个telnet会话,必须输入用户名和密码来登录服务器。Telnet是常用的远程控制Web服务器的方法。

工作过程
1)本地与远程主机建立连接。该过程实际上是建立一个TCP连接,用户必须知道远程主机的Ip地址或域名;
2)将本地终端上输入的用户名和口令及以后输入的任何命令或字符以NVT(Net Virtual Terminal)格式传送到远程主机。该过程实际上是从本地主机向远程主机发送一个IP数据包;
3)将远程主机输出的NVT格式的数据转化为本地所接受的格式送回本地终端,包括输入命令回显和命令执行结果;
4)最后,本地终端对远程主机进行撤消连接。该过程是撤销一个TCP连接。

POP3

邮局协议( Post Office Protocol, POP) 是一个非常简单但功能有限的邮件读取协议,现在使用的是它的第3个版本POP3。
POP3 采用的是“拉”(Pull)的通信方式,当用户读取邮件时,用户代理向邮件服务器发出请求,“拉”取用户邮箱中的邮件。
POP也使用客户/服务器的工作方式,在传输层使用TCP,端口号为110。接收方的用户代理上必须运行POP客户程序,而接收方的邮件服务器上则运行POP服务器程序。
POP有两种工作方式:“下载并保留”和“下载并删除”。
在“下载并保留”方式下,用户从邮件服务器上读取邮件后,邮件依然会保存在邮件服务器上,用户可再次从服务器上读取该邮件;
使用“下载并删除”方式时,邮件一旦被读取,就被从邮件服务器上删除,用户不能再次从服务器上读取
image.png

SMTP

SMTP 规定了在两个相互通信的 SMTP 进程交换信息的方法。
SMTP 使用客户–服务器方式。
SMTP 基于 TCP 实现客户与服务器的通信。

SMTP的三个阶段:连接建立,邮件发送和连接释放
image.png
image.png
image.png