一、网络编程
1、什么是网络编程?
网络编程可以让程序与网络上的其他设备中的程序进行数据交互。
2、网络通信基本模式
常见的通信模式有如下2种形式:Client-Server(CS) 、 Browser/Server(BS)
二、网络通信的三要素
1、IP地址
设备在网络中的地址,是唯一的标识。
IP(Internet Protocol):全称”互联网协议地址”,是分配给上网设备的唯一标志。 常见的IP分类为:IPv4和IPv6
IPv4:
IPv6:128位(16个字节),号称可以为地球每一粒沙子编号。
IPv6分成8个整数,每个整数用四个十六进制位表示, 数之间用冒号(:)分开。
IP地址基本寻路
IP地址形式:
公网地址、和私有地址(局域网使用)。
192.168. 开头的就是常见的局域网地址,范围即为192.168.0.0–192.168.255.255,专门为组织机构内部使用。
IP常用命令
ipconfig:查看本机IP地址
ping IP地址:检查网络是否连通
特殊地址IP:
本机IP: 127.0.0.1或者localhost:称为回送地址也可称本地回环地址,只会寻找当前所在本机。
总结:
网络通信至少需要几个要素?
IP、端口、协议。
IP地址是做什么的,具体有几种
定位网络上的设备的,有IPv4 , IPv6.
如何查看本机IP地址,如何看是否与对方互通
ipcofig
ping 192.168.10.23
本机IP是谁?
127.0.0.1或者是localhost
IP地址操作类-InetAddress
此类表示Internet协议(IP)地址。
InetAddress API如下
名称 | 说明 |
public static InetAddress getLocalHost() | 返回本主机的地址对象 |
public static InetAddress getByName(String host) | 得到指定主机的IP地址对象,参数是域名或者IP地址 |
public String getHostName() | 获取此IP地址的主机名 |
public String getHostAddress() | 返回IP地址字符串 |
public boolean isReachable(int timeout) | 在指定毫秒内连通该IP地址对应的主机,连通返回true |
IP地址的代表类是谁?
InetAddress类
如何获取本机IP对象
public static InetAddress getLocalHost()
如何判断与该IP地址对象是否互通?
public boolean isReachable(int timeout)
2、端口
应用程序在设备中唯一的标识。
定义:
端口号:标识正在计算机设备上运行的进程(程序),被规定为一个 16 位的二进制,范围是 0~65535。
端口类型
周知端口:0~1023,被预先定义的知名应用占用(如:HTTP占用 80,FTP占用21)
注册端口:1024~49151,分配给用户进程或某些应用程序。(如:Tomcat占 用8080,MySQL占用3306)
动态端口:49152到65535,之所以称为动态端口,是因为它 一般不固定分配某种进程,而是动态分配。
注意:我们自己开发的程序选择注册端口,且一个设备中不能出现两个程序的端口号一样,否则出错。
端口号的作用是什么?
唯一标识正在计算机设备上运行的进程(程序)
一个设备中,能否出现2个应用程序的端口号一样,为什么?
不可以,如果一样会出现端口冲突错误。
3、协议
数据在网络中传输的规则,常见的协议有UDP协议和TCP协议。
连接和通信数据的规则被称为网络通信协议
TCP/IP协议是互联网中最重要的两个协议。
TCP:Transmission Control Protocol,传输控制协议
IP:Internet Protocol,网际协议。IP协议定义了在路由器和端系统之间发送和接受的分组格式。
计算机网络体系结构的形成:(背景)
1974 年,美国的 IBM 公司宣布了系统网络体系结构SNA (System Network Architecture)。这个著名的网络标准就是按照分层的方法制定的。
不久后,其他一些公司也相继推出自己公司的具有不同名称的体系结构。
由于网络体系结构的不同,不同公司的设备很难互相连通。
为了使不同体系结构的计算机网络都能互连,国际标准化组织 ISO 于 1977 年成立了专门机构研究该问题。
他们提出了一个试图使各种计算机在世界范围内互连成网的标准框架,即著名的开放系统互连基本参考模型 OSI/RM (Open Systems Interconnection Reference Model),简称为 OSI。
只要遵循 OSI 标准,一个系统就可以和位于世界上任何地方的、也遵循这同一标准的其他任何系统进行通信。
开放系统互连参考模型 OSI/RM(失败)
OSI 只获得了一些理论研究的成果,在市场化方面却失败了。
原因包括:
- OSI 的专家们在完成 OSI 标准时没有商业驱动力;
- OSI 的协议实现起来过分复杂,且运行效率很低;
- OSI 标准的制定周期太长,因而使得按 OSI 标准生产的设备无法及时进入市场;
- OSI 的层次划分也不太合理,有些功能在多个层次中重复出现。
网络通信协议有两套参考模型;
OSI参考模型:世界互联协议标准,全球通信规范,由于此模型过于理想化,未能在因特网上进行广泛推广。
TCP/IP参考模型(或TCP/IP协议):事实上的(de facto) 国际标准。
OSI参考模型 |
TCP/IP参考模型 |
各层对应 |
面向操作 |
应用层 |
应用层 |
HTTP、FTP、DNS、SMTP… |
应用程序需要关注的:浏览器,邮箱。程序员一般在这一层开发 |
表示层 |
|||
会话层 |
|||
传输层 |
传输层 |
TCP、UDP… |
选择使用的TCP , UDP协议 |
网络层 |
网络层 |
IP、ICMP… |
封装源和目标IP,进行路径选择 |
数据链路层 |
数据链路层+物理 |
物理寻址、比特流… |
物理设备中传输 |
物理层 |
OSI 的七层协议体系结构的概念清楚,理论也较完整,但它既复杂又不实用。
TCP/IP 是四层体系结构:应用层、运输层、网际层和网络接口层。 但最下面的网络接口层并没有具体内容。
因此往往采取折中的办法,即综合 OSI 和 TCP/IP 的优点,采用一种只有五层协议的体系结构 。
传输层的两种常见协议:
TCP(Transmission Control Protocol) :传输控制协议
UDP(User Datagram Protocol):用户数据报协议
TCP协议特点
- 使用TCP协议,必须双方先建立连接,它是一种面向连接的可靠通信协议。
- 传输前,采用“三次握手”方式建立连接,所以是可靠的 。
- 在连接中可进行大数据量的传输 。
- 连接、发送数据都需要确认,且传输完毕后,还需释放已建立的连接,通信效率较低。
TCP协议通信场景
- 对信息安全要求较高的场景,例如:文件下载、金融等数据通信。
好啦,这次就到这里啦,剩下的分到下次的文章了哦~,喜欢的小伙伴记得点赞关注我哦~