网络编程, 用来实现网络互连的不同计算机上运行的程序间可以进行数据交互。
网络互连的不同计算机上、计算机上运行的程序间、进行数据交互。
网络模型: 计算机之间以何种规则进行通信,就是网络模型研究的问题;
TCP/IP参考模型,OSI参考模型;我们在应用层进行开发。
网络通信的三要素:
一、IP地址:网络中设备的标识,用于标识主机;通过id地址找到目标主机。Ip地址是电脑的唯一标示,每台电脑都有唯一的标识。
1)如何去配置IP地址呢?
控制面板--->网络连接--->右键单击--->属性--->Internet网络协议--->单击即可。
2)每一个ip地址都对应一个网址(相当于和域名绑定,域名解析器:DNS)
3)如何获取和操作ip地址呢?
为了方便我们对ip地址的获取和操作,java提供了一个类InetAddress供我们使用。
二、端口: 用于标识进程的逻辑地址,一台电脑上不同进程的标识; 哪一个应用程序接受数据?
1)有效端口0——65535,其中0——1024是系统使用或者保留的端口,对应系统进程;
三、协议: 通讯的规则 比如:TCP/UDP(都要说中文,定义通讯的规则)
两台主机通讯,要满足这三点:知道对方的ip以及应用程序的端口号、采用相同的传输协议。
1)TCP协议:通过三次握手连接,是可靠协议,必须建立连接。
2)UDP协议:无连接,是不可靠的协议,数据传输大小有限制。64K
TCP/IP协议的开发研制人员将Internet分为五个层次,以便于理解,它也称为互联网分层模型或互联网分层参考模型,如下表:
应用层(第五层) 运行在不同主机上的进程则使用应用层协议进行通信。
传输层(第四层) :定义了一些数据传输的协议和端口号(tcp、udp协议),主要是将从下层接收的数据进行分段和传输,达到目的地址后再进行重组。
互联网层(第三层) : 主要将下层接收到的数据进行IP地址的封装与解封装,在这一层工作的设备是路由器,常把这一层的数据叫做数据包。
数据链路层(第二层) :数据通过交换机进行传输 。
物理层(第一层) :主要用于定义物理设备标准,比如网线接口类型、光钎接口类型、各种传输介质的传输速率等等,这一层的数据叫做比特。网线、光钎、交换机等。
Socket通信原理图解:
Socket套接字:(网络编程、套接字编程)
网络上具有唯一标识的ip地址和端口号组合在一起才能构成唯一能识别的标识符套接字。(组合在一起)
Socket原理机制:
1)通信两端都有Socket对象(里面包含ip地址和端口号);
2)网络通信其实是Socket之间的通信;
3)数据在两个Socket之间通过IO进行传输;
4)网络编程其实是面向Socket编程。