1、Socket(套接字)-网络应用程序的接口
Socket可以看作不同主机间的进程进行双向通信的端点。
2、套接字类型:
流套接字(SOCK_STREAM)
流套接字用于提供面向连接、可靠的数据传输服务,即TCP协议。(ServerSocket, Socket)
数据报套接字(SOCK_DGRAM)
从一台机器向另一台机器以无连接的、数据报的方式进行通讯,即UDP协议。(DatagramSocket)
原始套接字(SOCK_RAW)
允许对较低层次的协议直接访问,用来操纵网络层和传输层应用。(java无法直接使用)
3、数据报是一种无连接的通信服务。
数据报的特点:速度快;稳定性差
UDP包的理论长度为65507B,通常限制为8KB。
4、TCP与UDP 的差别
1.基于连接(TCP)与无连接(UDP);
2.对系统资源的要求(TCP较多,UDP少);
3.UDP程序结构较简单;
4.流模式(TCP)与数据报模式 (UDP);
5.TCP保证数据正确性,UDP可能丢包,TCP保证数据顺序,UDP不保证。
5、UDP组播(MulticastSocket)
是一种特殊的数据报传输方式,它将具有相同需求的主机加入到某一个组中,向组发送的信息,其所有成员均可接收至。
组播地址:D类IP地址(224.0.0.0-239.255.255.255)+端口号。主机可以申请加入某个组播地址,也可以退出。若地址不在此范围,则抛出异常。
生存周期 TTL(Time To Live):默认为1。setTimeToLive()
6、UDP广播(Broadcast)
主机之间“一对所有”的通讯模式,就是指同时向子网中的多台计算机发送消息,并且所有子网中的计算机都可以接收到发送方发来的消息。
广播地址:如:255.255.255.255。
由于广播是向某个子网中的所有计算机用户发送消息,没有目的性,会增加网络传输负担,而且资源消耗较高。
7、单播、组播与广播的区别
单播:单台主机与单台主机之间的数据通信;
组播:单台主机向选定的一组主机发送数据报的过程;
广播:单台主机向网络中所有主机发送数据报的过程,可能引发“网络风暴”;
广播只能实现在同一网段中分发,而组播可以实现跨网段的传送。