IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 网络编程基本概念 -> 正文阅读

[网络协议]网络编程基本概念

一、概述

计算机网络是指将地理位置不同的具有独立功能的多台计算机,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。

网络编程就是编写程序使互联网的两个(或多个)设备(如计算机)之间进行数据传输。在Java中又称为Socket编程,通过其提供的接口我们可以很方便地进行网络编程。

二、软件结构

2.1 C/S两层结构

  • C/S 解析

    C/S就是“Client/Server”的缩写,即“客户端/服务器”模式。

  • 两层结构

    第一层:客户端——表示层(界面层与逻辑层)
    第二层:服务器模式——数据库层

  • C/S 结构流程

    客户端——经过(Request)请求——服务器(即数据库)——数据库根据客户端的请求——进一步(Response)响应回去给客户机

  • C/S 概念

    C/S结构是一种软件系统体系结构,也是生活中很常见的。这种结构是将需要处理的业务合理地分配到客户端和服务器端,这样可以大大降低通信成本,但是升级维护相对困难。比如我们手机中安装的微信、qq、王者荣耀等应用程序就是C/S结构。

2.2 B/S三层结构

  • B/S 解析
    B/S就是“Browser/Server”的缩写,即“浏览器/服务器”模式。

  • 三层结构
    第一层表现层:主要完成用户和后台的交互及最终查询结果的输出功能;
    第二层逻辑层:主要是利用服务器完成客户端的应用逻辑功能;
    第三层数据层:主要是接受客户端请求后独立进行各种运算。

  • B/S 常用结构流程
    客户端浏览器——经过HTTP请求——WEB服务器——经过查询——数据库服务器——响应查询后返回结果——WEB服务器——再经过HTTP响应——返回给客户端浏览器

  • B/S 概念
    B/S结构是随着互联网的发展,web出现后兴起的一种网络结构模式。这种模式统一了客户端,让核心的业务处理在服务端完成。你只需要在自己电脑或手机上安装一个浏览器,就可以通过web Server与数据库进行数据交互。在手机或电脑上用浏览器上百度搜索、看新闻等就是在使用“B/S”结构进行数据交互。这种“B/S”结构的好处:维护和升级方式更简单,客户端是浏览器,基本不需要维护,只需要维护升级服务器端就可以。

三、什么是网络编程

上述两种架构各有优势,但是无论哪种架构,都离不开网络的支持。网络编程,就是在一定的协议下,实现两台计算机的通信的程序。

四、网络协议

4.1 概述

通过计算机网络可以使多台计算机实现连接,位于同一个网络中的计算机在进行连接和通信时需要遵守一定的规则,这就好比在道路中行驶的汽车一定要遵守交通规则一样。在计算机网络中,这些连接和通信的规则被称为网络通信协议,它对数据的传输格式、传输速率、传输步骤等做了统一规定,通信双方必须同时遵守才能完成数据交换。

4.2 TCP/IP 协议

传输控制协议/因特网互联协议( Transmission Control Protocol/Internet Protocol),是Internet最基本、最广泛的协议。它定义了计算机如何连入因特网,以及数据如何在它们之间传输的标准。它的内部包含一系列的用于处理数据通信的协议,并采用了4层的分层模型,每一层都呼叫它的下一层所提供的协议来完成自己的需求。

OSI七层模型 功能 对应得网络协议 TCP/IP四层概念模型
应用层文件传输,文件管理,电子邮件的信息处理。最小单位--apdu(应用协议数据单元)HTTP、TFTP、FTP、NFS、WAlS、SMTP应用层
表示层确保一个系统的应用层发送的消息可以被另一个系统的应用层读取,编码转换,数据解析,管理数据的解密和加密。最小单位--ppdu(协议数据单元)Telnet、Rlogin、SNMP、Gopher
会话层负责在网络中的两节点建立,维持和终止通信,在这层协议中,可以解决节点连接的协调和管理问题。包括通信连接的建立,保持会话过程通信连接的畅通,两节点之间的对话,决定通信是否被中断,以及通信中断时决定从何处重新发送。最小单位--spdu(会话协议数据单元)SMTP、DNS
传输层定义一些传输数据的协议和端口。传输协议同时进行流量控制,或是根据接收方接收数据的快慢程度,规定适当的发送速率,解决传输效率及能力的问题。最小单位--tpdu(传送协议数据单元)TCP、UDP传输层
网络层控制子网的运行,如逻辑编址,分组传输,路由选择。最小单位——分组(包)报文IP、ICMP、ARP、RARP、AKP、UUCP网络层
数据链路层主要是对物理层传输的比特流包装,检测保证数据传输的可靠性,将物理层接收的数据进行MAC(媒体访问控制)地址的封装和解封装,也可以简单的理解为物理寻址。交换机就处在这一层。最小的传输单位——帧FDDI、Ethernet、Arpanet、PDN、SLIP、PPP、STP、HDLC、SDLC,帧中继数据链路层
物理层定义物理设备的标准,主要对物理连接方式,机械特性、电气特性、功能特性、过程特性制定统一标准,传输比特流,因此最小的传输单位——位(比特流)IEEE 802.1A、IEEE802.2到IEEE 802.11

上表中,TCP/IP协议中的四层分别是应用层、传输层、网络层和数据链路层,每层分别负责不同的通信功能。

  1. 应用层:主要负责应用程序的协议,例如HTTP协议、FTP协议等。

  2. 传输层:主要使网络程序进行通信,在进行网络通信时,可以采用 TCP 协议,也可以采用 UDP 协议。

  3. 网络层:网络层是整个TCP/IP协议的核心,它主要用于将传输的数据进行分组,将分组数据发送到目标计算机或者网络。这一层就是我们经常说的IP协议层。IP 协议是 Internet 的基础。

  4. 数据链路层:通过一些规程或协议来控制这些数据的传输,以保证被传输数据的正确性。实现
    这些规程或协议的硬件和软件加到物理线路,这样就构成了数据链路。

五、协议分类

通信的协议还是比较复杂的,java.net 包中包含的类和接口,它们提供低层次的通信细节。我们可以直接使用这些类和接口,来专注于网络程序开发,而不用考虑通信的细节。

java.net 包中提供了两种常见的网络协议的支持:

  • UDP

    用户数据报协议(User Datagram Protocol)。UDP是无连接通信协议,即在数据传输时,数据的发送端和接收端不建立逻辑连接。简单来说,当一台计算机向另外一台计算机发送数据时,发送端不会确认接收端是否存在,就会发出数据,同样接收端在收到数据时,也不会向发送端反馈是否收到数据。

    由于使用UDP协议消耗资源小,通信效率高,所以通常都会用于音频、视频和普通数据的传输,例如视频会议都使用UDP协议,因为这种情况即使偶尔丢失一两个数据包,也不会对接收结果产生太大影响。

    但是在使用UDP协议传送数据时,由于UDP的面向无连接性,不能保证数据的完整性,因此在传输重要数据时不建议使用UDP协议。UDP的交换过程如下图所示。
    UDP通信图解

    特点:数据被限制在 64kb 以内,超出这个范围就不能发送了。

    数据报(Datagram):网络传输的基本单位

  • TCP

    传输控制协议 (Transmission Control Protocol)。TCP协议是面向连接的通信协议,即传输数据之前,在发送端和接收端建立逻辑连接,然后再传输数据,它提供了两台计算机之间可靠无差错的数据传输。

    在TCP连接中必须要明确客户端与服务器端,由客户端向服务端发出连接请求,每次连接的创建都需要经过“三次握手”。

    • 三次握手:TCP协议中,在发送数据的准备阶段,客户端与服务器之间的三次交互,以保证连接的可靠。

      • 第一次握手,客户端向服务器端发出连接请求,等待服务器确认。
      • 第二次握手,服务器端向客户端回送一个响应,通知客户端收到了连接请求。
      • 第三次握手,客户端再次向服务器端发送确认信息,确认连接。整个交互过程如下图所示。

      4_tcp

    ? 完成三次握手,连接建立后,客户端和服务器就可以开始进行数据传输了。由于这种面向连接的特性,TCP协议可以保证传输数据的安全,所以应用十分广泛,例如下载文件、浏览网页等。

六、网络编程三要素

协议、IP地址和端口号。

6.1 协议

  • 协议:计算机网络通信必须遵守的规则,这些规则被称为协议。

6.2 IP地址

IP地址:指互联网协议地址(Internet Protocol Address),俗称IP。IP地址用来给一个网络中的计算机设备做唯一的编号。假如我们把“个人电脑”比作“一台电话”的话,那么“IP地址”就相当于“电话号码”。

IP地址分类

  • IPv4:是一个32位的二进制数,通常被分为4个字节,表示成a.b.c.d 的形式,例如192.168.65.100 。其中a、b、c、d都是0~255之间的十进制整数,那么最多可以表示42亿个。

  • IPv6:由于互联网的蓬勃发展,IP地址的需求量愈来愈大,但是网络地址资源有限,使得IP的分配越发紧张。

    为了扩大地址空间,拟通过IPv6重新定义地址空间,采用128位地址长度,每16个字节一组,分成8组十六进制数,表示成ABCD:EF01:2345:6789:ABCD:EF01:2345:6789,号称可以为全世界的每一粒沙子编上一个网址,这样就解决了网络地址资源数量不够的问题。

常用命令

  • 查看本机IP地址,在控制台输入:

    ipconfig

  • 检查网络是否连通,在控制台输入:
    ping 空格 IP地址
    举例:
    ping 192.168.37.1

特殊的IP地址

本机IP地址:127.0.0.1localhost

6.3 端口号

网络的通信,本质上是两个进程(应用程序)的通信。每台计算机都有很多的进程,那么在网络通信时,如何区分这些进程呢?

如果说IP地址可以唯一标识网络中的设备,那么端口号就可以唯一标识设备中的进程(应用程序)了。

  • 端口号:用两个字节表示的整数,它的取值范围是0~65535。其中

    • 0-1023: 系统端口,也叫公认端口,这些端口只有系统特许的进程才能使用;
    • 1024~65535为用户端口:
      • 1024-5000: 临时端口,一般的应用程序使用1024到4999来进行通讯;
      • 5001-65535:服务器(非特权)端口,用来给用户自定义端口。

    如果端口号被另外一个服务或应用所占用,会导致当前程序启动失败。

  • 常用端口号

    以下均为默认端口号,即未经修改的端口号

    协议/服务名称端口号简介
    FTP20、21File Transfer Protocol 文件传输协议,20用于连接,21用于传输
    SSH22[Secure Shell](https://baike.baidu.com/item/Secure Shell) 安全外壳协议,专为远程登录会话和其他网络服务提供安全性的协议
    TELENT23不安全的文本传送
    SMTP25Simple Mail Transfer Protocol 简单邮件传输协议
    DNS53Domain Name System 域名系统,域名解析
    HTTP80Hyper Text Transfer Protocol 超文本传输协议,用于网页浏览
    pop3110Post Office Protocol
    HTTPS443Hypertext Transfer Protocol Secure 超文本传输安全协议,用于安全浏览网页
    WWW8080Apache Tomcat web server,进行网页浏览

利用协议+IP地址+端口号 三元组合,就可以标识网络中的进程了,那么进程间的通信就可以利用这个标识与其它进程进行交互。

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-08-18 13:03:32  更:2021-08-18 13:04:23 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 20:22:16-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码