『TCP/IP详解——卷一:协议』读书笔记——03
2013-08-17 17:31:49
- 1.7 分用
分用(Demultiplexing):這是一個過程——當目的主機收到一個以太網數據幀時,數據就開始從協議棧中由底向上升,同時去掉各層協議上的報文首部。每層協議盒都要去檢查報文首部中的協議標識,以確定接受數據的上層協議——換一種思路理解就是,為數據制定一條解析的路線。
- 1.8 客戶-服務器模型
服務的類型:
| (多為UDP服務器,當然也存在例外)重復型 | (TCP服務器)并發型 |
| I1.等待一個客戶請求的到來 | C1.等待一個客戶請求的到來 |
| I2.處理客戶請求(這個時候,它不能為其他客戶機提供服務) | C2.啟動一個新的服務器來處理這個客戶的請求。在這期間可能生成一個新的進程或任務線程,并依賴底層操作系統的支持。這個步驟如何進行取決與操作系統。生成的新服務器對客戶的全部請求進行處理。處理結束后,終止這個服務器 |
| I3.發送響應給發送請求的客戶 | C3.返回C1步 |
| I4.返回I1布 | ? |
以上分類是對服務器分的,為什么不對客戶分?因為客戶通常不能辨別自己是與一個重復型服務器或并發型服務器進行對話。
- 1.9 端口號
| 1.TCP和UDP采用16bit的端口號來識別應用程序 |
| 2.任何TCP/UDP實現所提供的服務都用知名的1~1023之間的端口號。這些知名端口號由Internet號分配機構(Internet Assigned Numbers Authority, IANA)來管理 |
| 3.客戶端口號又稱作臨時端口號(即存在時間很短暫)。這是因為它通常只是在用戶運行該客戶程序時才存在,而服務器則只要主機開著的,其服務就運行 |
| 4.大多數TCP/IP實現給臨時端口分配1024~5000之間的端口號。大于5000的端口號是為其他服務器預留的(Internet上并不常用的服務) |
| 5.在Linux下端口-服務信息存在/etc/services文件中,我們可以通過grep telnet /etc/services來查看telnet的端口號(我們可以發現相同的端口可以既有TCP服務又有UDP服務哦~) |
查看一些端口號和服務:
1 raphael@raphael-Aspire-5741G:~$ grep 80 /etc/services?
輸出:
1 http 80/tcp www # WorldWideWeb HTTP 2 http 80/udp ? ? # HyperText Transfer Protocol 3 socks 1080/tcp ? ? ? # socks proxy server 4 socks 1080/udp 5 http-alt 8080/tcp ?? webcache # WWW caching service 6 http-alt 8080/udp 7 nbd ? ? ? ? 10809/tcp ? ?? # Linux Network Block Device 8 amanda 10080/tcp ? ?? # amanda backup services 9 amanda 10080/udp 10 omirr 808/tcp omirrd # online mirror 11 omirr 808/udp omirrd 12 canna 5680/tcp ? ? ? # cannaserver 13 zope-ftp 8021/tcp ? ? ? # zope management by ftp 14 tproxy 8081/tcp ? ? ? # Transparent Proxy 15 omniorb 8088/tcp ? ? ? # OmniORB 16 omniorb 8088/udp?
- 1.10 標準化過程
Q:究竟是誰控制著TCP/IP協議族,又是誰在定義新的標準以及其他類似的事情?
A:
| Internet協會(ISOC, Internet Society) | 是一個推動、支持和促進Internet不斷增長和發展的專業組織,它把Internet作為全球研究通信的基礎設施 |
| Internet體系結構委員會(IAB, Interent Architecture Board) | 是一個技術監督和協調的機構。它由國際上來自不同專業的15個志愿者組成,其只能是負責Internet標準的最后編輯技術審核。IAB隸屬于ISOC。后兩個隸屬與IAB。 |
| Interent工程專門小組(IETF, Internet Engineering Task Force) | 是一個面向近期標準的組織,它分為9個領域(應用、尋徑和尋址、安全等等)。IETF開發成為Internet標準的規范。為幫助IETF主席,又成立了Internet工程指導小組(IESG, Internet Engineering Steering Group) |
| Interent研究專門小組(IRIF, Interent Research Task Force) | 主要對長遠的項目進行研究。 |
- 1.11 RFC
RFC(Request for Comment):關于Internet的正式標準文檔。下面為重要的RFC文檔:
| 賦值RFC | 列出了所有Internet協議中使用的數字和常量 |
| Internet正式協議標準 | 描述了各種Interent協議的標準化現狀 |
| 主機需求RFC | 列出了協議中關于“必須”、“應該”、“可以”、“不應該”或者“不能”等特性及其實現細節 |
| 路由器需求RFC | 與主機需求RFC類似,但是只單獨描述了路由器的需求 |
- 1.12 簡單的標準服務
從該圖中可以看出,當使用TCP和UDP提供相同的服務時,一般選擇相同的端口號。
我們仔細檢查標準的簡單服務以及其他標準的TCP/IP服務(如,Telnet、FTP、SMTP等)的單口號會發現,它們都是奇數!這是有歷史原因的。當年使用NCP協議的時候(TCP前身,ARPANET的運輸層協議),由于NCP是單工的,所以每個應用程序需要兩個連接,需要預留一對奇數和偶數端口號。如今為了紀念科技的進步(也許由其他原因==!),都選用奇數作為全雙工協議的端口號。
- 1.13 互聯網
| internet | 用一個共同協議族把多個網絡連接起來 |
| Internet | 世界范圍內通過TCP/IP相互通信的所有主機集合。Interent是一個internet,但internet不等于Internet |
- 1.14 實現
現在使用的TCP/IP協議是隨同4.x BSD(Berkeley Software Distribution)系統的網絡版一起開發并發布的。可以簡單看一下它們的發展歷史:
- 1.15 應用編程接口
使用TCP/IP協議的應用程序通常采用兩種應用編程接口(API):socket(又稱作“Berkeley socket”,表明是從伯克利版發展而來的)和TLI(運輸層接口:Transport Layer Interface,起初由AT&T開發)。
- 1.16 測試網絡
下圖是書中所有例子運行的測試網絡,很重要!
在這個圖中(作者的子網),大多數的例子都運行在下面四個系統中。圖中所有的IP地址屬于B類地址,網絡好為140.252。所有的主機名屬于.tuc.noao.edu這個域。例如,右下方的系統有一個完整的名字:svr4.tuc.noao.edu,其IP地址是:140.252.13.34.每個方框上方的名稱是該主機運行的操作系統。這一組系統和網絡上的主機及路由器運行于不同的TCP/IP實現。
- 1.17 小結
本章快速的瀏覽了TCP/IP協議族,介紹了在后面的章節中將要詳細討論的許多術語和協議。
TCP/IP協議族分為四層:鏈路層、網絡層、運輸層和應用層,每一層各有不同的責任。在TCP/IP中,網絡層和運輸層之間的區別是最為關鍵的:網絡層(IP)提供點到點的服務,而運輸層(TCP和UDP)提供端到端的服務。
一個互聯網是網絡的網絡。構造互聯網的共同基石是路由器,它們在IP層把網絡連在一起。第一個字母大寫的Internet是指分布在世界各地的大型互聯網,其中包括1萬多個網絡和超過100萬臺主機。
在一個互聯網上,每個接口都用IP地址來標識,盡管用戶習慣使用主機名而不是IP地址。域名系統為主機名和IP地址之間提供動態的映射。端口號用來標識互相通信的應用程序。服務器使用知名端口號,而客戶使用臨時設定的端口號。
?
轉載于:https://www.cnblogs.com/raphael-wang/p/3265038.html
總結
以上是生活随笔為你收集整理的『TCP/IP详解——卷一:协议』读书笔记——03的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: spring源码学习之路---深入AOP
- 下一篇: POJ-3241 Object Clus