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头部(本层对数据的操作)
-
将数据交给应用层(应用层的数据单元)
-
-
应用层:处理数据
接收方处理数据的方式:从底层到高层,逐层进行数据解封装
概括数据封装和数据拆装的过程
数据封装:
-
每一层给数据添加信息
-
处理数据单元并且往下层传递
数据拆装:
-
拆装对应层的封装操作
-
将数据单元还原层上一层的数据单元并进行传递