2018-10-22 11:21:40 heureuxchaquejour 阅读数 5967
  • 基于深度学习的计算机视觉:原理与实践(上部)

    本课程适合具有一定深度学习基础,希望发展为深度学习之计算机视觉方向的算法工程师和研发人员的同学们。 基于深度学习的计算机视觉是目前人工智能最活跃的领域,应用非常广泛,如人脸识别和无人驾驶中的机器视觉等。该领域的发展日新月异,网络模型和算法层出不穷。如何快速入门并达到可以从事研发的高度对新手和中级水平的学生而言面临不少的挑战。精心准备的本课程希望帮助大家尽快掌握基于深度学习的计算机视觉的基本原理、核心算法和当前的领先技术,从而有望成为深度学习之计算机视觉方向的算法工程师和研发人员。 本课程系统全面地讲述基于深度学习的计算机视觉技术的原理并进行项目实践。课程涵盖计算机视觉的七大任务,包括图像分类、目标检测、图像分割(语义分割、实例分割、全景分割)、人脸识别、图像描述、图像检索、图像生成(利用生成对抗网络)。本课程注重原理和实践相结合,逐篇深入解读经典和前沿论文70余篇,图文并茂破译算法难点, 使用思维导图梳理技术要点。项目实践使用Keras框架(后端为Tensorflow),学员可快速上手。 通过本课程的学习,学员可把握基于深度学习的计算机视觉的技术发展脉络,掌握相关技术原理和算法,有助于开展该领域的研究与开发实战工作。另外,深度学习之计算机视觉方向的知识结构及学习建议请参见本人CSDN博客。 本课程提供课程资料的课件PPT(pdf格式)和项目实践代码,方便学员学习和复习。 本课程分为上下两部分,其中上部包含课程的前五章(课程介绍、深度学习基础、图像分类、目标检测、图像分割),下部包含课程的后四章(人脸识别、图像描述、图像检索、图像生成)。

    2870 人正在学习 去看看 白勇

计算机网络自顶向下方法第六版

  • 英文电子书PDF文字版
  • 配套材料(买书后官方渠道下载,质量可靠)
    • 编程题答案,Python, Java 等等
    • 勘误表
    • 配套PPT
    • 讲解演示
    • 其他内容

资源下载链接

https://download.csdn.net/download/heureuxchaquejour/10736326

说明

所有免费材料可以在以下链接访问:
http://wps.pearsoned.com/ecs_kurose_compnetw_6/216/55463/14198700.cw/index.html
付费材料在文件夹中,有些材料不是PDF,是HTML网页,就直接转换成PDF存起来了,排版上一看就知道。
PPT,勘误表等材料是免费材料,但为了大家方便,也顺便下载了。
有些免费材料由于是页面交互式的或者是视频,所以没有下载,大家还是到链接上去自己看更合适。

所有内容

使用 ls -R 打印结果:

付费材料
免费材料
使用说明.txt
第六版英文电子版(文字版).pdf

./付费材料:
Material from Previous Editions		Retired Java Assignments
Python Socket Programming Assignments	Wireshark Labs

./付费材料/Material from Previous Editions:
2-7_2-8.pdf			HTTP_Delay_Modeling.pdf
2_9.pdf				Internet Commerce Using SET.pdf
5-7.pdf				Key_Distribution.pdf
5_7_2.pdf			Multicast Routing.pdf
7-1.pdf				PrinciplesinPractice.pdf
7-2.pdf				RSVP.pdf
7-4-2.pdf			Section2.4.3_4e.pdf
7-5-3.pdf			Section2.6.2_4e.pdf
7-6.pdf				Section8.4-8.4.4.pdf
Frame Relay.pdf			网页内容列表截图.png
H.323.pdf

./付费材料/Python Socket Programming Assignments:
GettingStarted.pdf		Socket5_ICMPpinger.pdf
Socket1_WebServer.pdf		Socket6_VideoStreaming.pdf
Socket2_UDPpinger.pdf		Traceroute.pdf
Socket3_SMTP.pdf		网页内容列表截图.png
Socket4_ProxyServer.pdf

./付费材料/Retired Java Assignments:
A Mail User Agent in Java.pdf
Email Lab.pdf
Lab: Proxy Cache.pdf
Ping Lab.pdf
Programming Assignment 1: Building a Multi-Threaded Web Server.pdf
Programming Assignment 5: Streaming Video with RTSP and RTP.pdf
网页内容列表截图.png

./付费材料/Wireshark Labs:
Wireshark_802.11_v6.0.pdf		Wireshark_Intro_v6.0.pdf
Wireshark_DHCP_v6.0.pdf			Wireshark_NAT_v6.0.pdf
Wireshark_DNS_v6.01.pdf			Wireshark_SSL_v6.0.pdf
Wireshark_Ethernet_ARP_v6.01.pdf	Wireshark_TCP_v6.0.pdf
Wireshark_HTTP_v6.1.pdf			Wireshark_UDP_v6.1.pdf
Wireshark_ICMP_v6.0.pdf			网页内容列表截图.png
Wireshark_IP_v6.0.pdf

./免费材料:
Errata_6th_Edition.pdf	PowerPoints
Miscellaneous Labs	Seattle Labs

./免费材料/Miscellaneous Labs:
IPSecKR.pdf
Programming Assignment 3: Implementing a Reliable Transport Protocol.pdf
Programming Assignment 4: Implementing an Algorithm.pdf
网页内容列表截图.png

./免费材料/PowerPoints:
Chapter_1_V6.1.ppt	Chapter_4_V6.2.ppt	Chapter_7_V6.0.ppt
Chapter_2_V6.2.ppt	Chapter_5_V6.01.ppt	Chapter_8_V6.0.ppt
Chapter_3_V6.0.ppt	Chapter_6_V6.0.ppt	Chapter_9_V6.0.ppt

./免费材料/Seattle Labs:
SeattlePingNAT.pdf
2016-11-21 13:31:52 zy691357966 阅读数 1235
  • 基于深度学习的计算机视觉:原理与实践(上部)

    本课程适合具有一定深度学习基础,希望发展为深度学习之计算机视觉方向的算法工程师和研发人员的同学们。 基于深度学习的计算机视觉是目前人工智能最活跃的领域,应用非常广泛,如人脸识别和无人驾驶中的机器视觉等。该领域的发展日新月异,网络模型和算法层出不穷。如何快速入门并达到可以从事研发的高度对新手和中级水平的学生而言面临不少的挑战。精心准备的本课程希望帮助大家尽快掌握基于深度学习的计算机视觉的基本原理、核心算法和当前的领先技术,从而有望成为深度学习之计算机视觉方向的算法工程师和研发人员。 本课程系统全面地讲述基于深度学习的计算机视觉技术的原理并进行项目实践。课程涵盖计算机视觉的七大任务,包括图像分类、目标检测、图像分割(语义分割、实例分割、全景分割)、人脸识别、图像描述、图像检索、图像生成(利用生成对抗网络)。本课程注重原理和实践相结合,逐篇深入解读经典和前沿论文70余篇,图文并茂破译算法难点, 使用思维导图梳理技术要点。项目实践使用Keras框架(后端为Tensorflow),学员可快速上手。 通过本课程的学习,学员可把握基于深度学习的计算机视觉的技术发展脉络,掌握相关技术原理和算法,有助于开展该领域的研究与开发实战工作。另外,深度学习之计算机视觉方向的知识结构及学习建议请参见本人CSDN博客。 本课程提供课程资料的课件PPT(pdf格式)和项目实践代码,方便学员学习和复习。 本课程分为上下两部分,其中上部包含课程的前五章(课程介绍、深度学习基础、图像分类、目标检测、图像分割),下部包含课程的后四章(人脸识别、图像描述、图像检索、图像生成)。

    2870 人正在学习 去看看 白勇

[A Top-Down Approach][第一章 计算机网络和因特网]

标签(空格分隔): 计算机网络


  • 介绍基本术语和概念
  • 查看构成网络的基本硬件软件组件.
  • 从网络的边缘开始,考察在网络中运行的端系统和网络应用
  • 探究计算机的核心,链路交换机
    • 以及,将端系统和网络核心相连接的接入网物理媒体
  • 了解因特网是网络的网络

  • 后半部分更加广泛

    • 数据的延迟,丢包和吞吐量
      • 给出一个端到端吞吐量和延迟的简单定量魔性.
    • 协议分层,服务模式
    • 网络攻击
    • 互联网的历史

1.1 什么是因特网

回答这种问题的两种方式:

  • 描述因特网的具体构成,即软件与硬件
  • 分布式应用提供的服务来描述.

1.1.1 具体构成描述

  • 主机(host)或者端设备(end system): PC,工作站,服务器,手机,电视,游戏,相机,汽车

  • 端系统通过通信链路(communication link)分组交换机(packet switch)连接在一起.

    • 通信链路:电缆,铜线,光纤和无线电频谱.
      • 链路传输比率: bit/s或者bps

    • 包/分组(packet):端系统发送数据时,发送端需要将数据分段,并为每段加上首部字节.由此形成的信息叫做packet
      • 在到达目的地之后才会被重新组装

    • 分组交换机:从它的一条入通信链路接收到达的分组,并从它的一条出通信链路转发该分组
      • 两种最有名的分组交换机
        • 路由器(router):通常用于网络核心
        • 链路层交换机(link-layer switch):用于接入网中

    • 路径(route/path):一个packet经过的一系列链路和交换机叫做该网络的路径.


  • 因特网服务提供商(Internet Service Provide,ISP):

    • ISP: 是一个或多个分组交换机和多段通信链组成的网络

    • ISP端系统提供了不同类型的接入方式
      • 线缆调制解调器或DSL这样的住宅宽带接入
      • 高速局域网接入
      • 无线接入
      • 56kbps拨号调制解调器接入

    • ISP本身也必须互联

      • 底层的ISP通过国家高层的ISP互联起来.
        • 高层的ISP通过高速光纤互联的高速路由器组成.
    • ISP都是独立管理,运行着IP协议,遵从一定的命名和地址习惯.

    • 1.3节再仔细探讨.

  • 协议(protocol):控制因特网中信息的接收和发送.

    • TCP(Transmission Control Protocol):传输控制协议
    • IP(Internet Protocol):网际协议
      • IP协议定义了路由器端系统之间发送和介绍packge格式.
  • 因特网标准(Internet standard)因特网工程任务组(Internet Engineering Task Force,IETF)研发.

    • 请求评论(Request For Comment,RFC):IETF的标准文档叫做请求评论.
  • 其他组织也在指定网络组件的标准.

    • 最引人注目的是对网络链路的标准
    • IEEE 802 LAN/MAN指定了以太网和无线Wifi的标准.

1.1.2 服务描述

从应用程序的角度来描述因特网.

  • 电子邮件,Web冲浪,IM,SNS,IP语音,流式视频,P2P,网络电视等等.

  • 端系统提供一套与因特网相连的API,socket编程啥的.

1.1.3 什么是协议

image_1b1r0552b153p2nt3sf1j3o1bum9.png-227.5kB

  • 一个协议定义了两个或多个通信实体之间的交换的报文格式和次序,以及报文发送和接受一条报文或其他事情所要采取的动作.

1.2 网络边缘

  • 网络边缘: 端系统和应用程序,处于网络的边缘部分的组件.

1.2.1 接入网

  • 接入网(acces network):将端系统连接到其边缘路由器(edge router)的物理链路.
    • 边缘路由器:端系统到任何其余端系统的路径上第一台路由器

1.家庭接入: DSL,电缆,FTTH,拨号和卫星.

DSL

image_1b1r2cili14ut79h6dsvmgp3km.png-173.8kB

  • DSL:数字用户线(Digital Subscriber Line,DSL):利用本地电话公司现有的本地电话基础设施(双绞铜线).
  • ISP:本地电话公司
  • 每个用户的DSL调制解调器使用现有的电话线与位于本地电话公司的本地中心局(CO)中的数字用户线接入复用器(DSLAM)来交换数据.

  • 家庭电话线同时承载了数据和传统的电话信号.

    • 高速下行信道: 50kHz~1MHz 频段
    • 中速上行信道: 4kHz~50kHz 频段
    • 普通的双向电话信道: 0~4kHz频段
  • DSL标准:不对称接入
    • 12Mbps 下行 和 1.8Mpbs 上行
    • 24Mbps 下行 和 2.5Mpbs 上行

电缆

image_1b1r34u5c9sv10nrepe9edn2t13.png-166.1kB

  • 电缆因特网接入(cable Internet access):利用有线电视公司现有的有线电视基础设施.
  • 混合光纤同轴(Hybrid Fiber Coax,HFC):系统应用了光纤和同轴电缆.

  • 电缆调制解调器: 电缆因特网接入所需的解调器.

  • 电缆调制解调器端接系统(Cable Modem Termination System,CMTS)
    • 类似于DSL网络中的DSLAM类似的功能
    • 将电缆调制解调器发送的模拟信号转换回数字信号发送至互联网.
  • 电缆接入网标准:

    • 42.8Mbps下行和30.7Mbps上行
  • 重要特征: 共享广播媒体.

    • 如果几个用户同时下载一个视频文件,速度将会很慢.
    • 因为上行通道也是共享的,需要一个分布式多路访问协议协调传输和避免碰撞.

FTTH

  • FTTH: 光纤到户(Fiber To The Home,FTTH)

    • 从本地中心局直接到家庭提供一条光纤路径.
  • 有几种光纤分布方案

    • 直接光纤:中心局到每户设置一根光纤.
    • AON,PON:每根光纤由多个家庭共享,直到接近家庭时,才每户一根.
      • 主动光纤网络(Active Optical Network,AON)
        • 实际是交换因特网,第五章讨论
      • 被动光纤网络(Passive Optical Network,PON)
  • 主要介绍PON,下图就是PON分布体系
    image_1b1r4rqb41ujd1cp45itepu1d9o1g.png-158.8kB

  • 光纤网络端接器(Opitical Network Terminator,ONT):由专门的光纤连接到邻近的分配器(splitter)

    • splitter把一些家庭的光纤集结到一根共享的光纤.
  • 光纤线路端接器(Opitical Line Terminator,OLT):splitter出来的光纤连接本地电话公司的OLT.

    • OLT提供光信号和电信号之间的转换,经过路由器与因特网连接.
  • 电缆接入网标准:

    • 有潜力提供千兆比特范围的因特网接入速率.

卫星

  • 使用卫星链路提供超过1Mbps的速率提供

拨号

  • 传统电话线拨号接入,通过普通的调制解调器(非DSL).
  • 56kbps速率的退伍方式.

2.企业(或家庭) 接入: 以太网和WiFi

  • 通常用局域网(LAN)将端用户连接到边缘路由器
    • 以太网是目前为止最流行的局域网技术

以太网

image_1b1r77gtj16et1a803m214er14h91t.png-171.4kB

  • 以太网使用双绞铜线与一台以太网交换机相连.
  • 以太网交换机或这样相连的网络再与更大的因特网相连.

  • 用户通常有100Mps的接入速率

  • 服务器甚至有1Gbps,甚至10Gbps的接入速率

WiFi

  • 接入点:在无线LAN环境,无线用户从一个接入点发送/接受packet,接入点再与企业网连接,企业网再与因特网连接`

    • 用户必须在接入点几十米范围内.
  • 基于IEEE 802.11技术的无线LAN接入点,叫做Wifi.

  • IEEE 802.11标准提供了达54Mbps的共享传输速率.

3.广域无线接入

  • 应用了移动电话相同的基础设备-蜂窝网提供商运营的基站来发送接受pageket

  • Wifi不同,一个用户仅需要在基站的数万米范围.

3G

  • 3G:第三代无线技术

LTE

  • LTE(Long-Term Evolution)来源于3G技术.

1.2.2 物理媒体

物理媒体划分为两类:

  • 导引型媒体(guided media)
    • 电波沿着固体媒体前行,如光缆,双绞铜线或同轴电缆
  • 导引型媒体(unguided media)
    • 电波在空气或外层空间中传播,例如在无线局域网或数字卫星频道.

  • 物理链路成本: 人工成本是材料成本的几个数量级,所以一个建筑可能3种物理链路都安装了.

1.双绞铜线

image_1b1s329s01q4h1q25cgf1n2o4g32a.png-54.9kB

  • 最便宜并且最普遍的引导型传输媒体是双绞铜线.

    • 一百年来一直用于电话网
  • 双绞线由两根隔离的铜线组成,大概1mm粗,以规则的螺旋形式排列着.

    • 两根线绞起来是为了减少附近其余双绞线的电气干扰.
  • 无屏蔽双绞线(Unshielded Twisted Pair,UTP): 常用局域网(LAN

    • 也是我们日常见得最多的
  • 用途: LAN,DSL,56kbps拨号调制解调器

    • LAN: 能达到10Mbps到10Gbps
    • DSL: 10Mbps
    • 拨号 : 56kpbs

2.同轴电缆

image_1b1s3a2ec1cj51a7j10fb12f3ta734.png-38.5kB

  • 同轴电缆: 由两个铜导体组成,但是这两个导体是同心的.

  • 同轴电缆在电缆电视系统相当普遍

    • 电缆电视系统与电缆调制解调器结合,提供因特网接入.

3.光纤

  • 光纤是一种细而柔软,能够导引光脉冲的媒体,每个脉冲代表一个比特.

  • 光纤被作为长途引导性传输媒体,特别是跨海链路.

    • 有极高的速率,十到数百 Gbps
    • 不受电磁干扰,100km光缆信号衰减极低,难以被窃听
  • 光载波(Optical Carrier,OC)标准

    • 范围51.8Mbps~39.8Gbps
    • 被称为OC-n,速率为n*51.8Mpbs

4.陆地无线电信道

  • 无线电信道承载电磁频谱中的信号.

  • 极大依赖传播环境和传播距离.

  • 陆地无线电信道大致分为三类

    • 很短距离(1米或2米): 无线头戴式耳机
    • 局域,跨越十到百米: WLAN
    • 广域: 蜂窝(3G,4G),LTE

5.卫星无线电信道

  • 同步卫星

    • 来回至少280ms延迟
    • 用于无法使用其余方式接入互联网的情况
  • 近地卫星

    • 未来可能用于因特网接入

1.3 网络核心

  • 网络核心: 互联网系统的分组交换机和链路构成的网状网络.
  • 以下加粗线的部分就是网络核心.

    image_1b1s9643r162c178j83u15ar60a3h.png-137.3kB

1.3.1 分组交换

  • 名词:报文(message)``分组(packet),分组交换机(packet switch)在1.1.1有介绍,不再赘述

  • 发送 L比特的packet,速率为R比特/秒,时间为L/R

存储转发传输

  • 存储转发传输(store-and-forward transmission): 指在交换机能够开始向输出链路传输该分组的第一个比特之前,必须接收到整个分组.
    • 多数交换机在链路的输入端都使用了存储转发传输.

有无存储转发传输的区别

image_1b1sb0ue0r2l2ulsak1bao1sba3u.png-57.8kB

  • 存储转发传输的总时延为:2L/R
  • 没有使用存储转发传输的总时延为L/R

  • 所以在一个有N条速率为R的链路的路径(即有N-1个路由器),发送一个分组的总时延为image_1b1sb8ts61q8o1ci146s1bjt15ft4r.png-7.2kB

  • P个分组经过N个速率为R的链路的路径的总时延应该为(N+P-1)*(L/R)

排队延时和分组丢失

  • 输出队列(output buffer):用于存储路由器准备发往那天链路的packet

  • 排队延时(queue delay):链路忙着传输别的分组,该分组等待的时间.

  • 分组丢失(丢包)(packet lost):以为输出队列不是无限的,所以可能将到达的分组或者已经排队的分组之一丢弃.
    image_1b1t99k661ikfjqu1gu1qlp1ecp9.png-111.6kB

  • 如图里的交换机如果到达率超过了1.5Mbps,就会开始进入输出队列等待.

  • 1.4节更详细研究

转发表和路由选择协议

  • 转发表(forwarding table):每台路由器都有一个转发表,用于将目的地址(或一部分)映射称为输出链路.

  • 路由选择协议(routing protocol):因特网具有一些特殊的路由选择协议,用于自动的设置这些转发表.

1.3.2 电路交换

  • 电路交换(circuit switching)的基本过程可分为连接建立、信息传送和连接拆除三个阶段

    image_1b1tdg4ue1ar1th2111f390120um.png-57.2kB

  • 电路交换网络中,端系统间通信会话期间,预留了端系统间通信沿路径所需要的资源(缓存,链路传输速率),也就是维护了一条连接,这个连接叫做电路.

  • 传统的电话网络就是电路交换的例子.

1. 电路交换网络中的复用

  • 链路中的电路:通过频分复用(Frequency-Division Multiplexing,FDM)时分复用(Time-Division Multiplexing,TDM)来实现的.
    image_1b1tf1n7u11knsl31u8g1immdn71g.png-166.4kB

    • 对于FDM,链路的频谱由跨越链路创建的链接共享.

      • 每条连接专用一个频段.
      • 频段的宽度称为带宽.
    • 对于TDM,时间被划分为固定区间的,每帧又划分为固定数量的时隙

      • 建立连接的时候,每个为连接指定一个时隙单独使用.
      • 类似于时间片的概念.
      • 传输速率为帧速率*一个时隙的比特
  • 电路交换因为静默期(silent period)使得效率变低.

    • 但是具有很好的实时性和传输效率.
    • 传输时间也跟链路数量无关(因为不需要存储转发传输)

2. 分组交换和电路交换的对比

虽然分组交换和电路交换在今天的电信网络中都是普遍采用的方式,但趋势是朝着分组交换方向发展的,甚至许多今天的电话交换电话网正在逐渐向分组迁移,特别是,电话网在昂贵的海外电话部分使用分组交换.

1.3.3 网络的网络

image_1b1tgd2duiqq9ma1us625djc91t.png-153.7kB

网络结构4

  • 存在点(Point of Presence,PoP)

    • 一个PoP只是提供商网络中的一台或多台路由器(在相同位置)群组

      • 对于要与提供商PoP连接的客户网络,从第三方通信提供商租借高速链路直接将它的路由器之一连接到位于该PoP的一台路由器上.
    • PoP存在所有等级层次,底层(接入ISP)除外.

  • 多宿(muti-home):可以和两个或更多提供商ISP连接.
  • 对等(peer)
    • 产生原因
      image_1b1th66hus761lsi1sho1peb1i2b2a.png-85.5kB
    • P2P下载的原理就是如此.(还有所谓的P2P金融)
  • 因特网交换点(Internet exchange point,IXP)
    • 中立性:一般由非电信运营商控制的第三方建立并运营;
    • 对等:接入IX平台的各家运营商之间交换流量时,一般采用免费对等互联策略(Peering);
    • 微利或非盈利性:IX平台本身只提供接入平台,不参与成员间的流量交换,在收费模式上只收取端口占用费,无论是科研机构建立的IX(如香港HKIX)还是商业性质的IX(如AMS-IX)都是如此。

网络结构5

  • 内容提供商网络(content provider network)
    • 谷歌是一个突出的例子.
      • 在书的时间,有30~50个数据中心分布世界各地.
      • 数据中心通过专用的TCP/IP互联,独立于公共因特网
    • 通过创建自己的网络,不仅减少了向顶层ISP支付的费用
    • 而且对服务最终如何交给用户有了更多的控制
    • 7.2.4节将详细讲述.

1.4 分组交换网的时延,丢包和吞吐量

1.4.1 分组交换网中的时延概述

  • 结点处理时延(nodal processing delay)

    • 包括:
      • 检查packet首部和决定将该分组导向何处所需要的时间
      • 检查比特级别的差错所需要的时间
    • 时间 : 微秒或者更低的数量级.
    • 后续 : 交由缓存队列.
  • 排队时延(queuing delay)

    • packet在链路等待运输时,经受排队延时.
    • 时间: 由等待的packet数量决定,毫秒到微秒数量级.
  • 传输时延(transmission dalay)

    • packet在存储转发传输时所花的时间.
    • 时间:在一段链路中是L/R,毫秒到微秒级别
  • 传播时延(propagation delay)

    • 速率: s略小于光速,取决于媒介.
    • 时间: d/s,毫秒量级.

image_1b215dcaq1k6ptqn14a4qjq12mgp.png-212.4kB

1.4.2 排队时延和丢包

  • 结点时延最复杂和有趣的是d.queue

  • 流量强度(traffic intensity): La/R

    • L: 平均一个分组的比特数.
    • a: 分组到达的平均速率,单位pkt/s, La单位bps.
    • 当流量强度大于1时,排队延时将无限增大,设计系统时流量强度不能大于1
  • 如果La/R<=1,流量的性质也影响时延.

    • 周期性到达:每(L/R)秒到达一个分组,基本没有时延.
    • 突发形式: 如果(L/R)N秒同时到达N个分组
      • 第k个传输分组具有 (k-1)*(L/R)的传播延时
    • 随机:一般的情况.

    image_1b216ql5v1qae1vg41h2l1o374lj16.png-72.8kB

丢包

  • 当队列满时,对丢弃一些分组.

  • 对结点的衡量既要考虑时延,也要考虑丢包率

1.4.3 端到端的时延

  • d.(end-queue)=N*(d.proc+d.trans+d.prop)
    • d.trans=L/R
    • 不考虑排队时延.

Traceroute

  • 一个用来测试经过的路由与时延的程序

image_1b217m8qt32nf5a1lmunk1onp1j.png-120.1kB

端系统,应用程序和其他时延

  • 媒体分组化延迟: IP语音 (VoIP)
    • VoIP中,发送方在向因特网传递分组之前必须用编码化的数字化语音填充一个分组,所消耗的时间就是媒体分组化延迟.

1.4.4 计算机网络的吞吐性

  • 吞吐量是另一个重要的性能测度.

  • 瞬间吞吐量(instantaneous throughput):主机A向主机B传输一个文件时,主机B 接收文件的速率 (bps)

    • 就是所谓的瞬间下载速度
  • 瓶颈链路(bot-tlenneck link) : min{R1,R2,R3..Rn}是吞吐量.

    • 对吞吐量的限制大多数接入网.可能仅仅为min{R1,R2}
    • 在某些情况,网络核心的链路也可能称为瓶颈链路
  • 后续再仔细研究.

image_1b219hg4s68a134lb79a6b5cl20.png-214kB

1.5 协议层次及其服务模型

1.5.1 分层的体系结构

协议分层

  • 分层(layer):为了给网络协议的设计提供一个结构,网络设计者以分层的方式组织协议以及实现这些协议的网络硬件和软件.

    • 每个协议属于这些层次之一.
  • 服务模型(service model): 某层向上一层提供的服务.

  • 一个协议层可以用软件,硬件或者两者结合来实现.
    -HTTP,SMTP这样的应用层协议基本再端系统用软件实现,运输层也是如此.

    • 物理层数据链路层负责处理跨越特定链路的通信,通常是实现在网络接口卡.
    • 网络层通常是硬件和软件的混合体.
  • 协议栈(protocol stack):各层的所有协议被称为协议栈.

    • 由5个层次组成: 物理层,链路层,网络层,运输层和应用层.

    image_1b21bfphm4161ar3b910251v082d.png-88.1kB

(1)应用层

  • 应用层是网络应用程序及他们的应用层协议存留的地方.

    • HTTP:提供了Web文档请求和传送
    • SMTP:提供了电子邮件报文的传说
    • FTP :提供两个端文件的传送
    • DNS :域名系统
  • 报文(message):这种位于应用层的信息packet称为 报文(message)

(2)运输层

  • 运输层:在应用程序端点之间传送应用层报文

    • TCP: 提供面向连接的服务(类似于电路交换)
      • 包括了应用层报文向目的地确保传递和流量控制
      • 也将长报文划分为短报文
      • 提供拥塞控制机制:当网络拥堵时,源抑制传输速率,
    • UDP: 提供无连接服务
      • 不提供不必要服务的服务.
      • 没有可靠性,没有流量控制,没有拥塞控制.
  • 报文段(segment):位于运输层的packet.

(3) 网络层

  • 网络层:负责将数据报的网络层分组从一台主机移动到另一台主机.
    • 源主机的运输层协议向网络层递交运输层报文段目的地址,网络层来处理目的地址.
    • IP协议:定义了数据报的各个字段,端系统和路由器如何处理字段.
    • 路由选择协议
  • 数据报(datagram): 位于网络层的packet.

(4) 链路层

  • 链路层:网络层将数据下传给链路层,链路层沿着路径将数据报传递给下一个结点.在下个结点,链路层将数据报上传给网络层.

  • 链路层提供的服务取决于应用于该链路的特定链路层协议.

    • 某些协议基于链路提供可靠传递.,传输结点跨越链路到输出结点.
      • 不同于TCP可靠传递.
      • TCP提供的是端到端可靠传递.
    • 常用协议:以太网,WiFi和电缆接入网的DOCSIS协议.
    • 一个数据报可能被沿途不同链路的不同链路层处理.
  • 帧(frame):链路层分组.

(5) 网络层

  • 物理层: 物理层的任务是将中的一个一个比特从一个结点移动到下一个结点.

    • 与链路(双绞铜线,单模光纤)的实际传输媒介相关.
  • 以太网(链路层协议)有许多物理层协议: 关于双绞铜线,关于同轴电缆,关于光纤的.

    • 在不同协议,跨越链路时一个比特是以不同方式进行的.

OSI 模型

image_1b22cinlqp5a1lmp2at1boha2e9.png-37.5kB

  • 因特网协议栈不是唯一的协议栈.
  • 开放系统互联(OSI)模型:20世纪70年代 由ISO提出计算机网络应组织为7层.

    • 表示层:使通信的的应用程序解释交换数据的含义.
      • 这些服务包括压缩数据加密以及数据描述.
    • 会话层:提供了数据交换定界和同步功能,包括了建立检查点和恢复方案的方法.
  • 这两个层次留给因特网程序自己选择.

1.5.2 封装

  • 链路层交换机实现了2个层次.
  • 路由器实现了3个层次
    image_1b22d0e52vd76is17gp4jc17f6m.png-294kB

  • 封装(encapsulation)

    • 首部字段
    • 有效载荷字段(payload field):通常来源于上一层分组.

1.6 面对攻击的网络

  • 僵尸网络(botnet)
  • 病毒(virus): 是一种需要某种形式的用户交互来感染用户设备的恶意软件.
  • 蠕虫(worm) : 是一种无需任何明显用户交互就能进入设备的恶意软件.
  • 拒绝服务式攻击(Denial-of-Service(DoS) attack): 使得网络,主机,其他基础设施设备不能被合法用户使用.
    • 弱点攻击
      • 向易受攻击的软件和操作系统发送精细的报文来攻击.
    • 带宽洪泛
      • 发送大量分组,使得接入网络变得拥塞.
    • 连接洪泛
      • 攻击者在目标主机创建大量的半开或全开TCP连接.
  • 分布式DoS(Distributed DoS,DDoS):单个主机的DoS会被屏蔽.

    • 利用僵尸网络.
  • 分组嗅探器(packet sniffer):在无线传输设备的附近放置一个被动的接收机,记录每个流经设备的分组副本的被动接收机.

    • 可能拦截敏感信息,口令,隐私的个人信息.
    • 难以检测存在.
    • 防御嗅探的方法跟密码学有关.
  • IP哄骗(IP spoofing):将具有虚拟源地址的分组注入Internet的能力叫做IP哄骗..

    • 只是一个用户冒充另一个用户的许多方式之一.
    • 端点鉴别:确信一个报文源自他应当来的地方.

1.7 计算机网络和因特网历史.

1.7.1 分组交换的发展: 1961 ~ 1972

  • ARPAnet: Internet的直接祖先
  • 1972年编写了第一个电子邮件的程序.

1.7.2 专用网络和互联网络: 1972 ~ 1980

  • 随着网络的数目的增多,研究网络的网络(互联网)时机成熟

  • TCP,UDP,IP.

  • 以太网协议为了连接多台PC,打印机和共享磁盘在一起的需求激励的.

1.7.3 网络激增: 1980 ~ 1990

  • NCPTCP/IP迁移.
  • DNS域名系统

1.7.4 因特网爆炸: 20 世纪 90 年代

  • World Wide Web应用程序的出现
  • 谷歌和Bing,亚马逊,eBay,Facebook.
  • HTML,HTTP,Web服务器,浏览器
  • 2001年 因特网股票崩盘.

1.7.5 最新发展

  • 高速
  • 专用网络
  • 社交

1.8 小结

  • 从网络的边缘开始,观察端系统和应用程序,以及在端系统的运输服务.
    • 接入网的链路层技术和物理媒体.
  • 进入网络核心钻研
    • 分组交换和电路交换
    • 研究全球因特网的结构.
  • 计算机网络研究领域的主题.
    • 时延,吞吐量和丢包.

Wireshark 实验

2016-11-11 22:28:09 irving512 阅读数 1714
  • 基于深度学习的计算机视觉:原理与实践(上部)

    本课程适合具有一定深度学习基础,希望发展为深度学习之计算机视觉方向的算法工程师和研发人员的同学们。 基于深度学习的计算机视觉是目前人工智能最活跃的领域,应用非常广泛,如人脸识别和无人驾驶中的机器视觉等。该领域的发展日新月异,网络模型和算法层出不穷。如何快速入门并达到可以从事研发的高度对新手和中级水平的学生而言面临不少的挑战。精心准备的本课程希望帮助大家尽快掌握基于深度学习的计算机视觉的基本原理、核心算法和当前的领先技术,从而有望成为深度学习之计算机视觉方向的算法工程师和研发人员。 本课程系统全面地讲述基于深度学习的计算机视觉技术的原理并进行项目实践。课程涵盖计算机视觉的七大任务,包括图像分类、目标检测、图像分割(语义分割、实例分割、全景分割)、人脸识别、图像描述、图像检索、图像生成(利用生成对抗网络)。本课程注重原理和实践相结合,逐篇深入解读经典和前沿论文70余篇,图文并茂破译算法难点, 使用思维导图梳理技术要点。项目实践使用Keras框架(后端为Tensorflow),学员可快速上手。 通过本课程的学习,学员可把握基于深度学习的计算机视觉的技术发展脉络,掌握相关技术原理和算法,有助于开展该领域的研究与开发实战工作。另外,深度学习之计算机视觉方向的知识结构及学习建议请参见本人CSDN博客。 本课程提供课程资料的课件PPT(pdf格式)和项目实践代码,方便学员学习和复习。 本课程分为上下两部分,其中上部包含课程的前五章(课程介绍、深度学习基础、图像分类、目标检测、图像分割),下部包含课程的后四章(人脸识别、图像描述、图像检索、图像生成)。

    2870 人正在学习 去看看 白勇

1. 学习目标

哪里不会学哪里,课余娱乐。


2. 基础教材

这里的书基本都是本科经典教材,没有一本完全看完的,也没有一本一点都没看的。


现代操作系统

  1. 版本:第三版,中文。

计算机网络 自顶向下方法

  1. 版本:第六版,中文。

TCP/IP详解卷1 协议

  1. 版本:中文

数据库系统概念

  1. 版本:第五版,中文。

算法导论

  1. 版本:第三版,中文。英文的看过网上pdf

数据结构与算法分析 Java语言描述

  1. 版本:第二版,中文。

3. HTTP协议


图解Http

  1. 版本:中文版。
  2. 预期:日本人作品;听说很好入门。

HTTP权威指南

  1. 版本:中文版
  2. 预期:HTTP中所有问题,都先查看这本书。
2019-05-14 21:14:07 qq_36982160 阅读数 115
  • 基于深度学习的计算机视觉:原理与实践(上部)

    本课程适合具有一定深度学习基础,希望发展为深度学习之计算机视觉方向的算法工程师和研发人员的同学们。 基于深度学习的计算机视觉是目前人工智能最活跃的领域,应用非常广泛,如人脸识别和无人驾驶中的机器视觉等。该领域的发展日新月异,网络模型和算法层出不穷。如何快速入门并达到可以从事研发的高度对新手和中级水平的学生而言面临不少的挑战。精心准备的本课程希望帮助大家尽快掌握基于深度学习的计算机视觉的基本原理、核心算法和当前的领先技术,从而有望成为深度学习之计算机视觉方向的算法工程师和研发人员。 本课程系统全面地讲述基于深度学习的计算机视觉技术的原理并进行项目实践。课程涵盖计算机视觉的七大任务,包括图像分类、目标检测、图像分割(语义分割、实例分割、全景分割)、人脸识别、图像描述、图像检索、图像生成(利用生成对抗网络)。本课程注重原理和实践相结合,逐篇深入解读经典和前沿论文70余篇,图文并茂破译算法难点, 使用思维导图梳理技术要点。项目实践使用Keras框架(后端为Tensorflow),学员可快速上手。 通过本课程的学习,学员可把握基于深度学习的计算机视觉的技术发展脉络,掌握相关技术原理和算法,有助于开展该领域的研究与开发实战工作。另外,深度学习之计算机视觉方向的知识结构及学习建议请参见本人CSDN博客。 本课程提供课程资料的课件PPT(pdf格式)和项目实践代码,方便学员学习和复习。 本课程分为上下两部分,其中上部包含课程的前五章(课程介绍、深度学习基础、图像分类、目标检测、图像分割),下部包含课程的后四章(人脸识别、图像描述、图像检索、图像生成)。

    2870 人正在学习 去看看 白勇

计算机网络第六弹——应用层

彩蛋

计算机网络谢希仁第七版原版ppt获取方式:公众号后台回复”N3“即可获取。

由于公众号不支持显示LaTeX公式且公众号排版混乱,建议大家关注微信公众号"IT工匠",后台回复"N4-5"获取xmind源文件以及本文原文pdf文件获取更佳阅读体验。

本文主要内容:

计算机网络第六弹——应用层

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

客户服务器方式所描述的是进程之间服务和被服务的关系,客户是服务请求方,服务器是服务提供方。

域名系统DNS

DNS概述

许多应用层软件经常直接使用域名系统 DNS (Domain Name System),但计算机的用户只是间接而不是直接使用域名系统。

互联网采用层次结构的命名树作为主机的名字,并使用分布式的域名系统 DNS, 名字到 IP 地址的解析是由若干个域名服务器程序完成的,域名服务器程序在专设的结点上运行,运行该程序的机器称为域名服务器

互联网的域名结构

互联网采用了层次树状结构的命名方法,任何一个连接在互联网上的主机或路由器,都有一个唯一的层次结构的名字,即域名,域名的结构由标号序列组成,各标号之间用点隔开:
..... ...三级域名.二级域名.顶级域名
各标号分别代表不同级别的域名。

注意域名只是个逻辑概念,并不代表计算机所在的物理地点。 变长的域名和使用有助记忆的字符串,是为了便于人来使用,而 IP 地址是定长的 32 位二进制数字则非常便于机器进行处理。 域名中的“点”和点分十进制 IP 地址中的“点”并无一一对应的关系。点分十进制 IP 地址中一定是包含三个“点”,但每一个域名中“点”的数目则不一定正好是三个。

互联网的域名空间

image-20190514135938095

图2-1

域名服务器

一个服务器所负责管辖的(或有权限的)范围叫做区 (zone),各单位根据具体情况来划分自己管辖范围的区。但在一个区中的所有节点必须是能够连通的。 每一个区设置相应的权限域名服务器,用来保存该区中的所有主机的域名到 IP 地址的映射,DNS 服务器的管辖范围不是以“域”为单位,而是以**“区”**为单位。

域名服务器的种类

根域名服务器

根域名服务器最高层次的域名服务器,也是最重要的域名服务器,所有的根域名服务器都知道所有的顶级域名服务器域名IP 地址。 不管是哪一个本地域名服务器,若要对互联网上任何一个域名进行解析,只要自己无法解析,就首先求助于根域名服务器。 在互联网上共有 13 个不同 IP 地址的根域名服务器,它们的名字是用一个英文字母命名,从 a 一直到 m(前 13 个字母)。

根域名服务器共有 13 套装置,不是 13 个机器。 这些根域名服务器相应的域名分别是:

  1. a.rootservers.net
  2. b.rootservers.net
  3. m.rootservers.net

到2016年2月,全世界已经在 588 个地点安装了根域名服务器,使世界上大部分 DNS 域名服务器都能就近找到一个根域名服务器。

根域名服务器并不直接把域名转换成 IP 地址。 在使用迭代查询时,根域名服务器把下一步应当找的顶级域名服务器的 IP 地址告诉本地域名服务器

顶级域名服务器

顶级域名服务器(即 TLD 服务器)负责管理在该顶级域名服务器注册的所有二级域名。 当收到 DNS 查询请求时,就给出相应的回答(可能是最后的结果,也可能是下一步应当找的域名服务器的 IP 地址)。

权限域名服务器

负责一个的域名服务器。 当一个权限域名服务器还不能给出最后的查询回答时,就会告诉发出查询请求的 DNS 客户,下一步应当找哪一个权限域名服务器。

本地域名服务器

本地域名服务器对域名系统非常重要, 当一个主机发出 DNS 查询请求时,这个查询请求报文就发送给本地域名服务器。 每一个互联网服务提供者 ISP,或一个大学,甚至一个大学里的系,都可以拥有一个本地域名服务器, 这种域名服务器有时也称为默认域名服务器

树状结构的 DNS 域名服务器

image-20190514140146944

图2-2

DNS 域名服务器都把数据复制到几个域名服务器来保存,其中的一个是主域名服务器,其他的是辅助域名服务器。 当主域名服务器出故障时,辅助域名服务器可以保证 DNS 的查询工作不会中断,主域名服务器定期把数据复制到辅助域名服务器中,而更改数据只能在主域名服务器中进行,这样就保证了数据的一致性

域名的解析过程

这里首先要注意两点:

  1. 主机本地域名服务器的查询一般都是采用递归查询。如果主机所询问的本地域名服务器不知道被查询域名的 IP 地址,那么本地域名服务器就以 DNS 客户的身份,向其他根域名服务器继续发出查询请求报文(一次得到结果)。
  2. 本地域名服务器向根域名服务器的查询通常是采用迭代查询。当根域名服务器收到本地域名服务器的迭代查询请求报文时,要么给出所要查询的 IP 地址,要么告诉本地域名服务器:“你下一步应当向哪一个域名服务器进行查询”,然后让本地域名服务器进行后续的查询(可能需要多次查询)。

这里用一个例子进行说明:

image-20190514141453176

图2-3:DNS查询举例

假定域名为m.xyz.com的主机想知道另一台主机(域名为y.abc.com)的IP地址。例
如,主机m.xyz.com打算发送邮件给主机y.abc.com,这时就必须知道主机y.abc.com的IP
地址。下面是图2-3的几个查询步骤:

  1. 主机m.xyz.com先向其本地域名服务器dns.xyz.com进行递归查询
  2. 本地域名服务器采用迭代查询。它先向一个根域名服务器查询。
  3. 根域名服务器告诉本地域名服务器,下一次应查询的顶级域名服务器dns.com的IP
    地址。
  4. 本地域名服务器顶级域名服务器dns.com进行查询。
  5. 顶级域名服务器dns.com告诉本地域名服务器,下一次应查询的权限域名服务器
    dns.abc.com的IP地址。
  6. 本地域名服务器权限域名服务器dns.abc.com进行查询。
  7. 权限域名服务器dns.abc.com告诉本地域名服务器,所查询的主机的IP地址。
  8. 本地域名服务器最后把查询结果告诉主机m.xyz.como

我们注意到,这8个步骤总共要使用8个UDP用户数据报的报文。本地域名服务器经
过三次迭代查询后,从权限域名服务器dns.abc.com得到了主机y.abc.com的IP地址,最后
把结果返回给发起查询的主机m.xyz.como
图2-3(b)是本地域名服务器采用递归查询的情况,在这种情况下,本地域名服务器只
需向根域名服务器查询一次,后面的几次查询都是在其他几个域名服务器之间进行的(步
骤3至6)。只是在步骤7,本地域名服务器从根域名服务器得到了所需的IP地址。最后
在步骤9,本地域名服务器把查询结果告诉主机m.xyz.com。整个的查询也是使用8个UDP
报文。

为了提高DNS的查询效率,并减轻根域名服务器的负荷和减少互联网上的DNS查询报文数量,每个域名服务器都维护一个高速缓存,存放最近用过的名字以及从何处获得名字映射信息的记录,为保持高速缓存中的内容正确,域名服务器应为每项内容设置计时 器,并处理超过合理时间的项(例如,每个项目只存放两天)。 当权限域名服务器回答一个查询请求时,在响应中都指明绑定有效存在的时间值,增加此时间值可减少网络开销,而减少此时间值可提高域名转换的准确性。

文件传送协议

FTP概述

文件传送协议 FTP (File Transfer Protocol) 是互联网上使用得最广泛的文件传送协议。 FTP 提供交互式的访问,允许客户指明文件的类型格式(如指明是否使用ASCII码),并允许文件具有存取权限(如访问文件的用户必须经过授权,并输入有效的口令)。 FTP 屏蔽了各计算机系统的细节,因而适合于在异构网络中任意计算机之间传送文件

在下面两节分别介绍基于TCF的FTP和基于UDP的简单文件传送协议TFTP,它们都是文件共享协议中的一大类,即复制整个文件,其特点是若要存取一个文件,就必须先获得一个本地的文件副本,如果要修改文件,只能对文件的副本进行修改,然后再将修改后的文件副本传回到原节点。

文件共享协议中的另一大类是联机访问(on-line access),联机访问意味着允许多个程序同时对一个文件进行存取。和数据库系统的不同之处是用户不需要调用一个特殊的客户进程,而是由操作系统提供对远地共享文件进行访问的服务,就如同对本地文件的访问一样,这就使用户可以用远地文件作为输入和输出来运行任何应用程序,而操作系统中的文件系统则提供对共享文件的透明存取。透明存取的优点是将原来用于处理本地文件的应用程序用来处理远地文件时,不需要对该应用程序作明显的改动。属于文件共享协议的有网络文件系统NFS(Network File System)

FTP原理

网络环境中的一项基本应用就是将文件从一台计算机中复制到另一台可能相距很远的计算机中, 初看起来,在两个主机之间传送文件是很简单的事情,其实这往往非常困难,原因是众多的计算机厂商研制出的文件系统多达数百种,且差别很大,经常遇到的问题是:

  1. 计算机存储数据的格式不同。
  2. 文件的目录结构文件命名的规定不同。
  3. 对于相同的文件存取功能,操作系统使用的命令不同。
  4. 访问控制方法不同。

FTP特点:

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

主进程的工作步骤:

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

FTP的工作情况如图3-1所示,途中的椭圆圈表示在系统中运行的进程,图中的服务器端有两个从属进程:控制进程数据传送进程,为简单起见,服务端的主进程没有画上。

控制连接在整个会话期间一直保持打开,FTP 客户发出的传送请求通过控制连接发送给服务器端的控制进程,但控制连接不用来传送文件。 实际用于传输文件的是**“数据连接”,服务器端的控制进程在接收到 FTP 客户发送来的文件传输请求后就创建“数据传送进程”“数据连接”,用来连接客户端和服务器端的数据传送进程, 数据传送进程实际完成文件的传送**,在传送完毕后关闭**“数据传送连接”**并结束运行。

image-20190514143950840

图3-1:FTP使用的2个TCP连接

当客户进程向服务器进程发出建立连接请求时,要寻找连接服务器进程的熟知端口 (21),同时还要告诉服务器进程自己的另一个端口号码,用于建立数据传送连接。 接着,服务器进程用自己传送数据的熟知端口 (20) 与客户进程所提供的端口号码建立数据传送连接。 由于 FTP 使用了两个不同的端口号,所以数据连接与控制连接不会发生混乱。

使用两个端口(两个连接)的好处是可以使协议更加简单和更容易实现,而且在传输文件时还可以利用控制连接对文件的传输进行控制(例如,客户发送请求终止传输)

FTP并非对于所有的数据传送都是最佳的,比如计算机A上有一个很大的文件,计算机B想在A的那个大文件的最后添加一行,如果使用FTP就必须B先把A的那个大文件整个拿到,最最后一行的修改后再回传给A,这样做其实很浪费时间,而且这种传送时不必要的,因为B并没有使用该文件的其他内容。

然而网络文件系统NFS则采用另一种思路:

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

简单文件传送协议TFTP

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

TFTP的主要优点有两个:

  1. TFTP采用UDP环境

    例如,当文件或者程序需要面向许多及其下载时往往就需要TFTP。

  2. TFTP所占的内存较小

    这对较小的计算机或某些特殊用途的设备是很重要的。这些设备不需要硬盘,只需要固化了TFTP、UDP和IP的小容量只读存储器即可,当接通电源后,设备执行只读存储器中的代码,在网络上广播一个TFTP请求,网络上的TFTP服务器就发送响应,其中包括可执行二禁止程序。设备收到此文件后将其放入内存,然后开始运行程序。这种方式增加了灵活性,也减少了开销。

TFTP的主要特点:

  1. 每次传送的数据 PDU 中有 512 字节的数据,但最后一次可不足 512 字节。
  2. 数据 PDU 也称为文件块 (block),每个块按序编号,从 1 开始。
  3. 支持 ASCII 码或二进制传送。
  4. 可对文件进行读或写。
  5. 使用很简单的首部。

TFTP 的工作很像停止等待协议,发送完一个文件块后就等待对方的确认,确认时应指明所确认的块编号。 发完数据后在规定时间内收不到确认就要重发数据 PDU。 发送确认 PDU 的一方若在规定时间内收不到下一个文件块,也要重发确认 PDU。这样就可保证文件的传送不致因某一个数据报的丢失而告失败。开始工作时,TFTP 客户进程发送一个读请求 PDU 或写请求 PDU 给 TFTP 服务器进程,其熟知端口号码为 69。 TFTP 服务器进程要选择一个新的端口和 TFTP 客户进程进行通信。 若文件长度恰好为 512 字节的整数倍,则在文件传送完毕后,还必须在最后发送一个只含首部而无数据的数据 PDU。 若文件长度不是 512 字节的整数倍,则最后传送数据 PDU 的数据字段一定不满 512 字节,这正好可作为文件结束的标志。

远程终端协议TELNET

TELNET 是一个简单的远程终端协议,也是互联网的正式标准。 用户用 TELNET 就可在其所在地通过 TCP 连接注册(即登录)到远地的另一个主机上(使用主机名或 IP 地址)。 TELNET 能将用户的击键传到远地主机,同时也能将远地主机的输出通过 TCP 连接返回到用户屏幕,这种服务是透明的,因为用户感觉到好像键盘和显示器是直接连在远地主机上,因此,TELNET又称为终端仿真协议

现在由于 PC 的功能越来越强,用户已较少使用 TELNET 了。

TELNET 也使用客户服务器方式:

在本地系统运行 TELNET 客户进程,而在远地主机则运行 TELNET 服务器进程。 和 FTP 的情况相似,服务器中的主进程等待新的请求,并产生从属进程来处理每一个连接。

image-20190514193100398

图4-1:TELNET使用网络虚拟终端NVT格式

如图4-1所示,客户软件把用户的击键和命令转换成 NVT 格式,并送交服务器。 服务器软件把收到的数据和命令,从 NVT 格式转换成远地系统所需的格式。 向用户返回数据时,服务器把远地系统的格式转换为 NVT 格式,本地客户再从 NVT 格式转换到本地系统所需的格式。

这一机制的原因是不同计算机或操作系统具有很大的差异性,同一个命令可能在不同的操作系统对应不同的字符,所以使用NAT消除这种差别性。

万维网www

万维网概述

万维网 WWW (World Wide Web) 并非某种特殊的计算机网络,而是一个大规模的、联机式的信息储藏所。 万维网用链接的方法能非常方便地从互联网上的一个站点访问另一个站点,从而主动地按需获取丰富的信息, 这种访问方式称为**“链接”**,图5-1说明了万维网提供分布式服务的特点。

image-20190514193634463

图5-1:万维网提供分布式服务

万维网是分布式超媒体 (hypermedia) 系统,它是超文本 (hypertext) 系统的扩充。

一个超文本由多个信息源链接成,利用一个链接可使用户找到另一个文档,这些文档可以位于世界上任何一个接在互联网上的超文本系统中。

超文本是万维网的基础, 超媒体与超文本的区别是文档内容不同,超文本文档仅包含文本信 息,而超媒体文档还包含其他表示方式的信息,如图形、图像、声 音、动画,甚至活动视频图像。

万维网以客户 - 服务器方式工作, 浏览器就是在用户计算机上的万维网客户程序,万维网文档所驻留的计算机则运行服务器程序,因此这个计算机也称为万维网服务器。 客户程序向服务器程序发出请求,服务器程序向客户程序送回客户所要的万维网文档, 在一个客户程序主窗口上显示出的万维网文档称为页面 (page)

万维网必须解决的问题:

  1. 怎样标志分布在整个互联网上的万维网文档?

    使用统一资源定位符 URL (Uniform Resource Locator) 来标志万维网上的各种文档, 使每一个文档在整个互联网的范围内具有唯一的标识符 URL

  2. 用何协议实现万维网上各种超链的链接?

    在万维网客户程序与万维网服务器程序之间进行交互所使用的协议,是超文本传送协议 HTTP (HyperText Transfer Protocol)。 HTTP 是一个应用层协议,它使用 TCP 连接进行可靠的传送。

  3. 怎样使各种万维网文档都能在互联网上的各种计算机上显示出来,同时使用户清楚地知道在什么地方存在着超链?

    超文本标记语言 HTML (HyperText Markup Language) 使得万维网页面的设计者可以很方便地用一个超链从本页面的某处链接到互联网上的任何一个万维网页面,并且能够在自己的计算机屏幕上将这些页面显示出来。

  4. 怎样使用户能够很方便地找到所需的信息?

  5. 为了在万维网上方便地查找信息,用户可使用各种的搜索工具(即搜索引擎)

统一资源定位符URL

资源定位符 URL 是对可以从互联网上得到的资源的位置和访问方法的一种简洁表示。 URL 给资源的位置提供一种抽象的识别方法,并用这种方法给资源定位。 只要能够对资源定位,系统就可以对资源进行各种操作,如存取、更新、替换和查找其属性。 URL 相当于一个文件名在网络范围的扩展,因此 URL 是与互联网相连的机器上的任何可访问对象的一个指针

URL格式

URL由以冒号隔开的两大部分组成,并且在 URL 中的字符对大写或小写没有要求。 URL 的一般形式:
&lt;&gt;//&lt;&gt;:&lt;&gt;/&lt;&gt; &lt;协议&gt;://&lt;主机&gt;:&lt;端口&gt;/&lt;路径&gt;

  • URL的第一部分是<协议>,指使用什么协议来获取万维网文档,现在最常用的是http(超文本传输协议),其次是ftp(文件传送协议FTP)
  • 在<协议>后面的//是规定的格式

现在有些浏览器为了方便用户,在输入 URL 时,可以把最前面的“http://”甚至把主机名最前面的“www”省略,然后浏览器替用户把省略的字符添上。 例如,用户只要键入 ctrip.com,浏览器就自动把未键入的字符补齐,变成http://www.ctrip.com

使用HTTP的URL

对于万维网的网点的访问要使用HTTP协议,HTTP协议的URL的一般形式是:
http://&lt;&gt;:&lt;&gt;/ http://&lt;主机&gt;:&lt;端口&gt;/路径
HTTP默认的端口号是80,通常可以省略,若再省略文件的路径项,则URL就指到互联网上的某个主页(home page)

超文本传输协议HTTP

HTTP的操作过程

为了使超文本的链接能够高效率地完成,需要用 HTTP 协议来传送一切必须的信息。 从层次的角度看,HTTP 是面向事务 (transaction-oriented) 的应用层协议,它是万维网上能够可靠地交换文件(包括文本、声音、图像等各种多媒体文件)的重要基础。

万维网的大致工作过程如图5-2所示:

image-20190514195437248

图5-2:万维网的工作过程

大致分为以下几步:

  1. 每个万维网网点都有一个服务器进程,它不断地监听 TCP 的端口 80,以便发现是否有浏览器向它发出连接建立请求。
  2. 一旦监听到连接建立请求并建立了 TCP 连接之后,浏览器就向万维网服务器发出浏览某个页面的请求,服务器接着就返回所请求的页面作为响应。
  3. 最后,TCP 连接就被释放了。

在浏览器和服务器之间的请求和响应的交互,必须按照规定的格式和遵循一定的规则。这些格式和规则就是超文本传送协议 HTTP。 HTTP 规定在 HTTP 客户与 HTTP 服务器之间的每次交互,都由一个 ASCII 码串构成的请求和一个类似的通用互联网扩充,即**“类 MIME (MIME-like)”**的响应组成。 HTTP 报文通常都使用 TCP 连接传送。

HTTP的主要特点:

HTTP 使用了面向连接的 TCP 作为运输层协议,保证了数据的可靠传输

HTTP 协议本身也是无连接的,虽然它使用了面向连接的 TCP 向上提供的服务,但是通信双方在交换HTTP报文之前不需要先建立HTTP连接。

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

HTTP 是面向事务的客户服务器协议。

事物:指一系列信息的交换,而这一系列的信息交换是一个不可分割的整体,也就是说,要么所有的信息交换都完成,要么一次交换都不进行。

下面我们来估算一下,从浏览器请求一个万维网文档到收到整个文档所需的时间,如图5-3所示:

image-20190514200325107

图5-3:请求一个万维网文档所需的时间

HTTP协议首先要和服务器建立TCP连接,这需要三次握手,当建立TCP连接的三次握手的前两部分完成后(即经过一个RTT时间后),万维网客户就把HTTP请求报文作为建立连接的三报文握手中的第三个报文中的数据发送给万维网服务器,服务器收到HTTP请求报文后,就把请求的文档作为响应报文返回客户。

从图5-3可看出,请求一个万维网文档所需的时间是该文档的传输时间(与文档大小成正比)加上两倍往返时间RTT(一个RTT用于连接TCP连接,另一个RTT用于请求和接收万维网文档)。TCP建立连接的三报文握手的第三个报文段中的数据,就是客户对万维网文档的请求报文)。

HTTP 1.0的主要缺点,就是每请求一个文档就要有两倍RTT的开销。若一个主页上有很多链接的对象(如图片等)需要依次进行链接,那么每一次链接下载都导致2 ×RTT的开销。另一种开销就是万维网客户和服务器每一次建立新的TCP连接都要分配缓存和变量,特别是万维网服务器往往要同时服务于大量客户的请求,所以这种非持续连接会使万维网服务器的负担很重。好在浏览器都能够打开5~10个并行的TCP连接,而每一个TCP连接处理客户的一个请求。因此,使用并行TCP连接可以缩短响应时间。

HTTP/1.1协议较好地解决了这个问题,它使用了持续连接(persistent connection)。所谓持续连接就是万维网服务器在发送响应后仍然在一段时间内保持这条连接,使同一个客户(浏览器)和该服务器可以继续在这条连接上传送后续的HTTP请求报文和响应报文,这并不局限于传送同一个页面上链接的文档,而是只要这些文档都在同一个服务器上就行。目前一些流行的浏览器(如IE 11.0)的默认设置就使用了HTTP/1.1。如果用户不愿意使用持续连接的浏览器,可以选择IE浏览器上面的"工具->Internet选项->高级"等项目,把"HTTP 1.1设置"的选择取消即可。

HTTP/1.1协议的持续连接有两种工作方式,即非流水线方式(without pipelining)流水线方式(with pipelining):

  1. 非流水线方式的特点,是客户在收到前一个响应后才能发出下一个请求。因此,在TCP连接已建立后,客户每访问一次对象都要用去一个往返时间RTT,这比非持续连接要用去两倍RTT的开销节省了建立TCP连接所需的一个RTT时间。但非流水线方式还是有缺点的,因为服务器在发送完一个对象后,其TCP连接就处于空闲状态,浪费了服务器资源。
  2. 流水线方式的特点,是客户在收到HTTP的响应报文之前就能够接着发送新的请求报文。于是一个接一个的请求报文到达服务器后,服务器就可连续发回响应报文。因此,使用流水线方式时,客户访问所有的对象只需花费一个RTT时间。流水线工作方式使TCP连接中的空闲时间减少,提高了下载文档效率。

代理服务器

代理服务器 (proxy server) 又称为万维网高速缓存 (Web cache),它代表浏览器发出 HTTP 请求。 万维网高速缓存把最近的一些请求和响应暂存在本地磁盘中, 当与暂时存放的请求相同的新请求到达时,万维网高速缓存就把暂存的响应发送出去,而不需要按 URL 的地址再去互联网访问该资源。代理服务器可在客户端或服务端工作,也可在中间系统上工作,下面我们用例子来说明他的作用:

image-20190514202452437

图5-4:代理服务器的作用

设图5-4(a)是校园网不使用代理服务器的情况。这时,校园网中所有的计算机都通过2Mbit/s专线链路(R1,R2)与互联网上的源点服务器建立TCP连接。因而校园网各计算机访问互联网的通信量往往会使这条2 Mbit/s的链路过载,使得时延大大增加。

图5-4(b)是校园网使用代理服务器的情况。这时,访问互联网的过程是这样的:

  1. 校园网的计算机中的浏览器向互联网的服务器请求服务时,就先和校园网的代理服务器建立Tcp连接,并向代理服务器发出HTTP请求报文(见图5-4(b)中的1。
  2. 若代理服务器已经存放了所请求的对象,代理服务器就把这个对象放入HTTP响应报文中返回给计算机的浏览器。
  3. 否则,代理服务器就代表发出请求的用户浏览器,与互联网上的源点服务器(originserver)建立TCP连接(如图6-11(b)中的2所示),并发送HTTP请求报文。
  4. 源点服务器把所请求的对象放在HTTP响应报文中返回给校园网的代理服务器
  5. 代理服务器收到这个对象后,先复制在自己的本地存储器中(留待以后使用),然后再把这个对象放在HTTP相应报文中,通过已经建立的TCP连接(见图5-4(b)中的1),返回给请求该对象的浏览器。

HTTP的报文结构

HTTP 有两类报文:

  1. 请求报文——从客户向服务器发送请求报文。
  2. 响应报文——从服务器到客户的回答。

由于 HTTP 是面向正文 (text-oriented)的,因此在报文中的每一个字段都是一些 ASCII 码串,因而每个字段的长度都是不确定的

image-20190514202958894

图5-5:HTTP的报文结构

HTTP的请求报文和响应报文都是由三个部分组成的,可以看出,这两种报文的区别就是开始行不同。

  1. 开始行,用于区分是请求报文还是响应报文。在请求报文中的开始行叫做请求行(Request-Line),而在响应报文中的开始行叫做状态行(Status-Line)。在开始行的三个字段之间都以空格分隔开,最后的“CR”和“LF”分别代表**"回车""换行“**。
  2. 首部行,用来说明浏览器、服务器或报文主体的一些信息。首部可以有好几行,但也可以不使用。在每一个首部行中都有首部字段名和它的值,每一行在结束的地方都要有"回车"和"换行”。整个首部行结束时,还有一空行将首部行和后面的实体主体分开。
  3. 实体主体(entity body),在请求报文中一般都不用这个字段,而在响应报文中也可能没有这个字段。

我们来看一下请求报文的组成:

  1. 方法

    “方法”是面向对象技术中使用的专门名词。所谓“方法”就是对所请求的对象进行的操作,因此这些方法实际上也就是一些命令,因此,请求报文的类型是由它所采用的方法决定的,HTTP请求报文的一些常见方法如下表所示:

    image-20190514203345657

  2. URL:所请求的资源的 URL。

  3. 版本:HTTP 的版本。

对于响应报文,开始行是状态行。 状态行包括三项内容,即 HTTP 的版本状态码,以及解释状态码的简单短语

状态码都是三位数字:

  • 1xx 表示通知信息的,如请求收到了或正在进行处理。

  • 2xx 表示成功,如接受或知道了。

  • 3xx 表示重定向,表示要完成请求还必须采取进一步的行动。

  • 4xx 表示客户的差错,如请求中有错误的语法或不能完成。

  • 5xx 表示服务器的差错,如服务器失效无法完成请求。

在服务器上存放用户信息

万维网站点可以使用 Cookie 来跟踪用户。 Cookie 表示在 HTTP 服务器和客户之间传递的状态信息。 使用 Cookie 的网站服务器为用户产生一个唯一的识别码,利用此识别码,网站就能够跟踪该用户在该网站的活动

电子邮件

电子邮件概述

电子邮件 (e-mail):指使用电子设备交换的邮件及其方法。 电子邮件是互联网上使用得最多的和最受用户欢迎的一种应用。 优点:使用方便,传递迅速,费用低廉,可以传送多种类型的信息(包括:文字信息,声音和图像等)。

电子邮件的重要标准

  1. 简单邮件发送协议:SMTP
  2. 互联网文本报文格式
  3. 通用互联网邮件扩充 MIME
  4. 邮件读取协议:POP3 和 IMAP

image-20190514204840833

图6-1:电子邮件的最主要的组成构建

电子邮件的最主要的组成构建如图6-1所示:用户代理邮件服务器邮件发送和读取协议

用户代理 UA (User Agent)

用户代理 UA 就是用户与电子邮件系统的接口,是电子邮件客户端软件。 用户代理的功能:撰写、显示、处理和通信。 邮件服务器的功能是发送接收邮件,同时还要向发信人报告邮件传送的情况(已交付、被拒绝、丢失等), 邮件服务器按照客户 - 服务器方式工作,邮件服务器需要使用**发送(SMTP)读取(POP3)**两个不同的协议。

邮件发送和读取使用不同的协议协议:

  • 简单邮件发送协议 SMTP:用于在用户代理向邮件服务器或邮件服务器之间发送邮件
  • 邮局协议 POP3:用于用户代理从邮件服务器读取邮件

SMTP和POP3(或IMAP)都是使用TCP连接来传送邮件的,目的是为了可靠地传送邮件

注意:一个邮件服务器既可以作为客户,也可以作为服务器。 例如,当邮件服务器 A 向另一个邮件服务器 B 发送邮件时,邮件服务器 A 就作为 SMTP 客户,而 B 是 SMTP 服务器。 当邮件服务器 A 从另一个邮件服务器 B 接收邮件时,邮件服务器 A 就作为 SMTP 服务器,而 B 是 SMTP 客户。

发送和接收电子邮件的几个重要步骤

  1. 发件人调用 PC 中的用户代理撰写和编辑要发送的邮件。
  2. 发件人的用户代理把邮件用 SMTP 协议发给发送方邮件服务器。
  3. SMTP 服务器把邮件临时存放在邮件缓存队列中,等待发送。
  4. 发送方邮件服务器的 SMTP 客户与接收方邮件服务器的 SMTP 服务器建立 TCP 连接,然后就把邮件缓存队列中的邮件依次发送出去。
  5. 运行在接收方邮件服务器中的SMTP服务器进程收到邮件后,把邮件放入收件人的用户邮箱中,等待收件人进行读取。
  6. 收件人在打算收信时,就运行PC机中的用户代理,使用POP3(或 IMAP)协议读取发送给自己的邮件。

电子邮件的组成

电子邮件由信封 (envelope)内容 (content) 两部分组成。 电子邮件的传输程序根据邮件信封上的信息来传送邮件。用户在从自己的邮箱中读取邮件时才能见到邮件的内容。 在邮件的信封上,最重要的就是收件人的地址。

TCP/IP 体系的电子邮件系统规定电子邮件地址的格式如下:
@ 收件人邮箱名@邮箱所在主机的域名
符号**“@”读作“at”,表示“在”**的意思。

简单邮件传送协议SMTP

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

SMTP 是一个基于文本的 (即 ASCII 码) 的协议,SMTP 客户与服务器之间采用命令-响应方式进行交互。

SMTP 通信的三个阶段

  1. 连接建立:连接是在发送主机的 SMTP 客户接收主机的 SMTP 服务器之间建立的,SMTP不使用中间的邮件服务器。

  2. 邮件传送

  3. 连接释放:邮件发送完毕后,SMTP 应释放 TCP 连接

写不动了,不写了哼

2017-06-02 10:00:00 weixin_33798152 阅读数 39
  • 基于深度学习的计算机视觉:原理与实践(上部)

    本课程适合具有一定深度学习基础,希望发展为深度学习之计算机视觉方向的算法工程师和研发人员的同学们。 基于深度学习的计算机视觉是目前人工智能最活跃的领域,应用非常广泛,如人脸识别和无人驾驶中的机器视觉等。该领域的发展日新月异,网络模型和算法层出不穷。如何快速入门并达到可以从事研发的高度对新手和中级水平的学生而言面临不少的挑战。精心准备的本课程希望帮助大家尽快掌握基于深度学习的计算机视觉的基本原理、核心算法和当前的领先技术,从而有望成为深度学习之计算机视觉方向的算法工程师和研发人员。 本课程系统全面地讲述基于深度学习的计算机视觉技术的原理并进行项目实践。课程涵盖计算机视觉的七大任务,包括图像分类、目标检测、图像分割(语义分割、实例分割、全景分割)、人脸识别、图像描述、图像检索、图像生成(利用生成对抗网络)。本课程注重原理和实践相结合,逐篇深入解读经典和前沿论文70余篇,图文并茂破译算法难点, 使用思维导图梳理技术要点。项目实践使用Keras框架(后端为Tensorflow),学员可快速上手。 通过本课程的学习,学员可把握基于深度学习的计算机视觉的技术发展脉络,掌握相关技术原理和算法,有助于开展该领域的研究与开发实战工作。另外,深度学习之计算机视觉方向的知识结构及学习建议请参见本人CSDN博客。 本课程提供课程资料的课件PPT(pdf格式)和项目实践代码,方便学员学习和复习。 本课程分为上下两部分,其中上部包含课程的前五章(课程介绍、深度学习基础、图像分类、目标检测、图像分割),下部包含课程的后四章(人脸识别、图像描述、图像检索、图像生成)。

    2870 人正在学习 去看看 白勇

本节书摘来华章计算机《计算机网络:自顶向下方法(原书第6版)》一书中的第1章 ,第1.7节,(美)James F.Kurose Keith W.Ross 著 陈 鸣 译 更多章节内容可以访问云栖社区“华章计算机”公众号查看。

1.7 计算机网络和因特网的历史

1.1节到1.6节概述了计算机网络和因特网的技术。你现在应当有足够的知识来给家人和朋友留下深刻印象了。然而,如果你真的想在下次鸡尾酒会上一鸣惊人,你应当在你的演讲中点缀上一些有关因特网引人入胜的历史轶闻[Segaller 1998]。

1.7.1 分组交换的发展:1961~1972

计算机网络和今天因特网领域的开端可以回溯到20世纪60年代的早期,那时电话网是世界上占统治地位的通信网络。1.3节讲过,电话网使用电路交换将信息从发送方传输到接收方,这种适当的选择使得语音以一种恒定的速率在发送方和接收方之间传输。随着20世纪60年代早期计算机的重要性越来越大,以及分时计算机的出现,考虑如何将计算机连接在一起,并使它们能够被地理上分布的用户所共享的问题,也许就成了一件自然的事。这些用户所产生的流量很可能具有“突发性”,即活动的间断性,例如向远程计算机发送一个命令,接着由于在等待应答或在对接收到的响应进行思考而有静止的时间段。
全世界有3个研究组首先发明了分组交换,以作为电路交换的一种有效的、健壮的替代技术。这3个研究组互不知道其他人的工作[Leiner 1998]。有关分组交换技术的首次公开发表出自Leonard Kleinrock[Kleinrock 1961,Kleinrock 1964],那时他是麻省理工学院(MIT)的一名研究生。Kleinrock使用排队论,完美地体现了使用分组交换方法处理突发性流量源的有效性。1964年,兰德公司的Paul Baran[Baran 1964]已经开始研究分组交换的应用,即在军用网络上传输安全语音,同时在英国的国家物理实验室(NPL),Donald Davies和Roger Scantlebury也在研究分组交换技术。
MIT、兰德和NPL的工作奠定了今天的因特网的基础。但是因特网也经历了很长的“边构建边示范(let’s-build-it-and-demonstrate-it)”的历史,这可追溯到20世纪60年代早期。J.C.R.Licklider[DEC 1990]和Lawrence Roberts都是Kleinrock在MIT的同事,他们转而去领导美国高级研究计划署(Advanced Research Projects Agency,ARPA)的计算机科学计划。Roberts公布了一个号称ARPAnet[Roberts 1967]的总体计划,它是第一个分组交换计算机网络,是今天的公共因特网的直接祖先。在1969年的劳动节,第一台分组交换机在Kleinrock的监管下安装在UCLA(美国加州大学洛杉矶分校),其他3台分组交换机不久后安装在斯坦福研究所(Stanford Research Institute,SRI)、美国加州大学圣巴巴拉分校(UC Santa Barbara)和犹他大学(University of Utah)(参见图1-26)。羽翼未丰的因特网祖先到1969年年底有了4个结点。Kleinrock回忆说,该网络的最先应用是从UCLA到SRI执行远程注册,但却导致了该系统的崩溃[Kleinrock 2004]。

image


到了1972年,ARPAnet已经成长为约15个结点,由Robert Kahn首次对它进行了公众演示。在ARPAnet端系统之间的第一台主机到主机协议称为网络控制协议(NCP),就是此时完成的[RFC 001]。随着端到端协议的可供使用,这时能够写应用程序了。在1972年,Ray Tomlinson编写了第一个电子邮件程序。

1.7.2 专用网络和网络互联:1972~1980

最初的ARPAnet是一个单一的、封闭的网络。为了与ARPAnet的一台主机通信,一台主机必须与另一台ARPAnet IMP实际相连。从20世纪70年代早期和中期,除ARPAnet之外的其他分组交换网络问世:ALOHAnet是一个微波网络,它将夏威夷岛上的大学[Abramson 1970],以及DARPA的分组卫星[RFC 829]和分组无线电网 [Kahn 1987]连接到一起;Telenet是BBN的商用分组交换网,基于ARPAnet技术;由Louis Pouzin领衔的Cyclades是一个法国的分组交换网[Think 2012];如Tymnet和GE信息服务网这样的分时网络,以及20世纪60年代后期和70年代初期的类似网络[Schwartz 1977];IBM的SNA(1996~1974),它与ARPAnet并行工作[Schwartz 1977]。
网络的数目开始增加。时至今日人们看到,研制将网络连接到一起的体系结构的时机已经成熟。互联网络的先驱性工作(得到了美国国防部高级研究计划署(DARPA)的支持)由Vinton Cerf和Robert Kahn [Cerf 1974]完成,本质上就是创建一个网络的网络;术语网络互联(internetting)就是用来描述该项工作的。
这些体系结构的原则被具体表达在TCP协议中。然而,TCP的早期版本与今天的TCP差异很大。TCP的早期版本与数据可靠的顺序传递相结合,经过具有转发功能(今天该功能由IP执行)的端系统的重传(仍是今天的TCP的一部分)。TCP的早期实验以及认识到对诸如分组语音这样的应用程序——一个不可靠、非流控制的端到端传递服务的重要性,导致IP从TCP中分离出来,并研制了UDP协议。我们今天看到的3个重要的因特网协议——TCP、UDP和IP,到20世纪70年代末在概念上已经完成。
除了DARPA的因特网相关研究外,许多其他重要的网络活动也在进行中。在夏威夷,Norman Abramson正在研制ALOHAnet,这是一个基于分组的无线电网络,它使在夏威夷岛上的多个远程站点互相通信。ALOHA协议[Abramson 1970]是第一个多路访问协议,允许地理上分布的用户共享单一的广播通信媒体(一个无线电频率)。Metcalfe和Boggs基于Abramson的多路访问协议,研制了基于有线的共享广播网络的以太网协议[Metcalfe 1976]。令人感兴趣的是,Metcalfe和Boggs的以太网协议是由连接多台PC、打印机和共享磁盘在一起的需求所激励的[Perkins 1994]。在PC革命和网络爆炸的25年之前,Metcalfe和Boggs就奠定了今天PC LAN的基础。

1.7.3 网络的激增:1980~1990

到了20世纪70年代末,大约200台主机与ARPAnet相连。到了20世纪80年代,连到公共因特网的主机数量达到100000台。20世纪80年代是联网主机数量急剧增长的时期。
这种增长导致了几个创建计算机网络将大学连接到一起的显著成果。BITNET为位于美国东北部的几个大学之间提供了电子邮件和文件传输。建立了CSNET(计算机科学网),以将还没有接入ARPAnet的大学研究人员连接在一起。1986年,建立了NSFNET,为NSF资助的超级计算中心提供接入。NSFNET最初具有56kbps的主干速率,到了20世纪80年代末,它的主干运行速率是1.5Mbps,并成为连接区域网络的基本主干。
在ARPAnet界中,许多今天的因特网体系结构的最终部分逐渐变得清晰起来。1983年1月1日见证了TCP/IP作为ARPAnet的新的标准主机协议的正式部署,替代了NCP协议。从NCP到TCP/IP的迁移[RFC 801]是一个标志性事件,所有主机被要求在那天转移到TCP/IP上去。在20世纪80年代后期,TCP进行了重要扩展,以实现基于主机的拥塞控制[Jacobson 1988]。还研制出了DNS(域名系统),用于把人可读的因特网名字(例如gaia.cs.umass.edu)映射到它的32比特IP地址[RFC 1034]。
在20世纪80年代初期,在ARPAnet(这绝大多数是美国努力的成果)发展的同时,法国启动了Minitel项目,这个雄心勃勃的计划是让数据网络进入每个家庭。在法国政府的支持下,Minitel系统由公共分组交换网络(基于X.25协议集)、Minitel服务器和具有内置低速调制解调器的廉价终端组成。Minitel于1984年取得了巨大的成功,当时法国政府向每个需要的住户免费分发一个Minitel终端。Minitel站点包括免费站点(如电话目录站点),以及一些专用站点。这些专用站点根据每个用户的使用来收取费用。在20世纪90年代中期的鼎盛时期,Minitel提供了20000多种服务,涵盖从家庭银行到特殊研究数据库的广泛范围。Minitel在大量法国家庭中存在了10年后,大多数美国人才听说因特网。

1.7.4 因特网爆炸:20世纪90年代

20世纪90年代出现了许多标志因特网持续革命和很快到来的商业化的事件。作为因特网祖先的ARPAnet已不复存在。1991年,NSFNET解除了对NSFNET用于商业目的的限制。NSFNET自身于1995年退役,这时因特网主干流量则由商业因特网服务提供商负责承载。
然而,20世纪90年代的主要事件是万维网(World Wide Web)应用程序的出现,它将因特网带入世界上数以百万计的家庭和企业中。Web作为一个平台,也引入和配置了数百个新的应用程序,其中包括搜索(如谷歌和Bing)、因特网商务(如亚马逊和eBay)和社交网络(如脸谱),对这些应用程序我们今天已经习以为常了。
Web是由Tim Berners-Lee于1989~1991年期间在CERN发明的[Berners-Lee 1989],最初的想法源于20世纪40年代Vannevar Bush [Bush 1945]和20世纪60年代以来Ted Nelson[Xanadu 2007]在超文本方面的早期工作。Berners-Lee和他的同事研制了HTML、HTTP、Web服务器和浏览器的初始版本,这是Web的4个关键部分。到了1993年末前后,大约有200台Web服务器在运行,而这些只是正在出现的Web服务器的冰山一角。就在这个时候,几个研究人员研制了具有GUI接口的Web浏览器,其中的Marc Andreessen和Jim Clark一起创办了Mosaic Communications公司,该公司就是后来的Netscape通信公司[Cusmano 1998;Quittner 1998]。到了1995年,大学生们每天都在使用Netscape浏览器在Web上冲浪。大约在这段时间,大大小小的公司都开始运行Web服务器,并在Web上处理商务。1996年,微软公司开始开发浏览器,这导致了Netscape和微软之间的浏览器之战,并以微软公司在几年后获胜而告终[Cusumano 1998]。
20世纪90年代的后5年是因特网飞速增长和变革的时期,伴随着主流公司和数以千计的后起之秀创造因特网产品和服务。到了2000年末,因特网已经支持数百流行的应用程序,包括以下4种备受欢迎的应用程序:

  • 电子邮件,包括附件和Web可访问的电子邮件。
  • Web,包括Web浏览和因特网商务。
  • 即时讯息(instant messaging),具有联系人列表。
  • MP3的对等(peer-to-peer)文件共享,由Napster所领衔。

值得一提的是,前两个应用程序出自专业研究机构,而后两个却由一些年轻创业者所发明。
1995~2001年,这段时间也是因特网在金融市场上急转突变的时期。在成为有利可图的公司之前,数以百计的新兴因特网公司靠首次公开募股(IPO)并在股票市场上交易起家。许多公司身价数十亿美元,却没有任何主要的收入渠道。因特网的股票在2000~2001年崩盘,导致许多创业公司倒闭。不过,也有许多公司成为因特网世界的大赢家,包括微软、思科、雅虎、e-Bay、谷歌和亚马逊。

1.7.5 最新发展

计算机网络中的变革继续以急促的步伐前进。所有的前沿研究正在取得进展,包括部署更快的路由器和在接入网和网络主干中提供更高的传输速率。但下列进展值得特别关注:

  • 自2000年开始,我们见证了家庭宽带因特网接入的积极发展——不仅有电缆调制解调器和DSL,而且有光纤到户,这些在1.2节中讨论过。这种高速因特网为丰富的视频应用创造了条件,包括用户生成的视频的分发(例如YouTube),电影和电视节目流的点播(例如Netflix)和多人视频会议(例如Skype)。
  • 高速(54Mbps及更高)公共WiFi网络和经过3G和4G蜂窝电话网的中速(高达几Mbps)因特网接入越来越普及,不仅使在运动中保持持续连接成为可能,也产生了新型特定位置服务。2011年,与因特网连接的无线设备的数量超过了有线设备的数量。高速无线接入为手持计算机(iPhone、安卓手机、iPad等)的迅速出现提供了舞台,这些手持计算机具有对因特网持续不断和无拘束接入的优点。
  • 诸如脸谱和推特(Twitter)这样的在线社交网络已经在因特网之上构建了巨大的人际网络。许多因特网用户今天主要“活在”脸谱中。通过他们的API,在线社交网络为新的联网应用和分布式游戏创建了平台。
  • 如在1.3.3节中所讨论的,在线服务提供商如谷歌和微软已经部署了自己的广泛的专用网络。该专用网络不仅将它们分布在全球的数据中心连接在一起,而且通过直接与较低层ISP对等连接,能够尽可能绕过因特网。因此,谷歌几乎可以立即提供搜索结果和电子邮件访问,仿佛它们的数据中心运行在自己的计算机之中一样。
  • 许多因特网商务公司在“云”(如亚马逊的EC2、谷歌的应用引擎、微软的Azure)中运行它们的应用。许多公司和大学也已经将它们的因特网应用(如电子邮件和Web集合)迁移到云中。云公司不仅可以为应用提供可扩展的计算和存储环境,也可为应用提供对其高性能专用网络的隐含访问。
没有更多推荐了,返回首页