基础知识总结

概念概述

计算机网络是通过传输介质、通信设施和网络通信协议,把分散在不同地点的计算机设备互连起来,实现资源共享和数据传输的系统。而网络编程就是编写程序使联网的两个或多个设备(比如计算机)之间进行数据传输。Java语言对网络编程提供了良好的支持,通过其提供的接口可以很方便地进行网络编程。接下来将介绍网络的一些基础知识,然后讲解如何通过Java语言进行网络编程。

计算机网络

计算机网络出现于20世纪60年代,并在20世纪70年代到90年代之间得到了快速发展。在21世纪,计算机网络成为信息社会的基础设施,深入到了人类社会的方方面面,与人们的生活、工作、学习息息相关。

如同人们之间相互交流需要遵循一定的规则一样,计算机之间的通信也需要遵守一定的规则,即网络协议

对于计算机网络这个复杂的系统,人们按照解决复杂问题的方法,将实现的功能划分到不同的层次上,层与层之间通过接口连接通信的双方具有相同的层次,层次实现的功能由协议数据单元(PDU)来描述。不同系统中的同一层构成了对等层,对等层之间通过对等层协议来理解彼此定义好的规则和约定,并通过进行通信。所谓的计算机网络体系结构就是计算机网络层次和协议的集合,网络体系结构对计算机网络实现的功能,以及网络协议、层次、接口和服务进行了描述,但是不涉及具体的实现。接口是同一节点内相邻层之间交换信息的连接处,也叫做服务访问点(SAP)。计算机网络的基本模型如下图所示:

TIM截图20180404105608

前面介绍了计算机网络体系结构的概念,那么究竟计算机网络是如何进行分层的?接下来我们首先介绍OSI参考模型。

世界上第一个网络体系结构是由IBM公司于1974年提出的SNA,之后其他公司也相继提出了自己的网络体系结构,比如:Digital公司的DNA,美国国防部的TCP/IP等。多种网络体系结构并存,其结果就是若采用IBM的结构,只能选择IBM的产品,因为只能于同种结构的网络互联。

为了促进计算机网络的发展,国际标准化组织ISO于1977年成立了一个委员会,在现有网络的基础上,提出了不基于具体机型、操作系统或公司的网络体系结构,称为开放系统互连参考模型,即OSI/RM(Open System Interconnection Reference Model)。OSI模型把网络通信的工作分为7层,分别是物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。如下图(OSI参考模型)所示:

TIM截图20180404110847

OSI参考模型

OSI参考模型中,各个层次的功能为:

  1. 物理层。该处于OSI的最底层,是整个开放系统的基础。物理层涉及通信信道上传输的原始比特流(bits),它的功能主要是为数据端设备提供传送数据的通路以及传输数据
  2. 数据链路层。该层的主要任务是实现计算机网络中相邻节点之间的可靠传输,把原始的、有差错的物理传输线路加上数据链路协议以后,构成逻辑上可靠的数据链路。需要完成的功能有链路管理、成帧、差错控制以及流量控制等。其中成帧是对物理层的原始比特流进行界定,数据链路层也能够对帧的丢失进行处理。
  3. 网络层。网络层涉及源主机节点到目的主机节点之间可靠的网络传输,它需要完成的功能主要包括路由选择、网络寻址、流量控制、拥塞控制、网络互连等。
  4. 传输层。传输层起着承上启下的作用,涉及源端节点到目的端节点之间可靠的信息传输。传输层需要解决跨越网络连接的建立和释放,对底层不可靠的网络,建立连接时需要三次握手,释放连接时需要四次挥手
  5. 会话层和表示层会话层主要功能是负责应用程序之间建立、维持和中断会话,同时也提供对设备和结点之间的会话控制,协调系统和服务之间的交流,并通过提供单工、半双工和全双工3种不同的通信方式,使系统和服务之间有序地进行通信表示层关心所传输数据信息的格式定义,其主要功能是把应用层提供的信息变换为能够共同理解的形式,提供字符代码、数据格式、控制信息格式、加密等的统一表示
  6. 应用层。应用层为OSI的最高层,是直接为应用进程提供服务的。其作用是在实现多个系统应用进程相互通信的同时,完成一系列业务处理所需的服务。

TCP/IP参考模型

OSI参考模型的初衷是提供全世界范围的计算机网络都要遵循的统一标准,但是由于该模型存在缺陷(主要表现在两个方面:模型和协议),迟迟没有成熟的产品推出。而TCP/IP模型在实践中不断发展完善,取得了巨大的成功。该模型以TCP/IP协议作为核心,可以说没有TCP/IP协议就没有互联网的今天。

TCP/IP,全称为Transmission Control Protocol/Internet Protocol,中文译名为传输控制协议/因特网互联协议。它是Internet最基本的协议、是Internet国际互联网络的基础。

TCP/IP协议是一个开放的网络协议簇,它的名字主要取自最重要的网络层IP协议传输层TCP协议TCP/IP协议定义了电子设备如何连入因特网,以及数据如何在它们之间传输的标准。TCP/IP参考模型采用4层的层级结构,每一层都通过它的下一层所提供的协议来完成自己的需求,这4个层次分别是:网络接口层、互联网层(IP层)、传输层(TCP层)、应用层。OSI和TCP/IP模型对比下图所示:

TIM截图20180404113523

TCP/IP各层基本介绍:

  1. 网络接口层.TCP/IP协议对网络接口层没有给出具体的描述,网络接口层对应着物理层和数据链路层。
  2. 互联网层(IP)层互联网层是整个TCP/IP协议栈的核心。它的功能是把分组发往目标网络或主机。为了尽快地发送分组,可能沿不同的路径同时进行分组传递。因此,分组到达的顺序和发送的顺序可能不同,这就需要上层必须对分组进行排序。互联网层除了需要完成路由的功能外,也可以完成将不同类型的网络(异构网)互连的任务。除此之外,互联网层还需要完成拥塞控制的功能。
  3. 传输层(TCP)层。TCP层负责在应用进程之间建立端到端的连接和可靠通信,它只存在于端节点中。TCP层涉及两个协议,TCP和UDP。其中,TCP协议提供面向连接的服务,提供按字节流的有序、可靠传输,可以实现连接管理、差错控制、流量控制、拥塞控制等。UDP协议提供无连接的服务,用于不需要或无法实现面向连接的网络应用中。
  4. 应用层。应用层为Internet中的各种网络应用提供服务。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/443420.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PHP微信UI在线聊天系统源码 客服私有即时通讯系统

(购买本专栏可免费下载栏目内所有资源不受限制,持续发布中,需要注意的是,本专栏为批量下载专用,并无法保证某款源码或者插件绝对可用,介意不要购买) DuckChat是一套完整的私有即时通讯解决方案,包含服务器端程序和各种客户端程序(包括iOS、Android、PC等)。通过Duck…

鸿蒙 ArkTS 从数组内查找指定的数据

let arr [1, 2, 3, 4, 5]; let target 3; let result arr.filter(item > item target); let a String(result) 将数字转换成文本型 console.log(a); 亲爱的读者: 首先,我要感谢您抽出宝贵的时间阅读这篇文章。我深知,您的每一分每一…

黑马程序员学习:产品卡片

黑马程序员前端web入门:产品卡片 几点学习到的: text-align:center; text-align 属性规定将元素内的文本内容在水平方向上居中对齐,可以设置块级元素内文本的水平对齐方式,但是不能让块级元素内部的块级元素居中。需要…

启动盘重装ubuntu22系统

win+R msinfo32查看 插入制作好的u盘电脑开机 进入BIOS界面的方法有多种,以下是一些常见的方法: 方法一:通过重启计算机进入BIOS 关闭计算机,等待几秒钟。按下计算机电源按钮,开始启动计算机。在计算机启动时,通常会显示厂商的Logo,如Dell、HP等。在显示Logo的时候…

C++引用详解

顾得泉:个人主页 个人专栏:《Linux操作系统》 《C/C》 《LeedCode刷题》 键盘敲烂,年薪百万! 一、引用的概念 引用不是新定义一个变量,而是给已存在变量取了一个别名,编译器不会为引用变量开辟内存空间…

3分钟搞定幻兽帕鲁联机,手动搭建专属服务器

《幻兽帕鲁》的热潮正在席卷游戏界。对于那些更喜欢与熟悉的伙伴们共同探险的玩家来说,搭建一个私人服务器无疑是最佳选择。拥有个人服务器不仅意味着更高的隐私性,还允许你根据喜好调整游戏参数,比如改变游戏内的工作速度倍率、经验值获取倍…

MacBook安装虚拟机VMware Fusion

MacBook安装虚拟机VMware Fusion 官方下载地址: https://customerconnect.vmware.com/cn/downloads/info/slug/desktop_end_user_computing/vmware_fusion/11_0 介绍 之前的版本都要收费,现在出了对个人免费的版本, 棋哥给的破解版的版本是8,升级系统后用不了了. 官方去下载…

火山引擎ByteHouse:分析型数据库如何设计并发控制?

更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群 分析型数据库设计并发控制的主要原因是为了确保数据的完整性和一致性,同时提高数据库的吞吐量和响应速度。并发控制可以防止多个事务同时对同一数据进行…

基于SSM的高校班级同学录网站设计与实现(有报告)。Javaee项目,ssm项目。

演示视频: 基于SSM的高校班级同学录网站设计与实现(有报告)。Javaee项目,ssm项目。 项目介绍: Javaee项目,采用M(model)V(view)C(controller&…

ESP32 LED PWM 控制器

ESP32 具有 LED PWM 控制器,具有 16 个独立通道,可配置为生成具有不同属性的 PWM 信号。 使用 Arduino IDE 通过 PWM 对 LED 进行调光时必须遵循以下步骤: 1.首先,您需要选择一个PWM通道。从 0 到 15 有 16 个通道,一…

IntelliJ 负责人 Kirill Skrygan 成为 JetBrains 新任 CEO

JetBrains 公司正式对外宣布了最新人事任命:原负责领导 IntelliJ 部门的 Kirill Skrygan 将于 2024 年 2 月 1 日起担任首席执行官。 JetBrains 在公告写道: 在我们迈向人工智能发挥变革作用的新时代之际,公司已经建立了一个良好的底层基础&…

Java基础 集合(三)Queue详解

目录 简介 Queue接口 Deque 接口 AbstractQueue 抽象类 LinkedList ArrayDeque PriorityQueue 前言-与正文无关 生活远不止眼前的苦劳与奔波,它还充满了无数值得我们去体验和珍惜的美好事物。在这个快节奏的世界中,我们往往容易陷入工作的漩涡&…