- Bletchley Park 布萊徹利莊園:a top-secret code breaking effort by the British government during World War II. 二戰時期英國政府爲了破譯德國的「Enigma」電報加密裝置而設立的,彙集了一大批高端的密碼學、數學人才的基地。最後在Alan Truing(艾倫圖靈)的主導下設計了第一個計算機。(以上中文註釋來自筆者觀看電影《模仿遊戲》獲得的資料)
- 筆者的註釋:嚴格意義上來講Alan Turing此時參與研製的計算機與如今常見的計算機有一些不一樣。在Bletchley Park誕生的計算機學術上稱爲電子模擬計算機,其數值是由一些例如指針轉動、計算尺長度表示的(這點在本課程的視頻Alan Turing and Bletchley Park中的計算機複製品的運做場景也能夠獲得印證,其運算的時候有不少個轉盤同時在運動)。而如今常見的計算機被稱做電子數字計算機,其數值是按位運算的,並且不斷跳動。
- Bomba:波蘭人研製的破解Enigma的機器主要針對的是德國人repeating the message header(重複使用信息頭)
- Bombe:以Alan Turing爲首的團隊設計的機器,主要針對的是德國人sending stereotyped messages(模塊化的信息,也就是有必定格式的軍事指令).
Colossus(巨人):針對德國加密機器升級版的機器,第一臺被稱做Mark 1.(難道Iron Man命名的靈感就來源於此?)第二臺稱做Mark 2.Mark 2直接參與了諾曼底登錄戰。巨人計算機具備大多數現代計算機的特徵,除了沒有內存。經過紙條讀取數據,html
Computing with Phone Lines
- 這部分主要介紹了早期計算機之間的聯通模式:經過電話線撥號實現信息傳送
- 這部分主要介紹了早期計算機之間的鏈接方式及其演變。
- 1.電纜鏈接(有線鏈接、專線網絡)leased lines
- 經過電纜直接將計算機聯繫在一塊兒。It is really expensive.The cost base on distance.成本與距離線性相關。
- 傳輸速度慢
- 信息須要排隊經過
- Save Money with More "Hops":經過鏈接更多的學校(由於當時只有學校擁有計算機),來分攤修建路電纜的費用已達到減小開支的方法。
- 2.Bitnet比特網,校園網的主要方式
- 爲了節省開支而產生的鏈接方式
- 缺點和優勢同樣明顯:大號的文件可能會長時間佔用線路,影響其餘較小文件的傳輸,因此傳輸速度很慢。
- 3.ARPANET:美國軍方研製的,供給軍隊使用的網絡
- the primary motivation was to improve the use of their compution equipment.
- ARPANET與Bitnet的主要區別:「packet switching」(分組交換):sending data across the link and then keep sending it until it was done.
- packet:breakinga big message into small parts,labeling each one of them individually將數據分塊成爲數據包,以數據包爲單位傳輸數據
- able to sneak and bypass the traffic jam可以避開交通堵塞(這裏的traffic jam能夠理解爲處在busy的線路)
- allowing simultaneously multible message to be in fight at the same time(我的將這句話理解爲容許同是傳送不一樣消息,這裏體現了ARPANET與Bitnet的重要不一樣)
- 同一組數據在被分紅數據包之後可能會經由不一樣路徑進行傳輸,可是由於路徑的不一樣數據包可能在不一樣時間送達。就比如我在淘寶上買東西了一個手辦(message),可是店家把這個手辦的分解成零件(packets),從北京中關村發到福州上街鎮,可是可能每一個零件從北京到福州的路徑不同例若有一個零件走的是(北京-->濟南-->南京-->杭州-->福州),而另外一個零件走的是(北京-->太原-->西安-->重慶-->貴陽-->南寧-->廣州-->福州),但不管經過什麼路徑,最後都能到福州,而我須要作的是按照說明書把手辦拼起來。
- between getway and getway have links and routers(路由器,主要做用是轉發信息):breaking messages into packets,packets can take different paths,and then they arrive and they are reassembled(重組)
- Larry Smarr
- 這部分主要講述了一些Internet發展過程當中的曲折故事和相關訪談。
- Doug Van Houweiling
- 由於各方面緣由大學難以擁有本身的超級計算機,因而另闢蹊徑爲密歇根大學的計算機創建了網絡。最先的預算只夠創建運輸速度爲56kb的線路,後來在一系列的爭取之後,將其提升到了1.5mb。自此,NSFNet成爲世界上最快的網絡,取代ARPANET成爲世界主流網絡。
- Leonard Kilenrock
- Katie Hafner(一個記者,曾經準備寫關於互聯網的專題報道)
NSFNet:National Science Foundation,美國國家科學基金會,簡稱NSF算法
WEEK3
The Early World-Wide-Web
- 這部分描述了早期的world-wide-web(萬維網)
- Robert Cailliau :one of the co-inventor of the world-wide-web
- Physcists have need for spreeding documentation around .So they built something like centralized databases((集中式數據庫) to kept high energy physics articles(高能量物理學文章).
- Robert將計算機分割爲上層(browser瀏覽器)和下層(database數據庫)
- The first server was up end of 1990 in the USA.
- Gopher:早期的信息檢索工具,在WWW出現之前是主要的信息檢索工具。
- Mosaic:Firefox瀏覽器前身,歷史上著名的瀏覽器,運行時只有一個窗口,每一個新窗口自動代替上一個界面。
- WWW的特色:every time that you clicked here, you had another window(與Mosaic的重要區別:每次點擊都會打開一個新的頁面)
1994年,第一屆國際萬維網大會召開,數據庫
A Search Engine for Physics Articles
- 這部分介紹了物理學文章的搜索引擎
- use the database by the web.(此處的database就是前文中提到的存放物理學文章的centralized databases)
- The first Web server in America can query a database on a mainframe.(美國第一臺網絡服務器能夠在數據庫中查詢數據)
- Paul kunz used a CREN server software ,which was written in C to creates the first Web server in America.
- Gopher:在web流行起來之前gopher是主流的網絡資源檢索工具
- Mosaic:另外一款瀏覽器,由NCSA的Joseph Hardin牽頭髮明
- 1994:Year of the Web(1994年時互聯網發展的重要一年,互聯網再也不是純粹的學術或者技術,而是帶來了許多的資金投入,許多的it公司的創建等等)
在當時許多的公司之中,Netscape與Microsoft無疑是強烈的競爭對手,可是當時的Netscape的體量和Microsoft相比還比較小,Netscape險些被Microsoft收購吞併。
- Mitchell Baker: one of the founders of Mozilla.
- Microsoft收購Netscape失敗之後兩者進入了競爭。
- Netscape is a failure product,because of it ,Baker was be laying off in 2001. But it wasn't really possible to take her place and she continued as a volunteer.
- 在這段競爭歲月中,網景公司創造瞭如今依然很火的JavaScript語言。後來兩家之間以價格爲主要戰場的商業戰爭再也不贅述,畢竟我不須要分析此次市場競爭行爲的利弊以及歷史意義。(套路無非是惡性降價競爭,甚至免費的產品,以達到佔領市場的目的。可是這個時候的發展重點依然是技術,而不是一味的打價格戰。若是當時有融資這種東西的話,就和和這幾年的某些公司在某些領域的競爭很像了)
- In 2003 the Mozilla foundation was formed
- Brendan Eich:JavaScript主要創造者與架構師
- 這部分主要講述了網絡商業化
- Microsoft give their browser away free, which made it impossible for Netscape to charge for the browser.(微軟爲了競爭而對用戶免費提供瀏覽器)
- the World Wide Web Consortium(萬維網聯盟) was created in October of 1994.
- Jeff Bezos: the founder of Amazon.com(亞馬遜創始人貝索斯,沒錯就是最近離婚的那個)
- Hops:one portion of the path between source and destination. Data packets pass through bridges(網橋), routers and gateways(網關) as they travel between source and destination. Each time packets are passed to the next network device, a hop occurs.[插入圖片Hop-count-trans.png]
- Packet-switching(分組交換):break message into packets(將信息分割成數據包,)
- bridge,router,gateway is forwarding packets(網橋、路由器、網關負責的是儲存與中轉數據包),but not longs term storage of message.
- shared Network infratructure only focuses on packets,not reliability or anyting else.(共享網絡只關注數據包而不是可靠性或其餘)
- layered network model(分層網絡模型):OSI model(Open System Interconnection model開發系統互連模型):爲了簡化解決方案,以便解決問題、管理,就將網絡劃分爲幾個部分。在每層中只須要考慮本層的問題,不須要被其餘層的問題影響。
- Layered Architecture(分層架構)

- Link:一段傳輸介質,例如光纜,數據經過一個link就是一個hop,路由器接受上一個link的數據並將收到的數據push到下一個link。就比如在淘寶上買東西了一個手辦(message),可是店家把這個手辦的分解成零件(packets),每一個packets在來福州的路上會通過許多中轉站(rounter),而每一箇中轉站之間的要用各類交通工具運輸(link),中轉站之間的運輸就是hop。
- how to avoid the chaos when they're sharing?
- with a technique called, Carrier Sense Media Access with Collision Detection.
- To aviod garbled messages,systems must observe "rules"(Protocols)
- Ethernet rules are simple
common link technologies:Ethernet(以太網),WiFi,Cable modem(電纜調制解調器),DSL(數字用戶線路[撥號上網]),Satellite(衛星),Optical(光纖)session
Internet Protocol(互聯網協議)
- IP drop data if it go bad.若是數據包出錯或傳輸數據有故障,能夠丟棄這個數據包,避免出現錯誤殘破的數據包。the address is broken into two parts. There is the network number part which is the prefix(前綴), and then there is the computer number within network.As soon as the packets enter the network, it only looks at the prefix.網絡只關心IP地址的前綴,就是隻關心來自哪一個網絡。
- portable cpmputer:dynamic host configuration protocol:動態主機配置協議,主要用於解決移動計算機例如筆記本電腦、iPad等無固定本地鏈接的IP地址分配問題。即分配臨時的本地IP,通常格式爲192.168.xxx.xxx,而這個IP地址只屬於本地網絡,能夠理解爲IP地址的分支。這個方法也能夠用來解決IP地址數量不足的問題。
- network address translation(在IP數據包經過路由器或防火牆時重寫來源IP地址或目的IP地址)
Time-to-live (TTL) is a value in an Internet Protocol (IP) packet that tells a network router whether or not the packet has been in the network too long and should be discarded.告訴路由器數據包是否在網絡中存在過久。當數據包的hops數超過255(32bit)是被丟棄。原理是若是一個數據包通過了255hops都還沒送達,能夠認爲數據進入了死循環。爲了不佔用網絡引發網絡擁堵,故產生了這種診斷方式。
WEEK6
Transport/Reliability
- TCP層創建在IP層之上,TCP層的做用是彌補IP層可能出現的一些問題。
- TCP(Transmission Control Protocol 傳輸控制協議)layer:The purpose of the TCP layer is to compensate for the possible errors in the IP layer as well as make best use of available resources.
- the key idea in TCP/IP is that when we send some data, we break it into packets and then we send each one. And then we keep them until they get an acknowledgement(確認送達的回覆) from the other side and then and only then do we throw them away. And at some point, if a packet gets lost It can be sent again, until it finally is acknowledged in the destination system.(預防傳輸過程出錯而設置的機制,直到發送方確認發送完成才結束傳輸,若出現傳輸錯誤就從新發送,直到徹底成功傳輸爲止)It figures out which packets have or have not made it across the Internet layer.
- 做爲一個球迷,筆者將TCP理解爲莫德里奇(IP)身邊的卡塞米羅(TCP),幫助IP防守的同時和IP協做使得球隊(network)的運轉更加流暢和順利。(這是筆者的自嗨,換成加圖索和皮爾洛或者相似的誰和誰同樣成立,看不懂請忽略 ^^_^^ )
- the slow start algorithm at a high level。
- 隨着愈來愈多的計算機接入網絡,網速變得很慢,許多數據包丟失。(是否是由於太長時間沒有送達,上一週講到的Time-to-live機制起做用了?)Van Jacobson對此的對策是:TCP congestion control.


- 這個機制簡單描述就是,控制進入網絡的packet數量(有點相似北京n環限號出行以緩解堵車的既視感),當收到確認送達的acknowledgement的時候才向網絡發送packet。可是這個機制有一個難點就是起步的時候發送方不知道如今的網絡情況如何(由於發送第一個數據包的時候沒有上一個數據包的acknowledgement)。因此van Jacobson設計了Slow Start Algorithm(慢啓動算法),也就是在數據傳輸的初期以慢速發送。這樣就可以防止網絡堵塞。
- 補充:不是隻有收到上一個數據包的acknowledgement才發送下一個數據包(這樣未免太慢了,顧此失彼),而是在發送開始的時候壓低速度,後面在不影響網絡速度的前提下逐步提升傳輸速度。
- Domain Name System(域名系統):the visible name that we could switch the mapping from the name of the IP address transparently(能夠從IP地址名稱切換映射的可見名稱),a big distributed data base(分佈式數據系統).[使用更加便於人類記憶的命名方式代替IP地址,IP地址是從左往右就是從大到小,而域名系統相反,例如www.si.umich.edu這個域名,edu表明這個域名屬於教育機構,umich表明了教育機構裏面的密歇根大學,si表明的是密歇根大學的信息學院,www是服務器]
the transport control protocol has a responsibility of compensating for the imperfections of the IP layer
WEEK7
Application
- client application(客戶端應用程序)
- server application(服務器應用程序)
- client app make request ,and server make response back.客戶端發送請求,服務器返回響應內容。
- two basic problem
- which application gets the data:
- this is using a mechanism(機制) called ports(端口).ports allow a IP address or a single computer or a single server.端口依附於IP存在,相似於IP地址的分支路徑。不一樣的端口對應不一樣的功能與服務。
- 下圖是個人電腦的部分端口信息

- application protocols(應用程序協議),在端口進行信息交換的規則。
- 過程:click-->request-->response-->display
- browers(瀏覽器):request the server application ,HTML comes back ,which discribe how this page document supposed to show.And show to user.
- HTTP:超文本傳輸協議,一種普遍使用的網絡協議,一些網站前面加了「 http:// 」的意思就是該網站遵循HTTP協議
- If we know how to talk, if we know what port to talk to, and we know what protocol to talk to that port we can write a client that meets the needs of that server and extract the data.(若是咱們知道如何通訊,若是咱們知道要與哪一個端口通訊,若是咱們知道要與那個端口通訊的協議,咱們就能夠編寫一個知足服務器需求的客戶機並提取數據。)
Information that's sort of qualitatively the same as all naming or identity information, but it's spread randomly across the whole packet. (信息在質量上與全部命名或身份信息相同,但它在整個數據包中隨機傳播)
WEEK8
Hiding Data from Others
- It is does not exist of absolute security.Security is a cost benefit analysis(成本效益分析)
- security is naturally imperfect(安全是天生不完美的),世界上不存在絕對的安全,過分的安全會限制自己的各個活動,咱們應該採用的是折衷方案。
- confidentiality(保密性),encryption(加密) and decryption(解密)
- plain text and ciphertext(純文本和密文):Encryption is the act of going from plain text to ciphertext.And returning the ciphertext back to the plain text is decryption.
- secret key
- symmetric key(對稱密鑰), which means that both parties have to be in possession of the same information, basically use the same key material to encrypt as you do to decrypt.(雙方必須擁有相同的信息,基本上使用與解密相同的密鑰材料進行加密)
- the problem that secret key has, that led to the need to invent a public key, is the fact that you need to at some point have a secure communication.(密鑰機制的問題在於須要有一個徹底安全的方式進行解密方式的傳輸)
- shift(移位加密):將文本的字母向上/向下移動n位(n=shift number,1 < shift number < 26)
- 移位加密的破譯方式很簡單暴力,就是把1~25的shift number都使一次(很顯然shift number爲0或者26沒有意義,shift number大於等於26可視爲0~25的變種)
- rot13:經常使用的移位加密方法,但加密與解密方式相同,因此解密只須要再進行一次加密。
- public key
- Cryptographic Hashing(哈希):map from a message to the hash(散列) or the digest(摘要)
- public key encryption(公鑰加密),it relies on two asymmetric keys(依賴於兩個不對稱的鍵).There is a public key, which is actually, does not need any protection whatsoever, and a private key(私鑰).You generate the public key and the private key. You send out the public key, the public is used to do the encryption. And then private key is used to do the decryption. And they're related mathematically(在數學上是相關的)
- if you're going to use public private key encryption, you have to generate a pair.(公鑰私鑰必須成對存在)
- choose a random number really big-->look around for a nearby prime number and you choose two of those(選擇兩個附近的質數)-->multiply them-->through some calculations, you compute the public and the private keys from that large number.
- 破解公鑰加密的難點在於,很難計算出一個很大的數是由哪兩個也很大質數相乘獲得的,而文件的接收方因爲知道其中的一個質數,解密起來很是簡單。
- Message was encrypt by application protocols(such as HTTP).it stay encrypted all the way through the entire network.all of the sequencing and re-transmission that happens in the TCP layer(全部的排序和傳輸都發生在TCP層).The rest of the internet just move the data.
Transport Layer Security(SSL、HTTPS):it's between the TCP layer and the application layer.
Identity on the Web
- Secure Socket Layer, an public private key encryption.
- 在TCP層和application層之間的SSL層是一個爲安全提供保障的部分,爲網絡鏈接提供安全的網絡接口。運用了SSL的超文本傳輸協議就是HTTPS。SSL後來進化爲TLS。
the certificate authority which is a trusted, third-party that signs these certificates(受信任的證書頒發機構,第三方簽署了證書,以確認對話的對象是否是真正的服務器)