Java网络通信Part1:网络基础知识及通信协议

一、软件结构

B/S:Browser/Server 浏览器/服务器模式
C/S:Client/Server 客户端/服务器模式

二、网络通讯协议

网络通讯协议是一种规则 对数据的传输格式 传输速率 传输步骤等做了统一规定
通信双方必须同时遵守才能完成数据交换

1、通讯协议的层级

应用层

负责应用程序的协议
例:HTTP协议 FTP协议 等

运输层

使网络程序进行通信
可采用TCP协议也可采用UDP协议

网络层

整个TCP/IP协议的核心
将传输的数据进行分组
将分组数据发送到目标计算机或者网络

数据链路层

用于定义物理传输通道
通常是对某些网络连接设备的驱动协议
例:针对光纤 网线 等提供的驱动在这里插入图片描述


2、通讯协议的分类(TCP/UDP)

★ TCP协议

传输控制协议(Transmission Control Protocol)
面向连接的通信协议

在传输数据之前 在发送端和接收端建立逻辑连接 然后再传输数据
提供了两台计算机之间可靠无差错的数据传输

每次连接的创建都要经过"三次握手"

三次握手:

第一次握手
客户端向服务器端发出连接请求 等待服务器确认

第二次握手
服务器端向客户端回送一个响应 通知客户端 自己收到了连接请求

第三次握手
客户端再次向服务器发送确认信息 以确认连接
在这里插入图片描述

★ UDP协议

用户数据报协议(User Datagram Protocol)
无连接通信协议 即在数据传输时 和接收端不建立逻辑连接

消耗耗资小 通信效率高 通常用于音频 视频和普通数据的传输
即使丢失一两个数据报 也不会对接收结果产生太大影响

由于UDP协议的面向无连接性 无法保证数据的完整性
在传输重要数据时不建议使用UDP协议

发送的数据被限制在64kb之内 超出则无法发送
在这里插入图片描述


3、IP地址

互联网协议地址(Internet Protocol Address)
是网络中的设备的唯一标识

★ 分类

IPv4
a.b.c.d
32位的二进制数
每一位都是0-255之间的十进制整数
IPv6
a.b.c.d.e.f.g.h
64位的二进制数
每一位都是0-255之间的十进制整数

★ 常用命令

以下命令在cmd中执行
查询本机IP地址:ipconfig
网络是否畅通:ping IP地址

★ 本机IP

127.0.0.1

localhost

★ 端口号

为了确保一台计算机上的软件发送的数据能准确无误到达另一台计算机上的软件上
必须用端口号识别软件(相当于门牌号)

端口号:是一个逻辑端口 无法直接看到 但可借助软件查看
由两个字节组成 取值范围0-65535之间

当使用网络软件 一打开时 操作系统就会自动为网络软件分配一个随机端口号
或者网络软件向系统要指定端口号

1024之前的端口号无法使用 已经被系统分配给已知的网络软件了

网络软件的端口号不能重复

使用IP地址加端口号 即可保证数据准确无误发送到对方计算机的指定软件上了

常用端口:

80端口:网络端口
www.XXX.com:80 正确√
www.XXX.com:70 错误×
通常访问的网站后面默认是加:80的
因此可以不用手动添加
3306端口:mysql数据库
1521端口:oracle数据库
8080端口:tomcat服务器


发布了56 篇原创文章 · 获赞 0 · 访问量 1182

猜你喜欢

转载自blog.csdn.net/Piconjo/article/details/104619311