Coursera-Note: Internet History, Technology and Secure (1st week to 9th week)
目录
- Coursera-Note: Internet History, Technology and Secure
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过程:分层网络模型(不止一个)
分层模型——链路层
- 只负责数据的传输即可(如何共享?如何传输?不用管)
- 确认目的地:物理地址(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
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)
- 问题起源:56KB的电缆和10MB的校园网混用导致超载(带宽bandwidth的变化)
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
应用层
summary
One technology in the future------Content-Centric Networking
第八周 Secure——confidentiality and integrity
confidentiality and integrity:机密性和完整性
密钥的不安全性:传输过程中容易被拦截并破解(密钥分发【distribute】不安全)
第九周 secure web connection
公私钥
- Public key:对外开放,用于加密
- Private key:用于解密,私人拥有
- 知悉公钥,理论上可以暴力破解,但是在实际中电脑的性能不可能破解。(并非绝对安全,公私钥系统的算法也可能会被攻破)
- 知悉私钥,可以简化解密过程。因此公钥可以任意分发不用保护,而私钥保护在电脑或者服务器中,进行解密
SSL /TLS /HTTPS
- 安全套接字层(SSL):
- 位于应用层和传输层之间
- 由于分层结构,下层结构只需要负责传输密文即可(并不知悉传输的是密文还是明文)
- 可进一步保证了数据的完整性(integrity)
- 威胁:
- 1、电脑内植入的监测病毒
- 2、被重定向到伪造的未知的服务器进行通信(需要身份确认)
Integrity and Certificate Authorities
- The third-party certification authorities:

更多精彩