开发者学堂课程【大数据 ZooKeeper 快速入门:网络编程:网络通信三要素】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/549/detail/7577
网络编程:网络通信三要素
目录:
一、IP 地址
二、端口号
三、传输的协议
一、IP 地址
1. IP 是网络当中计算机的唯一标识。当前的IP有两个大的版本,一个叫做 IPV4版本,一个叫做 IPV6。使用接触最多的是 IPV4,针对 IP4版本,它一般是一个32位,或者四字节来表示的,但是为了人类更好的去阅读,一般用点分十进制来表示,就是常见的这种地址,比如说192.168....如果用32倍来表示,都是0011,看起来不太方便。
2. IP 地址是由网络地址加上主机地址来组成,针对一个位数不同呢?可以分为以下这几种情况。
A 类 IP:第一个八位表示网络地址,剩下的三个八位表示主机地址,网络地址,一般来说它不可改变,那么剩下的三个八位表示主机地址。是不是意味着它可以组成这个网络当中的机器特别多,理论上应该是255×25×25,可以组成这么多台机器。
B 类网站:两个八位是网络地址,是固定不变的,后面两个八位是主机地址,组建的 网络的局域网机器的数量相对a类要少。
C 类:是前三个八位表示网络地址,剩下一个八位表示主机地,这是接触最多的。通过路由器去搭建一个局域网,一般来说都是一个C类网站,就是说前面的192.168.1,前面这三个表示网络地址一般不变,后面这一个为表示主机地址,理论上是从0到255,可以组建255台机器,那就是所谓的C类网站,
D 类地址:一般用于在 IP 网络中的主播。
E 类地址呢,一般在科研当中会使用
3. 在 Java 语言当中,要想去操作 IP 或者使用 IP 呢,需要使用叫做 Inetaddress 这个类,这个类当中就分装出了操作 IP 的一些方法。比如通过 InetAddressgetlocalhost 就可以获取到本机的一些相关信息,可以 get 一个主机里包括一个 dress 地址。在编程这个角度来看,要使用这个类来操纵 IP,这是第一个要素 IP 地址。
public static void main(String[J] args)throws UnknownHostException {
InetAddress localHost = InetAddress.getLocalHost();
System. out.println(localHost.getHostAddress());
System. out.println(localHost.getHostName());
二、端口号
第二个要素叫做端口号,端口号是一个数字,是一个逻辑标识,用来表示不同的竞争。因为在一台机器上呢可能会运行不同的程序,那么要怎么样区分这些程序呢?给它起一个标识,这个端口号一般来说是从0到65535,其中要注意在0到1024当中,尽量不要自己去设置,因为系统会使用或者一些保留端口。比如常见的80端口,一般外包服务使用80端口,一个H远程协议的端口。要想自己去开发一个网络通信建议把它端口起的不要再过于小,3万或者4万左右的这样基本上不会重复。
三、传输的协议
1.第三个要素叫做传输的协议,协议就是大家彼此协商,达成一致决定,双方都按照这个遵守。
2.在通信当中常见的协议有两个,一个叫做 udp,是用户数据报协议;还有一个叫做 TCP,是传输控制协议。
3.这两个协议特点都比较明显
(1)第一个叫做 udp 叫做用户的数据报协议。
①udp 协议再进行传输的过程中呢,不需要建立连接,但是不需要接连接就意味着他是一个不可靠的协议。发送数据的时候,如果对方没有准备好的话,势必会造成一个数据的丢失,这是它的第一个特点,不需要建立连接。
②第二个特点 udp 协议需要把的数据打包,叫做用户数据包协议,就是要发送数据,首先把数据分装在一个数据包当中,而且这个包它有大小限制,一般在64KB 以内。因为不需要建立连接的,因此它的传输的速度会比较快,只要把数据打包发送即可,间接导致了它是一个不可靠的协议。数据传输要打包,不需要建立连接,大小有限制,不可靠,速度快。
(2)TCP 的一个特点
①TCP 它全称叫做传输控制协议,它的特点有很多,跟 UDP 正好相反。TCP 协议要想进行使用传输协议进行通信要建立连接,彼此双方都准备好,如果一方没有准备好,连接就建立不上就不能够进行通信。因此它第一个特点叫建立连接。
②建立连接之后就会在通信的双方形成一个传输数据的通道。通信先铺通管道,当管道打通之后就可以在这个通道当中进行大量的数据传输,而且也不需要打包,也没有大小的限制,因此它是一个可靠的信息。
③要想建立通信,首先得去建立连接,而且这个建立连接是通过一个所谓的三次握手来完成连接的。这样就更加去保证了进行数据传输的一个可靠性,但是缺点也比较明显。因为需要建立原件,会导致它的效益相对于 udp 来说比较低一点。这两个协议一般在通信当中,在网络当中会最常见,不管使用使用什么都要牢牢的把握住它的一个特点来做一个具体场合的使用即可。
④因此通过 IP 在计算机中找到唯一要通信那台机器,然后通过端口号找到想要通信的那个程序,然后再达到彼此都遵守的常规协议,这样就可以满足在计算机中进行一个跨网络的通信,跨网络的数据传输。