一學(xué)期的全英教學(xué)雖然讓我們更接近網(wǎng)絡(luò)的基礎(chǔ)結(jié)構(gòu),但也為我們的考試復(fù)習(xí)帶來了很大難題,何況宋先生還不給我們提綱。沒有什么好的學(xué)習(xí)方法,只能系統(tǒng)的寫下這篇博客,本文內(nèi)容純屬個(gè)人理解,有錯(cuò)誤的地方還請(qǐng)與我聯(lián)系。
本文極其冗長(zhǎng)乏味,請(qǐng)?jiān)诩议L(zhǎng)陪同下觀看!如有雷同,純屬巧合
筆者認(rèn)真地翻閱過一遍計(jì)算機(jī)網(wǎng)絡(luò)后,發(fā)現(xiàn)此門學(xué)科其實(shí)沒有你想象的那么難,只是其內(nèi)容的瑣碎繁雜使得你拒之門外了而已。在我看來,計(jì)算機(jī)網(wǎng)絡(luò)有著清晰的層次結(jié)構(gòu),我們完全可以按照這個(gè)模型逐層剝離,自頂向下地來分析學(xué)習(xí),沒錯(cuò),就是下面這本書了(不管第幾版吧),介紹的很完全,挺好的一本書。
我們先來列一個(gè)學(xué)習(xí)目錄
CH.1 計(jì)算機(jī)網(wǎng)絡(luò)概述[Introduction]
a. 什么是因特網(wǎng)?[What is the Internet?]
b. 網(wǎng)絡(luò)邊緣[The network edge]
c. 網(wǎng)絡(luò)核心[The network core]
c.1 電路交換[Circuit Switching]
c.2 分組交換[Packet Switching]
d.分組交換中的時(shí)延,丟包,吞吐量[Delay,Loss,Throughput]
e.協(xié)議層及它們的服務(wù)模型[Protocol Layers & Service Models]
CH.2 應(yīng)用層[Application Layer]
a. 設(shè)計(jì)原則[Principles]
b. Web and HTTP
c. 文件傳輸[FTP]
d. 電子郵箱[Electronic Mail]
d.1 簡(jiǎn)單郵件傳輸協(xié)議[SMTP]
d.2 郵局協(xié)議[POP3]
d.3 郵件訪問協(xié)議[IMAP]
e. 域名系統(tǒng)[DNS]
CH.3 傳輸層[Transport Layer]
a. 介紹[Introduction]
b. 多路復(fù)用與多路分解[Multiplexing and Demultiplexing]
c. 用戶數(shù)據(jù)報(bào)協(xié)議[UDP]
d. 可靠數(shù)據(jù)協(xié)議[reliable data transfer]
e. 傳輸控制協(xié)議[TCP]
f. 阻塞控制[Congestion control]
CH.4 網(wǎng)絡(luò)層[Network Layer]
a. 路由和轉(zhuǎn)發(fā)[Routing and Forwarding]
b. 虛電路與數(shù)據(jù)報(bào)[Virtual-Circuit and Datagram Networks]
c. 路由器[Router]
d. 網(wǎng)絡(luò)互聯(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. 錯(cuò)誤檢測(cè)與校正[Error Detection/Correction]
c. 多路訪問協(xié)議[Multiple Access Protocols]
c.1 信道劃分協(xié)議[Channel Partitioning Protocols]
c.2 隨機(jī)接入?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. 鏈路層交換機(jī)[非重點(diǎn)]
CH.6 無線與移動(dòng)網(wǎng)[Wireless and Mobile Networks]
a. WiFi:802.11 Wireless LANs
b. 蜂窩[Celluar internet Access]
CH.7 總結(jié)[Summary]
這是一段長(zhǎng)長(zhǎng)的目錄,不要被它嚇到,我們從thin(心)開始
一、計(jì)算機(jī)網(wǎng)絡(luò)概述
我在知乎看到了一段非常不錯(cuò)的總結(jié),就直接丟過來用了,感謝回答者花瀟!
"我們的因特網(wǎng),肯定是基于物理電路的,因此,我們需要一個(gè)將數(shù)據(jù)轉(zhuǎn)化為物理信號(hào)的層,于是,物理層誕生啦
有了處理物理信號(hào)的物理層,可我們還得知道,信號(hào)發(fā)給誰(shuí)啊,你肯定知道,每個(gè)主機(jī)都有一個(gè)全球唯一的MAC地址吧,所以我們可以通過MAC地址來尋址啊,恭喜你,鏈路層誕生了
別急,你知道MAC地址是扁平化的吧,也就是說,MAC地址的空間分布,是無規(guī)律的!!!如果你有十萬(wàn)臺(tái)主機(jī),要通過MAC地址來尋址,簡(jiǎn)直無F**K可說。不管怎樣說,這么大的數(shù)據(jù)量,我們需要有個(gè)解決辦法所以我們引入IP地址,網(wǎng)絡(luò)層應(yīng)運(yùn)而生
然而,一臺(tái)主機(jī)不能只和一臺(tái)服務(wù)器通信啊,畢竟下小電影,也要同時(shí)貨比三家啊。那如何實(shí)現(xiàn)并行通信呢?嘿嘿,我們有端口號(hào)啊,基于不同的需求,產(chǎn)生了UDP&TCP,運(yùn)輸層也誕生啦
別急,你知道的吧,不同應(yīng)用、不同的傳輸需求,比如請(qǐng)求網(wǎng)頁(yè)、發(fā)郵件什么的,為了方便開發(fā)者,我們對(duì)這些常用需求進(jìn)行了封裝這樣就有了應(yīng)用層的誕生"
這算是自底而上的講述了計(jì)網(wǎng),雖與我們本書正好相反,但思想是一樣的,由此我們可以更好地理解每層layer的含義以上,你應(yīng)該了解了計(jì)算機(jī)網(wǎng)絡(luò)是門怎樣的學(xué)科,如果你對(duì)這些已經(jīng)了然于心,則完全可以跳過。
What is the Internet?
這是個(gè)寬泛的定義,原書把它描述為兩種:
- 根據(jù)硬件(
basic hardware
)和軟件組件(software components
)構(gòu)成的描述2. 根據(jù)基礎(chǔ)設(shè)施(infrastructure
)向分布式應(yīng)用程序(distributed applications
)提供的服務(wù)描述對(duì)于協(xié)議的定義:一個(gè)協(xié)議定義了在兩個(gè)或多個(gè)通信實(shí)體之間交換的報(bào)文格式和次序,以及在報(bào)文或其他事件方面所采取的動(dòng)作、傳輸和/或接收。(不知道考不考)參考:protocols define format, order of msgs sent and received among network entities, and actions taken on msg transmission, receipt
我們具體來看看網(wǎng)絡(luò)核心部分
Network Core
Packet Switching分組交換技術(shù)(packet switching)
也稱包交換,是將用戶傳送的數(shù)據(jù)劃分成一定的長(zhǎng)度,每個(gè)部分叫做一個(gè)分組,通過傳輸分組的方式傳輸信息的一種技術(shù)。
Circuit Switching電路交換方式(circuit switching)是指在同一電信網(wǎng)用戶群中任意兩個(gè)或多個(gè)用戶終端之間建立電路暫時(shí)連接的交換方式。
Message Switching(書中暫未提到,了解即可)
Versus traits
分組交換基于存儲(chǔ)轉(zhuǎn)發(fā)(store-forward)的方式,利用率高,交互性高,只是在時(shí)延上要高于電路交換>電路交換中常用的兩種多路復(fù)用技術(shù)是FDM(頻分)和TDM(時(shí)分)
Delay,Loss and Throughput
Delay讓我們記住一個(gè)公式,它很好地展示了四種時(shí)延的關(guān)系dnodal=dprocessing+dqueuing+dtransmission+dpropagation
Protocol Layering
我們要介紹的是service model
,我們一般將網(wǎng)絡(luò)層次劃分為:
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”它們相應(yīng)的數(shù)據(jù)傳輸單元相應(yīng)是message
->segment
->datagram
->frame
->bit
有了良好的層次模型,我們就可以處理許多復(fù)雜問題了
Test
現(xiàn)在的你已經(jīng)對(duì)計(jì)算機(jī)網(wǎng)絡(luò)有一些清楚的認(rèn)識(shí)了,讓我們做點(diǎn)小測(cè)(別著急看答案)Q. Identify the five components of a data communications system. A: (數(shù)據(jù)通信系統(tǒng)5個(gè)組成部分:報(bào)文 發(fā)送方 接受方 傳輸介質(zhì) 協(xié)議)
message,sender,receiver,transmission medium and protocol. Q. What advantages does TDM versus FDM in a circuit-switched network?A.FDM需要復(fù)雜的模擬硬件將信號(hào)轉(zhuǎn)換成適當(dāng)?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
讓我們紅塵作伴,活的瀟瀟灑灑~
策馬奔騰,來到應(yīng)用層應(yīng)用層的兩種體系結(jié)構(gòu):
-
Client-Server
(BS算是CS的特例) -
Peer-to-Peer
(P2P)
CS主機(jī)A如果運(yùn)行客戶端程序,而主機(jī)B運(yùn)行服務(wù)端程序,客戶A向服務(wù)端B發(fā)送請(qǐng)求服務(wù),服務(wù)器B向客戶A提供服務(wù),這種情況下,就是以CS的方式進(jìn)行通信。我們所指的客戶和服務(wù)器都是指通信中涉及的兩個(gè)應(yīng)用進(jìn)程,而不是具體的主機(jī)。特點(diǎn):
server:always-on host、permanent IP address``client:can be intermitted,dynamic IP address
P2P以對(duì)等方式進(jìn)行通信,并不區(qū)分客戶端和服務(wù)端,而是平等關(guān)系進(jìn)行通信。在對(duì)等方式下,可以把每個(gè)相連的主機(jī)當(dāng)成既是主機(jī)又是客戶,可以互相下載對(duì)方的共享文件。比如迅雷下載就是典型的P2P通信方式。特點(diǎn):no always-on server、can be intermitted、self-scalability(自擴(kuò)展性)
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都沒有提供任何加密機(jī)制,由于存在種種隱私和其他安全問題,人們研制了TCP的加強(qiáng)版本,稱為安全套接字層(Secure Socket Layer, SSL
)。SSL不是獨(dú)立于TCP和UDP的第三種協(xié)議,而只是對(duì)TCP的增強(qiáng)。這種增強(qiáng)是在應(yīng)用層上實(shí)現(xiàn)的。一張圖看下應(yīng)用場(chǎng)景
HTTP[the HyperText Transfer Protocol]
http有兩種連接方式:持久層(persistent HTTP
)和非持久層(non-persistent HTTP
),默認(rèn)是持久層>非持久層這里我們定義一個(gè)概念,RTT
:round-trip time,它被解釋為客戶端收發(fā)一個(gè)包所用的時(shí)間

由圖可以看出 response time
=2RTT+ file transmission time
持久層我們給出一段http請(qǐng)求報(bào)文
GET /somedir/page.html HTTP/1.1Host: www.someschool.eduConnection: closeUser-agent: Mozilla/4.0Accept-language: fr
HTTP請(qǐng)求報(bào)文第一行叫做請(qǐng)求行(request line)
,其后繼的行叫做首部行(header line)
。請(qǐng)求行有3個(gè)字段:方法、URL、HTTP協(xié)議版本。
一個(gè)響應(yīng)報(bào)文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 ...)
上面是一個(gè)HTTP響應(yīng)報(bào)文的示例。響應(yīng)報(bào)文分成3部分:狀態(tài)行(status line)
、首部行(header line)
、實(shí)體主體(entity body)
。狀態(tài)行有3個(gè)字段:協(xié)議版本、狀態(tài)碼、響應(yīng)狀態(tài)信息。我們給出一些常見的狀態(tài)碼,希望你好好銘記哦```200 OK: 請(qǐng)求成功,信息包含在返回的響應(yīng)報(bào)文中301 Moved Permanently: 請(qǐng)求對(duì)象已經(jīng)被永久轉(zhuǎn)移了400 Bad Request: 請(qǐng)求不能被服務(wù)器理解404 Not Found: 請(qǐng)求的文檔不在服務(wù)器上505 HTTP Version Not Supported: 服務(wù)器不支持請(qǐng)求報(bào)文使用的HTTP協(xié)議版本
Tips:` HTTP/1.1比HTTP/1.0多出了5種方法類型,而我們最常用的有GET、POST、PUT、DELETEHTTP協(xié)議是無狀態(tài)的,為了能夠識(shí)別用戶,HTTP使用cookie這項(xiàng)技術(shù)。
Cookies
- 在HTTP響應(yīng)報(bào)文中有一個(gè)cookie首部行
- 在HTTP請(qǐng)求報(bào)文中有一個(gè)cookie首部行
- 在用戶端系統(tǒng)中保留有一個(gè)cookie文件,由用戶瀏覽器管理
- web站點(diǎn)有一個(gè)后臺(tái)數(shù)據(jù)庫(kù)web緩存器(web cache)也叫代理服務(wù)器(proxy server),它是能夠代表初始web服務(wù)器來滿足HTTP請(qǐng)求的網(wǎng)絡(luò)實(shí)體。以上cookie、webcache了解即可,不會(huì)考太多
FTP:the file transfer protocol
FTP運(yùn)行在TCP上,使用兩個(gè)并行的TCP連接來傳輸文件,一個(gè)是控制連接(control connection
),一個(gè)是數(shù)據(jù)連接(data connection
)。
Electronic Mail in the internet
電子郵件系統(tǒng)主要由3各部分組成:用戶代理(user agent)、郵件服務(wù)器(mail server)和簡(jiǎn)單郵件傳輸協(xié)議(Simple Mail Transfer Protocol, SMTP
)。
SMTP在握手階段,SMTP客戶機(jī)指明發(fā)送方的郵件地址和接收方的郵件地址。握手階段結(jié)束后,客戶機(jī)開始發(fā)送郵件報(bào)文。SMTP可以利用TCP提供的可靠數(shù)據(jù)傳輸無差錯(cuò)地將郵件投遞到接收方的服務(wù)器。SMTP使用的是持久連接。
Mail Access Protocol
前面介紹了郵件服務(wù)器之間利用SMTP協(xié)議傳送郵件的過程。現(xiàn)在,我們繼續(xù)來看用戶代理與郵件服務(wù)器之間是如何傳輸?shù)摹向B發(fā)郵件時(shí),A的用戶代理會(huì)利用SMTP協(xié)議把郵件推送到其所在的郵件服務(wù)器,郵件服務(wù)器再利用SMTP協(xié)議將郵件發(fā)送給B所在的郵件服務(wù)器。注意,這里B的用戶代理不能用SMTP協(xié)議去向服務(wù)器取回郵件,因?yàn)槿∴]件是一個(gè)拉操作,而SMTP是一個(gè)推協(xié)議。于是郵件訪問協(xié)議橫空出世目前有多個(gè)流行的郵件訪問協(xié)議,包括第三版郵局協(xié)議(Post Office Protocol-Version 3, POP3
)、因特網(wǎng)郵件訪問協(xié)議(Internet Mail Access Protocol, IMAP
)以及HTTP,我們需要記住這些
DNS
因特網(wǎng)的目錄服務(wù)主機(jī)的識(shí)別方式有兩種:主機(jī)名和IP地址。主機(jī)名可以方便人們記住,而路由器則喜歡格式化的IP地址。域名系統(tǒng)(Domain Name System, DNS
)的主要任務(wù)就是實(shí)現(xiàn)主機(jī)名到IP地址的映射轉(zhuǎn)換。DNS是一個(gè)由分層的DNS服務(wù)器實(shí)現(xiàn)的分布式數(shù)據(jù)庫(kù)(distributed, hierarchical
),是一個(gè)允許主機(jī)查詢分布式數(shù)據(jù)庫(kù)的應(yīng)用層協(xié)議。與HTTP、FTP、SMTP協(xié)議一樣,DNS協(xié)議也是應(yīng)用層協(xié)議。它運(yùn)行在UDP之上,使用客戶機(jī)/服務(wù)器模式在通信的端系統(tǒng)之間運(yùn)行,在通信的端系統(tǒng)之間通過下面的端到端運(yùn)輸層協(xié)議來傳送DNS報(bào)文。
Test
Q:does IP address of host on which process runs suffice for identifying the process?(進(jìn)程運(yùn)行中的ip地址是否足以識(shí)別進(jìn)程?)
A: no, many processes can be running on same host
Q: What transport service does an app need?(應(yīng)用層需要傳輸層提供怎樣的服務(wù)?)
A: data integrity(數(shù)據(jù)完整性)、throughput(吞吐量)、timing(實(shí)時(shí)性)、security(安全性)
Q: what cookies can be used for:
A: authorization(授權(quán))、shopping carts(購(gòu)物車)、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