本文是對個人筆記中內(nèi)容的整理,部分代碼及圖片來自互聯(lián)網(wǎng),由于不好找到原始出處,所以未加注明。
如有痛感,聯(lián)系刪除。

本文將介紹以下知識點:

  1. TCP與UDP的區(qū)別;

  2. 單播、多播、廣播;

  3. Java中實現(xiàn)UDP的重要的類;

  4. Peer Discovering方案

一、TCP vs UDP

TCP:Transmission Control Protocol(傳輸控制協(xié)議)
TCP是一種面向連接(連接導(dǎo)向)的、可靠的、基于字節(jié)流的運輸層(Transport layer)通信協(xié)議,由IETF的RFC 793說明(specified)。TCP建立連接之后,通信雙方都同時可以進行數(shù)據(jù)的傳輸,是全雙工的。

  • 在保證可靠性上,采用超時重傳和捎帶確認機制;

  • 在流量控制上,采用滑動窗口協(xié)議,協(xié)議中規(guī)定,對于窗口內(nèi)未經(jīng)確認的分組需要重傳;

  • 在擁塞控制上,采用慢啟動算法。

TCP傳輸過程示意圖: