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 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> JavaSE进阶(五)——网络编程概述 -> 正文阅读

[网络协议]JavaSE进阶(五)——网络编程概述

JavaSE进阶(五)——网络编程概述

前言

本篇笔记在理论与逻辑上基于计算机网络,但是在敲代码上貌似没什么关系(怎么可能没关系,基础理论一定要吃透)。本篇笔记尽量详细的记录相关知识点和代码,大家一起加油把!

概述

计算机网络

本篇笔记尽量不会记录计算机网络中的深层次概念。首先来说一下网络。

关于网络我们所熟知的就是互联网,最早的时候互联网并没有这么强大的功能,它的诞生仅仅是为了发邮件。互联网最开始仅支持文本传输,也就是说最早传输的数据只有文本。其实现在的互联网传输的数据也是属于文本数据,只是我们发现随着计算机普及,大家的需求越来越多,所以我们在单纯传输文本的基础上加入了MIME类型来区分提醒浏览器、计算机等按照对应类型解析传输的数据包。大家可能不知道怎么使用MIME类型,后续会说明,大家可以先了解一下各种数据资源在MIME类型中的对应关系。

MIME参考手册

究根结底,网络的作用就是传输数据(信息),传输数据(信息)的作用就是为了通过网络来使得点对点之间产生数据交换、共享等。之所以称之为互联网,便是顾名思义:相互关联。

网络编程

网络编程的作用是利用互联网来传输数据,大家可以把数据等概念想象成邮包,假设我们与另一半异地恋,你在南方,他(她)在北方。今年冬天特别冷,你想给他(她)邮寄一些冬衣,这个时候你就需要知道他的位置(地址),我们在收件人信息中写上对方的名字、电话、地址等,通过这些信息就可以逐步定位这个唯一的位置。

丢包

根据上面的例子,我们在看视频的时候可能会因为种种原因出现花屏、卡顿或者杂音等类似的情况,这种情况我们称之为丢包,丢包和丢快递一个道理。其实就是服务器在源源不断的给我们发送一个一个的数据包,而由于一些意外原因导致数据包丢失,我们的计算机没有接收到这个数据包,所以视频就会出现问题。(快递没丢过的同学别杠,我上周刚丢了一箱橙子,不嗨森!)。

网络通信

根据上面的例子我们可以得出粗浅的结论。我们在互联网中传输数据包的时候,我们需要发送发的地址,数据包,接收方的地址,快递公司,换在网络中就是一下这些:

  • 通信双方的地址:

    • ip;
    • 端口号;
    • 局域网ip。
  • 数据包;

  • 规则(网络通信协议)。

Java中的网络编程

基本概念

IP

IP可以理解为我们的地址,可以理解为我们居住的地址。IP分为公网IP和内网IP,具体区别如下:

  • 公网IP:IPV4的ip地址是最初的IP地址,长度为32位二进制数据,而百分之六十以上的IP都美国独占,世界上其他国家只占有不到百分之40的IP。有IP资源紧张,无法像美国那样每一个设备都被分配一个独一无二的IP,所以我们就设定除了A类IP、B类IP等IP地址分类,将这些地址作为公网IP。举个例子:一个学校有五千人,大家都用校园网,而学校只有五个公网IP,理论上讲,无论我们在校园网内部被分的IP为多少,很可能有一千人用的都是同一个公网IP在访问CSDN。
  • 内网IP:当我们设定一个团体的公网IP之后,我们在公网IP的规则下设定属于该公网IP下的IP地址被称为内网IP,我们通过系统中分配的内网IP申请公网IP的连接资格,然后通过公网IP去访问公网的资源。

上述概念可能不是很好理解,其实可以理解为一下这个例子:

举一个学校的例子(例子勿杠,看明白就行):在大学中,学生外出需要请假,老师比较忙,所以需要每个班级的班长统计好第二天需要请假的同学的名单交给老师,除了班长以外的学生无法单独去找老师请假。老师讲请假申请批复后,由班长将批复结果交给对应的同学。

在上述例子中,老师是公网资源,班长就是公网IP,你个人便是内网IP。班长和班级同学对应着公网IP和下属内网IP;班长代替你去找老师对应内网IP通过公网IP去访问外网资源。

端口

套用上面的例子,端口可以理解为学号,每一个学号对应着一个学生。即每个端口号对应着一个进程。大学学号中有一个默认规则,就是在一个学校中一个学号只能代表一名学生,即使这名学生退学或者其他原因不在这个学校了,这个学号也会保留。在计算机中,端口号中也有一些默认端口号是建议大家不要用的,比如:80、8080、3306。这些端口号都有特殊含义,后续会为大家讲解到。

通信协议

协议指的就是一个规定,一种通信规范,其中主要代表的有两种。

TCP
  • 连接稳定;

  • 三次握手:

    • 客户端发送连接请求携带报文;
    • 服务端收到请求报文,并返回自己的接收报文;
    • 客户端收到服务端响应的报文后生成连接成功报文给服务端,服务端接收后建立连接。
  • 四次挥手:

    • 首先客户端发送断开连接请求报文;
    • 服务端收到之后,响应给客户端报文,至此客户端与服务端连接断开就绪;
    • 服务端想断开连接的时候会发送断开请求报文;
    • 客户端接收后会响应报文,至此二者之间完全断开。

三次握手的原因是确定客户端与服务端的发送与接收功能没有故障,才会建立连接;而四次挥手的作用是双向断开连接才是真正的断开。

UDP
  • 不一定需要对方接收数据(不连接、不稳定);
  • 客户端与服务端之间没有明确的界限(不区分客户端与服务端);
  • 不建立连接,不管你收没收到,反正我发送了。
区别

简单地理解为TCP为打电话,一方拨号,另一方接听,才可以建立通信;UDP为发短信,反正我发送了,你信号不好与我无关,我只检测自己发送成功与否。

更通俗的理解为:TCP负责到底;UDP流氓协议。

总结

本篇笔记记录了Java网络编程的一些基本概念与逻辑,在新手看来目前敲代码没什么关系。注意,知识是日积月累的,未来涉及到一定深度的逻辑时肯定会有帮助。

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-11-30 15:58:44  更:2021-11-30 16:00:02 
 
开发: 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/26 8:22:23-

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