# Coursera-Note: Internet History, Technology and Secure
## 第一周

极其冗长的计算机起源:

用于军事解密->创造了计算机->发展到超级计算机

## 第二周

数据交换:

  • 从私人专线(铜线,私人租赁,成本随距离变化而变化,造价极高)->
  • 到专门建立一条公用数据线并应用数据的存储和转发技术(store and foward networking)

Packet switching技术:

  • 结合网关(gateway)和路由(router)

    • 路由:一种只能转发不能存储的电脑
  • 包(packet):带有包大小、序号、源地址和目的地址的标签。数据被拆分成各种包,通过不同路径并最后到达目的电脑中,重新组合
  • 主要技术疑难:链路路径循环(loop)或者堵塞问题

## 第三周

  • 解释了WWW万维网的形成和物理实验室的关系:

    • 1、建立一个集中性数据库存储300000份左右的物理资料;
    • 2、使用网络和链接,以连接到所需要的电脑读取文件,从而实现文件共享;
    • 3、任何人可以访问、创建、编辑
  • 安装了网络服务器(web server),结合database和网络,以方便查询(query)(也无意中发明了第一个网络搜索引擎)
  • 早期web浏览器:难以工作、安装、下载、编译等等->对www的开源和公开,并建立第一个有意义的网络浏览器(web browser):Mosaic浏览器

创造http

  • 将文档中的超链接组合在一起,作为用户界面导航和检索文档->未来可能会对那些试图以分布式方式管理文档的人非常有用
  • 应用于X windows box上->93-94可以应用于多个平台包括windows、Unix、mac
  • 微软对于浏览器的大量开发->增强了驱动标准和功能的多样性

## 第四周

JS和mozilla、firefox的起源

  • Netscape与microsoft进行竞争-> 决定开源->重造核心技术
  • 经过艰苦长时间的重建工作、netscape的失败产品,发布mozilla
  • 发明搜索框(web search box)
  • 与谷歌等搜索引擎合作,插入广告的搜索+点击收入模式

JS的发明:

  • 与java毫无关系。。
  • 可塑性可拓展需求、多范式编程模式、onclick、一等函数及原型继承
  • 易学、易操作
  • 加入一些有别于java、oop的功能,以防止太像java(?):closure模式等
  • 被后来人标准化并且多样化



    Microsoft将免费将浏览器和操作系统捆绑->导致netscape的闭源策略被削弱

World Wide Web Consortium

对互联网进行标准的高质量制定、保护互联网安全,防止互联网私有化

Jeff bezos:amazon创始人之一

- 完美利用了互联网的技术便利和网络使用量的迅速增长等优势,用书本的在线销售启动了他的商业计划
- 这是一次面向使用者的真正的创新商务模式,完美Capture the attention,得到了足够好的用户口碑和宣传力度(不需要广告)->电子商务的兴起

1990s:网络带来了经济增长以及过度投入的建设资金

## 第五周 the link layer





  • 简化中间的数据包hop过程:分层网络模型(不止一个)

    • 四层的TCP/IP:互联网协议套件模型internet protocol suite model
    • 七层的OSI网络模型:又称open system interconnection model

分层模型——链路层

  • 只负责数据的传输即可(如何共享?如何传输?不用管)
  • 确认目的地:物理地址(mac address,一串生产序列号【series number】)和网络地址(IP address)



链路层







  • Carrier-sense multiple access with collision detection (具有冲突检测的载波感知多路访问技术)
  • Packet Encoding
  • One Hub to plug/tap into is easy and enough, linked to internet

Ethernet

  • Ethernet起源:第一个本地计算机网络

    • 受到启发:无线共享分布式网络, 应用 随机重新传输机制 进行 冲突检测
    • 当许多终端在传输过程中发生碰撞时,这些终端就会在未来的某个随机时间重新传输数据。这样一来,如果它们在这里重叠它们以后就不会再重叠了,因为它们会选择不同的随机数来进行计数。这就是随机传输,多重访问。
    • 对数据包进行曼切斯特编码, 并使用移位计数器收集数据包->在340纳秒内感知判断是否有数据包即将同时传递->载波感知(carrier sense)(与阿帕网的第一个区别)
    • 曼切斯特编码的On/off特征(简单的编码调制方案)->判断是否即将和其他数据包发生collision(第二个feather)
    • 拥有两个地址(The address of the destination and the address of the source. And each of these would be 8 bits),并添加循环冗余校验码(cyclic redundancy checksum)(硬件实现)->判断数据包是否损坏
    • Rat’s nest problem——需要每台电脑有一条线实现互连
    • 使用加工(打孔)后的同轴电缆(coax)->可实现 24小时任意时刻接入网络 和 仅需要一条主线即可



      以太网网速:2.94MG开始逐渐到10G为主流

IP

  • IP:Internet Protocol

    • 一大特征:当数据传输有误,可以丢弃数据包





    • IP地址仅仅与 所在地的连接点有关

    • IP分为两个部分(16位):前六位network number,后六位computer number within network

    • 由于处于相同区域的电脑network-number相同,当数据包发送时,优先考虑network-number,大大优化中间的传输过程
    • IP core:对于数据最短的正确传输路径选择、 router对于邻接router的感知 和network对于错误传输路径的纠正
    • Router tables:每个router记录到达其他router的最佳出站路由,动态更新,一种索引

DHCP:dynamic host configuraton protocol

  • 动态主机配置协议:被其他计算机赋予一个真实的临时地址,但是无法真实运行于互联网网络中,仅仅适用于本地网络,192.168.xxx.xxx等,属于不可路由的网址。
  • Home router:拥有一个独特的可路由IP地址,接入时会取走本地电脑真实IP地址并赋予一个新的不可路由本地地址。在家庭网络中建立的每个连接映射远程地址。(network address translation,NAT技术)(在基站内转换)
  • 在同一个wifi作用范围内,接入电脑皆使用被赋予的本地地址,进而转换成真实的接入电脑地址



route path

  • Time to live(TTL):控制数据包的hop次数(缺省为255),每hop一次相应减一,到0时被自动丢弃(大概率进入循环或者进入到错误路径或者数据包发生异常)

  • 使用一种名为“traceroute”的技术来跟踪数据包。





## 第六周 transport layer





TSP层

  • 解决拥有IP的link layer,在传输过程中底层网络速度的控制、传输数据可靠性以及对于数据包异常的解决(补偿被丢弃等的错误,使数据包被充分利用)
  • 数据包的长期和短期存储:在外部计算机中 长期存储,内部计算机在中间传输过程临时存储。
  • 流程:
    • Res存储数据,拆分为包,保存副本!(copy),并发送,并接收反馈
    • 状况一:->desti得到确认(acknowledged)->res丢弃已确认的数据包
    • 状况二:->desti未得到确认->res继续发送直至确认->继续丢弃
  • Van Jacobson:invent "slow start algorithm"(float control)
    • 问题起源:56KB的电缆和10MB的校园网混用导致超载(带宽bandwidth的变化)

    • 当数据包在bandwidth上被压缩,时间线上就会spread out,并等待通过,并且不存在操作使其重组
    • ACK:确认字符(acknowledgement character)
      • ->返回ACK数据包,告知sender 所需要通过bottleneck所需的空间
      • ->按照正确的时间间隔发送数据包,以保证数据包安全通过bottleneck(slow)
    • 问题所在:ACKclock机制的不确定启动(突然打开容易进入重复传输失败模式),网关Buffer突然饱和以至于一直丢包
    • 解决方案:慢启动,用足够时间控制,使backlog保持在buffer的可用范围内,继而获得所有包的ack clock
    • TCP内核模块:环形缓冲区,从内核读取(read the kernel memory)并pull the buffer out(?)[驱动、I/O控件]
    • 对于Core dump:修正,研究了算法进行微调
    • 植入TCP/IP协议中(implementation)

DNS(domain name system)





- Domain name让用户更容易记住(user-friendly),而IP更适用于Internet(network-friendly)【都是从不具体到具体,DN更像是组织名称,IP更依赖地理位置】

- Router中将domain name 转换为 IP(映射)

- DNS是一个分布式数据库,缓存很快

- IP从左往右读取;domain name从右往左读取





- DN:从右到左都是被拥有层级结构关系,最右边是最大的权威组织授权的顶级主域名(top),然后拥有者可以开设子域名(可以自己拥有也可以授权卖给其他组织)

总结

  • 都是一串串数据流的交互
  • IP负责实际移动,TCP负责移动的可靠性

## 第七周 application layer

review

  • Client-server machanism:two applications
  • Client->make a request->server->make a response back

应用层

  • 端口和协议的重要性

    • 端口:允许一个IP、一个计算机、一个服务器,同时提供多种服务接口,client拨号即可连接到该服务。若要选择需要的服务,还需要知道相应的通信协议(protocol which talks to it).
    • 进一步细化与目标主机的对接:与某个指定IP下的某个应用程序对话

    • 如何通信:application protocol->包含规范化的通信规则

      • 常用AP:http协议——www的主要协议之一

      • http请求/响应周期:
        • Client->点击链接发送HTML文档请求->生成到server的连接->发送HTML文档请求->server查找并返回->回显至显示屏上

  • others thing:

    • http hack:假装为web server并发送正确的规范化请求命令,由于http为公共协议安全级别不高所以比较容易hack

    • Telnet:古老的、不安全的协议

summary





One technology in the future------Content-Centric Networking

## 第八周 Secure——confidentiality and integrity
confidentiality and integrity:机密性和完整性

  • confidentiality, encryption and decryption

    • Key —— 一些数据加上算法
    • Secret key && public key
      • 用相同的密钥(secret key)加密解密,则是 对称加密(symmetric-key)
      • 用不同的密钥(secret key)加密解密,则是 非对称加密(asymmetric-key)
    • 凯撒密码:

  • Integrity and Signatures
    • Cryptographic Hash:SHA1、SHA256、MD5

      • 将任意长度输入转换成固定长度的字符串或者信息摘要(digest)

        • 好的hash function:变动其中任意一个字母,都能使整个digest变化
        • 差的hash function:对于两个不同的输入,容易得到相同的摘要,产生冲突(在hash算法上进行完善)
    • 带有hash加密的密码系统,可使用hash函数计算出的digest进行判断(不直接存储密码 否则容易被泄露),且难以可逆。

  • Inntegrity



    • 来自所认为的发送方,数据保证中间过程没有被修改
    • SHA1->使用shared secret,贴到消息后面->生成新的hash->比较digest

密钥的不安全性:传输过程中容易被拦截并破解(密钥分发【distribute】不安全)

## 第九周 secure web connection

公私钥



  • Public key:对外开放,用于加密

  • Private key:用于解密,私人拥有
  • 知悉公钥,理论上可以暴力破解,但是在实际中电脑的性能不可能破解。(并非绝对安全,公私钥系统的算法也可能会被攻破)
  • 知悉私钥,可以简化解密过程。因此公钥可以任意分发不用保护,而私钥保护在电脑或者服务器中,进行解密

SSL /TLS /HTTPS

  • 安全套接字层(SSL):



    • 位于应用层和传输层之间
    • 由于分层结构,下层结构只需要负责传输密文即可(并不知悉传输的是密文还是明文)
  • 可进一步保证了数据的完整性(integrity)
  • 威胁:
    • 1、电脑内植入的监测病毒
    • 2、被重定向到伪造的未知的服务器进行通信(需要身份确认)

Integrity and Certificate Authorities

  • The third-party certification authorities:

    • Give the public key,并且进行认证(网页上的安全连接证书信息),保证通信时,对方身份的真实性与准确性

    • 将组织或者其他信息以数字签名的形式,与公钥捆绑在一起,称为 公钥证书

Coursera-Note: Internet History, Technology and Secure (1st week to 9th week)的更多相关文章

  1. Internet History, Technology, and Security(week2)——History: The First Internet - NSFNet

    前言: 上周学习了<电子计算机的曙光>,对战时及战后的计算机的历史发展有了更丰富的了解,今天继续coursera的课程,感觉已经有点适应了课程的节奏(除了经常有些奇奇怪怪的词汇看都看不懂@ ...

  2. Internet History, Technology, and Security(week1)——History: Dawn of Electronic Computing

    前言: 第一次进行课程学习,在反复观看视频和查找字典翻译理解后选出了视频中个人认为较重要的概念,以下并不按照逐句翻译,中文概括大意余下自由发挥,对老师想要告诉我们的历史有一个初步的了解,顺便锻炼以下英 ...

  3. Internet History, Technology, and Security(week9)——Web Security

    Secure Web Connections: Security Public/Private Key - Secure Sockets 凯撒密码容易被破解,后来人们发明了公钥和私钥,由于私钥一定是要 ...

  4. Internet History, Technology, and Security(week7)——Technology: Application Protocols

    Layer 4: Applications Application Layer TCP提供了“a reliable pipe”(一个坚固的水管)连接用户和服务器,确保了数据能准确不出意外地传输,所以A ...

  5. Internet History, Technology, and Security(week5)——Technology: Internets and Packets

    前言: 之前都在学习Internet的历史,从这周开始,进入到了Internet技术的学习. Layer1: Link Introduction / The Link Layer 80年代之前,主流网 ...

  6. Internet History, Technology, and Security(week4)——History: Commercialization and Growth

    Explosive Growth of the Internet and Web: The Year of the Web 1994年后,由NCSA的老员工们构成的Netscape(网景)的成立.Ne ...

  7. Internet History, Technology, and Security(week3)——History: The Web Makes it Easy to Use

    前言: 上周学习了第一个网络NSFnet,美国国家科学基金会(National Science Foundation,简称NSF)在全美国建立了6个超级计算机中心所互联的一个网络,这周继续学习网络的发 ...

  8. Internet History, Technology, and Security(week8)——Security: Encrypting and Signing

    Hiding Date from Ohters Security Introduction Alice and Bob是密码学.博弈论.物理学等领域中的通用角色之一.Alice(代表A)和Bob(代表 ...

  9. Internet History, Technology, and Security(week6)——Technology: Transport Control Protocol(TCP)

    前言: 这周开始学习分层网络模型的第三层,传输层. Transport/Reliability: Transport Layer TCP层的目的是补偿IP层中可能出现的错误,并充分利用可用资源.由于I ...

随机推荐

  1. js如何生成id随机数

    有时候在我们在新增数据时,需要自动生成主键id等,就经常会遇到需要生成随机数的方法. 下面先介绍一种比较简单的生成随机数方法: //产生随机数函数 function RndNum(n){ var rn ...

  2. Hadoop核心架构(1)

    在大数据的发展过程中,出现了一批专门应用与大数据的处理分析工具,如Hadoop,Hbase,Hive,Spark等,我们先从最基础的Hadoop开始进行介绍 Hadoop是apache基金会下所开发的 ...

  3. hiveserver2不能启动

    我的hiveserver2一直不能启动,命令行一直卡住不动,然后我就想是不是配置文件没有配置相关的参数,然后就来修改hive-site.xml 最终修改完后的hive-site.xml: <?x ...

  4. 【篇一】Python安装与初识

    一.python3.6安装 windows: 1.下载安装包 https://www.python.org/downloads/ 2.安装 默认安装路径:C:\python27 3.配置环境变量 [右 ...

  5. django的Request-7

    目录 1. 从url中获取截取 2. QueryDict (1). QueryDict.get(key, [default]) (2). QueryDict.getlist(key, [default ...

  6. ruby中的extend 和 include

    include include是把module中定义的instance_method给mixin,然后当做类的实例方法使用(是因为module本身不能使用module的实例方法),给类进行实例化一个对 ...

  7. Java 8 中有趣的操作 Stream

    Stream 不是java io中的stream 对象创建 我们没有必要使用一个迭代来创建对象,直接使用流就可以 String[] strs = {"haha","hoh ...

  8. (杭电2053)A + B Again(转换说明符)

    Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): ...

  9. while do while switch语句的简要分析

    1 //// while是C语言的一个关键字,其后是使用一个小括号中的条件表达式来做为执行循环的条件, 2 ////也就是说当条件表达式的结果为真时执行大括号里面的的程序内容, 3 ////而当条件表 ...

  10. PHP.49-TP框架商城应用实例-前台1-公共布局、制作首页

    公共布局包括 1.页头.页脚{layout} 正文:{__COMMENT__} 导入:<layout name="layout"> 2.商品导航{nav.html} = ...