通信网笔记

应用与分层的体系结构

在这里插入图片描述

协议、服务和分层示例

协议的概念:协议是控制两个或多个通信体之间进行交互的一组规则;协议的目的是提供多种类型的通信服务

计算机中的服务器进程监听来自端口的服务请求。**端口就是一个地址,用来表明哪一个进程将要接收发往特定机器的消息。**应用广泛的应用程序都有其服务器指定的公认端口号,以便其他计算机的客户端进程能够容易地按要求发送请求,服务器对这些请求做出响应。

通过万维网进行浏览

通过万维网(WWW)框架我们可以访问已经连接到Internet上的计算机中的文件,这些文件以**超文本标记语言(HTML)**编写而成,可以包括文本、图表和其他媒体格式,并通过文件中的链接互相联系起来。

通过浏览器程序访问Web页,浏览其中所显示的文档,并可以单击链接来访问其他文档。每一个链接都为浏览器提供了统一资源定位符(URL),URL可以指定存储文档的机器名和包含请求文档的文件名

超文本传输协议(HTTP)详细规定了客户端和服务器端交互与文件读取有关的规则,这些规则还制定了表达请求和响应时的措辞方式。协议假定客户端和服务器端能够直接交换消息。通常情况下,客户端软件需要在HTTP请求之前建立起双向连接。


从Web上获取文档:

1、用户单机链接,以表明需要获取哪份文档,浏览器必须确定包含此份文档的计算机的网络地址。为此,浏览器要向本地域名服务器发送一个查询。

2、一旦获得该地址,浏览器就会同指定机器的服务进程建立起连接,通常是TCP连接,为了使连接建立成功,这个指定的机器必须做好接受TCP连接的准备。

3、浏览器运行HTTP的客户端版本,生成一个请求,规定文档名和可处理的文档格式。

4-6、包含所请求文档的机器运行HTTP的服务器端版本。发送包含以正确格式存储的所需文档HTTP响应,以此来响应HTTP请求。

7-8、用户开始浏览文档。在指定时间后,TCP连接断开。


从Web上获取文档:HTTP消息交换
事件消息内容
1、用户选取文档
2、客户端网络软件定位服务器主机,建立双向连接
3、HTTP客户端发送请求文档的报文GET /comm.html HTTP/1.1
4、HTTP驻留程序TCP端口80侦听并解释报文
5、HTTP驻留程序发送给客户端结果代码和信息描述HTTP /1.1 200 OK
DATE : Tuesday,29 Jan 2020 14:00 GMT
Server : Apache/ 1.3.23(UNIX)
Last Modified : 28 Jan 2020 14:00 GMT
Content-Length : 9999
Content_Type : text/html
6、HTTP驻留程序读取文件并通过TCP端口发送该文件< html >
< head >< title >< /title >…
< font face=“Arial” >What is Communication? < /font >
7、客户浏览器解释HTML格式并显示文本
8、连接一旦空闲一段时间后,HTTP驻留程序断开本次连接

注:

1)步骤五中,驻留程序发送状态行和所要发送信息的描述,结果代码200表示客户请求成功。接下来开始发送文件,该消息还包含服务器软件信息、文档长度(9999字节)和文档内容的格式(text/html格式)。如果请求时一幅图片,则它可能是image/gif格式。如果请求失败,服务器将发送另一个不同的结果代码,该代码通常表示失败的类型,如404表示找不到所请求的文件。

2)步骤六中,HTTP驻留程序通过TCP连接来发送文件,与此同时客户端接受该文件并加以显示(步骤七)。服务器保持TCP连接为活动状态,以此接受来自客户端的其他请求。如果TCP连接空闲时间达到某一特定值,服务器将断开本次TCP连接。

HTTP协议仅仅参与到两个对等进程(客户端和服务器端)之间的交互,协议假设对等进程间的交换是直接的,但事实上客户端机器和服务器端通常并不是直接相连的**(两个对等进程的交互是虚拟的,通过TCP间接发生)**,TCP协议提供了网络生两个机器进程间的通信服务(以正确顺序无差错传输字节流的双向连接)

每一个HTTP进程都将自己的消息插入缓冲区,TCP以信息块(段segment)的形式将缓冲区的内容传输到其他的TCP。每一段都包含有端口号和HTTP消息信息,HTTP调用低于该层的TCP所提供的服务。

HTTP应用协议调用TCP

当HTTP客户端软件首次需要建立TCP连接时,客户端软件即通过一系列的**套接字系统调用(socket system call)**建立起连接。这些调用除了在套接字系统调用时要将控制权交给操作系统内核外,其他都类似于函数调用。*套接字系统调用规定了特定的动作,还可能包含了套接字类型(如TCP或UDP)和地址信息等参数。*这样HTTP层与TCP层之间的交互就可以通过这些套接字系统调用来实现。

DNS查询

在HTTP执行前,客户端首先要执行一个DNS查询,以获取对应于域名的IP地址。这一步通过向DNS服务器发送消息来完成。DNS位于Internet多台机器的分布式数据库,他们可以将域名和IP地址进行转换,并提供电子邮件的路由信息。

DNS解析(http是基于TCP连接的,而TCP则是通过IP地址去识别访问的),DNS 解析就是域名转化成IP地址的过程。

查询类型(四种DNS查询)

第一种是本地解析,就是客户端可以使用缓存信息就地应答,这些缓存信息是通过以前的查询获得的;

第二种是直接解析,就是直接由所设定的DNS服务器解析,使用的是该DNS服务器的资源记录缓存或者其权威回答(如果所查询的域名是该服务器管辖的);

第三种是递归查询,即设定的DNS服务器代表客户端向其他DNS服务器查询,以便完全解析该名称,并将结果返回至客户端。

第四种是迭代查询,即设定的DNS服务器向客户端返回一个可以解析该域名的其他DNS服务器,客户端再继续向其他DNS服务器查询。

2、DNS查询和响应示例

直接解析过程:

事件消息内容
1、应用程序请求域名到地址的转换
2、解析器构成查询消息Header : OPCODE=SQUERY
Question :
QNAME=tesla.comm.toronto.edu. ,
QCLASS=IN,QTYPE=A
3、解析器发送封装查询消息的UDP数据报
4、DNS服务器查询地址,做好响应准备Header : OPCODE=SQUERY,
RESPONCE, AA
Question : QNAME=
tesla.comm.toronto.edu. ,
QCLASS=IN,QTYPE=A
Answer : tesla.comm.toronto.edu.
86400 IN A 128.100.11.1
5、DNS发送封装响应消息的UDP数据报

注:

1)DNS消息报头的OPCODE值表明该消息为标准查询,查询的问题部分包含如下信息:QNAME指出所要翻译的域名;DNS服务器可以处理多种查询(IN表示是一个Internet地址),查询类型有QTYPE所确定(A表示要求将域名翻译为一个IP地址)。

2)步骤四中服务器发回的短消息报头设置了响应和授权应答位,表明响应来自管理域名的组织。问题部分同查询的问题部分相同,应答部分包含提供IP地址的域名,紧跟其后的是生存期字段,该字段以秒为单位规定信息在客户端缓存时间的长短。接下来是QCLASS和QTYPE值,IN值再次表明为Internet地址。最后给出与域名对应的IP地址。

3)DNS查询和响应消息利用用户数据报协议(UDP)提供的通信服务进行传输。UDP客户端将一个报头(header)附加到用户信息中,用以提供端口信息(DNS端口为53),UDP客户端还将结果数据块封入IP包。UDP服务是无连接的,无需建立连接即可直接发送数据报(DNS查询和响应包含短消息,从而使得UDP更加适合于传输查询和响应)。

SMTP和电子邮件

利用简单邮件传输协议(Simple Mail Transfer Protocol,SMTP)进行电子邮件传输

事件消息内容
1、邮件应用程序建立到本地SMTP服务器的TCP连
接(端口25)
2、SMTP驻留程序将如下消息发送到客户端,表明
已做好接受邮件的准备
220 tesla.comm.toronto.edu ESMTP
Sendmail 8.9.0/8.9.0; Thu,
2 Jul 1998 05:07:59 -0400 (EDT)
3、客户端发送HELO消息并对自己进行标识HELO bhaskara.comm.utoronto.ca
4、SMTP发送250消息,表明客户端可以继续发送250 tesla.comm.toronto.edu Hello
bhaskara.comm [128.100.10.9],
please to meet you
5、客户端发送发送端的电子邮件MAIL FROM:
< banerjea@comm.utoronto.ca >
6、如果成功,SMTP驻留程序将返回250消息250
< banerjea@comm.utoronto.ca >…
Sender ok
7、客户端发送接收端的地址RCPT TO: < alg@nal.utoronto.ca >
8、返回250消息250 < alg@nal.utoronto.ca >…
Recipient ok
9、客户端发送DATA消息,请求发送邮件消息的权限DATA
10、SMTP驻留程序发送消息,准许客户端发送邮件消息354 Enter mail, end with “.” on
a line by itself
11、客户端发送实际文本Hi AL,
This section on email sure needs
a lot of work…
12、驻留程序指示已收到待传递的消息,返回消息ID250 FAA00803 Message accepted for
delivery
13、客户端指示邮件会话结束QUIT
14、驻留程序确认绘画结束221 tesla.comm.toronto.edu
closing connection

在传输电子邮件消息之前,引用进程必须建立到本地SMTP服务器的TCP连接(步骤一)。此后发生的一系列数据交换都使用SMTP协议,在这些交换中,客户端识别出自身、发送方和接收方(步骤2-8)。然后,客户端将SMTP服务器所接受的消息传输到服务器,并由服务器传递出去,邮件传送任务即告完成(步骤9-12),这样就结束了这次邮件会话。本地SMTP服务重复这一过程,将消息传输给目标SMTP服务器。为了获取目标SMTP服务器的地址,本地服务器要执行一个类型为MX(邮件交换)的DNS查询。SMTP在目标机器可用时工作最有效,为此,PC环境的用户通常使用POP3从邮件服务器上获取电子邮件。

TCP和UDP传输层服务

电子邮件、DNS查询与HTTP示例都展示了多个协议如何利用TCP和UDP协议所提供的通信服务进行操作,TCP和UDP协议通过IP所提供的无连接分组网络服务执行操作

UDP提供Internet上主机进程之间无连接的数据报传输,并提供端口编号,以识别每一个主机的源进程和目标进程。

TCP提供了Internet上主机进程之间字节流的可靠传输,进程将字节写到缓冲区,并通过TCP跨Internet传输。

事实上,在TCP和UDP的基础上已经开发出了一整套协议,因此这一点证实了分层概念的有效性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值