计算机网络笔记整理(第七版)谢希仁
第1章 概述
本章最重要的內容:
(1)互聯網邊緣部分和核心部分的作用,其中包括分組交換的概念
(2)計算機網絡的性能指標
(3)計算機網絡分層次的體系結構,包括協議和服務的概念
ISP(Internet Service Provider)互聯網服務提供商
1.互聯網的組成
(1)邊緣部分:由所有連接在互聯網上的主機組成。這部分是用戶直接使用的,用來進行通信(傳送數據、音頻或視頻)和資源共享
(2)核心部分:由大量網絡和連接這些網絡的路由器組成。這部分是為邊緣部分提供服務的(提供連通性和交換)
2.在網絡邊緣的端系統之間的通信方式可劃分為兩大類:客戶-服務器方式(C/S方式)和對等方式(P2P方式)
(1)客戶-服務器方式
客戶是服務請求方,服務器是服務提供方。服務請求方和服務提供方都要使用網絡核心部分所提供的服務。
在實際應用中,客戶程序和服務器程序通常還具有以下一些主要特點:
客戶程序:
1)被用戶調用有運行,在通信時主動向遠程服務器發起通信(請求服務)。因此,客戶程序必須知道服務器程序的地址。
2)不需要特殊的硬件和很復雜的操作系統
服務器程序:
1)是一種專門用來提供某種服務的程序,可同時處理多個遠程或本地客戶的請求。
2)系統啟動后即自動調用并一直不斷運行著,被動地等待并接受來自各地的客戶的通信請求。因此,服務器程序不需要知道客戶程序的地址。
3)一般需要有強大的硬件和高級的操作系統支持
上述客戶和服務器本來都指的是計算機進程(軟件)
(2)對等連接方式(peer-to-peer)
對等連接是指兩臺主機在通信時并不區分哪一個是服務請求方哪一個是服務提供方。只要兩臺主機都運行了對等連接軟件(P2P軟件),它們就可以進行平等的、對等連接通信。
3.互聯網的核心部分
在網絡核心部分起特殊作用的是路由器。路由器是實現分組交換(packet swithching)的關鍵構件,其任務是轉發收到的分組。
電路交換:
在使用電路交換通話之前,必須先撥號請求建立連接。當被叫用戶聽到交換機送來的振鈴聲并摘機后,從主叫端到被叫端就建立了一條連接,也就是一條專用的物理通路。這種必須經過“建立連接”(占用通信資源)—通話(一直占用通信資源)—釋放連接(歸還通信資源)三個步驟的交換方式成為電路交換。
電路交換的一個重要特點就是在通話的全部時間內,通話的兩個用戶始終占用端到端的通信資源。缺點:線路的傳輸效率往往很低,通信資源浪費。
分組交換:分組交換采用存儲轉發技術
該圖表示把一個報文劃分為幾個分組后再進行傳送。通常我們把發送的整塊數據成為一個報文(message)。在發送報文之前,先把較長的報文劃分成為一個更小的等長數據端。在每一個數據段前面,加上一些由必要的控制信息組成的首部(header)后,就構成了一個分組(packet)。分組又稱為“包”,而分組的首部也可稱為"包頭"
分組交換在傳送數據之前不必先占用一條端到端的鏈路的通信資源。分組在哪段鏈路上傳送才占用這段鏈路的通信資源。分組到達一個路由器后,先暫時存儲下來查找轉發表,然后從一條合適的鏈路轉發出去。分組在傳輸時就這樣一段一段地斷續占用通信資源,而且還省去了建立連接和釋放連接的開銷,因而數據的傳輸效率更高。
分組交換的優點:
| 高效 | 在分組傳輸的過程中動態分配傳輸帶寬,對通信鏈路是逐段占用的 |
| 靈活 | 為每一個分組獨立地選擇最合適的轉發路由 |
| 迅速 | 以分組作為傳送單位,可以不先建立連接就能向其他主機發送分組 |
| 可靠 | 保證可靠的網絡協議 |
三種交換方式在數據傳送階段的主要特點:
電路交換—整個報文的比特流連續地從源點直到終點,好像在一個管道中傳送
報文交換—整個報文先傳送到相鄰結點,全部存儲下來后查找轉發表,轉發到下一個結點。
分組交換—單個分組(這只是整個報文的一部分)傳送到相鄰結點,存儲下來后查找轉發表,轉發到下一個結點。
計算機網絡的性能:速度 帶寬 吞吐量 時延 時延帶寬積 往返時間RTT 利用率
5.計算機網絡體系結構
在計算機網絡中藥做到有條不紊第交換數據,就必須遵守一些事先約定好的規則。這些規則明確規定了所交換的數據的格式以及有關的同步問題。
這些為進行網絡中的數據交換而建立的規則、標準或約定稱為網絡協議。
(3)網絡層
網絡層負責為分組交換網上的不同主機提供通信服務。在發送數據時,網絡層把運輸層產生的報文段或用戶數據報封裝成分組或包進行傳送。在TCP/IP體系中,由于網絡層使用IP協議,因此分組也叫作IP數據報,或簡稱數據報。
網絡層的另一個任務就是要選擇合適的路由,使源主機運輸層所傳下來的分組,能夠通過網絡中的路由器找到目的主機。
(4)數據鏈路層
在兩個相鄰結點之間傳送數據時,數據鏈路層將網絡層交下來的IP數據報組裝成幀(framing),在兩個相鄰結點間的鏈路上傳送幀。每一幀包括數據和必要的控制信息(如同步信息、地址信息、差錯控制等)。
(5)物理層
在物理層上所傳數據的單位是比特。發送方發送1(0)時,接收方應當受到1(0),而不是0(1)。
圖1-19說明的是應用進程的數據在各層之間的傳遞過程中 所經歷的變化。
在協議的控制下,兩個對等實體間的通信使得本層能夠向上一層提供服務。要實現本層協議,還需要使用下面一層所提供的服務。
協議是“水平的”,即協議是控制對等實體之間通信的規則。但服務是“垂直的”,即服務是由下層向上層通過層間接口提供的。
第2章 物理層
從通信的雙方信息交互的方式來看,可以有以下三種基本方式:
(1)單向通信:又稱為單工通信,即只能有一個方向的通信而沒有反方向的交互。無線電廣播或有線電廣播以及電視廣播就屬于這種類型。
(2)雙向交替通信:又稱為半雙工通信,即通信的雙方都可以發送信息,但不能雙發同時發送(當然也不能同時接收)。這種通信方式是一方發送另一方接收,過一段時間后可以再反過來。
(3)雙向同時通信:又稱為全雙工通信,即通信的雙方可以同時發送和接收信息。
第3章 數據鏈路層
數據鏈路層使用的信道主要有以下兩種類型:
(1)點對點信道。這種信道使用一對一的點對點通信方式
(2)廣播信道。這種信道使用一對多的廣播通信方式,因此過程比較復雜。廣播信道上連接的主機很多,因此必須使用專用的共享信道協議來協調這些主機的數據發送。
本章主要內容:
(1)數據鏈路層的點對點信道和廣播信道的特點,以及這種信道所使用的協議(PPP協議以及CSMA/CD協議)的特點。
(2)數據鏈路層呢個的三個基本問題:封裝成幀、透明傳輸和差錯檢測。
(3)以太網MAC層的硬件地址
(4)適配器、轉發器、集線器網橋、以太網交換機的作用以及使用場合。
1.點對點信道的數據鏈路層在進行通信時的主要步驟如下:
(1)結點A的數據鏈路層把網絡層交下來的IP數據報添加首部和尾部封裝成幀
(2)結點A把封裝好的幀發送給結點B的數據鏈路層
(3)若結點B的數據鏈路層收到額幀無差錯,則從收到的幀中提取出IP數據報交給上面的網絡層;否則丟棄這個幀。
數據鏈路層三個基本問題:封裝成幀、透明傳輸和差錯檢測
(1)封裝成幀:就是在一段數據的前后分別添加首部和尾部,這樣就構成了一個幀。接收端在收到物理層上交的比特流后,就能根據首部和尾部的標記,從收到的比特流中識別幀的開始和結束。
網絡層的IP數據報傳送到數據鏈路層就成為幀的數據部分。在幀的數據部分的前面和后面分別添加首部和尾部,就構成了一個完整的幀。這樣的幀就是數據鏈路成的數據傳送單元。
為了提高幀的傳輸效率,應當使幀的數據部分長度盡可能地大于首部和尾部的長度。但是,每一種鏈路層協議都規定了所能傳送的幀的數據部分長度上限—最大傳送單元MTU(Maximum Transfer Unit)
(3)差錯檢測
比特在傳輸過程中可能會產生差錯。在計算機網絡傳輸數據時,必須采用差錯檢測措施。目前在數據鏈路層廣泛使用了循環冗余檢驗CRC(Cyclic Redundancy Check)的檢錯技術。
CRCFO運算就是在數據M的后面添加供差錯檢測用得n位冗余碼,然后構成一個幀發送出去,一位共發送(k+n)
這個余數R作為冗余碼,拼接在數據M的后面發送出去。
2.使用廣播信道的數據鏈路層
廣播信道可以進行一對多的通信。
局域網按網絡拓撲分類:星型網,環形網和總線網
共享信道要著重考慮一個問題就是如何使眾多用戶能夠合理而方便地共享通信媒體資源。在技術上有兩種方法:
(1)靜態劃分信道
(2)動態媒體接入控制,它又稱為多點接入(multiple access),其特點是信道并非用戶通信時固定分配給用戶。這里又分為兩類:
- 隨機接入:隨機接入的特點是所有的用戶可隨機地發送信息。但如果恰巧有兩個或更多的用戶在同一時刻發送信息,那么在共享媒體上就要產生碰撞(即發生了沖突),使得這些用戶的發送都失敗。因此,必須有解決碰撞的網絡協議。
- 受控接入
IEEE802委員會把局域網的數據鏈路層拆分成兩個子層,即邏輯鏈路控制LLC(Logical Link Control)子層和媒體接入控制MAC(Medium Access Control)子層。
3.適配器(網卡):
計算機與外界局域網的連接是通過通信適配器(Adapter)進行的。適配器和局域網之間的通信時通過電纜或雙絞線以串行傳輸方式進行的,而適配器和計算機之間的通信是通過主板上的I/O總線以并行傳輸方式進行的。因此,**適配器的一個重要功能就是要進行數據串行傳輸和并行傳輸的轉換。**由于網絡上的數據率和計算機總線上的數據率并不相同,因此在適配器中必須裝有對數據進行緩存的存儲芯片。在主板撒花姑娘插入適配器時,還需要把管理適配器的設備驅動程序安裝在計算機的操作系統中。這個驅動程序以后就會告訴適配器,應當從存儲器的什么位置上把多長的數據塊發送到局域網,或者應當在存儲器的什么位置上把局域網傳送過來的數據塊存儲下來。適配器還要能夠實現以太網協議。
4.CSMA/CD協議
總線上只要有一臺計算機在發送數據,總線的傳輸資源就被占用。因此,在同一時間只能允許一臺計算機發送數據,否則各計算機之間就會互相干擾,使得所發送數據被破壞。因此,如何協調總線上各計算機的工作就是以太網要解決的一個重要問題。CSMA/CD就是為了解決這一問題的。
CSMA/CD載波監聽多點接入/碰撞檢測(Carrier Sense Multiple Access with Collision Detection)
多點接入:總線型網絡,許多計算機以多點接入的方式連接在一根總線上。
載波監聽:用電子技術檢測總線上有沒有其他計算機也在發送。不管在發送前,還是在發送中,每個站都必須不停地檢測信道。
碰撞檢測:邊發送邊監聽,即適配器邊發送數據邊檢測信道上的信號電壓的變化情況,以便判斷自己在發送數據時其他站是否也在發送數據。
MAC層的硬件地址:在局域網中,硬件地址又稱為物理地址或MAC地址,也即適配器地址。
適配器有過濾功能。適配器從網絡上每收到一個MAC幀就先用硬件檢查MAC幀中的目的地址。如果發往本站的幀則收下,然后再進行其他的處理。否則就將此幀丟棄,不再進行其他的處理。發往本站的幀包括以下三種幀:
(1)單播(unicast)幀(一對一),即收到的幀的MAC地址與本站的硬件地址相同。
(2)廣播(broadcast)幀(一對全體),即發送給本局域網所有站點的幀(全1地址)
(3)多播(multicast)幀(一對多),即發送給本局域網上一部分站點的幀
5.MAC幀的格式
第4章 網絡層
本章最主要的內容:
(1)虛擬互連網絡的概念
(2)IP地址與物理地址的關系
(3)傳統的分類的IP地址(包括子網掩碼)和無分類域間路由選擇CIDR
(4)路由選擇協議的工作原理
網絡層向上只提供簡單靈活的、無連接的、盡最大努力交付的數據報服務。
網絡在發送分組時不需要先建立連接。每一個分組(也就是IP數據報)獨立發送,與其前后的分組無關(不進行編號)。網絡層不提供服務質量的承諾。
1.網際協議IP
與IP協議配套使用的還有三個協議:
- 地址解析協議ARP(Address Resolution Protocol)
- 網際控制報文協議ICMP(Internet Control Message Protocol)
- 網際組管理協議IGMP(Internet Group Management Protocol)
ARP畫在最小面,因為IP經常要使用這個協議。ICMP和IGMP畫在這一層的上部,因為它們要使用IP協議。
2.網絡中的一些中間設備
將網絡互相連接起來要使用一些中間設備。根據中間設備所在的層次,可以有以下四種不同的中間設備:
(1)物理層使用的中間設備叫做轉發器
(2)數據鏈路層使用的中間設備叫做網橋或橋接器(bridge)
(3)網絡層使用的中間設備叫做路由器
(4)在網絡層以上使用的中間設備叫做網關(gateway)。用網關連接兩個不兼容的系統需要在高層進行協議轉換。
源主機H1要把一個IP數據報發送給目的主機H2的過程:
主機H1先要檢查自己的路由表,看目的主機是否就在本網絡上。如果是,則不需要經過任何路由器而是直接交付,任務就完成了。如果不是,則必須把IP數據報發送給某個路由器(圖中的R1)。R1在查找了自己的路由表后,知道應當把數據報轉發給R2,進行間接交付。這樣一直轉發下去,最后由路由器R5知道自己是和H2連接在同一個網絡上,不需要再使用別的路由器轉發了,于是就把數據報直接交付給目的主機H2。
3.分類的IP地址
IP地址的編址方法共經過了三個歷史階段:
(1)分類的IP地址。這是最基本的編址方法
(2)子網的劃分。這是對最基本的編址方法的改進
(3)構成超網。這是比較新的無分類編址方法
4.IP地址與硬件地址
從層次角度看,物理地址是數據鏈路層和物理層使用的地址,而IP地址是網絡層和以上各層使用的地址,是一種邏輯地址。
地址解析協議ARP:
在實際應用中,我們經常會遇到這樣的問題:已經知道了一個機器(主機或路由器)的IP地址,需要找出其相應的硬件地址。地址解析協議ARP就是用來解決這樣的問題的。
在一個網絡上可能經常會有新的主機加入進來,或撤走一些主機。更換網絡適配器也會使主機的硬件地址改變。地址解析協議ARP解決這個問題的方法是在主機ARP高速緩存中存放一個從IP地址到硬件地址的映射表,并且這個映射表還經常動態更新(新增或超時刪除)。每一臺主機都設有一個ARP高速緩存(ARP Cache),里面有本局域網上的各主機和路由器的IP地址到硬件地址的映射表,這些都是該主機目前知道的一些地址。那么主機怎樣知道這些地址呢?
5.IP數據報的格式
一個IP數據報由首部和數據兩部分組成。首部的前一部分是固定長度,共20字節,是所有IP數據報必須具有的。在首部的固定部分的后面是一些可選字段,其長度是可變的。
(1)版本 占4位,指IP協議的版本。通信雙方使用的IP協議的版本必須一致。
(2)首部長度 占4位
(3)區分服務 用來獲得更好的服務。
(4)總長度 總長度指首部和數據之和的長度
(5)標識
(6)標志(flag)
(7)片偏移
(8)TTL生存時間
由發出數據報的源點設置這個字段,其目的是防止無法交付的數據報無限制地在互聯網中兜圈子(例如從路由器R1轉發到R2,再轉發到R3,然后又轉發到R1),因而白白消耗網絡資源。每經過一個路由器時,就把TTL減去1。當TTL值為零時,就丟棄這個數據報。
(9)協議 協議字段指出此數據報攜帶的數據是使用何種協議,以便使目的主機的IP層知道應將數據部分上交給哪個協議進行處理。
(10)首部校驗和 這個字段只檢驗數據報的首部,不包括數據部分。
6.劃分子網和構造超網
(1)從兩級IP地址到三級IP地址 即劃分子網
劃分子網:從網絡的主機號借用若干位作為子網號(subnet-id),于是兩級IP地址在本單位內部就變成了三級IP地址:網絡號、子網號和主機號
IP地址::={<網絡號>,<子網號>,<主機號>}
圖4-18表示某單位擁有近一個B類IP地址,網絡地址145.13.0.0(網絡號是145.13)。凡目的地址為145.13.x.x的數據報都被送到這個網絡上的路由器R1
現在剩下一個問題就是:假定一個數據報(其目的地址是145.13.3.10)已經到達了路由器R1。那么這個路由器如何把它轉發到子網145.13.3.0呢?子網掩碼
把子網掩碼255.255.255.0和IP地址145.13.3.10逐位“與”AND運算,就可得出網絡地址145.13.3.0
路由器在和相鄰路由器交換路由信息時,必須把自己所在網絡(或子網)的子網掩碼告訴相鄰路由器。在路由器的路由表中的每一個項目,除了要給出目的網絡地址,還必須同時給出該網絡的子網掩碼。若一個路由器連接在兩個子網上就擁有兩個網絡地址和兩個子網掩碼。
7.查找路由表
下面進一步討論使用了子網掩碼后應怎樣查找路由表
使用子網時分組的轉發:
使用子網劃分后,路由表必須包含以下三項內容:目的網絡地址、子網掩碼和下一跳地址
8.無分類編址CIDR(構造超網)
使用變長子網掩碼VLSM(Variable Length Subnet Mask)可進一步提高IP地址資源的利用率。在VLSM的基礎上又進一步研究出無分類編碼方法,即無分類域間路由選擇CIDR(Classless Inter-Domain Routing)
CIDR最主要的特點有兩個:
(1)CIDR消除了傳統的A類、B類和C類地址以及劃分子網的概念。
CIDR把32位的IP地址劃分為前后兩個部分。前面部分是“網絡前綴”(network-prefix),用來指明網絡,后面部分則用來指明主機。因此CIDR使IP地址從三級編址(使用子網掩碼)又回到了兩級編址。
IP地址::={<網絡前綴>,<主機號>}
(2)CIDR把網絡前綴都相同的連續的IP地址組成一個“CIDR地址塊”
分配到一個CIDR地址塊的單位,仍然可以在本單位內根據需要劃分出一些子網。這些子網也都只有一個網絡前綴和一臺主機號字段,但子網的網絡前綴比整個網絡前綴要長些。例如,某單位分配到地址塊/20,就可以再繼續劃分為8個子網(即需要從主機號中借用3位來劃分子網)。這時每一個子網的網絡前綴就變成23位(原來的20位加上從主機號借來的3位),比該單位的網絡前綴多了3位
128.1435.7/20=10000000 00001110 00100011 00000111
/20地址塊的子網掩碼:**11111111 11111111 1111**0000 00000000
斜線記法中,斜線后面的數字就是子網掩碼中1的個數。
9.網際控制報文協議ICMP
為了更有效地轉發IP數據報和提高交付成功的機會,在網際層使用了ICMP。ICMP允許主機或路由器報告差錯情況和提供有關異常情況的報告。ICMP報文封裝在IP數據報中共,作為其中的數據部分。
ICMP報文的種類有兩種:ICMP差錯報告報文和ICMP詢問報文
10.路由選擇協議
路由選擇協議:路由表中的路由是怎么得出的
路由選擇協議的核心是路由算法,即需要何種算法來獲得路由表中的各項目
根據路由算法能夠隨網絡的通信量或拓撲自適應地進行調整變化來劃分,靜態路由選擇策略和動態路由選擇策略
靜態路由選擇特點:簡單和開銷小,但不能即使適應網絡狀態的變化。對于很簡單的小型網絡,完全可以采用靜態路由選擇,人工配置每一條路由。
動態路由特點:能較好地適應網絡狀態的變化,但實現起來較為復雜,開銷也比較大。動態路由適合較復雜的大型網絡。
分層次的路由選擇協議:
內部網關協議IGP(Interior Gateway Protocol):即一個自治系統內部使用的路由選擇協議,而這與在互聯網中的其他自治系統選用什么路由選擇協議無關。目前這類路由選擇協議最多,如RIP和OSPF協議。
外部網關協議EGP(External Gateway Protocol):若源主機和目的主機處在不同的自治系統中(這兩個自治系統可能使用不同額內部網關協議),當數據報傳到一個自治系統的邊界時,就需要使用功能一種協議將路由選擇信息傳遞到另一個自治系統中。目前使用最多的外部網關協議是邊界網關協議BGP(Broder Gateway Protocol)
10.1 內部網關協議RIP
路由信息協議RIP(Routing Information Protocol)。RIP是一種分布式的基于距離向量的路由選擇協議。最大優點就是簡單
RIP協議要求網絡中的每一個路由器都要維護從它自己到其他每一個目的網絡的距離記錄(一組距離,即距離向量)。RIP協議的“距離”也稱為“跳數”,因為每經過一個路由器,跳數就加1.RIP認為好的路由就是它通過的路由器的數目少,即“距離短”。RIP允許一條路徑最多只能包括15個路由器。因此“距離”等于16時即相當于不可達。(注意理解TTL字段的含義) RIP只適合于小型網絡
RIP協議三個要點:和哪些路由器交換信息?交換什么信息?在什么時候交換信息?
RIP協議的特點:
(1)僅和相鄰路由器交換信息
(2)路由器交換的信息時當前本路由器所知道的全部信息,即自己現在的路由表。也就是說,交換的信息是:“我到本自治系統中所有網絡的(最短)距離,以及到每個網絡應經過的下一跳路由器”
(3)按固定的時間間隔交換路由信息
RIP協議讓一個自治系統中的所有路由器都和自己的相鄰路由器定期交換路由信息,并不斷更新其路由表,使得從每一個路由器到每一個目的網絡的路由都是最短的(即跳數最少)
RIP協議使用運輸層的用戶數據報UDP進行傳送(使用UDP端口520)
RIP協議在應用層,為網絡層服務。
10.2內部網關協議OSPF
開放最短路徑優先OSPF(Open Shortest Path First)最主要的特征就是使用分布式的鏈路狀態協議,而不是像RIP那樣的距離向量協議。和RIP協議相比,OSPF的三個要點和RIP的都不一樣:
(1)向本自治系統中所有路由器發送信息。洪泛法(flooding),路由器通過所有輸出端口向所有相鄰的路由器發送信息。
(2)發送的信息就是與本路由器相鄰的所有路由器的鏈路狀態,但這只是路由器所知道的部分信息。
(3)只有當鏈路狀態發送變化時,路由器才向所有路由器用洪泛法發送此信息。而不像RIP那樣,不管網絡拓撲有無發生變化,路由器之間都要定期交換路由表的信息。
OSPF適用于大型網絡,OSPF不用UDP而是直接用IP數據報傳送
11.VPN和NAT
1.虛擬專用網VPN
讓本機構的一些計算機使用僅在本機構有效的IP地址(這種地址為本地地址),而不需要向互聯網的管理機構申請全球唯一的IP地址(這種地址稱為全球地址)
專用地址只能用做本地地址而不能用做全球地址。在互聯網中的所有路由器,對目的地址是專用地址的數據報一律不進行轉發。專用地址塊:
10.0.0.0~10.255.255.255 172.16.0.0~172.31.255.255
192.168.0.0~192.168.255.255
采用這樣的專用IP地址的互連網絡稱為專用互聯網或本地互聯網,或專用網。
有時一個很大的機構的許多部分分布的范圍很廣(例如,在世界各地),這些部門經常要互相交換信息。這可以有兩種方法。(1)租用電信公司的通信線路為本機構專用。這種方法雖然簡單,但線路的租金太高,一般難于承受。(2)利用公用的互聯網作為本機構各專用網之間的通信載體,這樣的專用網又稱為虛擬專用網(Virtual Private Network)
之所以稱為"專用網"是因為這種網絡是為本機構的主機用于機構內部的通信,而不是用于和網絡外非本機構的主機通信。如果專用網不同網點之間的通信必須經過公用的互聯網,但又有保密的要求,那么所有通過互聯網傳送的數據都必須加密。
2.網絡地址轉換NAT
下面討論另一種情況,就是在專用網內部的一些主機本來已經分配了本地IP地址(即僅在專用網內使用的專用地址),但現在又想和互聯網上的主機通信(并不需要加密),那么應當采取什么措施?NAT技術
在專用網連接到互聯網的路由器上安裝NAT軟件,裝有NAT軟件的路由器叫做NAT路由器,它至少有一個有效的外部全球IP地址。這樣,所有使用本地地址的主機在和外界通信時,都要在NAT路由器上將其本地地址轉換成全球IP地址,才能和互聯網連接。
NAT路由器收到從專用網內部的主機A發往互聯網上主機B的IP數據報:源IP地址是192.168.0.3,而目的IP地址是213.18.2.4。NAT路由器把IP數據報的源IP地址192.168.0.3,轉換為新的源IP地址(即NAT路由器的全球IP地址)172.38.1.5,然后轉發出去。因此,主機B收到這個IP數據報時,以為A的IP地址是172.38.1.5.B并不知道A的專用地址192.168.0.3.當NAT路由器收到互聯網上的主機B發來的IP數據報時,還要進行一次IP地址的轉換。通過NAT地址轉換表,就可把IP數據報上的舊的目的IP地址172.38.1.5,轉換為新的目的IP地址192.168.0.3(主機A真正的本地IP地址)
為了更有效地利用NAT路由器上的全球IP地址,現在常用的NAT轉換表把傳輸層的端口號也利用上。這樣,就可以使多個擁有本地地址的主機,共用一個NAT路由器上的全球IP地址,因而可以同時和互聯網上的不同主機進行通信。使用端口號的NAT也叫網絡地址和端口號轉換NAPT,端口映射。
第5章 運輸層
本章先概括介紹運輸層協議的特點、進程之間的通信和端口等重要概念,然后講述比較簡單的UDP協議。其余的篇幅都是討論較為復雜但非常重要的TCP協議和可靠傳輸的工作原理,包括停止等待協議盒ARQ協議。在詳細講述TCP報文段的首部格式之后,討論TCP的三個重要問題:滑動窗口、流量控制和擁塞控制。最后,介紹TCP的連接管理。
主要概念:
(1)運輸層為相互通信的應用進程提供邏輯通信
(2)端口和套接字的意義
(3)無連接的UDP的特點
(4)面向連接的TCP的特點
(5)在不可靠的網絡上實現可靠傳輸的工作原理,停止等待協議盒ARQ協議
(6)TCP的滑動窗口、流量控制、擁塞控制和連接管理
1.進程之間的通信
通信的真正的端點并不是主機而是主機中的進程。端到端的通信時應用進程之間的通信。運輸層提供應用進程之間的邏輯通信
可以看出網絡成和運輸層有明顯的區別。網絡層為主機之間提供邏輯通信,而運輸層為應用進程之間提供端到端的的邏輯通信。
運輸層還要對收到的報文進行差錯檢測
2.運輸層的兩個主要協議
根據應用程序的不同需求,運輸層需要有兩種不同的協議,即面向連接的TCP和無連接的UDP。
用戶數據報協議UDP(User Datagram Protocol)
傳輸控制協議TCP(Transmission Control Protocol)
在TCP/IP體系中,根據所使用的協議是TCP還是UDP,兩個對等運輸實體在通信時傳送的數據單位,分別稱為TCP報文段(Segment)或UDP用戶數據報。
3.運輸層的端口
當運輸層收到IP層交上來的運輸層報文時,就能夠根據其首部中的目的端口號把數據交付應用層的目的應用進程
TCP/IP的運輸層用一個16位端口號來標志一個端口
兩個計算機中的進程要相互通信,不僅必須知道對方的IP地址(為了找到的對方的主機),而且要知道對方的端口號(為了找到對方計算機中的應用進程)
運輸層的端口號分為兩大類:
(1)服務器端使用的端口號
分為兩類,最重要的一類叫做熟知端口號或系統端口號,數值為0~1023
另一類叫做等級端口號,數值為1024~49151
(2)客戶端使用的端口號
數值為49152~65535,由于這類端口號僅在客戶進程運行時才動態選擇,因此叫做短暫端口號。這類端口號留給客戶進程選擇暫時使用。當服務器進程收到客戶進程的報文時,就知道了客戶進程所使用的端口號,因而可以把數據發送給客戶進程。通信結束后,剛才已使用的客戶端口號就不復存在,這個端口號就可以供其他客戶進程使用。
4.用戶數據報協議UDP
UDP只在IP的數據報服務之上增加了很少一點的功能,這就是復用和分用的功能以及差錯檢測的功能。
UDP的主要特點:
(1)UDP是無連接的,即發送數據之前不需要建立連接
(2)UDP使用盡最大努力交付,即不保證可靠交付
(3)UDP是面向報文的。發送方的UDP對應用進程交下來的報文,在添加首部后就向下交付IP層。UDP對應用層交下來的報文,既不合并,也不拆分,而是保留這些報文的邊界。即應用層交個UDP多長的報文,UDP就照樣發送,即一次發送一個報文。UPD一次交付一個完整的報文。
(4)UDP沒有擁塞控制
網絡出現的擁塞不會使源主機的發送速率降低,這對某些實時應用是很重要的。很多的實時應用(如IP電話,實時視頻會議等)要求源主機以恒定的速率發送數據,并且允許在網絡發生擁塞時丟失一些數據,但卻不允許數據有太大的時延。UDP正好符合這種要求。
(5)UDP支持一對一、一對多、多對一和多對多的交互通信
(6)UDP的首部開銷小,只有8字節,比TCP的20字節的首部要短。
UDP的首部格式
用戶數據報UDP有兩個字段:數據字段和首部字段。首部字段很簡單,只有8個字節,由四個字段組成。各字段意義如下:
當運輸層從IP層收到的UDP數據報時,就根據首部中的目的端口,把UDP數據報通過相應的端口,上交最后的終點—應用程序
請注意,雖然在UDP之間的通信要用到其端口號,但由于UDP的通信是無連接的,因此不需要使用套接字(TCP之間的通信必須要在兩個套接字之間建立連接)
5.傳輸控制協議TCP
TCP最主要的特點:
(1)TCP是面向連接的。應用程序在使用TCP協議之前,必須先建立連接。在傳送數據完畢后,必須釋放已經建立的TCP連接。
(2)每一條TCP連接只能有兩個端點(endpoint),每一條TCP連接只能是點對點(一對一)
(3)TCP提供可靠交付的服務。通過TCP連接傳送的數據,無差錯、不丟失、不重復,并且按序到達。
(4)TCP提供全雙工通信。TCP允許通信雙方的應用進程在任何時候都能發送數據。TCP連接的兩端都設有發送緩存和接收緩存,用來臨時存放雙方通信的數據。在發送時,應用程序在把數據傳送給TCP的緩存后,就可以做自己的事,而TCP在合適的時候把數據發送出去
(5)TCP是面向字節流的
TCP中的“流”stream指的是流入到進程或從進程流出的字節序列
圖5-8指出,TCP和UDP在發送報文時所采用的方式完全不同。TCP并不關心應用進程一次把多長的報文發送到TCP的緩存中,而是根據對方給出的窗口值和當前網絡擁塞的程度來決定一個報文段應包含多少個字節(UDP發送的報文長度是應用進程給出的)。如果應用進程傳送到TCP緩存的數據塊太大,TCP就可以把它劃分短一些再傳送。如果應用程序一次只發來一個字節,TCP也可以等到積累有足夠多的字節后再構成報文段發送出去。
TCP的連接
每一條TCP連接有兩個端點,這兩個端點叫做套接字(Socket)
套接字(socket)=(IP地址:端口號)
**每一條TCP連接唯一地被通信兩端的兩個端點(即兩個套接字)所確定。**即:
TCP連接 ::= {socket1,socket2}={ (IP1:port1), (IP2:port2)}
這里IP1和IP2分別是兩個端點主機的IP地址,而port1和port2分別是兩個端點主機中的端口號。
TCP和UDP主要區別:
(1)TCP是有連接的,UDP是無連接的
(2)TCP提供可靠交付的服務,UDP不保證可靠交付
(4)TCP是面向字節流的,UDP是面向報文的
(5)TCP連接是一對一的,UDP連接可以是一對一,一對多和多對多的通信
6.可靠傳輸的工作原理
6.1 停止等待協議
“停止等待”就是每發送完一個分組就停止發送,等待對方的確認。在收到確認后再發送下一個分組。
使用上述的確認和重傳機制,我們就可以再不可靠的傳輸網絡上實現可靠的通信。
為了提高傳輸效率,發送方可以不使用低效率的停止等待協議,而是采用流水線傳輸。流水線傳輸就是發送方可連續多個分組,不必每發完一個分組就停頓下來等待對方的確認。
當使用流水線傳輸時,就要使用連續的ARQ協議和滑動窗口協議
6.2 連續ARQ協議
連續ARQ協議規定,發送方每收到一個確認,就把發送窗口向前滑動一個分組的位置。接收方一般都是采用積累確認的方式。即接收方不必對收到的分組逐個發送確認,而是在收到幾個分組后,對 按序到達的最后一個分組發送確認,這就表示:到這個分組為止的所有分組都已正確收到了。
累積確認優點:容易實現,即使確認丟失也不必重傳。缺點:不能向發送方反映出接收方已經正確收到的所有分組的信息。
7.TCP報文段的首部格式
TCP雖然是面向字節流的,但TCP傳送的數據單元是報文段。一個TCP報文段分為首部和數據兩部分,而TCP的全部功能都體現在它首部中各字段的作用。因此,只有弄清TCP首部各字段的作用才能掌握TCP的工作原理
TCP報文段首部的前20個字節是固定的
(1)序號 在一個TCP連接中傳送的字節流中的每一個字節都按順序編號。整個要傳送的字節流的起始序號必須在連接建立時設置。首部中的序號字段值則指的是本報文段所發送的數據的第一個字節的序號。
(2)確認號 占4字節,是期望收到對方下一個報文段的第一個數據字節的序號
例如,B正確收到了A發送過來的一個報文段,其序號字段值是501,而數據長度是200字節(序號501~700),這表明B正確收到了A發送的到序號700為止的數據。因此,B期望收到A的下一個數據序號是701,于是B在發送給A的確認報文段中把確認號置為701。請注意,現在的確認號不是501,也不是700,而是701。
若確認號=N,則表明:到序號N-1為止的所有數據都已正確收到。
(3)數據偏移 占4位,它指出TCP報文段的數據起始處距離TCP報文段的起始處有多遠
(4)緊急URG(URGent) 當URG=1時,表明緊急指針字段有效,它告訴系統此報文段中有緊急數據,應盡快傳送(相當于高優先級的數據),而不是按原來的排隊順序來傳送。
(5)確認ACK(ACKnowledgment) 僅當ACK=1時確認號字段才有效。當ACK=0時,確認號無效。TCP規定,在連接建立后所有傳送的報文段都必須把ACK置1
(6)推送PSH(Push)
(7)復位RST(ReSeT) 當RST=1時,表明TCP連接中共出現嚴重差錯
(8)同步SYN(SYNchronization) 在連接建立時用來同步序號。當SYN=1而ACK=0,表明這是一個連接請求報文段。對方若同意建立連接,則應在響應的報文段中使SYN=1和ACK=1。因此,SYN置為1就表示這是一個連接請求或連接接受報文。
(9)終止FIN 用來釋放一個連接。當FIN=1時,表明此報文的發送方的數據已發送完畢,并要求釋放運輸連接。
(10)窗口 占2字節。窗口值[0,2^16-1]之間的整數。窗口指的是發送本報文段中的一方的接受窗口(而不是自己的發送窗口)。窗口值告訴對方:從本報文段首部中的確認號算起,接收方目前允許對方發送的數據量。窗口值作為接收方讓發送方設置其發送窗口的依據
例如,發送了一個報文段,其確認號是701,窗口字段是1000.這就是告訴對方:“從701號算起,我(即發送此報文段的一方)的接受緩存空間還可接收1000個字節數據(字節序號是701~~1700),你在給我發送數據時,必須考慮到這一點”。
窗口字段明確指出了現在允許對方發送的數據量。窗口值經常在動態變化著。
(11)檢驗和
(12)緊急指針
8.TCP可靠傳輸的實現
8.1以字節為單位的滑動窗口
現假定A收到了B發來的確認報文段,其中窗口是20字節,而確認號是31(這表明B期望收到的下一個序號是31,而序號30為止的數據已經收到了)。根據這兩個數據,A就構造出自己的發送窗口,如圖5-15所示
9.TCP流量控制
利用滑動窗口實現流量控制
一般來說,我們總是希望數據局傳輸得更快一些。但如果發送方把數據發送得過快,接收方可能來不及接收,這就會造成數據的丟失。所謂流量控制就是讓發送方的發送速率不要太快,要讓接收方來得及接收。
設A向B發送數據。在連接建立時,B告訴了A:“我的接收窗口rwdn=400”。因此,發送方的發送窗口不能超過接收方給出的接收窗口的數值。
接收方B進行了三次流量控制。第一次把窗口減小到rwnd=300,第二次又減到rwnd=100,最后減到0,即不允許發送方再發送數據了。這種使發送方暫停發送的狀態將持續到主機B重新發出一個新的窗口值為止。
10.TCP的擁塞控制
擁塞控制與流量控制的關系密切,它們之間也存在一些差別。所謂擁塞控制就是防止過多的數據注入到網絡中,這樣可以使網絡中的路由器或鏈路不致過載
擁塞控制是一個全局性的過程,涉及到所有的主機、所有的路由器,以及與降低網絡傳輸性能有關的所有因素。流量控制往往是值點對點通信量的控制,是個端到端的問題(接收端控制發送端),流量控制所要做的就是抑制發送端發送數據的速率,以便使接收端來得及接收。
10.1 TCP擁塞控制方法
TCP進行擁塞控制的算法有四種:慢開始(Slow-start)、擁塞避免(Congestion avoidance)、快重傳(fast retransmit)和快恢復(fast recovery)
1.慢開始和擁塞避免
下面討論的擁塞控制也叫作基于窗口的擁塞控制。為此,發送方維持一個叫做擁塞窗口cwnd(congestion window)的狀態變量。擁塞窗口的大小取決于網絡的擁塞程度,并且動態地在變化。發送方讓自己的發送窗口等于擁塞窗口。
發送方控制擁塞窗口的原則是:只要網絡沒有出現擁塞,擁塞窗口就可以再增大一些,以便把更多的分組發送出去,這樣就可以提高網絡的利用率。但只要網絡出現擁塞或有可能出現擁塞,就必須把擁塞窗口減少一些,以減少注入到網絡中的分組數,以便緩解網絡出現的擁塞。
下面討論擁塞窗口cwnd的大小是怎樣變化的。
慢開始算法:當主機開始放松數據時,由于不清楚網絡的負荷情況,所以如果立即把大量數據字節注入到網絡,那么就有可能引起網絡發送擁塞。經驗證明,較好的方法是先探測一下,即由小到大逐漸增大發送窗口,即由小到大逐漸增加擁塞窗口數值。
慢開始的“慢”并不是指cwnd的增長速率慢,而是指在TCP開始發送報文段先設置cwnd=1,使發送方在開始時只發送一個報文段(目的是試探一個網絡的擁塞情況),然后再逐漸增大cwnd。
擁塞避免算法:讓擁塞窗口cwnd緩慢地增大,即每經過一個往返時間RTT就把發送方的擁塞窗口cwnd加1,而不是像慢開始階段那樣加倍增長。因此擁塞避免階段就有“加法增大”的特點。這表明在擁塞避免階段,擁塞窗口cwnd按線性規律緩慢增長,比慢開始算法的擁塞窗口增長速率緩慢很多。
當擁塞窗口cwnd=24時,網絡出現了超時,發送方判斷為網絡擁塞。于是調整門限值ssthresh=cwnd/2=12,同時設置擁塞窗口cwnd=1,進入慢開始階段。
快重傳算法:
在圖5-25中的點4,發送方知道現在只是丟失了個別的報文段。于是不啟動慢開始,而是執行快恢復算法。這時,發送方調整門限值ssthresh=cwnd/2=8,同時設置擁塞窗口cwnd=ssthresh=8,并開始執行擁塞避免算法。
11.TCP的運輸連接管理
運輸連接有三個階段:連接建立、數據傳送和連接釋放
運輸連接的管理就是使運輸連接的建立和釋放都能正常地進行
在TCP連接建立過程中要解決一下三個問題:
(1)要使每一方能夠確知對方的存在
(2)要允許雙方協商一些參數(如最大窗口值、是否使用窗口擴大選項和時間戳選項以及服務質量等)
(3)能夠對運輸實體資源(如緩存大小、連接表中的項目等)進行分配
TCP連接的建立采用客戶服務器方式。主動發起連接建立的應用程序叫做客戶,而被動等待建立的應用程序叫做服務器
11.1 TCP的連接建立
TCP建立連接的過程叫做握手,握手需要在客戶和服務器之間交換三個TCP報文段,如圖所示
上面給出的連接建立過程叫做三次握手。請注意,在圖5-28中B發送給A的報文段,也可以拆成兩個報文段。可以先發送一個確認報文段(ACK=1,ack=x+1),然后再發送一個同步報文段(SYN=1,seq=y)。這樣的過程就變成了四報文握手,但效果是一樣的。
為什么不是兩次握手?
采用三次握手,可以防止上述現象的發生。例如剛才的異常情況下,A不會向B的確認發出確認。B由于收不到確認,就知道A并沒有要求建立連接。
服務器要確認客戶的連接請求,然后客戶要對服務器的確認進行確認。
11.2 TCP的連接釋放
數據傳輸結束后,通信的雙方都可釋放連接。
A的應用進程先向其TCP發出連接釋放報文段,并停止再發送數據,主動關閉TCP連接。A把連接釋放報文段首部的終止控制位FIN置1,其seq=u,它等待前面已傳送過得數據的最后一個字節的序號加1。這時A進入FIN-WAIT-1(終止等待1)狀態,等待B的確認。
B收到連接釋放報文段后即發出確認,確認號是ack=u+1,而這個報文段自己的序號是v,等于B前面已傳送過得數據的最后一個字節的序號加1.然后B就進入CLOSE-WAIT(關閉等待)狀態。
TCP的連接釋放采用四次握手機制。任何一方都可以在數據傳送結束后發出連接釋放的通知,待對方確認后就進入半關閉狀態。當另一方也沒有數據再發送時,則發送連接釋放通知,對方確認后就完全關閉了TCP連接。
第6章 應用層
本章討論各種應用進程通過什么樣的應用層協議來使用網絡所提供的通信服務
在上一章,我們已經學習了運輸層為應用層提供了端到端的通信服務。但不同的網絡應用的應用進程之間,還需要不同的通信規則。因此在運輸層協議之上,還需要有應用層協議。這是因為,每個應用層協議都是為了解決某一個類應用問題,而問題的解決又必須通過位于不同主機中的多個應用進程之間的通信和協同工作來完成。應用進程之間的這種通信必須遵循嚴格的規則。應用層的具體內容就是精確定義這些通信規則。應用層協議應當定義:
- 應用進程交換的報文類型,如請求報文和響應報文’
- 各種報文類型的語法,如報文中的各個字段及其詳細描述
- 字段的語義,即包含在字段中的信息的含義
- 進程何時、如何發送報文,以及對報文進行響應的規則
下面先討論許多應用協議都要使用的域名系統。在介紹了文件傳輸協議和遠程登錄協議后,再重點介紹萬維網的工作原理及其主要協議。
本章主要內容:
- 域名系統DNS------從域名解析出IP地址
- HTTP協議
- 電子郵件的傳送過程,SMTP協議等
- 動態主機配置協議DHCP的特點
- 系統調用和應用編程接口的基本概念
1.域名系統DNS
用戶與互聯網上某臺主機通信時,必須要知道對方的IP地址。然而用戶很難記住對方的IP地址。應用層為了便于用戶記憶各種網絡應用,連接在互聯網上的主機不僅有IP地址,而且還有便于用戶記憶的主機名字。域名系統DNS能夠把互聯網上的主機名字轉換為對應的IP地址
2.FTP
FTP使用客戶服務器方式。一個FTP服務器進程可同時為多個客戶進程提供服務。FTP的服務器進程由兩大部分組成:一個主進程,負責接收新的請求;另外有若干個從屬進程,負責處理單個請求。
主進程的工作步驟如下:
(1)打開熟知端口(端口號為21),使客戶進程能夠臉上
(2)等待客戶進程發出連接請求。
(3)啟動從屬進程處理客戶進程發來的請求。從屬進程對客戶進程的請求處理完畢后即終止,但從屬進程在運行期間根據需要還可能創建其他一些子進程
(4)回到等待狀態,繼續接受其他客戶進程發來的請求。主進程與從屬進程的處理是并發進行的
在進行文件傳輸時,FTP的客戶和服務器之間要建立兩個并行的TCP連接:“控制連接”和“數據連接”。控制連接在整個會話期間一直保持打開,FTP客戶所發出的傳送請求,通過控制連接發送給服務器端的控制進程,但控制連接并不用來傳送文件。服務器端的控制進程在接收到FTP客戶發送來的文件傳輸請求后就創建“數據傳送進程”和“數據連接”,用來連接客戶端和服務器端的數據傳送進程。數據傳送進程實際完成文件的傳送,在傳送完畢后關閉“數據傳送連接”并結束運行。
當客戶進程向服務器進程發出建立連接請求時,要尋找連接服務器進程的熟知端口21,同時還要告訴服務器進程自己的另一個端口號碼,用于建立數據傳送連接。接著,服務器進程用自己傳送數據的熟知端口20與客戶進程所提供的端口號建立數據傳送連接。由于FTP使用了兩個不同的端口號,所以數據連接與控制連接不會發生混亂。
3.遠程終端協議TELNET
用戶用TELNET就可在其所在地通過TCP連接注冊(即登錄)到遠地的另一臺主機上(使用主機名或IP地址)。TELNET能將用戶的擊鍵傳到遠地主機,同時也能將遠地主機的輸出通過TCP連接返回到用戶屏幕。
4.統一資源定位符URL
URL(Uniform Resource Locator)
URL用來表示從互聯網撒花姑娘得到的資源位置和訪問這些資源的方法。URL實際上就是在互聯網上的資源的地址。
URL的一般形式由以下四個部分組成: <協議>://<主機>:<端口>/<路徑>
主機就是指該主機在互聯網上的域名。
HTTP的URL的一般形式: http://<主機>:<端口>/<路徑>
5.HTTP
HTTP協議定義了 瀏覽器(即萬維網客戶進程)怎樣向萬維網服務器請求萬維網文檔,以及服務器怎樣把文檔傳送給瀏覽器。
HTTP協議是無狀態的(stateless).也就是說,同一個客戶第二次訪問同一個服務器上的頁面時,服務器的響應與第一次被訪問的相同(假定現在服務器還沒有把該頁面更新),因為服務器并不記得曾經訪問過的這個客戶,也不記得為該客戶曾經服務過多少次。HTTP的無狀態特性簡化了服務器的設計,使服務器更容易支持大量并發的HTTP請求。
HTTP/1.1協議使用了持續連接,所謂持續連接就是萬維網服務器在發送響應后仍然在一段時間內保持這條連接,使同一個客戶和服務器可以繼續在這條連接上傳送后續的HTTP請求報文和響應報文。
代理服務器(proxy server) 代理服務器把最近的一些請求和響應暫存在本地磁盤中。當新請求達到時,若代理服務器發現這個請求與暫時存放的請求相同,就返回暫存的響應,而不需要按URL的地址再次去互聯網訪問該資源。
HTTP的報文結構
HTTP有兩類報文:
(1)請求報文------從客戶向服務器發送請求報文
(2)響應報文------從服務器到客戶的回答
HTTP請求報文和響應報文都是由三個部分組成的
請求報文的第一行“請求行”只有三個內容,即方法,請求資源的URL,以及HTTP的版本
**在服務器上存放用戶的信息:**Cookie
Cookie工作原理:當用戶A瀏覽某個使用Cookie的網站時,該網站的服務器就為A產生一個唯一的識別碼,并以此作為索引在服務器的后端數據庫中產生一個項目。接著在給A的HTTP響應報文中共添加一個叫做Set-cookie的首部行。例如這個首部行:
Set-cookie:31d4d96e407aad42
當A收到這個響應時,其瀏覽器就在它管理的特定Cookie文件中添加一行,其中包括這個服務器的主機名和Set-cookie后面給出的識別碼。當A繼續瀏覽這個網站時,每發送一個HTTP請求報文,其瀏覽器就會從其Cookie文件中取出這個網站的識別碼,并放在HTTP請求報文的cookie首部行中。cookie:31d4d96e407aad42
于是,這個網站就能夠跟蹤用戶31d4d96e407aad42(用戶A)在該網站的活動。需要注意的是,服務器并不需要知道這個用戶的真實姓名以及其他的信息。但服務器能夠知道用戶31d4d96e407aad42在什么時候訪問了哪些頁面,以及訪問這些頁面的順序。如果A是在網上購物,那么這個服務器可以為A維護一個所購物品的列表,使A在結束這次購物是可以一起付費。
6.簡單郵件傳送協議SMTP(Simple Mail Transfer Protocol)
一個電子郵件系統具有三個主要組成構件:用戶代理、郵件服務器,以及郵件發送協議(SMTP)和郵件讀取協議(POP3)
用戶代理UA(User Agent)就是用戶與電子郵件系統的接口,在大多數情況下它就是運行在用戶電腦中的一個程序。因此用戶代理又稱為電子郵件客戶端軟件。用戶代理向用戶提供一個很友好的接口來發送和接收郵件。
7.動態主機配置協議DHCP
8.應用進程跨越網絡的通信
系統調用和應用編程接口
大多數操作系統使用系統調用的機制在應用程序和操作系統之間傳遞控制權。
當某個應用進程啟動系統調用時,控制權就從應用進程傳遞給了系統調用接口。此接口再把控制權傳遞給計算機的操作系統。操作系統把這個調用轉給某個內部過程,并執行所請求的操作。內部過程一旦執行完畢,控制權就又通過系統調用接口返回給應用進程。因此系統調用實際上就是應用進程的控制權和操作系統的控制權進行轉換的一個接口。由于應用程序在使用系統調用之前要編寫一些程序,特別是需要設置系統調用中的許多參數,因此這種系統調用又稱為應用編程接口API。應用進程只要使用標準的系統調用函數就可得到操作系統的服務。從程序設計角度看,可以把API看成是應用程序和操作系統之間的接口。
現在TCP/IP協議軟件已駐留在操作系統中。由于TCP/IP協議族被設計成能運行在多種操作系統的環境中,因此TCP/IP標準沒有規定應用程序與TCP/IP協議軟件如何接口的細節,而是允許系統設計者能夠選擇有關API的具體實現細節。
網絡編程時常常把套接字作為應用進程和運輸層協議之間的接口。
幾種常用的系統調用:
(1)連接建立階段 (2)數據傳送階段 (3)連接釋放階段
第7章 網絡安全
本章最主要的內容:
(1)對稱密鑰密碼體制和公鑰密碼體制的特點
(2)數字簽名與鑒別的概念
(3)網絡層協議IPsec協議族和運輸層安全協議SSL/TLS的要點
(4)系統安全:防火墻與入侵檢測
1.數據加密模型
密鑰通常由密鑰中心提供,當密鑰需要向遠地傳送時,一定要通過另一個安全信道。
2.兩類密碼體制
對稱密鑰密碼體制:加密密鑰與解密密鑰使用相同的密碼體制
數據加密標準DES屬于對稱密鑰體制,DES的保密性僅取決于密鑰的保密,而算法是公開的。DES的問題是它的密鑰長度,56位的密鑰意味著有2^56中可能的密鑰,
公鑰密碼體制:使用不同的加密密鑰與解密密鑰
公鑰密碼體制的產生主要有兩個方面的原因:一是由于對稱密鑰密碼體制的密鑰分配問題,二是由于對數字簽名的需求。
在許多應用中共,人們需要對純數字的電子電子信息進行簽名,表明該信息確實是某個特定的人產生的。
在公鑰密碼體制中,加密密鑰PK是向公眾公開的,而解密密鑰SK是需要保密的,加密算法E和解密算法D也都是公開的
第8章 互聯網上的音視頻服務
本章首先對互聯網提供音頻/視頻服務進行概述。然后介紹流式音頻/視頻中的媒體服務器和實時流式協議RTSP,并以IP電話為例介紹交互式音視頻所使用的一些協議,如實時運輸協議RTP、實時傳送控制協議RTCP、H.323以及會話發起協議SIP。接著討論改進"盡最大努力交付"的服務的一些措施,包括怎樣使互聯網能夠提供服務質量,并介紹綜合服務IntServ、資源預留協議RSVP和區分服務DiffServ的要點。
1.流式(streaming)存儲音視頻
流式存儲音視頻文件的特點是能夠邊下載邊播放
實時流式協議RTSP(Real-Time Streaming Protocol) RTSP是為了給流式過程增加更多的功能而設計的協議。RTSP本身并不傳送數據,而僅僅是使媒體播放器能夠控制多媒體的傳送,因此RTSP又稱為外帶協議。RTSP協議以客戶服務器方式工作,它是一個應用層的多媒體播放控制協議,用來使用戶在播放從互聯網下載的實時數據時能夠控制,如:暫停/繼續、快退、快進等。因此RTSP又稱為“互聯網錄像機遙控協議”
2.交互式音視頻
這種類型是用戶使用互聯網和其他人進行實時交互式通信。現在的互聯網電話或互聯網會議就屬于這種類型。
實時運輸協議RTP及其配套的協議—實時運輸控制協議RTCP
實時運輸協議RTP(Real-time Transport Protocol) RTP為實時應用提供端到端的運輸,但不提供任何服務質量的保證。
需要發送的多媒體數據塊(音視頻)經過壓縮編碼處理后,先送給RTP封裝稱為RTP分組(也可稱為RTP報文)。RTP分組裝入運輸層的UDP用戶數據報后,再向下遞交給IP層。
RTP自己并不對多媒體數據塊做任何處理,而只是向應用層提供一些附加的信息,讓應用層知道應當如何進行處理。
實時運輸控制協議RTCP,RTCP協議也是RTP協議不可分割的部分
FTCP協議的主要功能:服務質量的監視與反饋、媒體間同步(如某一個RTP發送的聲音和圖像的配合),以及多播中成員的標志。RTCP分組(也可稱為RTCP報文)也使用UDP來傳送,但RTCP并不對音頻/視頻分組進行封裝。RTCP分組周期性地在網上傳送,它帶有發送端和接收端對服務質量的統計信息報告(例如,已發送的分組數和字節數、分組丟失率、分組到達時間間隔的抖動等)
實時流式協議RTSP(Real-Time Streaming Protocol) RTSP是為了給流式過程增加更多的功能而設計的協議。RTSP本身并不傳送數據,而僅僅是使媒體播放器能夠控制多媒體的傳送,因此RTSP又稱為外帶協議。RTSP協議以客戶服務器方式工作,它是一個應用層的多媒體播放控制協議,用來使用戶在播放從互聯網下載的實時數據時能夠控制,如:暫停/繼續、快退、快進等。因此RTSP又稱為“互聯網錄像機遙控協議”
2.交互式音視頻
這種類型是用戶使用互聯網和其他人進行實時交互式通信。現在的互聯網電話或互聯網會議就屬于這種類型。
實時運輸協議RTP及其配套的協議—實時運輸控制協議RTCP
實時運輸協議RTP(Real-time Transport Protocol) RTP為實時應用提供端到端的運輸,但不提供任何服務質量的保證。
需要發送的多媒體數據塊(音視頻)經過壓縮編碼處理后,先送給RTP封裝稱為RTP分組(也可稱為RTP報文)。RTP分組裝入運輸層的UDP用戶數據報后,再向下遞交給IP層。
RTP自己并不對多媒體數據塊做任何處理,而只是向應用層提供一些附加的信息,讓應用層知道應當如何進行處理。
實時運輸控制協議RTCP,RTCP協議也是RTP協議不可分割的部分
FTCP協議的主要功能:服務質量的監視與反饋、媒體間同步(如某一個RTP發送的聲音和圖像的配合),以及多播中成員的標志。RTCP分組(也可稱為RTCP報文)也使用UDP來傳送,但RTCP并不對音頻/視頻分組進行封裝。RTCP分組周期性地在網上傳送,它帶有發送端和接收端對服務質量的統計信息報告(例如,已發送的分組數和字節數、分組丟失率、分組到達時間間隔的抖動等)
總結
以上是生活随笔為你收集整理的计算机网络笔记整理(第七版)谢希仁的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [附源码]Java计算机毕业设计SSM宠
- 下一篇: Oracl数据库中大数据的备份-2