iT邦幫忙

2023 iThome 鐵人賽

DAY 23
0
Security

資訊安全之加密理論大雜燴系列 第 23

Day 23 傳輸層的部分

  • 分享至 

  • xImage
  •  

今天從應用層級協定往下鑽研來到傳輸層級協定

其主要存在意義聚焦在提供可信賴的資料傳輸方式

可以把昨天的應用層級想成生物的器官,每個協定就是某個特殊功能的器官
傳輸協定就像是激素的傳遞,管的是如何從分泌的地方精準地傳到需要的地方

我只會介紹兩個主要的傳輸協定:TCP和UDP

TCP

TCP(Transmission Control Protocol),提供一個相當可信賴的封包傳輸技術
TCP會確保你傳送的封包已抵達目地、確保資料以正確的順序抵達、以及確保資料沒有遭到污染

把TCP本身拆開來看相當複雜,雙方之間溝通的機制也設計地非常巧妙
過度簡化地來說,TCP藉由新增一串位元表頭在封包上,並在一切問題發生的時候叫寄送者重新寄送資料

TCP可以有效地完成

  1. 流量控制:叫寄送方不要傳太快
  2. 擁塞控制:讓每個等待接收的一方都能獲得公平的頻寬,不刻意偏袒

在傳輸資料前,TCP會透過三向交握方式,有禮貌地先與對方聯繫,確保對方有在聆聽後,才開始寄送資料

在TCP的表頭中,除了有寄送者與收件者的網路插座(明天會講,就是他們的IP位置與窗口),還有一個叫旗子(flag)的資訊
一共有六種旗子,分別表示目前的TCP協定進行到什麼階段

https://ithelp.ithome.com.tw/upload/images/20230905/20162318BkovaXnst3.png

  1. 客戶端先傳送SYN(synchronization)同步旗子給伺服器,告訴他我等一下要傳東西
  2. 伺服器接收到SYN後會傳送SYN和ACK(acknowledgement)致謝,告訴客戶端他已接收到資訊,隨時聆聽待會進來的資訊
  3. 客戶端最後返還一ACK致謝旗子表示有收到,順便連資料在第三階段也發送出去

例如網頁瀏覽,客戶端可以在最後一階段夾帶HTTP請求的資訊,與ACK一起寄出

DOS

當伺服器收到第一步的SYN時,他將保持聆聽階段,為該窗口預留一個半開放的連結,預期待會會有資料進入
如果太多的SYN進來,半開放的連結太多,是有可能讓伺服器沒有餘留的資源開放新的窗口做新的連結
讓其他想要與伺服器對話的用戶無法連結
這個攻擊稱作DoS(Denial of service)

如果只有單一一台機器使用單一IP地址,不斷發送過多的TCP請求,伺服器可以設立機制屏蔽該擾亂的IP
不過,如果使用不同的機器,利用大量IP地址對伺服器發送請求,想要防止DoS的攻擊就會比較有挑戰性
因為動用了大量機器,這種攻擊又稱作DDoS(distributed denial of service)

UDP

User Datagram Protocol,基本上跟TCP功能類似,同樣也是協助封包傳輸的協定

他設計較為輕量,不需耗費過多資源計算,不過也因此不能保證封包能夠順利抵達目的

TCP就像是高級快遞,能夠保證貨品順利安全抵達,所需的手續也比較複雜,價格昂貴;
UDP就像是廉價包裹服務,貨物可能寄送到途中遺失,不過價格較為便宜

除了更輕量的表頭之外,UDP沒有流量控制與擁塞控制,無法限制寄件者寄送的速度

因此UDP在一些講求快速傳輸、即使一些封包在傳輸過程中遺失也不影響功能的視訊、串流服務上比TCP更為適合


上一篇
Day 22 應用層級協定
下一篇
Day 24 其他的層
系列文
資訊安全之加密理論大雜燴30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言