6.24Java网络编程的基本概念

Posted 俊king

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了6.24Java网络编程的基本概念相关的知识,希望对你有一定的参考价值。

6.24Java网络编程的基本概念

什么是网络

将不同区域的电脑连接到一起--->局域网、城域网、广域网、互联网...从而实现信息传递、资源共享、硬件、软件共享等

  • 资源共享

  • 信息传输与集中处理

  • 负载均衡与分布处理--->后期重点

通讯协议

通讯协议是一个标准

  • 对速率、传输代码、代码结构、传输控制步骤、出错控制等指定标准

通信接口

使两个结点之间能进行对话,必须在它们之间建立通信工具(接口)。接口包括两个部分:

  • 硬件装置:实现结点之间的信息传递

  • 软件装置:规定双方进行通信的约定协议

(面向接口编程--->先定义好方法,再根据具体的去实现)

网络分层

OSI(Open System Interconnect)参考模型:(开放系统互连参考模型)

从上往下:

  • 应用层--->应用层协议

  • 表示层--->表示层协议

  • 会话层--->会话层协议

  • 传输层--->传输层协议

  • 网络层--->网络层协议

  • 数据链路层--->数据链路层协议

  • 物理层--->物理层协议

由于七层模型很复制并且只是理想化的,所以有了TCP/IP模型

TCP/IP参考模型(传输控制/网际协议 Transfer Controln Protocol/Internet Protocol)

层次协议
应用层(包含了OSI的应用层、表示层、会话层) Telnet、FTP、SMTP、DNS、HTTP以及其他应用协议
传输层(等于OSI的传输层) TCP、UDP
网络层(等于OSI的网络层) IP、ARP、RARP、ICMP
网络接口层(包含了OSI的数据链路层和物理层) 各种通信网络接口(以太网等)(物理网络)

网络编程关注传输层,网页编程关注应用层

数据封装(Data Encapsulation)

  • 将协议数据单元(PDU)封装在一组协议头和协议尾中的过程

  • 每一层的PDU一般由本层的协议头、协议尾和数据封装构成

分层:

  • 应用层:准备数据

  • 传输层:接收应用层数据添加上TCP的控制信息(TCP头部)

    • 数据单元称为--->段(Segment)

    • 加入控制信息的过程称为封装

    • 由此将段交给网络层

  • 网络层:接收到段,再添加上IP头部

    • 数据单元称为--->包(Packet)

    • 将包交给数据链路层

  • 数据链路层:将包再添加上MAC头部和尾部

    • 数据单元称为--->帧(Frame)

    • 将帧交给物理层

  • 物理层:将受到的数据转化为比特流,在网线中传送--->二进制传输

发送方数据处理方式:从高层到底层逐层进行封装(每一层封装每一层的信息)

数据拆装(Data Dismantling)

  • 将接收到的数据进行拆包

  • 每一层只拿走对方发送的同等层的数据,其余的传递给上一层

分层:

  • 物理层:接收比特流,处理后将数据交给数据链路层

  • 数据链路层:将接收到的数据转化为数据帧(传输的过程这一层的单元数据称为帧),出去MAC头部和尾部

    • 除去控制信息的过程称为解封

    • 将包交给网络层(包是网络层的数据单元)

  • 网络层:接收到包

    • 除去IP头(本层对数据的操作)

    • 将段交给传输层(传输层的数据单元)

  • 传输层:接收到段

    • 除去TCP头部(本层对数据的操作)

    • 将数据交给应用层(应用层的数据单元)

  • 应用层:处理数据

接收方处理数据的方式:从底层到高层,逐层进行数据解封装

概括数据封装和数据拆装的过程

数据封装:

  • 每一层给数据添加信息

  • 处理数据单元并且往下层传递

数据拆装:

  • 拆装对应层的封装操作

  • 将数据单元还原层上一层的数据单元并进行传递

(Java.net包下对应的类)

以上是关于6.24Java网络编程的基本概念的主要内容,如果未能解决你的问题,请参考以下文章

1.4—Java编程的基本概念

JAVA基本概念

Java编程的逻辑 (35) - 泛型 (上) - 基本概念和原理

Java NIO的基本概念ChannelBufferSelector以及非阻塞网络通信案例

一:Java之面向对象基本概念

[一] java8 函数式编程入门 什么是函数式编程 函数接口概念 流和收集器基本概念