iT邦幫忙

2022 iThome 鐵人賽

DAY 10
0
自我挑戰組

文科生轉職React前端工程師的菜鳥學習日記系列 第 10

[Day10] HTTP好不容易才弄懂,TCP協定又是什麼?

  • 分享至 

  • xImage
  •  

TCP/IP是甚麼?

網際網路協議套組(英語:Internet Protocol Suite,縮寫IPS)是網路通訊模型,以及整個網路傳輸協定家族,為網際網路的基礎通訊架構。它常通稱為TCP/IP協定套組(英語:TCP/IP Protocol Suite,或TCP/IP Protocols),簡稱TCP/IP。因為該協定家族的兩個核心協定:TCP(傳輸控制協定)和IP(網際網路協定),為該家族中最早通過的標準。

什麼是協定(protocol)?

我們與人溝通時,不同語言是不是有可能出現雞同鴨講的狀況,人和人講話的時,為了理解對方究竟在講什麼,就會有語言和語法來規範;而網路上的電腦要彼此溝通對話,也是要透過一些定義、規範,這些東西,就稱為協定(protocol)。而今天在Internet上應用的最為廣泛的,正是今天要說的TCP/IP。

TCP/IP架構中,本身就分為好幾個協定,有些協定,用於溝通網路底層的硬體與硬體,有些溝通網路卡與應用軟體…等。看到一個說法,整個網路,就是靠協定架構起來的,這是一個最為重要的基本規範,若不遵守這個規範或準則,那就無法參與現今的網路世界了!

至於今日TCP/IP的起源,看維基百科介紹,和許多電腦科技的起源一樣,皆是由美國國防部發展而來的。當初美國為了建立一個能讓軍方的電腦共享的源,而又保有分散性的安全考量下,建立了一個稱為ARPAnet的網路,這個網路的架構,就是TCP/IP的前身。後來,美國國家科學基金會,用了此架構在學術研究的網路上,也造究了Internet的發展。這正是TCP/IP的起源。

TCP/IP提供了點對點的連結機制,將資料應該如何封裝、定址、傳輸、路由以及在目的地如何接收,都加以標準化。它將軟體通信過程抽象化為四個抽象層,採取協議堆疊的方式,分別實作出不同通信協定。協定套組下的各種協議,依其功能不同,被分別歸屬到這四個階層之中,常被視為是簡化的七層OSI模型。

TCP/IP提供了點對點的連結機制,將資料應該如何封裝、定址、傳輸、路由以及在目的地如何接收,都加以標準化。它將軟體通信過程抽象化為四個抽象層,採取協議堆疊的方式,分別實作出不同通信協定。協定套組下的各種協議,依其功能不同,被分別歸屬到這四個階層之中,常被視為是簡化的七層OSI模型。

層數 名稱 舉例說明
7 應用層 例如HTTP、SMTP、SNMP、FTP、Telnet、SIP、SSH、NFS、RTSP、XMPP、Whois、ENRP
6 表示層 例如XDR、ASN.1、SMB、AFP、NCP
5 會話層 例如ASAP、SSH、ISO 8327 / CCITT X.225、RPC、NetBIOS、ASP、Winsock、BSD sockets
4 傳輸層 例如 TCP、UDP、TLS、RTP、SCTP、SPX、ATP、IL
3 網路層 例如 IP、ICMP、IGMP、IPX、BGP、OSPF、RIP、IGRP、EIGRP、ARP、RARP、X.25
2 鏈結層 例如乙太網、令牌環、HDLC、幀中繼、ISDN、ATM、IEEE 802.11、FDDI、PPP
1 實體層 例如線路、無線電、光纖

OSI模型的最上面三層:應用層、表示層、會話層,在TCP/IP中是一個應用層。這樣在討論TCP/IP的時候就可以把它當作一個獨立的層。由於TCP/IP有一個相對較弱的會議層,由TCP和RTP下的打開和關閉連接組成,並且在TCP和UDP下的各種應用提供不同的埠號,這些功能能夠由單個的應用程式(或者那些應用程式所使用的庫)增加。與此相似的是,IP是按照將它下面的網路當作一個黑盒子的思想設計的,這樣在討論TCP/IP的時候就可以把它當作一個獨立的層。

層數 名稱 說明
4 應用層application layer 例如HTTP、FTP、DNS
3 傳輸層transport layer 例如TCP、UDP、RTP、SCTP
2 網路互連層internet layer 對於TCP/IP來說這是網際網路協定(IP)
1 網路存取(連結)層 Network Access (link) layer(如乙太網路、Wi-Fi、MPLS等。)

藉由這次寫技術文章對TCP/IP的通訊協定有更深入的了解,也跟著一起見證網路世界的起源與歷史,還有資料傳輸會經過哪些不同的機制和轉換的過程。

參考資料:
網際網路協議套組
網際網路名詞介紹

這是我第一次參加鐵人賽,希望透過這30天督促自己脫離菜味,內容預計會有JS基礎,API串接,用React完成一個可以新增、修改、刪除、查詢的網站,如果有錯誤歡迎指正,我會盡快修改。


上一篇
[Day09] HTTP的超多眉角,HTTP和HTTPS差別是甚麼?
下一篇
[Day11] 看懂常見HTTP的狀態訊息404?500?
系列文
文科生轉職React前端工程師的菜鳥學習日記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言