网络编程——通信三要素
一、概述
(一)网络编程
可以让设备中的程序与网络上的其他设备中的程序进行数据交互,实现网络通信
Java.net包下提供了网络编程的解决方案。
(二)通信的基本架构
1. CS架构(Client客户端/Server服务端)
2. BS架构(Browser浏览器/Server服务端)
二、网络通信三要素
(一)IP地址&InetAddress
IP地址:“互联网协议地址”,设备在网络中的地址,是唯一的标识
1. IP地址的两种形式
(1)IPv4(已经瓶颈期)
(2)IPv6
共128位,号称可以为地球的每一粒沙子编号
IPv6分成8段表示,每段每四位编码成一个十六进制位表示,数之间用冒号(:)分开
(3)IP域名
比如: https://mp.csdn.net
(4)公网IP
是可以连接互联网的IP地址
(5)内网IP
内网IP:也叫局域网IP,只能组织机构内部使用。192.168.开头的就是常见的局域网地址,范围即为192.168.0.0--192.168.255.255,专门为组织机构内部使用。
(6)特殊IP地址
127.0.0.1、localhost:代表本机IP,只会寻找当前所在的主机。
(7)IP常用命令
ipconfig:查看本机IP地址
ping IP地址:检查网络是否连通
2. InetAddress
代表IP地址
(二)端口号
应用程序在设备中唯一的标识
1. 端口
标记正在计算机设备上运行的应用程序的,被规定为一个16位的二进制,范围是0-65535
2. 分类
(1)周知端口
0-1023,被预先定义的知名应用占用(如:HTTP占用80,FTP占用21)
(2)注册端口
1024-49151, 分配给用户进程或者某些应用程序
(3)动态端口
49152-65535,之所以称为动态端口,是因为它一般不固定分配某种进程,而是动态分配。
注意:我们自己开发的程序一般选择使用注册端口,且一个设备中不能出现两个程序的端口号一样,否则出错。
(三)协议
连接和数据在网络中传输的规则
1. 开放式网络互联标准:OSI网络参考模型
(1)OSI网络参考模型:全球互联网标准
(2)TCP/IP网络模型:事实上的国际标准
1. 协议-UDP:User Datagram Protocol 用户数据报协议
(1)特点
无连接、不可靠通信,但是通信效率高,一些视频通话或者视频直播的应用场景就可以使用
不事先建立连接,数据按照包发,一包数据包含:自己的IP,程序端口,目的地IP,程序端口和数据(限制在64kb之内)等
发送方不管对方是否在线,数据在中间丢失也不管,如果接收方收到数据也不返回确认,故是不可靠的。
2. 协议-TCP:Transmission Control Protocol 传输控制协议
(1)特点
面向连接,可靠通信,但是通信效率相对不高,适合网页、文件下载、支付等场景。
(2)TCP的最终目的:
要保证在不可靠的信道上实现可靠的传输
(3)TCP主要有三个步骤实现可靠传输:
三次握手建立连接,传输数据进行确认,四次挥手断开连接。