前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >计算机网络原理 - 第二章

计算机网络原理 - 第二章

作者头像
Dreamy.TZK
发布2020-04-09 15:50:35
8960
发布2020-04-09 15:50:35
举报
文章被收录于专栏:小康的自留地

第二章 网络应用

第一节 计算机网络应用体系结构

体系结构

特点

使用案例

客户/服务器(C/S)结构网络应用

最典型、最基本的网络应用;通信只在客户与服务器间进行。

www应用、文件传输 FTP、电子邮件

纯 P2P 结构网络应用

所有通信都在对等的通行方之间直接进行。P2P应用中的对等端是一个服务器与客户的结合体

Gnutella、BitTorent

混合结构网络应用

将C/S应用与P2P应用相结合,既有中心服务器的存在,又有对等端(客户)间的直接通信。

IPTV

第二节 网络应用通信基本原理

应用层协议定义了应用进程间交换的报文类型、报文构成部分具体含义以及交换时序等内容,即语法、 语义和时序等协议三要素内容。

C/S通信基本原理:

服务器端运行的是服务器进程,被动的等待客户请求服务。

客户端运行的是客户进程,主动发起通信,请求服务器进程提供服务。

应用进程间遵循应用协议交换应用层报文。

典型的网络应用编程接口是套接字,标识套接字的编号叫端口号,IP 地址是网络层地址用于唯一标识一个主机或路由器接口。

套接字是每个应用进程与其他应用进程网络通信时,接受和发送报文的通道

Internet 传输层能提供的服务只有两类:

  1. 面向连接的可靠字节流传输服务 TCP 当某个应用程序调用TCP作为其传输协议时,该应用程序就能获得来自TCP的两种服务:面向连接的服务和可靠的数据传输服务。 可靠的数据传送服务:应用进程能够依靠TCP,实现端到端的无差错、按顺序交付所有发送数据的服务。当应用程序的一端将字节流通过本地套接字传送时,它能够依靠TCP将相同的字节流交付给接收方的套接字,而没有字节的丢失和冗余。
  2. 无连接的不可靠数据报传输服务 UDP。

简答题:面向连接的服务:

查看答案

(1) 在应用层报文开始传送之前,TCP客户和服务器互相交换传输层控制信息,完成握手。在客户进程与服务器进程的套接字之间建立一条逻辑的TCP连接。 (2)这条连接是双全工的,即连接双方的进程都可以在此连接上同时进行报文收发。 (3) 当应用程序结束报文发送时,必须拆除该连接。

第三节 域名系统(DNS)

实现将域名映射为IP地址的过程,称为域名解析。域名服务器分布在整个互联网上,每个域名服务器只存储了部分域名信息。

一、 层次化域名空间

层次树状结构的命名方法。

域名类型

例子

国家顶级域名(nTLD)

cn,us,uk

通用顶级域名(gTLD)

com,net,org,edu,gov,mil,int。

基础结构域名

arpa只有一个,用于反向域名解析,又称反向域名

二、 域名服务器

DNS服务器的管辖范围不是以“域”为单位,而是以区为单位

  1. 根域名服务器 最重要的域名服务器,知道所有的顶级域名服务器的域名和 IP。 在因特网上共有 13 个不同 IP 地址的根域名服务器,它们的名字是用一个英文字母命名,从 a到 一直到 m(前 13 个字母),如 a.rootservers.net。其域名与IP地址的映射关系等信息都存储在所有网络的权威域名服务器上。
  2. 顶级域名服务器
  3. 权威域名服务器
  4. 中间域名服务器

三、 域名解析过程

  1. 递归解析 通常本地域名服务器都提供递归查询服务 依次查询:代替查询主机或其他域名服务器,进行进一步的域名查询,并将最终解析结果发送给查询主机或服务器。
  1. 迭代解析 直接响应结果:只是将下一步要查询的服务器告知查询主机或服务器。

第四节 万维网应用

万维网应用也称为Web应用

一、 万维网结构

Web应用主要包括

  • web服务器
  • 浏览器
  • 超文本传输协议(HTTP)等部分

HTML 基本 Web 页也是通过 URL 地址引用页面中的其他对象。每个URL地址主要由两部分组成:存放对象的服务器主机域名(或 IP 地址)和对象的路径名。

二、 HTTP概述

非持久连接的HTTP1.0

①非持久连接的HTTP1.0中,客户HTTP需先向Web服务器发送请求建立TCP连接的请求报文,等待Web服务器的相应报文,这一来一回的一个往返时间为一个RTT; ②Web服务器响应HTTP客户后,HTTP客户再请求Web网页,Web服务器响应后,告知HTTP客户该网页有多少个图片引用,并通知TCP断开此TCP连接; ③随后HTTP客户再次请求TCP连接,Web响应后,再请求第一个图片的TCP连接,等待响应,Web响应后通知TCP连接断开此TCP连接; ④依次类推,如教材P60图2.10所示,获取含有3个图片的完整Web网页内容需要花费8RTT。

持久连接的HTTP1.1

①非流水方式持久连接的HTTP1.1:在非流水方式持久连接的HTP1.1中只需建立一条TCP连接即可,全部的请求结束后再断开TCP连接;如教材P62图2.12所示,请求含有3个图片的完整Web内容只需花费5RTT. ②流水方式持久连接的HTTP1.1:同上述的HTTP1.1的工作原理相同,不过可以进行多个图片请求;如教材P62图2.13所示,请求含有3个图片的完整Web网页内容只需3RTT.

三、 Cookie

Cookie中文名称为小型文本文件

  • Cookie是服务器端生成的,发送给浏览器,并存储在用户本地终端上的数据
  • Cookie是实现服务器对客户状态的追踪的典型技术

弥补了HTTP协议无状态性的不足,有利于进行用户跟踪并提供针对性的服务,但也带来一些安全问题

主要包括四部分

  • HTTP相应报文中的Cookie头行
  • 用户浏览器在本地存储、维护和管理的Cookie文件
  • HTTP请求报文中的Cookie头行
  • 网站在后台数据库中存储、维护Cookie信息

Cookie常见用途

①网站可以利用Cookie的ID来准确统计网站的实际访问人数等数据。 ②网站可以利用Cookie限制某些特定用户的访问。 ③网站可以存储用户访问过程的操作习惯和偏好,有针对性地为用户提供服务,提升用户体验感。 ④记录用户登录网站使用的用户名、密码等信息,当用户多次登录时,无须每次都从键盘输入这些烦琐的字符和数字。 ⑤电子商务网站利用Cookie可以实现“购物车”功能。

第五节 Internet电子邮件

  1. 邮件服务器(电子邮件体系结构的核心) 功能是发送和接收邮件,向发信人报告邮件传送情况
  2. 简单邮件传输协议(SMTP) SMTP是Internet电子邮件中核心应用层协议,实现邮件服务器之间或用户代理到邮件服务器之间的邮件传输。SMTP使用传输层TCP实现可靠数据传输,端口号25。SMTP的基本交互方式是SMTP客户端发送命令, 命令后面可能携带参数, SMTP服务器对命令进行应答。
    • 特点
      1. 只能发送7位ASCII码文本内容 多用途互联网邮件扩展**( MIME )定义了将非7位ASCII码内容转换为7位ASCII码的编码规则。MIME**主要包括 3 个部分:(1)5 个 MIME 邮件首部字段(2)定义了多种邮件内容的格式(3)定义了邮件传送编码。
      2. 传送的邮件内容中不能包含“CRLF.CRLF”。
      3. SMTP 是“推动”协议。
      4. SMTP 使用 TCP 连接是持久的。
    • 发送过程 握手阶段、邮件传输阶段、关闭阶段
    • MIME(多用途互联网邮件扩展) 将非7位ASCII码文本内容转换为7位ASCII码文本内容然后再利用SMTP进行传输。 在邮件首部增加MIME首部行,说明主体内容原本的数据类型以及采用的编码标准等。
  3. 用户代理邮件读取协议
    • POP3 使用传输层 TCP。POP3 协议交互过程可以分为 3 个阶段:授权、事务处理和更新。
    • IMAP IMAP 服务器维护了 IMAP 会话的用户状态信息,允许用户代理只读邮件的部分内容。
    • HTTP HTTP 是 Web 邮件系统的邮件读取协议。

第六节 FTP

文本传输协议(FTP)在互联网的两个主机间实现文件互传的网络应用,其应用层协议也称为FTP。FTP 使用的默认端口号是 21。

C/S模式,采用控制连接:21端口传输控制命令,数据连接(20端口)传输文件内容。

特点如下:

  1. FTP 应用使用两个“并行”的 TCP 连接:控制连接和数据连接
  2. FTP 服务器必须在整个会话期间保留用户的状态,即 FTP 是有状态的。
  3. FTP 会话形式是客户向服务器发送命令,服务器发送状态码和短语作为应答。

第七节 P2P应用

P2P 体系结构对服务器的依赖很小,对于纯 P2P 来说,整个应用几乎不依赖某个集中服务器。 P2P 体系结构实现文件分发的最快时间为:

第八节 Socket编程基础

利用 Socket 编程技术可以开发客户/服务器网络应用程序。

网络应用进程可以创建3种类型的Socket:

  1. 数据报类型套接字SOCK_DGRAM(面向UDP)
  2. 流式套接字 SOCK_STREAM(面向 TCP)
  3. 原始套接字 SOCK_RAM

典型的 SocketAPI 函数

API

作用

int socket()

创建套接字

int close()

关闭套接字

int bind()

绑定套接字的本地端点地址(一般用于服务器端)

int listen()

监听状态(只用于服务器端,仅用于TCP服务器套接字)

int connect

将客户端套接字与服务器连接(只用于客户端)

int accept

创建新的套接字来与客户套接字建立TCP连接(只用于服务器端)

Ssize_t_send()

发送数据

Ssize_t_sendto()

发送数据(只用于UDP)

Ssize_t_recv()

接收数据

Ssize_t_recvfrom()

接收数据(只用于UDP)

Int setsockopt

设置套接字选项

Int getsockopt

读取套接字选项

说明

本篇文章使用的脑图原件下载?XX云下载

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-02-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 第二章 网络应用
    • 第一节 计算机网络应用体系结构
      • 第二节 网络应用通信基本原理
        • 第三节 域名系统(DNS)
          • 第四节 万维网应用
            • 第五节 Internet电子邮件
              • 第六节 FTP
                • 第七节 P2P应用
                  • 第八节 Socket编程基础
                    • 说明
                    相关产品与服务
                    数据传输服务
                    腾讯云数据传输服务(Data Transfer Service,DTS)可帮助用户在业务不停服的前提下轻松完成数据库迁移上云,利用实时同步通道轻松构建高可用的数据库多活架构,通过数据订阅来满足商业数据挖掘、业务异步解耦等场景需求。同时,DTS 还提供私有化独立输出版本 DTS-DBbridge,支持异构数据库和同构数据库之间迁移和同步,可以帮助企业实现完整数据库迁移(如 Oracle)。
                    领券
                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档