TCP 傳輸控制協定
需要将要傳輸的檔案分段 傳輸 建立會話 可靠傳輸 流量控制
UDP 使用者資料報協定
一個資料包就能夠完成資料通信 不需要建立會話 不需要流量控制 不可靠傳輸 螢幕廣播(雖然一個包傳不完但還是UDP協定,因為不需要保證可靠性,不需要建立會話) 多點傳播,廣播
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsISPrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdsATOfd3bkFGazxCMx8VesATMfhHLlN3XnxCMwEzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsYTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cmbw5iMmVzY4IDM1EWOmJWOkdzN5YTNhNmM0QTO0YmY3MjN28CX1IzLchDMxIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjL5M3Lc9CX6MHc0RHaiojIsJye.png)
其中DNS可以用TCP也可以UDP,絕大多數用的是UDP.
http=TCP+80 https=TCP+443 共享檔案夾=TCP+445 POP3=TCP+110
服務使用 TCP或UDP的端口偵聽用戶端的請求
用戶端使用IP位址定位伺服器 使用目标端口 定位服務
可以在伺服器網卡上設定隻開放必要的端口 實作伺服器網絡安全
netstat - an
netstat -n 檢視建立的會話,
netstat -nb 檢視建立會話的程序。
telnet 192. 168. 80. 100 3389 測試到遠端計算機某個端口是否打開
與網絡層協定的主要差別
IP協定的作用範圍是主機之間的通信,用協定号區分上層,而TCP,UDP是程序之間,用端口号區分上層.
端口用一個16位端口号進行标志。0-65535
端口号隻具有本地意義,即端口号隻是為了标志本計算機應用層中的各程序。在網際網路中不同計算機的相同端口号是沒有聯系的。
熟知端口 0-1023
登記端口 RDP 3389
用戶端端口 49152-65535
UDP是無連接配接的,即發送資料之前不需要建立連接配接。
UDP使用盡最大努力傳遞,即不保證可靠傳遞,同時也不使用擁塞控制。
UDP是面向封包的。UDP沒有擁塞控制,很适合多媒體通信的要求。
UDP支援一對一、一對多、多對一和多對多的互動通信。
UDP的首部開銷小,隻有8個位元組。
計算檢驗和加僞首部
TCP是面向連接配接的傳輸層協定。
每一條TCP連接配接隻能有兩個端點(endpoint),每一條TCP連接配接隻能是點對點的(一對一)。
TCP提供可靠傳遞的服務。
TCP提供全雙工通信。
面向位元組流。
TCP把連接配接作為最基本的抽象。
每一條TCP連接配接有兩個端點。
TCP連接配接的端點不是主機,不是主機的P位址,不是應用程序,也不是傳輸層的
協定端口。TCP連接配接的端點叫做套接字(socket)。
端口号拼接到IP位址即構成了套接字。
套接字=IP位址+端口号
可靠傳輸的工作原理--停止等待協定
使用上述的确認和重傳機制,我們就可以在不可靠的傳輸網絡上實作可靠的通信。
這種可靠傳輸協定常稱為自動重傳請求ARQ(Automatic Repeat reQuest)。
ARQ表明重傳的請求是自動進行的。接收方不需要請求發送方重傳某個出錯的分組。
停止等待的優點是簡單,但缺點是信道使用率太低(信道使用率=發的時間/總時間)。
流水線傳輸 連續ARQ協定
接收方一般采用累積确認的方式。
優點是:容易實作,信道使用率高。
缺點是:不能向發送方反映出接收方已經正确收到的所有分組的資訊。
序号:資料部分第一個位元組是整個資料的第幾個,首次發送的序号一般采用ISN算法确定,也就是每隔幾毫秒一個數+1
确認号:是下一個資料包應該是哪個序号
資料偏移:封包段多少開始是TCP資料部分,因為占4比特是以最高表示15,15*4=60.是以TCP首部最多60個位元組,選項最多40個位元組
保留:6位沒有用的
URG:如果為1,不進緩存不排隊,緊急指針有效,緊急指針内容不排隊
ACK:如果是1,确認号有效
SYN:建立會話的時候,ack=0,syn=1,響應時ack=1,syn=1.
可以通過建立會話發送syn=1的封包段将伺服器當機。
syn攻擊就是随機不同源IP發送,而land攻擊是讓源IP等于目标IP
PSH:置1時請求的資料段在接收方得到後就可直接送到應用程式,而不必等到緩沖區滿時才傳送。
RST:置1時重建連接配接。如果接收到RST位時候,通常發生了某些錯誤,例如f5重新整理。
FIN: 置1時表示發端完成發送任務。用來釋放連接配接,表明發送方已經沒有資料發送了。
視窗:告訴其發送緩存和接受緩存大小,發送視窗是由接受視窗決定的
檢驗和:和UDP一樣,也要加僞首部,隻是加的協定号不一樣,運算方式一樣
緊急指針:指明緊急資料包的尾部在哪
選項:指定序列包大小,支不支援選擇性确認(SACK,就是告訴其哪一段缺了),時間戳...
建立會話:
第一次發出告訴伺服器支援最大資料包,伺服器響應發出支援最大資料包和緩存最大多少,然後再告訴伺服器自己緩存最大多少,然後開始正式發送。
最接近真實的通信過程
以位元組為機關的滑動視窗技術 環形緩沖區視窗
出現資源擁塞的條件:
對資源需求的總和>可用資源
擁塞控制是一個全局性的過程,涉及到所有的主機、所有的路由器,以及與降低網絡傳輸性能有關的所有因素
流量控制往往指在給定的發送端和接收端之間的點對點通信量的控制,它所要做的就是抑制發送端發送資料的速率,以便使接收端來得及接收。
發送方維持擁塞視窗cwnd (congestion window)
發送方控制擁塞視窗的原則是:
隻要網絡沒有出現擁塞,擁塞視窗就再增大一些,以便把更多的分組發送出去。
隻要網絡出現擁塞,擁塞視窗就減小一些,以減少注入到網絡中的分組數。
發送視窗=min(接收視窗(rwnd),cwnd)
三個階段:連接配接建立,資料傳送,連接配接釋放
TCP連接配接的建立都是采用客戶伺服器方式。
主動發起連接配接建立的應用程序叫做客戶(client)。被動等待連接配接建立的應用程序叫做伺服器(server)。