4.Java网络编程之TCP/UDP
常见传输协议: UDP , TCP
UDP协议:
特点:
1.将数据及源和目的封装成数据包中,不需要建立连接
2.每个数据包的大小限制在64K内
3.因无连接,是不可靠协议
4.不需要建立连接,速度快
举例:比如你向家里邮寄一个包裹,无论家里此时是否有人,都会发送。当快递员发送到你家时,如果有人,家里人就收到了包裹,如果家里此时没有人,包裹(数据包)就被丢弃了。
自我理解:
当我们建立连接后,你说了一句:"你吃过饭了么?",接着你不管她有没有听到,你就继续说第二句话:“下午一起打乒乓球怎么样?”。由于没有确定对方是否听到你刚才说的话,因此可能会有是四种情况:
第一种情况:她两句话都听到了,然后回答你:"吃过饭了,可以一起打球。".
第二种情况:她只听到了第一句话,所以只回答:"吃过了!"但是不会回答你是否可以一起打球。
第三种情况:她只听到了第二句话,所以只回答:"可以一起打球!"但是不会回答你是否吃过饭了。
第四种情况:她两句话都没有听到,所以她不会回答你任何话。
这就是传输层无连接的UDP协议。
TCP协议:
特点:
1.建立连接,形成传输数据的通道。
2.在连接中进行大数据量传输。
3.通过三次握手完成连接,是可靠协议。
4.必须建立连接,效率会稍低
经典举例:
1.下载文件。
2.打电话。
自我理解:
当我们建立连接后,你说了一句:"你吃过饭了么?",接着你什么话也不说,等待她的回答。当她告诉你她听到你说的话了,而且回答你:“吃过了。”这时你才开始说第二句话:“下午一起打乒乓球怎么样?”接着你什么话也不说,等待她的回答。当她告诉你她听到你说的话了,而且回答你:“可以一起打球!”,你告诉她你听到了她的回答了,这时通话终止!
这就是传输层面向连接的三次握手的TCP协议。
TCP三次握手图解: