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


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浏览器
    1593312-20190407224112795-458775532.png

创造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:网络带来了经济增长以及过度投入的建设资金


1593312-20190407232536754-546159940.png
1593312-20190407232549087-1004409833.png
1593312-20190407232555345-857386358.png

  • 简化中间的数据包hop过程:分层网络模型(不止一个)
    • 四层的TCP/IP:互联网协议套件模型internet protocol suite model
    • 七层的OSI网络模型:又称open system interconnection model
      1593312-20190407232742798-1415819726.png

分层模型——链路层

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

1593312-20190407232909168-1700446593.png
1593312-20190407232914875-1782146980.png

链路层

1593312-20190407232925873-1216711248.png
1593312-20190407232931026-1990148238.png
1593312-20190407233033192-452986165.png
1593312-20190407233037227-1076813802.png

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

Ethernet

1593312-20190407233123965-1250435372.png

  • 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
    • 一大特征:当数据传输有误,可以丢弃数据包
      1593312-20190407233255727-1616417211.png
      1593312-20190407233304053-186563198.png
      1593312-20190407233312429-1248438087.png
    • IP地址仅仅与 所在地的连接点有关
      1593312-20190407233334904-339028274.png
    • IP分为两个部分(16位):前六位network number,后六位computer number within network
      1593312-20190407233353979-333859629.png
    • 由于处于相同区域的电脑network-number相同,当数据包发送时,优先考虑network-number,大大优化中间的传输过程
    • IP core:对于数据最短的正确传输路径选择、 router对于邻接router的感知 和network对于错误传输路径的纠正
    • Router tables:每个router记录到达其他router的最佳出站路由,动态更新,一种索引
      1593312-20190407233422023-321102126.png

DHCP:dynamic host configuraton protocol

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

route path

  • Time to live(TTL):控制数据包的hop次数(缺省为255),每hop一次相应减一,到0时被自动丢弃(大概率进入循环或者进入到错误路径或者数据包发生异常)
    1593312-20190407233539112-1759711063.png
  • 使用一种名为“traceroute”的技术来跟踪数据包。
    1593312-20190407233641606-1738965322.png


    1593312-20190407233647336-855005772.png


第六周 transport layer

1593312-20190407234113478-1246220566.png
1593312-20190407234118796-1001005604.png
1593312-20190407234123389-340894788.png

TSP层

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

1593312-20190407234432777-672297946.png
1593312-20190407234437243-149137632.png
- Domain name让用户更容易记住(user-friendly),而IP更适用于Internet(network-friendly)【都是从不具体到具体,DN更像是组织名称,IP更依赖地理位置】
- Router中将domain name 转换为 IP(映射)
- DNS是一个分布式数据库,缓存很快
- IP从左往右读取;domain name从右往左读取
1593312-20190407234505326-1763310077.png
1593312-20190407234518773-1026062399.png
- DN:从右到左都是被拥有层级结构关系,最右边是最大的权威组织授权的顶级主域名(top),然后拥有者可以开设子域名(可以自己拥有也可以授权卖给其他组织)

总结

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


第七周 application layer

review

1593312-20190407234617811-271608550.png

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

应用层

1593312-20190407234707257-712372194.png

  • 端口和协议的重要性
    • 端口:允许一个IP、一个计算机、一个服务器,同时提供多种服务接口,client拨号即可连接到该服务。若要选择需要的服务,还需要知道相应的通信协议(protocol which talks to it).
    • 进一步细化与目标主机的对接:与某个指定IP下的某个应用程序对话
      1593312-20190407234731757-2094843503.png
    • 如何通信:application protocol->包含规范化的通信规则
      1593312-20190407234749341-382587792.png
      • 常用AP:http协议——www的主要协议之一
        1593312-20190407234825273-437838584.png
      • http请求/响应周期:
        • Client->点击链接发送HTML文档请求->生成到server的连接->发送HTML文档请求->server查找并返回->回显至显示屏上
          1593312-20190407234829597-1698328793.png
  • others thing:
    1593312-20190407235102135-1451303829.png
    • http hack:假装为web server并发送正确的规范化请求命令,由于http为公共协议安全级别不高所以比较容易hack
      1593312-20190407235135613-939699672.png
    • Telnet:古老的、不安全的协议

summary

1593312-20190407235150850-1086339932.png
1593312-20190407235200034-2053148159.png
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)
    • 凯撒密码:
      1593312-20190407235343177-1997367607.png
  • Integrity and Signatures
    • Cryptographic Hash:SHA1、SHA256、MD5
      1593312-20190407235412390-489791498.png
      • 将任意长度输入转换成固定长度的字符串或者信息摘要(digest)
        • 好的hash function:变动其中任意一个字母,都能使整个digest变化
        • 差的hash function:对于两个不同的输入,容易得到相同的摘要,产生冲突(在hash算法上进行完善)
    • 带有hash加密的密码系统,可使用hash函数计算出的digest进行判断(不直接存储密码 否则容易被泄露),且难以可逆。
      1593312-20190407235458643-489481523.png
  • Inntegrity
    1593312-20190407235524365-322320970.png
    1593312-20190407235527807-530864089.png
    • 来自所认为的发送方,数据保证中间过程没有被修改
    • SHA1->使用shared secret,贴到消息后面->生成新的hash->比较digest
      1593312-20190407235613627-652475533.png

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


第九周 secure web connection

公私钥

1593312-20190408125740927-588472166.png
1593312-20190408125747306-1066446377.png

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

SSL /TLS /HTTPS

1593312-20190408130010196-1690567002.png

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

Integrity and Certificate Authorities

  • The third-party certification authorities:
    • Give the public key,并且进行认证(网页上的安全连接证书信息),保证通信时,对方身份的真实性与准确性
      1593312-20190408130202498-852729414.png
    • 将组织或者其他信息以数字签名的形式,与公钥捆绑在一起,称为 公钥证书

转载于:https://www.cnblogs.com/fzu2018-clf-bky-blog/p/10669886.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值