Coursera-Note: Internet History, Technology and Secure (1st week to 9th week)


Coursera-Note: Internet History, Technology and Secure

第一周

极其冗长的计算机起源:
用于军事解密->创造了计算机->发展到超级计算机web


第二周

数据交换:

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

Packet switching技术:

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


第三周

  • 解释了WWW万维网的造成和物理实验室的关系:
    • 一、创建一个集中性数据库存储300000份左右的物理资料;
    • 二、使用网络和连接,以链接到所须要的电脑读取文件,从而实现文件共享;
    • 三、任何人能够访问、建立、编辑
  • 安装了网络服务器(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:网络带来了经济增加以及过分投入的建设资金数据库




  • 简化中间的数据包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 Networkingwindows


第八周 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:SHA一、SHA25六、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)
  • 威胁:
    • 一、电脑内植入的监测病毒
    • 二、被重定向到伪造的未知的服务器进行通讯(须要身份确认)

Integrity and Certificate Authorities

  • The third-party certification authorities:
    • Give the public key,而且进行认证(网页上的安全链接证书信息),保证通讯时,对方身份的真实性与准确性
    • 将组织或者其余信息以数字签名的形式,与公钥捆绑在一块儿,称为 公钥证书
相关文章
相关标签/搜索