TCP:須要將傳輸的文件分段傳輸,創建鏈接會話,實現可靠傳輸和流量控制
UDP:一個數據包就可以完成數據通訊,不須要創建鏈接會話和流量控制,不使用可靠傳輸緩存
常見的應用層協議使用的端口
http=TCP+80
https=TCP+443
RDP=TCP+3389
ftp=TCP+21
共享文件夾=TCP+445
SMTP=TCP+25
POP3=TCP+110
telnet=TCP+23
SQL=TCP+1433
DNS=UDP+53
SNMP=UDP+161
RIP=UDP+520安全
服務使用TCP或UDP的端口偵聽客戶端請求
客戶端使用IP地址定位服務器,使用目標端口定位服務
能夠在服務器網卡上設置只開放必要的端口,實現網絡安全
端口範圍:0-65535,通常分三類端口
熟知端口:0-1023
登記端口:1024-49151
客戶端端口 :49152-65535服務器
網絡安全主要從端口開放和鏈接策略考慮網絡
這種傳輸過程的缺點是信道利用率低
超時重傳時間大於2倍的往返(RTT)時間tcp
現代網絡傳輸的信道使用狀況
TCP滑動窗口技術經過連續ARQ協議保證數據可靠性
設計
上圖中,一行表明32個比特,等於4個字節,固定部分一共5行,總共20個字節
各個字段意義以下3d
源端口:記錄TCP數據包來源端口
目標端口:記錄TCP數據包目標端口
序號:Sequence Number,TCP緩存中,發送窗口數據段的第一個字節佔整個數據的第幾個字節
確認號:確認號是客戶端收到數據段後,返回一個值讓服務器接下來發哪一個數據段
數據偏移:TCP報文長度不固定,數據偏移用來講明TCP報文從哪一個字節開始是數據部分
保留:暫時沒有用
URG:urgent,緊急發送二進制標記位,發送時不須要排隊
ACK:acknowledge,確認二進制標記位,值爲0或1;若是是0,表明確認號無效,若是是1,確認號有效
PSH:push,緊急接受二進制標記位,客戶端接受時,不須要排隊
RST:reset,重連二進制標記位,TCP會話出現嚴重錯誤,必須釋放鏈接,要想正常通信,從新創建鏈接
SYH:synchronization,同步二進制標記位,同步時用到,當客戶端和服務器初次創建鏈接時,須要同步(TCP/IP三次握手)
FIH:finish,釋放鏈接二進制標記位,當鏈接結束須要服務端和客戶端斷開鏈接時,設置爲1發送的標記位
窗口:window size,又稱TCP發送緩存和接收緩存大小,客戶端和服務端創建鏈接時協商窗口大小,使其一致
檢驗和:校驗首部和數據部分
緊急指針:當URG爲1表示數據包爲緊急發送時起做用,緊急指針大小表明數據部分的緊急數據段大小
選項:用於一些自定義設計(例如指定數據段最大1460字節、是否容許選擇性確認),在ipv6格式的數據包中已取消
填充:當可選部分不夠位數時,用來填充的部分
TCP數據部分:ip數據包最大不超過1500字節,除去ip首部20個字節,剩下的IP數據部分,即傳輸層中的TCP報文段不超過1480字節,除去TCP首部,得出TCP數據部分最大不超過1460個字節指針
客戶端和服務端創建通訊以後,在TCP緩存中經過TCP滑動窗口技術滑動發送和滑動接受數據包,客戶端接受數據包以後反饋信息給服務端是否有丟包,服務端根據客戶端反饋作下一步處理;
數據發送過程當中,窗口大小能夠改變,當客戶端須要處理緩存數據時,會把窗口大小設置爲0,服務端收到信息也會把窗口設置爲0,客戶端處理完緩存數據以後,從新設置窗口大小,服務端從新發送數據blog
"擁塞避免"並不是指徹底可以避免擁塞。利用以上的措施要徹底避免網絡擁塞仍是不可能的。"擁塞避免"是說在擁塞避免階段把擁塞窗口控制爲按線性規律增加,使網絡比較不容易出現擁塞。
網絡安全