计算机网络都是包交换网络:流经过网络的数据分割成小块,称为包或者分组,每个包单独处理,优点
多个需要交换的包可以在同一条线路上传输,降低网络成本
可以对分组进行校验,检测包在传输过程中是否被破坏
四层模型
1、主机网络层,即网络接口层,定义了一个网络接口如何通过物理连接向网络发送IP数据包,注Java不涉及主机网络层
2、网际层,即网络层,定义了分组的结构、寻址方式、异构网络将的协议转换
3、传输层,主要负责确保每个包以发送的顺序接收,并保证没有数据丢失或者破坏
1、TCP协议支持按照发送顺序接收,并且保证没有数据丢失或者破坏
2、UDP协议不支持按照发送顺序接收,但是允许接收方检测被破坏的包,可以通过在应用层加入纠错码解决错误问题
4、应用层,前三层主要定义了数据的传输,而应用层定义了数据传输后应进行的操作
Java支持的协议只有TCP和UDP,以及建立在TCP和UDP基础上的应用层协议,所有其他传输层、网际层和更底层的协议,如ICMP(基于IP,使用原始IP数据包在主机间传输错误)/IGMP/ARP/RARP等,在Java层序中只能通过链接到原生代码实现。
防火墙,基于网络地址和端口,检查进出的数据,保证合法性,一般工作与传输层或者网际层
代理服务器,网络访问的中间人,一般工作与应用层(SOCKETS代理服务器除外,工作于传输层),优点是安全,外部主机无法看到内部主机,主要完成访问控制、本地缓存,缺点在于无法应对所有应用层协议