TCP/IP詳解 卷1:協議(英文版)
TCP/IP詳解 卷1:協議
WAN: wide area network 廣域網
LAN: local area network 局域網
IP:internet protocol 網際協議
ICMP: internet control message protocol 互聯網控制報文協議
IGMP: internet group management protocol 互聯網組管理協議
tcp: transmission control protocol 傳輸控制協議
udp: user datagram protocol 用戶數據報協議
FTP: file transfer protocol 文件傳輸協議
SMTP: simple mail transfer protocol 簡單郵件傳送協議
SNMP: simple network management protocol 簡單網絡管理協議
FDDI:fiber distributed data interface 光纖分佈式數據接口
ARP:address resolution protocol 地址解析協議
RARP:reverse address resolution protocol 逆地址解析協議
DNS:domain name system 域名系統數據庫
四層協議系統:
鏈路層:也稱爲數據鏈路層,網絡接口層,一般包含操做系統中設備驅動和網卡,主要處理與電纜(或者其餘任何傳輸媒介)物理接口細節
網絡層:也稱爲互聯網層,處理分組在網絡中的活動,例如分組的選路,在TCP/IP協議族中,網絡層協議包含IP,ICMP,IGMP
運輸層:爲應用層提供了兩臺主機之間的數據流,在TCP/IP協議族中,有兩種不一樣的傳輸層協議TCP,UDP
TCP提供了可靠的數據傳輸
(1)將應用層發送數據切分爲大小合適的塊,經由網絡層路由發送
(2)確認包是否被接收到,設置超時
UDP則不保證數據的可靠傳輸,只是將數據報的分組從一臺主機發送到另外一臺主機,並不保證該數據報能到達另外一端,須要經過應用層保證數據被接收到
應用層:負責處理特定的應用程序細節網絡
由上圖可見,一般,應用層是一個用戶進程,而其餘三層(運輸層、網絡層、鏈路層)都是在內核中完成的併發
構造互聯網最簡單的方法是把兩個或者多個網絡經過路由器進行鏈接,路由器是一種特殊的用於網絡互連的硬件盒,路由器的好處是爲不一樣類型的物理網絡提供鏈接(以太網,令牌環網,點對點的連接,光纖分佈式數據接口等等)dom
網關:一般指應用層網關,一個鏈接兩種不一樣協議族的進程,它爲某個特定的應用程序服務tcp
應用層和運輸層使用端到端協議,網絡層提供的是逐跳協議分佈式
一個路由器,根據定義,具備兩個或者多個網絡接口層,任何具備多個接口的系統,稱爲多接口的ide
鏈接網絡除了路由器(主要是在網路層鏈接不一樣的網絡),還能夠使用網橋(在鏈路層鏈接網絡),例如:使用網橋,可讓多個局域網對於更高層級表現爲一個局域網工具
ICMP: 是IP協議的附屬協議,IP層用它來和其餘主機或者路由器交換錯誤報文或者其餘重要信息
雖然ICMP主要用於IP層,但應用程序也有可能訪問它,Ping和Traceroute這兩個主要的診斷工具,都使用了ICMP協議spa
IGMP: 互聯網組管理協議,主要用來將一個UDP數據報多播到多個主機操作系統
互聯網上的每個接口都必須有一個惟一標識的因特網地址,又稱爲IP地址
多接口主機有多個IP地址,每個接口具備一個IP地址
有三種類型的IP地址,單播地址,多播地址,廣播地址
DNS是一個分佈式數據庫,由它來提供IP地址和主機名之間的映射關係
當一個應用程序經過TCP協議發送數據,數據將被送入協議棧中,逐個經過每一層,一直到數據在網絡中表現爲比特流發送
數據通過協議棧每一層都會添加頭部信息(有時候須要添加尾部信息)
TCP協議發送數據到IP層的單元,稱爲TCP報文段,或者簡稱爲TCP段
IP協議發送數據到網絡接口的單元,稱爲IP數據報
通過以太網傳輸的比特流,稱爲幀
以太網幀的大小爲46~1500字節
準確的來講,IP層和網絡接口之間傳輸的是一個IP包
TCP,UDP,ICMP,IGMP協議都發送數據到IP層,IP層添加一些類型標識到IP頭部,用於表示該IP包屬於那一層
IP層經過一個8比特頭部信息區分協議,1表示ICMP, 2表示IGMP, 6表示TCP, 17表示UDP
不一樣的應用能夠使用TCP或者UDP協議,傳輸層協議在頭部信息中經過一個16比特的端口號區分不一樣的應用
網絡接口發送接收幀經過IP, ARP, RARP協議,以太網頭部中有一個16位幀類型字段,用於表示是哪一個網絡層協議生成的數據
6. 解複用
當目的主機,收到以太網幀,將會根據不一樣的頭部信息將數據傳送到上一層,這個過程稱爲解複用
7.客戶端-服務端模型
服務端有兩種類型:迭代和併發
迭代類型:
(1)等待客戶端請求;
(2)處理客戶端請求;
(3)將請求響應發送給客戶端;
(4)重複等待客戶端請求
併發類型:
(1)等待客戶端請求;
(2)啓動一個新的服務(多是一個新的進程、線程、任務),處理客戶端請求,當新的服務處理完成,服務終止;
(3)重複等待客戶端請求
通常來講,TCP服務是併發類型,UDP服務是迭代類型
8.端口號
一般,1到1023端口號是常見的標準的應用,客戶端臨時端口爲1024到5000, 5000以上端口表示不太常見的應用
客戶端端口,稱爲臨時端口,由於客戶端服務,通常只是運行於客戶端啓動服務期間,而服務端則一直運行某個特定服務
/etc/services文件中保存應用和端口的對應關係