一.网络通信协议
网络通信协议有很多种,目前应用最为广泛的是TCP/IP协议(传输控制协议/网际协议)
OSI :open system interconnection,开放式系统互联,ISO发起,其任务是制定国际计算机通信标准,特别是促进兼容系统间的互联。
1.IP地址和端口号
IP地址由两部分组成,网络位+主机位(网络位相同的IP地址,为同一网段)
IP地址就是一个唯一标识,是一段网络编码(二进制),32位数范围(0-255)
A类 10.0.0.0 --10.255.255.255
B类 172.16.0.0--172.31.255.255
C类 192.168.0.0--192.168.255.255
一个 IP 地址的端口通过 16 bit 进行编号,即共 2^16 = 65536 个理论可用端口号,范围是从 0 到 65535。
原因:
一般来说,一台服务器下,采用不同的端口分别提供不同的服务
分类:
1.公认端口 0 到 1023
通常这些端口的通信明确表明了某种服务的协议,这种端口是不可再重新定义它的作用对象
如:80端口表示HTTP通信,
23号端口则是Telnet服务,
25端口是SMTP邮件传输服务,
21端口是FTP服务,文件传输协议
2.注册端口 1024 到 49151
这些端口多数没有明确的定义服务对象,不同程序可根据实际需要自己定义
3.动态和/或私有端口 49152 到 65535
理论上,不应把常用服务分配在这些端口上。实际上,有些较为特殊的程序,特别是一些木马程序就非常喜欢用这些端口,因为这些端口常常不被引起注意,容易隐蔽。
2.inetAddress
Java提供InetAddress类来封装IP地址或域或名。InetAddress类有两个子类:Inet4Address和Inet6Address,分别用于封装4个字节的IP地址和6个字节的IP地址。
3.UDP与TCP
UDP通信
UDP不提供复杂的控制机制,利用IP提供面向无连接的通信服务。并且它是将应用程序发来的数据在收到的那一刻,立即按照原样发送到网络上的一种机制。即使是出现网络拥堵的情况下,UDP也无法进行流量控制等避免网络拥塞的行为。此外,传输途中即使出现丢包,UDP也不负责重发。
- 传输层协议
- 无连接
- 不可靠传输
- 面向数据报
我们要进行网络通信,那么就要用到socket,socket即网络套接字,应用程序可以通过它发送或接收数据,可对其进行像对文件一样的打开、读写和关闭等操作。