热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

盘点网络编程必须要知道的基础知识

这篇文章主要介绍了盘点网络编程必须要知道的基础知识,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

在Java编程开发中,网络通信的开发是很重要的一部分,它是两台或多台计算机进行网络的基础,网络程序编写的目的也就是为了与其他计算机之间进行网络通信,所以今天大灰狼就来和大家分享一下Java网络通信中要的知道的一些知识。

其实在Java的发展过程中,为了更加方便的进行网络通信,开发者逐渐的将网络编程中所需要的一些内容封装成了不同的类,用户在进行网络编程时,只需要创建相应类的对象,并且调用相应的方法即可。

首先我们来了解一下网络的通信结构。

局域网和因特网

在网络通信中,两台计算机的信息传输可以使用如下的网络线路来表示:

  • 其中服务器是指提供信息的计算机或程序,
  • 客户端是指请求信息的计算机或程序,
  • 两者之间通过网络进行连接并且实现相互的通信,

那么我们所了解的局域网和因特网又有哪些区别的呢?

局域网(LAN)从名字上我们大概就可以了解,它是在一定区域内由一定数量的计算机互相连接而成的网络,它可以是两台,也可以是同一个区域内的上千台计算机构成,当一个局域网的范围继续进行扩大,它也就形成了广域网(WAN)。

而我们所熟知的因特网(Internet)就是由无数个局域网和广域网连接而成的,它是网络与网络之间所串连成的庞大网络,这些网络以一组通用的协定相连,形成逻辑上的单一巨大国际网络。这种将计算机网络互相联接在一起的方法可称作“网络互联”,在这基础上发展出覆盖全世界的全球性互联网络称“互联网”,即是“互相连接一起的网络”。

那么我们接下来就来聊一聊这些网络之间到底具备哪些协议?

网络协议

网络协议规定了计算机之间连接的物理、机械、电器等特征,计算机之间的相互寻址规则,数据发送冲突的解决方式,长数据如何分段传送和接收等内容。这就像在世界上不同的国家之间,有不同的法律是一样的,目前在互联网中的网络协议也有很多种,其中最常见的就是IP协议和TCP以及UDP协议。

大灰狼来简单的和大家介绍一下以上这三种协议的基本内容

IP协议

IP是internet protocol的简称,是网络协议中的一种,internet网络采用的协议是TCP/IP协议,但是这个协议是绝对不可以小视的,因特网依靠TCP/IP协议在全球范围内实现了不同硬件结构、不同操作系统、不同网络系统之间的互联。在intertet网络中,存在着数以亿计的主机,每一台主机都用网络为其分配的intertete地址来代表自己主机本身,这个地址就是IP地址,所以我们也可以说IP地址就是某一台计算机的身份证号码。

到目前为止呢,IP地址用四个字节来表示,也就是32位的二进制数来表示,这也是我们通常最常见的IPV4地址,为了方便使用呢,我们通常取每个字节的十进制数,并且在每个字节之间用圆点隔开来表示IP地址,如最常见的192.168.1.1,当然肯定还有小伙伴在电脑上也发现有用16个字节来表示的IP地址,这种IP地址是属于IPV6地址

并且TCP/IP模式是一种层次结构,一共有四层,分别为应用层,传输层互联网层和网络层,他们每一层都有自己所特定的功能,提供特定的服务和对应的访问接口,并且拒一定的独立性,这四层的关系如下图所示

TCP与UDP协议

在TCP/UDP协议栈中,有两个高级协议是我们在进行网络应用程序的编写中应该要了解的,即传输控制协议TCP和用户数据报协议UDP。

TCP协议是一种以固接连线为基础的协议,它提供两台计算机间可靠的数据传输,TCP可以保证从一端数据送至连接的另一端时,数据能够准确送达,而且抵达的数据的排列顺序和送出时的顺序相同,

因此TCP协议适合可靠性要求非常高的场合,打个比方来说:这就像我们双方在打电话,我必须先拨号给对方,等两端确定连接之后,双方才能互相听到对方讲话,也能够知道对方用的是什么内容。

而UDP协议是无连接通信协议,不保证数据的可靠传输,但能够向若干个目标发送数据,或者接收来自若干个园的数据,UDP以独立发送数据包的方式进行,这种方式就像快递员送快递给客户,可以寄出很多个包裹给同一个人,每一个包裹都是相互独立的个包裹,送达的顺序并不重要,快递员小哥接收包裹的顺序也不能保证与愁包裹的顺序相同。

因此,UDP协议适用于一些对数据准确性要求不高,但对数据传输速度和时效性要求非常高的网络,例如我们常见的网络聊天室,在线影片等。

这其中的原因就是因为TCP协议在认证上存在额外耗费,可能是传输速度减慢,而UDP协议即使有一小部分数据包损失,或者传输顺序有所不同,也不会造成严重的危害该通信。

这也就是为什么常说TCP可靠而非安全,UDP安全而非可靠了。

在这里我们需要注意一点,就是一些防火墙和路由器会设置成不允许就地被数据包传输,因此,若遇到UDP连接方面的问题,应该先确定所在的网络是否允许UDP协议

端口和套接字

刚听到这两个名词的时候,小伙伴可能不是特别了解,在这里打个通俗一点的比方,套接字就好比电源插座,将原本复杂的客户端服务器端通过这个插座连接在一起。

一般而言,对于一台计算机来说,只有单一的连接到网络的物理连接,所有的数据都通过此连接对内、对外送达特定的计算机。这就是端口的定义,网络程序设计中的端口(Port)并非真实存在的,他只不过是一个假想的连接装置,端口被规定为在一个0~65535之间的整数。例如HTTP服务一般使用80端口,FTP服务使用21端口,所以当一台计算机提供了多种不同的服务时,客户机就会通过不同的端口来确定连接到服务器上的哪项服务上面。

其实在端口上也有一定的讲究,如0~1023之间的端口,一般用于一些知名的网络服务和应用,而用户的普通网络应用程序应该使用1024以上的端口数,这样做的目的也是避免端口号与另一个应用或系统服务所用的端口所造成冲突。

端口的使用如下图所示

在网络程序中的套接字(Socket)表示用于将应用程序与端口连接起来,同样套接字也是一个假想的连接装置,在JAVA编程中将套接字可以抽象为类,我们在进行程序开发的时候,只需要创建Socket类对象,就可以使用套接字了。

可以用下面这个图来简单的表示套接字:

好啦,关于网络通信基础的讲解就是这些了,之后大灰狼也会和大家分享如何使用TCP和UDP以及MQTT协议进行网络程序的编写。

到此这篇关于盘点网络编程必须要知道的基础知识的文章就介绍到这了,更多相关网络编程基础知识内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!


推荐阅读
  • 本文介绍如何在现有网络中部署基于Linux系统的透明防火墙(网桥模式),以实现灵活的时间段控制、流量限制等功能。通过详细的步骤和配置说明,确保内部网络的安全性和稳定性。 ... [详细]
  • 随着网络安全威胁的不断演变,电子邮件系统成为攻击者频繁利用的目标。本文详细探讨了电子邮件系统中的常见漏洞及其潜在风险,并提供了专业的防护建议。 ... [详细]
  • 作者:守望者1028链接:https:www.nowcoder.comdiscuss55353来源:牛客网面试高频题:校招过程中参考过牛客诸位大佬的面经,但是具体哪一块是参考谁的我 ... [详细]
  • 深入解析TCP/IP五层协议
    本文详细介绍了TCP/IP五层协议模型,包括物理层、数据链路层、网络层、传输层和应用层。每层的功能及其相互关系将被逐一解释,帮助读者理解互联网通信的原理。此外,还特别讨论了UDP和TCP协议的特点以及三次握手、四次挥手的过程。 ... [详细]
  • 本文深入探讨了MAC地址与IP地址绑定策略在网络安全中的应用及其潜在风险,同时提供了针对该策略的破解方法和相应的防御措施。 ... [详细]
  • NFS(Network File System)即网络文件系统,是一种分布式文件系统协议,主要用于Unix和类Unix系统之间的文件共享。本文详细介绍NFS的配置文件/etc/exports和相关服务配置,帮助读者理解如何在Linux环境中配置NFS客户端。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 深入理解 SQL 视图、存储过程与事务
    本文详细介绍了SQL中的视图、存储过程和事务的概念及应用。视图为用户提供了一种灵活的数据查询方式,存储过程则封装了复杂的SQL逻辑,而事务确保了数据库操作的完整性和一致性。 ... [详细]
  • 本文详细分析了Hive在启动过程中遇到的权限拒绝错误,并提供了多种解决方案,包括调整文件权限、用户组设置以及环境变量配置等。 ... [详细]
  • 解决MongoDB Compass远程连接问题
    本文记录了在使用阿里云服务器部署MongoDB后,通过MongoDB Compass进行远程连接时遇到的问题及解决方案。详细介绍了从防火墙配置到安全组设置的各个步骤,帮助读者顺利解决问题。 ... [详细]
  • 本文详细介绍如何使用Samba软件配置CIFS文件共享服务,涵盖安装、配置、权限管理及多用户挂载等关键步骤。通过具体示例和命令行操作,帮助读者快速搭建并优化Samba服务器。 ... [详细]
  • 本文深入探讨了计算机网络的基础概念和关键协议,帮助初学者掌握网络编程的必备知识。从网络结构到分层模型,再到传输层协议和IP地址分类,文章全面覆盖了网络编程的核心内容。 ... [详细]
  • 采用IKE方式建立IPsec安全隧道
    一、【组网和实验环境】按如上的接口ip先作配置,再作ipsec的相关配置,配置文本见文章最后本文实验采用的交换机是H3C模拟器,下载地址如 ... [详细]
  • NTP服务器配置详解:原理与工作模式
    本文深入探讨了网络时间协议(NTP)的工作原理及其多种工作模式,旨在帮助读者全面理解NTP的配置参数和应用场景。NTP是基于RFC 1305的时间同步标准,广泛应用于分布式系统中,确保设备间时钟的一致性。 ... [详细]
  • 三菱PLC SLMP协议报文详解
    本文详细解析了三菱PLC中使用的SLMP协议报文结构,包括其工作原理、通信流程及报文格式,旨在帮助工程师和技术人员更好地理解和运用这一协议。 ... [详细]
author-avatar
BIGBANG-YG-BEAR
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有