java进阶学习 --java网络编程一(转)

      最后更新:2022-08-01 22:11:22 手机定位技术交流文章

      Java - 网络编程的完整摘要(基本介绍)

      本文主要总结网络编程知识,首先介绍了计算机网络的相关内容,包括计算机网络基础、OSI参考模型、TCP/IP协议集群、通用网络协议等,在此基础上,主要介绍了Java中的网络编程。

      目录

      一、概述
      二、计算机网络
      1.网络协议
      2.网络体系结构
      三、OSI参考模型
      TCP/IP参考模型
      五、常见网络协议
      1.TCP协议
      2.UDP协议
      3.HTTP协议
      六、计网常见问题

      一、概述

      计算机网络是通过传输介质、通信设施和网络通信协议,连接在不同地点分布的计算机设备,资源共享和数据传输的系统.网络编程就就是编写程序使联网的两个(或多个)设备(例如计算机)之间进行数据传输。Java语言为网络编程提供了良好的支持,通过它提供的接口, 我们可以轻松地编程网络.下面介绍了网络编程的一些基本知识,最后, 给出了使用Java语言的网络编程实例.

      二、计算机网络

      计算机网络在1960年代出现,在1970年代、1980年代和1990年代发展,在21世纪以后,计算机网络已成为信息社会基础结构,与人类社会各个方面,以及人们的工作、学习和生活有着密切联系。

      网络协议

      如同人与人之间相互交流是需要遵循一定的规矩一样,计算机之间能够进行相互通信是因为它们都共同遵守一定的规则,即网络协议。

      网络体系结构

      计算机网络是一个复杂的系统,根据人们解决复杂的问题的方式,计算机网络的功能分为不同的层次.这些层通过连接器相互连接。双方的沟通水平相同,协议数据单元(PDU)描述了层次实现的功能。在不同的系统中,相同的层构成同等层,通过层协议进行层间通信,了解彼此明确的规则和协议.

      计算机网络架构是计算机网络层和协议的集合。计算机网络实现网络架构的功能,描述了网络协议 、 层次 、 接口和服务.但它并不涉及具体的实施。接口是同一个节点的邻近层之间交换信息的连接。它也被称为服务访问点(SAP)。

      计算机网络层次模型

      三、OSI参考模型

      介绍了计算机网络的系统结构.因为计算机网络是一个复杂的系统,所以计算机网络的功能分为不同的层次.计算机网络架构是计算机网络层和协议的集合。那么,计算机网络如何被层叠?以下为OSI参考模型的介绍.

      简介

      世界第一个网络架构是由IBM于1974年提出。SNA),随后,其他公司也推出了自己的网络结构,如数字的DNA,美国国防部的TCP/IP等。多个网络架构共存,结果是,如果你使用IBM的结构,你只能选择IBM产品,它只能连接到同一个结构的网络。

      为了促进计算机网络的发展,国际标准化组织(ISO)于1977年设立了一个委员会,根据现有的网络,本文提出了一种不基于特定机器类型、操作系统或公司网络结构。它被称为开放系统互联参考模型,OSI/RM(Open System Interconnection Reference Model)。OSI模型将网络通信的工作分成七层,分别是物理层、数据链层、网络层、传输层、对话层、表示层和应用层。

      OSI参考模型的七级

      OSI模型层次功能

      物理层

      物理层是OSI的底部,是整个开放系统的基础。 物理层是指通过通信通道传输的原始位数,其功能主要是为数据传输和数据传输到数据终端设备提供路径。

      数据链路层

      数据链层的主要任务是实现计算机网络中邻接节点之间的可靠传输。在数据链协议中添加原始、故障的物理传输线后,它构成了一个逻辑上可靠的数据链。所需功能包括链路管理 、 框架 、 误差控制和流量控制.框架被定义为物理层的原始位流.数据链层也可以处理帧的丢失.

      网络层

      网络层包括可靠的网络传输从源主机节点到目标主机节点。它需要完成的功能包括路由选择、网络地址、交通控制、拥堵控制、网络互连等。

      传输层

      传输层起着装载和卸载的作用,包括从源节点到目的地节点的可靠信息传输。 传输层需要解决网络间网络连接的建立和释放问题。 底部不可靠的网络在建立连接时需要三手,释放连接时需要四手

      会话层和表示层

      对话层的主要功能是建立、维护和中断应用程序之间的对话。它还提供设备和终端之间的通信控制,协调系统和服务的交换,通过提供三种不同的通信方式:单一、半双和完全双,使系统与服务之间进行有序通信.

      表示层涉及传输数据的格式定义,其主要功能是将应用层提供的信息转换成一种一般理解的形式,提供字符码、数据格式、控制信息格式、加密等统一的表示。

      应用层

      应用程序层是OSI的最高层次,直接向应用程序进程提供服务,其功能是实现多个系统应用程序进程,互相通信,同时完成一系列业务处理所需的服务。

      TCP/IP参考模型

      OSI参考模型的目的是为全世界的计算机网络提供统一的标准。但由于模型和协议的固有缺陷,晚晚没有成熟产品.TCP/IP协议在实践中得到了完善和发展。作为网络的基础,互联网的语言,可以说,没有TCP/IP协议,今天没有互联网。

      简介

      TCP/IP,即Transmission Control Protocol/Internet Protocol的简写,传输控制协议/互联网互联协议,是Internet最基本的协议、Internet国际互联网络的基础。

      TCP/IP协议是一个开放的网络协议集群,它的名字主要来自最重要的网络层IP协议和传输层TCP协议。TCP/IP协议定义电子设备如何连接到互联网,和数据的传输方法的标准。TCP/IP参考模型使用四层结构。每一层要求其下层提供协议以满足其需要,这些四个层是:网络接口层、互联网层(IP层)、传输层(TCP层)和应用程序层。

      OSI和TCP/IP模型的比较

      TCP/IP模型层次函数

      网络接口层:

      TCP/IP协议不给出网络接口层的具体描述,网络接口层与物理层和数据链层相符。

      互联网层 ( IP层 ) :

      互联网层是整个TCP/IP协议堆栈的核心。它的功能是向目标网络或主机发送分组。同时,为了尽快发送分组,可以同时在不同的路径上进行团体转移。因此,分组到达的顺序和发送的顺序可能不同,这需要对子群进行最高级序列化。网络层除了完成路由所需的功能外,也可以完成连接不同类型的网络(即异构网络)的任务。除此之外,互联网层也需要完成拥堵控制功能.

      传输层 ( TCP层 ) :

      TCP层负责建立端到端连接和应用过程之间可靠的通信,它只存在于末端节点。TCP层包含两个协议,TCP和UDP。其中,TCP提供以连接为导向的服务,通过节点流提供有序可靠的传输,可以实现连接管理 、 错误控制 、 流量控制 、 拥塞控制等.UDP提供不连接的服务,用于需要或无法实现面向连接的网络应用程序。

      应用层:

      应用程序层为互联网中的各种网络应用程序提供服务。

      五、常见网络协议

      下面的图显示,在TCP/IP集群的不同层中有许多不同的网络协议,下面主要描述了应用程序层中的TCP、UDP和HTTP协议。

      TCP协议

      简介

      **TCP(Transmission Control Protocol ,传输控制协议)**是面向连接的传输层协议。TCP层位于IP层之上,应用层下的中间层。像管道这样的可靠的连接经常需要在应用程序的不同主机层之间.但IP层没有提供这样的流动机制,相反,它提供了不可靠的包交换。TCP协议使用字节流数据传输。

      TCP报文段格式

      TCP报文段包括协议首部和数据两部分,协议首部的固定部分有20个字节,首部的固定部分后面是选项部分。

      以下 是 该 报告 的 每一 句 的 含义 。

        1. 源端口和目的地端口,各占2个字节,终端是传输层和应用层的服务接口,用于寻找发射器和接收器的程序,一般来讲,通过港口号码和IP地址,只能确定一个TCP连接,在网络编程中,它通常被称为插座接口。
        2. 序列数为4字节,用于识别从TCP发送器到TCP接收器发送的数据流。
        3. 确认序号,占4字节,包含发送确认的一端所期望收到的下一个序号,因此,确认序号应该是上次已经成功收到数据字节序号加1.
        4. 数据偏移是4位,用于表示TCP的第一个部门;如果没有选项,值为20字节,数据偏移的最大值为60字节。
        5. 保留字段为6位,暂时忽略,值为0
        6. 标志位
          URG:表示紧急提示字段有效1小时
          ACK(确认):确认字段为1时有效
          PSH:1时接收器应尽快将此消息传递到应用程序层
          RST:1点钟显示TCP连接失败,必须重新连接
          SYN:在建立连接时用于同步序列数
          FIN(终期):表示发送者的数据已于1点发送,并要求释放连接
        7. 接收窗口为2字节,用于流量控制和交通堵塞控制,显示当前接收缓冲区的大小。在计算机网络中,它通常是接收器接收能力的大小来控制发送器的数据量。TCP连接的末端根据缓冲区大小确定它自己的接收窗口值,告诉对方,使另一方确定发送数据的字节数目。
        8. 校正和占用2字节, 包括第一部分和数据部分.
        9. 选项是任意的, 默认不是.

      三次握手与四次挥手

      TCP是面向连接的协议,因此每个TCP连接都有3个阶段:连接建立、数据传送和连接释放。连接建立经历三个步骤,通常称为“三次握手”。

      采用三种方式的TCP程序如下:

      1. 第一次握手
        客户机发送连接请求报文段到服务器,并进入SYN_SENT状态,等待服务器确认。(SYN = 1,seq=x)
      2. 第二次握手
        服务器收到连接请求消息,如果同意建立连接,则向客户端发送确认消息,并将TCP缓存和变量分配给TCP连接(SYN=1, ACK=1, seq=y, ack=x+1)。
      3. 第三次握手
        客户端收到服务器的确认消息后,向服务器确认消息,并将缓存和变量分配到连接中。此包发送完毕,客户端和服务器进入STABLISHED(TCP连接成功)状态,完成三次握手。(ACK=1,seq=x+1,ack=y+1)。

      TCP程序的第四波是:

      由于TCP连接完全双功能,因此,每个方向必须单独关闭。原则是当一方完成数据发送任务时,可以发送一个 FIN来终止此方向的连接。收到 FIN 只 意味着 没有 这种 方向 的 数据 流,TCP连接在接收 FIN后仍然可以发送数据。关闭的第一方将执行主动关闭,另一方执行消极关闭.

      1. TCP客户端发送一个 FIN来关闭客户端的数据传输到服务器。
      2. 服务器收到这个FIN,它发回一个ACK,确认序号为收到的序号加1。和SYN一样,一个FIN将占用一个序号。
      3. 服务器关闭客户端连接并向客户端发送 FIN。

      4.客户端发送回ACK消息确认,并设置确认序列以接收序列加上1。

      UDP协议

      简介

      UDP,用户数据报协议,英文全称是User Datagram Protocol,它是TCP/IP协议簇中无连接的运输层协议。

      UDP协议格式

      如图所示,UDP协议非常简单,由两个部分组成:第一部分和数据,其中第一部分只包含8个字符,包括源端口和目的地端口、长度(UDP用于数据报告的长度),校正等。

      HTTP协议

      简介

      HTTP,超文本传输协议,英文全称是Hypertext Transfer Protocol,它是互联网上最广泛使用的网络协议。HTTP是一个应用程序层协议,它是基于TCP协议的请求/响应协议。也就是说,当客户端与服务器建立了连接后,向服务器发送请求;服务器收到请求后,提供相应的答复信息。HTTP协议的默认端口数为80。

      目前的HTTP协议是HTTP/1.Version1,直到1997年,HTTP1被使用.0版本。HTTP连接在1.Version0使用非永久连接工作方法,1.版本1采用连续连接工作方法,连续连接是指服务器在发送响应后一段时间内保持由TCP传输层协议建立的连接。使客户端和服务器在该连接上继续发送HTTP消息。

      是否使用连续连接工作方法,默认在0中关闭,您需要将"Connection:Keep-Alive"添加到HTTP头部,才能启用Keep-Alive。HTTP1.按默认在1中启用保持活化,如果添加Connection:close,才关闭。目前大多数浏览器使用HTTP1.1协议,换句话说,默认将启动“保持活”连接请求,因此,您是否能够完成一个完整的保持活化连接取决于服务器设置。

      HTTP报文

      HTTP协议是基于TCP协议之上的请求/响应式协议,下面主要介绍HTTP报文的格式,HTTP报文主要有请求报文和响应报文两种。首先看请求报文的格式:

      HTTP请求报文由请求行、首部行和实体主体组成,由浏览器发送给服务器。上面这张图中SP表示空格,cr lf表示回车和换行。

      上面的图片是HTTP响应消息,它由状态行、第一个行和实体主体组成。 下面的两个图像是HTTP请求和由Google浏览器访问的服务器查看的响应。

      HTTP请求方法和响应状态代码

      在上面的HTTP请求消息例子中,我们可以看到请求方法是GET,这意味着请求读取由URL标记的信息,除了GET之外还有其他几种常见的方法。

      在HTTP响应报文的例子中,我们可以看到状态码是200,表示响应成功。下表是其它状态码,总共5大类,33种。

      HTTPS与HTTP之间的区别

      Hyper Text Transfer Protocol over Secure Socket Layer (HTTPS)。用于安全的HTTP通道,简单地说,它是HTTP安全版本。换句话说,在HTTP下添加SSL层,HTTPS的安全基础是SSL,因此,加密的细节需要SSL。它是一个URI架构, 一个抽象的标识系统.语法类似于http:system。用于安全HTTP数据传输。https:URL表示它使用HTTP,然而,HTTPS具有与HTTP不同的默认端口和加密/身份验证层(HTTP和TCP之间)。

      超文本传输协议HTTP协议用于将信息传输到Web浏览器和Web服务器之间。HTTP协议将内容发送为平文,没有提供任何数据加密,如果攻击者拦截了网络浏览器与网站服务器之间的传输信息,你可以直接阅读和理解信息。因此HTTP协议不适合传输某些敏感信息,例如,信用卡号码,密码等。

      为了解决HTTP协议中的这一缺陷,需要另外一个协议:HTTPS,它是一个安全接口过文本传输协议。为了数据传输的安全,HTTPS基于HTTP添加SSL协议,SSL依赖证书来验证服务器的身份,它还加密了浏览器和服务器之间的通信。

      HTTPS与HTTP之间的区别主要为以下四点:

      https协议要求CA申请证书。一般来说,免费证书是罕见的,需要收费。

      2, http是一个超文本传输协议,信息被表达, https是一个安全SSL加密传输协议。

      3,http和 https使用完全不同的连接方式,使用不同的端口,前者是80,后者是443。

      连接到http是简单无状态的;HTTPPS协议是一个可以加密、认证和与SSL+HTTP协议构建的网络协议,并且比http协议更安全。

      六、常见问题

      1. OSI参考模型有多少层,每个层函数?
        OSI,开放系统互连参考模型,它的7个层次自顶到下依次为应用层,表示层,会话层,传输层,网络层,数据链路层和物理层。各层的功能见文章开始。

      2. TCP和UDP的区别是什么?
        TCP协议是一种传输控制协议,UDP协议是一个用户数据报告协议,两者都是传输层的协议,主要的区别是前者可靠,面向连接的协议,后者是不可靠的,无连接的协议。其它的区别还有,TCP协议传输速度很慢,UDP通常用于网络应用,用于一次性传输相对较小的数据。

      3. TCP握手三次为什么不两次
        它主要是为了防止在两个握手事件中失败的连接请求声明中的错误突然被传输到服务中终止。例如,客户端A向服务器B发送TCP连接请求,第一个连接请求消息长期留在网络的节点中,A认为过时后消息丢失了,然后再发送连接请求,B收到后建立连接。数据传输完毕后,双方解开连接,当时, 延迟 的 连接 请求 到达 服务 端 B,B认为A再次发送连接请求。如果你两手握手建立联系,A并无连接请求,造成B的资源浪费。

      4. HTTP请求的GET方法与 POST方法有什么区别?
        GET和 POST是HTTP请求的两个方法,主要区别在于GET方法读取由URL标记的信息,而 POST方法将信息添加到服务器上。

      5. 在浏览器中输入URL以显示整个页面进程 吗?
        (1) 输出包含域名的网址 (2) 浏览器向DNS请求解析域名对应的IP地址 (3) 域名系统DNS解析出域名对应的IP地址 (4) 浏览器与该服务器建立TCP连接 (5) 浏览器发送HTTP请求 (6) 服务器通过HTTP响应把页面文件发送给浏览器 (7) TCP连接释放 (8) 浏览器解释文件,并显示

      原始博客地址: http://ww.Jianshu.com/p/ae5e1cee5b04

      http://ww.cnblogs.com/huststl/p/7606871.html

      l

      先自我介绍一下,他高中毕业了13年,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。了解大多数年轻的Java工程师,想要升技能,经常需要找到自己的成长或向班上汇报。但对于培训机构来说,学费大约是人民币,着实压力不小。当你不在系统时,自我学习的效率很低,而且很持久。也很容易停止天花板技术。所以我为你收集了一个"java开发工具"初衷也很简单,这是一个想帮助自己学习的朋友,却不知道该从哪里学习。同时减少每个人的负担.添加下方名片,你可以得到完整的学习信息

      本文由 在线网速测试 整理编辑,转载请注明出处,原文链接:https://www.wangsu123.cn/news/31204.html

          热门文章

          文章分类