本文是對(duì)個(gè)人筆記中內(nèi)容的整理,部分代碼及圖片來(lái)自互聯(lián)網(wǎng),由于不好找到原始出處,所以未加注明。
如有痛感,聯(lián)系刪除。
本文將介紹以下知識(shí)點(diǎn):
TCP與UDP的區(qū)別;
單播、多播、廣播;
Java中實(shí)現(xiàn)UDP的重要的類(lèi);
Peer Discovering方案
一、TCP vs UDP
TCP:Transmission Control Protocol(傳輸控制協(xié)議)
TCP是一種面向連接(連接導(dǎo)向)的、可靠的、基于字節(jié)流的運(yùn)輸層(Transport layer)通信協(xié)議,由IETF的RFC 793說(shuō)明(specified)。TCP建立連接之后,通信雙方都同時(shí)可以進(jìn)行數(shù)據(jù)的傳輸,是全雙工的。
在保證可靠性上,采用超時(shí)重傳和捎帶確認(rèn)機(jī)制;
在流量控制上,采用滑動(dòng)窗口協(xié)議,協(xié)議中規(guī)定,對(duì)于窗口內(nèi)未經(jīng)確認(rèn)的分組需要重傳;
在擁塞控制上,采用慢啟動(dòng)算法。
TCP傳輸過(guò)程示意圖: