背景
網絡層,可以實現兩個主機之間的通信。但是這並不具體,因爲,真正進行通信的實體是在主機中的進程,是一個主機中的一個進程與另外一個主機中的一個進程在交換數據。IP 協議雖然能把數據報文送到目的主機,但是並沒有交付給主機的具體應用進程。而端到端的通信才應該是應用進程之間的通信。
TCP,提供面向連接的服務,在傳送數據之前必須先建立連接,數據傳送完成後要釋放連接。因此TCP是一種可靠的的運輸服務,但是正因爲這樣,不可避免的增加了許多的開銷,比如確認,流量控制等。對應的應用層的協議有:
- SMTP:Simple Mail Transfer Protocol,簡單郵件傳輸協議
- TELNET:Internet 遠程登錄服務
- HTTP:HyperText Transfer Protocol,超文本傳輸協議
- FTP:File Transfer Protocol,文件傳輸協議
TCP 利用滑動窗口實現流量控制。流量控制是爲了控制發送方發送速率,保證接收方來得及接收。
TCP的主要特點:
① 面向連接 ② 每一條 TCP 連接只能是一對一的 ③ 提供可靠交付 ④ 提供全雙工通信 ⑤ 面向字節流
TCP 把連接作爲最基本的對象,每一條 TCP 連接都有兩個端點,這種端點我們叫作套接字(socket),它的定義爲端口號拼接到 IP 地址即構成了套接字。
例如,若IP地址爲 192.3.4.16 而端口號爲 80,那麼得到的套接字爲192.3.4.16:80
UDP,在傳送數據前不需要先建立連接,遠地的主機在收到 UDP 報文後也不需要給出任何確認。雖然 UDP 不提供可靠交付,但是正是因爲這樣,省去和很多的開銷,使得它的速度比較快,比如一些對實時性要求較高的服務,就常常使用的是 UDP 。對應的應用層的協議有:
- DNS:域名系統(服務)協議(兩者都有)
- DHCP:Dynamic Host Configuration Protocol, 動態主機配置協議
- NTP:Network Time Protocol,網絡時間協議
- TFTP:Trivial File Transfer Protocol, 簡單文件傳輸協議
- SNMP:簡單網絡管理協議
- NFS:Network File System,網絡文件系統
常用端口號
應用 | FTP | TFTP | TELNET | SMTP | DNS | HTTP | SSH | MYSQL |
---|---|---|---|---|---|---|---|---|
端口 | 21 (控制), 20 (數據) | 69 | 23 | 25 | 53 | 80 | 22 | 3306 |
傳輸層協議 | TCP | UDP | TCP | TCP | UDP | TCP | TCP | TCP |
應用 | 應用層協議 | 端口號 | 傳輸層協議 | 備註 |
---|---|---|---|---|
域名解析 | DNS | 53 | UDP / TCP | 長度超過 512 字節時使用 TCP |
動態主機配置協議 | DHCP | 67/68 | UDP | |
簡單網絡管理協議 | SNMP | 161/162 | UDP | |
文件傳送協議 | FTP | 20/21 | TCP | 控制連接 21,數據連接 20 |
遠程終端協議 | TELNET | 23 | TCP | |
超文本傳送協議 | HTTP | 80 | TCP | |
簡單郵件傳送協議 | SMTP | 25 | TCP | |
郵局協議第三版 | POP3 | 110 | TCP | |
網際報文存取協議 | IMAP | 143 | TCP |