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,而且進行認證(網頁上的安全鏈接證書信息),保證通訊時,對方身份的真實性與準確性
    • 將組織或者其餘信息以數字簽名的形式,與公鑰捆綁在一塊兒,稱爲 公鑰證書
相關文章
相關標籤/搜索