一學期的全英教學雖然讓我們更接近網(wǎng)絡的基礎結構,但也為我們的考試復習帶來了很大難題,何況宋先生還不給我們提綱骚秦。沒有什么好的學習方法,只能系統(tǒng)的寫下這篇博客璧微,本文內(nèi)容純屬個人理解作箍,有錯誤的地方還請與我聯(lián)系。
本文極其冗長乏味前硫,請在家長陪同下觀看胞得!如有雷同,純屬巧合
筆者認真地翻閱過一遍計算機網(wǎng)絡后屹电,發(fā)現(xiàn)此門學科其實沒有你想象的那么難阶剑,只是其內(nèi)容的瑣碎繁雜使得你拒之門外了而已。在我看來危号,計算機網(wǎng)絡有著清晰的層次結構牧愁,我們完全可以按照這個模型逐層剝離,自頂向下地來分析學習外莲,沒錯猪半,就是下面這本書了(不管第幾版吧),介紹的很完全苍狰,挺好的一本書办龄。
我們先來列一個學習目錄
CH.1 計算機網(wǎng)絡概述[Introduction]
a. 什么是因特網(wǎng)?[What is the Internet?]
b. 網(wǎng)絡邊緣[The network edge]
c. 網(wǎng)絡核心[The network core]
c.1 電路交換[Circuit Switching]
c.2 分組交換[Packet Switching]
d.分組交換中的時延淋昭,丟包俐填,吞吐量[Delay,Loss,Throughput]
e.協(xié)議層及它們的服務模型[Protocol Layers & Service Models]
CH.2 應用層[Application Layer]
a. 設計原則[Principles]
b. Web and HTTP
c. 文件傳輸[FTP]
d. 電子郵箱[Electronic Mail]
d.1 簡單郵件傳輸協(xié)議[SMTP]
d.2 郵局協(xié)議[POP3]
d.3 郵件訪問協(xié)議[IMAP]
e. 域名系統(tǒng)[DNS]
CH.3 傳輸層[Transport Layer]
a. 介紹[Introduction]
b. 多路復用與多路分解[Multiplexing and Demultiplexing]
c. 用戶數(shù)據(jù)報協(xié)議[UDP]
d. 可靠數(shù)據(jù)協(xié)議[reliable data transfer]
e. 傳輸控制協(xié)議[TCP]
f. 阻塞控制[Congestion control]
CH.4 網(wǎng)絡層[Network Layer]
a. 路由和轉(zhuǎn)發(fā)[Routing and Forwarding]
b. 虛電路與數(shù)據(jù)報[Virtual-Circuit and Datagram Networks]
c. 路由器[Router]
d. 網(wǎng)絡互聯(lián)協(xié)議[IP]
e. 路由算法及協(xié)議[Routing algorithms abd protocols]
e.1 鏈路及矢量算法[Link-State versus Distance Distance-Vector]
e.2 RIP & OSPF & BGP
f. 廣播與多播路由[Broadcast and Multicast routing]
CH.5 鏈路層及局域網(wǎng)[Link Layer and LAN]
a. 介紹[Introduction]
b. 錯誤檢測與校正[Error Detection/Correction]
c. 多路訪問協(xié)議[Multiple Access Protocols]
c.1 信道劃分協(xié)議[Channel Partitioning Protocols]
c.2 隨機接入?yún)f(xié)議[Random Access Protocols]
c.3 輪流協(xié)議[Taking-Turns Protocols]
d. 鏈路層處理[Link-Layer Addressing]
d.1 MAC 地址
d.2 地址解析協(xié)議[Address Resolution Protocols]
e. 以太網(wǎng)[Ethernet]
f. 鏈路層交換機[非重點]
CH.6 無線與移動網(wǎng)[Wireless and Mobile Networks]
a. WiFi:802.11 Wireless LANs
b. 蜂窩[Celluar internet Access]
CH.7 總結[Summary]
這是一段長長的目錄,不要被它嚇到翔忽,我們從thin(心)開始
一英融、計算機網(wǎng)絡概述
我在知乎看到了一段非常不錯的總結盏檐,就直接丟過來用了,感謝回答者花瀟!
"我們的因特網(wǎng)驶悟,肯定是基于物理電路的胡野,因此,我們需要一個將數(shù)據(jù)轉(zhuǎn)化為物理信號的層痕鳍,于是硫豆,物理層誕生啦
有了處理物理信號的物理層,可我們還得知道笼呆,信號發(fā)給誰啊熊响,你肯定知道,每個主機都有一個全球唯一的MAC地址吧诗赌,所以我們可以通過MAC地址來尋址啊汗茄,恭喜你,鏈路層誕生了
別急铭若,你知道MAC地址是扁平化的吧洪碳,也就是說,MAC地址的空間分布叼屠,是無規(guī)律的M纭!环鲤!如果你有十萬臺主機纯趋,要通過MAC地址來尋址,簡直無F**K可說冷离。不管怎樣說吵冒,這么大的數(shù)據(jù)量,我們需要有個解決辦法所以我們引入IP地址西剥,網(wǎng)絡層應運而生
然而痹栖,一臺主機不能只和一臺服務器通信啊,畢竟下小電影瞭空,也要同時貨比三家啊揪阿。那如何實現(xiàn)并行通信呢?嘿嘿咆畏,我們有端口號啊南捂,基于不同的需求,產(chǎn)生了UDP&TCP旧找,運輸層也誕生啦
別急溺健,你知道的吧,不同應用钮蛛、不同的傳輸需求鞭缭,比如請求網(wǎng)頁剖膳、發(fā)郵件什么的,為了方便開發(fā)者岭辣,我們對這些常用需求進行了封裝這樣就有了應用層的誕生"
這算是自底而上的講述了計網(wǎng)吱晒,雖與我們本書正好相反,但思想是一樣的沦童,由此我們可以更好地理解每層layer的含義以上仑濒,你應該了解了計算機網(wǎng)絡是門怎樣的學科,如果你對這些已經(jīng)了然于心搞动,則完全可以跳過躏精。
What is the Internet?
這是個寬泛的定義渣刷,原書把它描述為兩種:
- 根據(jù)硬件(
basic hardware
)和軟件組件(software components
)構成的描述2. 根據(jù)基礎設施(infrastructure
)向分布式應用程序(distributed applications
)提供的服務描述對于協(xié)議的定義:一個協(xié)議定義了在兩個或多個通信實體之間交換的報文格式和次序鹦肿,以及在報文或其他事件方面所采取的動作、傳輸和/或接收辅柴。(不知道考不考)參考:protocols define format, order of msgs sent and received among network entities, and actions taken on msg transmission, receipt
我們具體來看看網(wǎng)絡核心部分
Network Core
Packet Switching分組交換技術(packet switching)
也稱包交換碌嘀,是將用戶傳送的數(shù)據(jù)劃分成一定的長度涣旨,每個部分叫做一個分組,通過傳輸分組的方式傳輸信息的一種技術股冗。
Circuit Switching電路交換方式(circuit switching)是指在同一電信網(wǎng)用戶群中任意兩個或多個用戶終端之間建立電路暫時連接的交換方式霹陡。
Message Switching(書中暫未提到,了解即可)
Versus traits
分組交換基于存儲轉(zhuǎn)發(fā)(store-forward)的方式止状,利用率高烹棉,交互性高,只是在時延上要高于電路交換>電路交換中常用的兩種多路復用技術是FDM(頻分)和TDM(時分)
Delay,Loss and Throughput
Delay讓我們記住一個公式怯疤,它很好地展示了四種時延的關系dnodal=dprocessing+dqueuing+dtransmission+dpropagation
Protocol Layering
我們要介紹的是service model
浆洗,我們一般將網(wǎng)絡層次劃分為:
FTP, SMTP, HTTP- transport: process-process data transfer
TCP, UDP- network: routing of datagrams from source to destination
IP, routing protocols- link: data transfer between neighboring network elements
Ethernet, 802.11 (WiFi), PPP- physical: bits “on the wire”它們相應的數(shù)據(jù)傳輸單元相應是message
->segment
->datagram
->frame
->bit
有了良好的層次模型,我們就可以處理許多復雜問題了
Test
現(xiàn)在的你已經(jīng)對計算機網(wǎng)絡有一些清楚的認識了集峦,讓我們做點小測(別著急看答案)Q. Identify the five components of a data communications system. A: (數(shù)據(jù)通信系統(tǒng)5個組成部分:報文 發(fā)送方 接受方 傳輸介質(zhì) 協(xié)議)
message,sender,receiver,transmission medium and protocol. Q. What advantages does TDM versus FDM in a circuit-switched network?A.FDM需要復雜的模擬硬件將信號轉(zhuǎn)換成適當?shù)念l帶伏社。
FDM requires sophisticated analog hardware to shift signal into appropriate frequency bands.Q.According to the geographical coverage of the classification, the computer network can be divided into three categoriesA.局域網(wǎng),城域網(wǎng)塔淤,廣域網(wǎng)
LAN摘昌、MAN(metropolitan)、WAN
Application Layer
讓我們紅塵作伴高蜂,活的瀟瀟灑灑~
策馬奔騰聪黎,來到應用層應用層的兩種體系結構:
-
Client-Server
(BS算是CS的特例) -
Peer-to-Peer
(P2P)
CS主機A如果運行客戶端程序,而主機B運行服務端程序妨马,客戶A向服務端B發(fā)送請求服務挺举,服務器B向客戶A提供服務杀赢,這種情況下,就是以CS的方式進行通信湘纵。我們所指的客戶和服務器都是指通信中涉及的兩個應用進程脂崔,而不是具體的主機。特點:
server:always-on host梧喷、permanent IP address``client:can be intermitted,dynamic IP address
P2P以對等方式進行通信砌左,并不區(qū)分客戶端和服務端,而是平等關系進行通信铺敌。在對等方式下汇歹,可以把每個相連的主機當成既是主機又是客戶,可以互相下載對方的共享文件偿凭。比如迅雷下載就是典型的P2P通信方式产弹。特點:no always-on server、can be intermitted弯囊、self-scalability(自擴展性)
Tips: the network through a software interface called asocket
socket的通信方式看上去如下圖
Internet transport protocols services
TCP service- reliable transport- flow control- congestion control- does not provide: timing, minimum throughput guarantee, security- connection-oriented
UDP service- unreliable data transfer- does not provide: reliability, flow control, congestion control, timing, throughput guarantee, security, orconnection setup
Expand: TCP和UDP都沒有提供任何加密機制痰哨,由于存在種種隱私和其他安全問題,人們研制了TCP的加強版本匾嘱,稱為安全套接字層(Secure Socket Layer, SSL
)斤斧。SSL不是獨立于TCP和UDP的第三種協(xié)議,而只是對TCP的增強霎烙。這種增強是在應用層上實現(xiàn)的撬讽。一張圖看下應用場景
HTTP[the HyperText Transfer Protocol]
http有兩種連接方式:持久層(persistent HTTP
)和非持久層(non-persistent HTTP
),默認是持久層>非持久層這里我們定義一個概念,RTT
:round-trip time,它被解釋為客戶端收發(fā)一個包所用的時間
由圖可以看出 response time
=2RTT+ file transmission time
持久層我們給出一段http請求報文
GET /somedir/page.html HTTP/1.1Host: www.someschool.eduConnection: closeUser-agent: Mozilla/4.0Accept-language: fr
HTTP請求報文第一行叫做請求行(request line)
悬垃,其后繼的行叫做首部行(header line)
游昼。請求行有3個字段:方法、URL盗忱、HTTP協(xié)議版本酱床。
一個響應報文HTTP/1.1 200 OKConnection: closeDate: Thu, 03 Jul 2003 12:00:15 GMTServer: Apache/1.3.0 (Unix)Last-Modified: Sun, 6 May 2007 09:23:24 GMTContent-Length: 6821Content-Type: text/html(data data data ...)
上面是一個HTTP響應報文的示例。響應報文分成3部分:狀態(tài)行(status line)
趟佃、首部行(header line)
扇谣、實體主體(entity body)
。狀態(tài)行有3個字段:協(xié)議版本闲昭、狀態(tài)碼罐寨、響應狀態(tài)信息。我們給出一些常見的狀態(tài)碼序矩,希望你好好銘記哦```200 OK: 請求成功鸯绿,信息包含在返回的響應報文中301 Moved Permanently: 請求對象已經(jīng)被永久轉(zhuǎn)移了400 Bad Request: 請求不能被服務器理解404 Not Found: 請求的文檔不在服務器上505 HTTP Version Not Supported: 服務器不支持請求報文使用的HTTP協(xié)議版本
Tips:` HTTP/1.1比HTTP/1.0多出了5種方法類型,而我們最常用的有GET、POST瓶蝴、PUT毒返、DELETEHTTP協(xié)議是無狀態(tài)的,為了能夠識別用戶舷手,HTTP使用cookie這項技術拧簸。
Cookies
- 在HTTP響應報文中有一個cookie首部行
- 在HTTP請求報文中有一個cookie首部行
- 在用戶端系統(tǒng)中保留有一個cookie文件,由用戶瀏覽器管理
- web站點有一個后臺數(shù)據(jù)庫web緩存器(web cache)也叫代理服務器(proxy server)男窟,它是能夠代表初始web服務器來滿足HTTP請求的網(wǎng)絡實體盆赤。以上cookie、webcache了解即可歉眷,不會考太多
FTP:the file transfer protocol
FTP運行在TCP上牺六,使用兩個并行的TCP連接來傳輸文件,一個是控制連接(control connection
)汗捡,一個是數(shù)據(jù)連接(data connection
)淑际。
Electronic Mail in the internet
電子郵件系統(tǒng)主要由3各部分組成:用戶代理(user agent)、郵件服務器(mail server)和簡單郵件傳輸協(xié)議(Simple Mail Transfer Protocol, SMTP
)凉唐。
SMTP在握手階段庸追,SMTP客戶機指明發(fā)送方的郵件地址和接收方的郵件地址。握手階段結束后台囱,客戶機開始發(fā)送郵件報文。SMTP可以利用TCP提供的可靠數(shù)據(jù)傳輸無差錯地將郵件投遞到接收方的服務器读整。SMTP使用的是持久連接簿训。
Mail Access Protocol
前面介紹了郵件服務器之間利用SMTP協(xié)議傳送郵件的過程。現(xiàn)在米间,我們繼續(xù)來看用戶代理與郵件服務器之間是如何傳輸?shù)那科贰向B發(fā)郵件時,A的用戶代理會利用SMTP協(xié)議把郵件推送到其所在的郵件服務器屈糊,郵件服務器再利用SMTP協(xié)議將郵件發(fā)送給B所在的郵件服務器的榛。注意,這里B的用戶代理不能用SMTP協(xié)議去向服務器取回郵件逻锐,因為取郵件是一個拉操作夫晌,而SMTP是一個推協(xié)議。于是郵件訪問協(xié)議橫空出世目前有多個流行的郵件訪問協(xié)議昧诱,包括第三版郵局協(xié)議(Post Office Protocol-Version 3, POP3
)晓淀、因特網(wǎng)郵件訪問協(xié)議(Internet Mail Access Protocol, IMAP
)以及HTTP,我們需要記住這些
DNS
因特網(wǎng)的目錄服務主機的識別方式有兩種:主機名和IP地址盏档。主機名可以方便人們記住凶掰,而路由器則喜歡格式化的IP地址。域名系統(tǒng)(Domain Name System, DNS
)的主要任務就是實現(xiàn)主機名到IP地址的映射轉(zhuǎn)換。DNS是一個由分層的DNS服務器實現(xiàn)的分布式數(shù)據(jù)庫(distributed, hierarchical
)懦窘,是一個允許主機查詢分布式數(shù)據(jù)庫的應用層協(xié)議前翎。與HTTP、FTP畅涂、SMTP協(xié)議一樣鱼填,DNS協(xié)議也是應用層協(xié)議。它運行在UDP之上毅戈,使用客戶機/服務器模式在通信的端系統(tǒng)之間運行苹丸,在通信的端系統(tǒng)之間通過下面的端到端運輸層協(xié)議來傳送DNS報文。
Test
Q:does IP address of host on which process runs suffice for identifying the process?(進程運行中的ip地址是否足以識別進程苇经?)
A: no, many processes can be running on same host
Q: What transport service does an app need?(應用層需要傳輸層提供怎樣的服務赘理?)
A: data integrity(數(shù)據(jù)完整性)、throughput(吞吐量)扇单、timing(實時性)商模、security(安全性)
Q: what cookies can be used for:
A: authorization(授權)、shopping carts(購物車)蜘澜、recommendations(推薦)施流、user session state (Web e-mail)
Q: what does the DNS servers include?
A:Root DNS servers(13種)、Top-Level domain(TLD) servers鄙信、Authoritative DNS servers