通信
概述:
网络编程对于后端开发来说也是非常重要的一部分,常见的使用案例包含,邮件、web服务器、RPC等底层通信模型都离不开通信。及Java是第一个从一开始就为网络应用而设计的编程语言,最早的两个实用Java应用的程序之一就是Web浏览器,随着Internet的不断发展,Java成为了唯一适合构建下一代网络应用程序的语言。
网络模型
数据报文(TCP)
网络的基本七层模型
- 物理层:物理层面,常指的光纤、网线等。
- 链路层:链路层是用于定义物理传输通道,通常是对某些网络连接设备的驱动协议,例如针对光纤、网线提供的驱动。
- 网络层:网络层是整个TCP/IP协议的核心,它主要用于将传输的数据进行分组,将分组数据发送到目标计算机或者网络。
- 传输层:主要使网络程序进行通信,在进行网络通信时,可以采用TCP协议,也可以采用UDP协议。
- 会话层:会话单位的控制层,主要功能是按照在应用进程之间约定的原则,按照正确的顺序收、发数据,进行各种形态的对话。
- 表示层:数据表示形式的控制层,主要功能是把应用层提供的信息变换为能够共同理解的形式,提供字符代码、数据格式、控制信息格式、加密等的统一表示。
- 应用层:主要负责应用程序的协议,例如HTTP协议、FTP协议等。
传输层协议
两个已知IP数据报的主机通讯协议,规定的是“两个主机之间的通信”协议或者规范,真正进行通信的实体是主机中的进程。
根据应用程序的不用需求,运输层需要两种不同的运输协议,即面向连接的TCP和无连接的UDP。
TCP数据单元为段 而UDP中数据单元为数据报。