← 返回 计算机网络原理

计算机网络原理

第二章 第3节-第4节

第二章第三节:

文件传输的FTP协议:

FTP使用两个并行TCP链接来进行传输,一个是控制链接,一个是数据链接

控制连接用于在两主机之间传输控制信息:如用户标识口令,put,get之类的命令

数据链接用于实际传输一个文件因为FTP是用两条TCP协议,所以我们说FTP是带外传输的,HTTP用1条线是带内传输的

FTP在会话期间需要保留用户的状态,这也限制了FTP的会话量,与HTTP协议相反

也有一些类似于404的回答,425无法连接,452写错误…

??????? ????3?-?4??? 1??????? ????3?-?4??? 2

接下来看一下Email的传输和SMTP协议,邮箱又三个主要器件:用户代理,邮件服务器,传输协议SMTP

用户代理 :a.k.a. 邮件阅读器(编辑器 写、编辑和阅读邮件 e.g., 谷歌的Outlook, iPhone mail client 发送/接收的邮件被存储在服务器

邮件服务器: 收件箱mailbox包括了到其用户的邮件 邮件队列message queue包括了将要发出的邮件,发送使用SMTP协议在邮件服务器之间发送,客户端:发送邮件的服务器 ,服务器:接收邮件的服务器

??????? ????3?-?4??? 3

接下来我拿口头语言讲述一下发送的流程:假设Alice用户要发送给Bob一封邮件,首先他会在自己的用户代理上写好自己的邮件,之后用SMTP协议(因为SMTP只能往外推自己的数据,而区别与HTTP协议是访问拉数据)发送给本地附近的邮件服务器,之后服务器把他的邮件放到一个报文队列中,尝试发给Bob的附近的邮件服务器,(如果发送失败就隔一段时间再尝试,如果最后失败就返回邮件给Alice说明发送失败),发送给Bob使用SMTP协议发送过去,SMTP是应用层方面,TCP是传输层协议,下层等提供的服务我们还是忽略,之后Bob的邮件服务器受到之后就把这个邮件放自己邮件服务器备份,之后发送Bob的用户代理,使用的是POP3协议(还可以是IMAP)之后Bob就可以用邮箱通过代理打开邮件,(服务器会保留一个副本,然后换别的设备同样可以看到,可以这样下载下来,因为服务器有备份)当他删除邮件的时候,会把代理上的文件标记,但是实际上还未完全删除,只是代理上展现删除了,Bob在客户端退出之后,会发送QUIT到服务器再删除,也就是这个流程(之后还会更详细的说明)

然后看一下SMTP协议:在客户端和服务器之间采用TCP进行可靠的邮件传输(邮件服务器初始化连),服务器端口25

直接传输:源邮件服务器(客户端)直接发 送到接收邮件服务器 ,传输邮件的3个阶段 ,SMTP握手(互致问候), SMTP传输邮件阶段

•SMTP关闭 命令/响应交互(类似于HTTP)

•命令:ASCII 字符 •响应:状态码和状态码的解释

??????? ????3?-?4??? 4??????? ????3?-?4??? 5

邮件报文格式:SMTP: 交换电子邮件的协议,RFC 5321(HTTP RFC 7231) RFC 2822 定义了电子邮件本身的语法(就像HTML定义了web文档的 语法一样)

头部行, e.g., •To: •From: •Subject: 这些行,在电子邮件区域的正文中,不同于 SMTP MAIL from: 和RCPT TO:等命令! 就是和我们之前握手协议的命令不同

邮件的正文:报文内容,仅限于用ASCII字 符描述

POP3:

??????? ????3?-?4??? 6

特许阶段:用户登录的时候返回OK或者ERROR

DNS:首先我们来想想为什么要有DNS, 通过URL进行Web访问和通过邮件地址发送邮件都需要服务器(或主机)地址 ,一种方法是直接使用服务器 的IP地址 但IP地址不好记忆,不便人类使用(没有意义) 人类一般倾向于使用一些有意义的字符串来标识Internet上的设备,例如访问 https://www.ustc.edu.cn/index.html所在的web服务器 qzheng@ustc.edu.cn所在邮件服务器 存在着“字符串”—IP地址转换的必要性

??????? ????3?-?4??? 7

人类用户提供要访问机器的“字符 串”名称 由DNS负责转换成为IP网络地

首先我们来看他的结构这些的再看怎么解决问题:

??????? ????3?-?4??? 8

权威DNS服务器:组织机构的DNS服务器,提供该机构域名与IP之间的映射关系 可以选择实现自己维护,或由某个服务提供商来维护

顶级域(TLD)服务器:负责顶级域名(如com, org, net, edu和gov) 和所有国家级的顶级域名(如cn, uk, fr, ca, jp ) Network solutions 公司维护com TLD服务器 Educause公司维护edu TLD服务器

??????? ????3?-?4??? 9

DNS解析的事情是把域名翻译成目标服务器的IP地址,本质上是名字查询只告诉IP在哪里,DNS如何找到目标IP,纵向是从上级域指向下级域

DNS权威服务器也就是所谓横向查找域名ip和最终服务地点的那片区的权威服务器横向查找他那里的IP,纵向查找是说的是从跟域名服务器逐级向下查找

DNS大致工作过程 Application Layer: 2-90 如何将解析发到根服务器? 应用通过解析器(resolver)向Local Name Server发出查询报文 Local Name Server的地址手工配置或者DHCP配置 Local Name Server返回响应报文(name/ip)(也就是首尾方式,我本地发出查询报文,之后DHCP配置我的DNS,之后经过一系列流程返回我需要的IP,最终访问)

??????? ????3?-?4??? 10

比如说我要访问flyyan.top:第一步我的电配置好DNS--第二步访问我的本地DNS服务器—第三步去根域名服务器,再从映射表里找找到.top服务器的IP,第四步查找到flyyan.top的权威服务器—第五步逐级向下从flyyan.top权威服务器返回DNS—第六七八步逐渐返回这DNS报文(包装了IP之类的)给我的IP(横向传递)

当然浏览器我们现在使用肯定会查我的DNS缓存直接拿IP,当然最后返回给我的也是CDN的缓存web的IP,不是vercel官网的源服务器IP,这样国内外都不会卡,也就是我们上一节提出的问题

一图流:

??????? ????3?-?4??? 11

DNS报文格式如下

??????? ????3?-?4??? 12

了解即可,然后我们的缓存DNS是尽力即可,任何名字服务器一旦获得一个映射,缓存该映射,如果有相关查询,它会立即给出缓存的映射 •缓存提高了响应效率 •某缓存表项在超时时间(TTL)老化时,会被删除,缓存的表项可能会过期(老化) 如果命名主机更换了IP地址,可能在缓存TTL到期之前不被互联网范围的设备所知道,有问题的解析结果是:访问不成功,会再次提出权威记录的解析要求

??????? ????3?-?4??? 13??????? ????3?-?4??? 14

接下来教小伙伴们如何创建自己的网站,下面说到的就是如何增加域:

在上级域的名字服务器中增加两条记录 新增子域的域名,名字服务,这个例子是这样的:

在com域中新增子域“Network Utopia” 到注册登记机构注册域名 networkutopia.com 需要向该机构提供权威DNS服务器(基本的、 和辅助的)的名字和IP地址 登记机构在com TLD服务器中插入两条RR记录: networkutopia.com, dns1.networkutopia.com, NS • dns1.networkutopia.com, 212.212.212.1, A 在权威服务器212.212.212.1的中增加一些 该域的名字和IP地址对应关系用于Web服务器的www.networkuptopia.com 的类型A的记录 用于邮件服务器mail.networkutopia.com的类型 MX的记录

大概什么意思呢就是说拿我的网站举例,注册域名的网站一开始只有少数几家,但是后面他给了别的公司授权,也就是我们可以不去这个母公司,给这些被授权的小公司的域名,我们付款买下域名之后把这个域名的DNS配置到vercel的IP地址就好了,其中,这个小公司会在他的权威服务器新增我们的域名和IP地址,之后他的服务器会往外告诉别的服务器和其他的大公司的服务器增加我们的ip和域名的关系,这个我们不用管,也就是说我们只需要做两件事,买域名然后把DNS配置给vercel,这样就能在把我们的前端代码上传给git仓库让vercel根据前端代码布置网页,之后我们就可以访问了

……明天期中,后面会把我的网页开启登陆和评论功能,对接supabase后端,或者使用mysql,也会学一下redis……怎么又画饼