计网课程笔记2

前言

课程链接
本文仅供个人预习和知识点记录你这不就是抄了一遍PPT吗用。


依照学校教学安排,第二章为应用层(即网课第六章)

应用层协议的特点

每个应用层协议都是为了解决某一类应用问题,而问题的解决是通过位于不同主机中的多个应用之间的通信和协同工作来完成的,应用层的具体内容就是规定应用进程在通信时所遵循的协议。
应用层的许多协议都是基于客户服务器方式,客户和服务器均为通信中所涉及的两个应用进程,客户服务器方式描述的是进程之间服务与被服务的关系

2.1 域名系统DNS

2.1.1 什么是DNS

  • 域名系统:是互联网的一项服务,它是将域名和IP地址相互映射的一个分布式数据库,使人更容易地访问互联网、记忆网址
  • 互联网采用层次结构的命名树作为主机的名字
  • 域名服务器:运行名字到IP地址的解析程序的机器,域名服务器程序在专设的结点上运行

    2.1.2 互联网的域名结构

  • 互联网采用层次树状结构的命名方法
  • 任何一个连接在互联网上的主机或路由器,都有一个唯一的层次结构的名字,即域名
  • 域名的结构由标号序列组成,各标号之间用点隔开
  • 标号最长63个字符(不包含相隔的点),域名最长253个字符

例如:www.baidu.com,从左到右依次为:三级域名、二级域名、顶级域名,等级从低到高,有几段标号,www就是几级域名

顶级域名TLD

  • 国家顶级域名nTLD:.cn/.us/.ru…
  • 通用顶级域名gTLD:.gov(政府)/.edu(教育机构)/.org(非营利性组织)/.mil(军事部门)/.net(网络服务机构)/.int(国际组织)/.com或.biz(公司和企业)/.jobs(人力企业)/.coop(合作团体)/.aero(航空公司)/.pro(持有证书的专业人员)/.name(个人)/.museum(博物馆)…当.edu/.gov/.mil是顶级域名时,则域名均为美国专用,其他国家需要添加国家顶级域名

    2.1.3 域名服务器

既然域名系统是一个数据库,那么它放在哪里?

  • :一个服务器所负责管辖(或有权限的)范围
  • 各单位根据具体情况来划分自己管辖范围的区,但在一个区内的所有节点必须是能够连通的
  • 每一个区内所有主机的域名到IP地址的映射均存放在该区的权限域名服务器
  • DNS服务器的管辖范围不以“域”为单位,而是以“区”为单位
  • 找到域名对应的IP地址首先要找到根域名服务器,然后找其下的顶级域名服务器逐级往下直到找到域名
  • 根域名服务器共有13套装置,不是13个机器,这些装置对应的域名为从a.rootservers.net到m.rootservers.net,其中一套为主根服务器,其余12套为辅根服务器,截止到2016年2月,全世界已经在588个地点安装了根域名服务器 (有1000台以上的服务器)(为了让世界上大部分DNS域名服务器都能就近找到一个域名服务器),所以根域名服务器不是13个机器,一套装置就是一个根服务器集群,访问根服务器的域名需要32个字节
  • 在IPV4下,为了在大多数的网络上进行传输,一个DNS数据包的大小规定小于等于512个字节,传输时在这个数据包的基础上还要加上8个字节大小的UDP头部,20个字节大小的IP,一定字节大小的数据链路层头部等等
  • 为什么根域名服务器只有13个:存放一个根域名服务器的域名需要32字节,而一个DNS数据包的大小规定小于等于512个字节,其中包含了13台根服务器的域名共416字节,为了省出足够空间存放其他参数,因此目前只有13台根服务器
  • 根域名服务器不直接把域名转换成IP地址,在使用迭代查询时,根域名服务器把下一步应当找的顶级域名服务器的IP地址告诉本地域名服务器
  • 顶级域名服务器:负责管理在该顶级域名服务器注册的所有二级域名,当收到DNS查询请求时,就给出相应的回答 (可能是最后的结果,也可能是下一步应当找的域名服务器的IP地址)
  • 分区域名服务器:负责一个区的域名服务器,当一个权限域名服务器还不能给出最后的查询回答时,就会告诉发出查询请求的DNS客户下一步应当找哪一个权限域名服务器
  • 本地域名服务器:当一个主机发出DNS查询请求时,这个查询请求报文就将发送给本地域名服务器,每一个互联网服务提供者ISP都可以拥有一个本地域名服务器,这种域名服务器也称为默认域名服务器
  • 本地域名服务器采用迭代查询:当一个主机发出DNS查询请求时,这个请求将最先送到本地域名服务器,如果这个域名和对应的IP在服务器内没有存储或IP已经过期则本地域名服务器首先询问根域名服务器,获得顶级域名服务器IP,本地域名服务器再根据得到的IP询问顶级域名服务器,获得权限域名服务器IP,再根据得到的IP逐级向下询问次级权限域名服务器,直到获得完整的IP,本地域名服务器将域名和IP进行存储,最后将IP传给主机,完成查询。如果这个域名和对应的IP在服务器内存在或有效则本地域名服务器将存储的IP发送给主机,结束查询。
  • 本地域名服务器采用递归查询(少用)如果这个域名和对应的IP在服务器内没有存储或IP已经过期,则本地域名服务器首先询问根域名服务器,根域名服务器再询问顶级域名服务器,顶级域名服务器再询问权限域名服务器,权限域名服务器逐级向下询问直到所有标号序列均查询完毕,询问顺序中最后一个权限域名服务器将完整的IP逐级返回到上一级域名服务器,根域名服务器将IP返回给本地域名服务器,本地域名服务器将域名和IP进行存储,最后将IP传给主机,完成查询。如果这个域名和对应的IP在服务器内存在或有效则本地域名服务器将存储的IP发送给主机,结束查询。由于根服务器是公共资源,我们希望根服务器的资源利用最大化,因此查询常常只发生在主机和本地域名服务器之间。
  • 名字的高速缓存:每个域名服务器都维护一个高速缓存,存放最近用过的名字以及从何处获得名字映射信息的记录,这么做可以大大减轻根域名服务器的负荷,使互联网上的DNS查询请求和回答报文的数量大为减少。为了保持高速缓存中的内容正确,域名服务器应该为每项内容设置计时器,并处理超过合理时间的项。当权限域名服务器回答一个查询请求时,在响应中都指明绑定有效存在的时间值,增加此时间值可以减少网络开销,减少此时间值可以提高域名转换的准确性

2.2 文件传送协议

2.2.1 文件传送协议(File Transfer Protocol,FTP)概述

  • FTP是互联网上使用最广泛的文件传送协议,有两种传输方式:ASCII传输bit传输
  • FTP提供交互式的访问,允许客户指明文件的类型和格式,并允许文件具有存取权限
  • FTP屏蔽了各计算机系统的细节,因而适用于在异构网络中任意计算机之间传送文件
  • RFC959很早就成为了互联网的正式标准

2.2.2 FTP的基本工作原理

  • 文件传送协议FTP只借助TCP可靠的运输服务提供文件传送的一些基本服务
  • FTP的主要功能是减少或消除在不同操作系统下处理文件的不兼容性
  • FTP使用客户-服务器工作方式,一个FTP服务器进程可同时为多个客户进程提供服务。FTP的服务器进程由一个主进程和若干个从属进程两大部分组成,主进程负责接受新的请求,从属进程负责处理单个请求

主进程的工作步骤

  • 打开熟知端口(端口号为21),使客户进程能够连接上
  • 等待客户进程发出连接请求
  • 启动从属进程来处理客户进程发来的请求,从属进程对客户进程的请求处理完毕后即终止,但从属进程在运行期间根据需要还可能创建其它一些子进程
  • 回到等待状态,继续接受其他客户进程发来的请求,主进程与从属进程的处理是并发地进行

控制连接和数据连接

  • 控制连接在整个会话期间一直保持打开,FTP客户发出的传送请求通过控制连接发送给服务器端的控制进程,但控制连接不用来传送文件
  • 连接建立后,通过20号端口来进行数据连接(21号端口仍然打开),用于传输文件。服务器端的控制进程在接收到FTP客户发送来的文件传输请求后就创建数据传送进程数据连接,用来连接客户端和服务器端的数据传送进程
  • 数据传送进程实际完成文件的传送,在传送完毕后关闭数据传送连接并结束运行
  • 当客户进程向服务器进程发出建立连接请求时,要寻找连接服务器进程的熟知端口(21),同时还要高速服务器进程自己的另一个端口号码用于数据传送连接,之后服务器用自己传送数据的熟知端口(20)与客户进程所提供的端口号码建立数据传送连接
  • 使用两个不同端口号的好处
    • 使协议更加简单和更容易实现
    • 在传输文件时还可以利用控制连接来控制传输文件进程。

网络文件系统(Network File System,NFS)的思路

  • NFS允许应用进程打开一个远地文件,并能在该文件的某一个特定的位置上开始读写数据
  • NFS可使用户只复制一个大文件中的一个很小的片段,而不需要复制整个大文件,NFS软件把需要添加的数据和写数据请求一起发送到远地计算机的NFS服务器,NFS服务器更新文件后返回应答信息 (比如git bash)
  • NFS在网络上传送的只是少量的修改数据

2.2.3 简单文件传送协议(Trival File Transfer Protocal,TFTP)

  • TFTP是一个很小且易于实现的文件传送协议
  • TFTP使用客户服务器方式和使用UDP (无连接运输)数据报,因此TFTP需要有自己的差错改正措施
  • TFTP只支持文件传输而不支持交互
  • TFTP没有一个庞大的命令集,没有列目录的功能,也不能对用户进行身份鉴别

2.3 远程终端协议TELNET(课程略)


2.4 万维网WWW


2.5 电子邮件

2.5.1电子邮件概述

  • 电子邮件的传送方式是将邮件发送到收件人使用的邮件服务器并放在其中的收件人邮箱中,收件人可随时上网到自己使用的邮件服务器进行读取,是一种非即时的通信方式。
  • 电子邮件具有方便、传递迅速、费用低廉的优点
  • 电子邮件的标准:发送邮件SMTP读取邮件POP3和IMAP同时传送多种类型数据MIME
  • 电子邮件的传送过程:发件人以SMTP标准借助TCP可靠的运输服务向发送方邮件服务器的25号端口传送邮件,发送方邮件服务器以SMTP标准借助TCP向接收方邮件服务器发送邮件,接收方邮件服务器以POP3/IMAP标准读取邮件,收件人以POP3/IMAP标准从接收方邮件服务器读取邮件 (POP3服务器和POP3客户之间的通信是由POP3客户发起的)
  • 用户代理(User Agent,UA):用户与电子邮件系统的接口,是电子邮件客户端软件,功能是撰写、显示、处理和通信,邮件服务器的功能是发送和接收邮件,同时还要向发信人报告邮件传送的情况
  • TCP/IP体系的电子邮件系统规定电子邮件地址的格式:收件人邮箱名@邮箱所在主机的域名

2.5.2简单邮件传送协议SMTP

  • SMTP所规定的就是在两个相互通信的SMTP进程之间如何交换信息
  • 由于SMTP使用客户-服务器工作方式,因此负责发送邮件的SMTP进程就是SMTP客户,而负责接收邮件的SMTP进程就是SMTP服务器
  • SMTP通信的3个阶段连接建立——邮件传送——连接释放(在发送主机的SMTP客户和负责接收的SMTP服务器之间建立连接,邮件发送完毕后,SMTP应释放TCP连接)SMTP不使用中间的邮件服务器
  • 缺陷:不能传送可执行文件或其他的二进制对象,仅限于传送7位的ASCII码,这意味着许多非英语国家的文字无法传送,SMTP服务器会拒收超过一定长度的邮件

2.5.3电子邮件的信息格式

  • 电子邮件的组成:信封和内容
  • RFC822只规定了邮件内容中的首部格式,而对邮件的主体部分则让用户自由撰写,用户写好首部后,邮件系统将自动将信封所需的信息提取出来并写在信封上,无需用户填写,邮件内容首部包括一些关键字,后面加上冒号,最重要的关键字是To(后面填入收件人的电子邮件地址)、Subject(邮件的主题,便于用户查找)、Cc(表示应给某人发送一个邮件副本)、From和Date(分别表示发件人的电子邮件地址和发件日期)、Reply-To(对方回信所用的地址)

2.5.4邮件读取协议POP3和IMAP4

  • 邮局协议POP是一个非常简单但功能有限的邮件读取协议,POP3是它的第三个版本,也是当前使用的版本。
  • POP也使用客户-服务器的工作方式,在接收邮件的用户PC机中必须运行POP客户程序,而在用户所连接的互联网服务提供商(Internet Service Provider,ISP)的邮件服务器中运行POP服务器程序
  • 交互邮件访问协议IMAP也使用客户-服务器的工作方式,IMAP4是它的第四个版本,也是当前使用的版本。
  • 用户在自己的PC机上就可以操纵ISP的邮件服务器的邮箱,就像在本地操纵一样
  • IMAP是一个联机协议,当用户PC机上的IMAP客户程序打开IMAP服务器的邮箱时,用户就可看到邮件的首部,若用户需要打开某个邮件,则邮件才传到用户的PC机上
  • IMAP的优势
    • 用户可以在不同的地方使用不同的计算机随时上网阅读和处理的自己的邮件
    • IMAP允许收件人只读取邮件中的某一个部分
  • IMAP的缺点:如果用户没有将邮件复制到自己的PC上,则邮件一直是存放在IMAP服务器上,因此用户需要经常与IMAP服务器建立连接

2.5.5基于万维网的电子邮件

  • 发件方使用HTTP协议将邮件发送到邮件服务器,两个服务器之间的传送使用SMTP协议,邮件从服务器传到收件方是使用HTTP协议
  • 万维网电子邮件的优势:只要能够找到可以上网的PC机,打开任何一种浏览器都可以方便地收发电子邮件,是一种“B-S”的方式(浏览器-服务器),而上述所提到的SMTP\POP3\IMAP都是“C-S”的方式(客户-服务器)

2.5.6通用互联网邮件扩充MIME

  • 由于SMTP能够传送的文件格式有限,因此MIME继续使用RFC822格式的同时增加了邮件主体的结构,定义了传送非ASCII码的编码规则,但MIME并没有改动SMTP或取代它
  • MIME和SMTP的关系:邮件(非ASCII码)先通过MIME转换成7位ASCII码,再使用SMTP传输,然后通过MIME转回非ASCII码交给用户
  • MIME的三个主要部分
    • 首部字段:添加了5个新的首部字段,它们可包含在RFC822首部中,这些字段提供了有关邮件主体的信息
    • 格式:定义了许多邮件内容的格式,对多媒体电子邮件的表示方法进行了标准化
    • 传送编码:定义了新的传送编码,可对任何内容格式进行转换,而不会被邮件系统改变

2.6 动态主机配置协议DHCP(课程略)

2.7 简单网络管理协议SNMP(课程略)


2.8 应用进程跨越网络的通信

2.8.1系统调用和应用编程接口

  • 大多数操作系统使用系统调用的机制在应用程序和操作系统间传递控制权
  • 系统调用和程序中的函数调用较为相似,只是系统调用是将控制权传递给操作系统,而函数调用的控制权是在调用函数的那部分代码

2.8.2几种常用的系统调用

  • 应用编程接口API——应用进程和操作系统控制权进行转换的接口:当某个应用进程启动系统调用时,控制权就从应用进程传递给了系统调用接口,此接口再将控制权传递给计算机的操作系统,操作系统将此调用转给某个内部进程,并执行所请求的操作,内部过程一旦执行完毕,控制权又通过系统调用接口返回给应用进程
    • 套接字接口
    • Windows Socket:采用套接字接口但稍有不同
    • TLI,为UNIX系统定义的一种API
  • 套接字 (IP地址+端口)的作用**:当应用进程需要使用网络进行通信的时候就发出系统调用,请求操作系统为其创建套接字,以便把网络通信所需要的系统资源分配给该应用进程,操作系统为这些资源的综合用一个叫做套接字描述符**的号码来表示,并把此号码返回给应用进程,应用进程所进行的网络操作都必须使用这个号码。通信完毕后,应用进程通过一个关闭套接字的系统调用通知操作系统回收与该号码相关的所有资源

2.9 P2P应用

2.9.0P2P工作方式概述

  • P2P出现的背景:自从互联网能够提供音频、视频服务后,宽带上网用户数量急剧增长,很多用户使用宽带接入的目的就是更快地下载音频视频文件
  • P2P工作方式:所有的音频、视频文件都是在普通的互联网用户之间传输,每个客户也可以是服务器,在P2P工作方式下,相当于有很多分散在各地的媒体服务器提供下载服务
  • 在互联网流量中,P2P工作方式下的文件分发已占据最大的份额,比万维网应用所占的比例要大得多
  • 优点:用户不必访问集中式服务器,缓解了集中式媒体服务器可能出现的瓶颈问题,多个用户拥有相同资源使得可以获得的资源来源更多,获取资源更为方便、快捷

    2.9.1具有集中目录服务器的P2P工作方式

  • Napster
    • 是最早出现的P2P技术,用于提供MP3音乐的免费下载
    • Napster能够搜索音乐文件,所有的音乐文件地址击中存放在一个Napster目录服务器中,便于用户下载
    • 用户要及时向Napster的目录服务器报告自己存有的音乐文件,当用户需要下载时,就向服务器发出询问,服务器根据检索结果返回地址,Napster文件传输是分散的,但文件的定位是集中的
    • 缺点:可靠性差(需要目录服务器)、侵犯版权

2.9.2具有全分布式结构的P2P文件共享程序

  • 电驴eMule
    • 电驴使用分散定位和分散传输技术,把每一个文件划分为许多小文件块,使用多源文件传输协议MFTP进行传送。因此用户可以同时从很多地方并行下载一个文件中的不同文件块,这么做使得下载可以较快完成
    • 电驴用户在下载文件的同时也在上传文件
  • 比特洪流BT**种子!:BitTorrent所有对等方集合称为一个洪流,下载文件的数据单元为长度固定的文件块,基础设施节点则叫做追踪器**,用于获得对等方列表

2.9.3P2P文件分发的分析

  • 使用P2P方式下载文件会同时占用下载和上传带宽
  • C/S方式下分发的最短时间
    • 从服务器端考虑,有N台主机从服务器下载一个大文件,所有主机分发完毕的最短时间T不可能小于NF/u(?为啥),其中F为文件大小,单位为bit;上传速率和下载速率分别为u和d,单位为bit/s
    • 若下载速率最慢的主机的下载速率为dmin,则T不可能小于F/dmin
    • 综上可知所有主机都下载完文件F的最少时间为T=max(NF/u,F/dmin)

2.9.4在P2P对等方式中搜索对象

  • 现在广泛使用的索引和查找技术叫做分布式散列表DHT,也可译为分布式哈希表,它是由大量对等方共同维护的散列表
  • 分布式散列表DHT利用散列函数,把资源名K及其存放的结点IP地址N都分别映射为资源名标识符KID和节点标识符NID
  • chord算法把结点按标识符数值从小到大沿顺时针排列成一个环形覆盖网络

2.10补充

Donate
  • Copyright: Copyright is owned by the author. For commercial reprints, please contact the author for authorization. For non-commercial reprints, please indicate the source.
  • Copyrights © 2022 Daniel Qi
  • Visitors: | Views:

请我喝杯咖啡吧~

支付宝
微信