网络初识--Java

目录

一、网络通信基础

1.IP地址

2.端口号

二、认识协议

1.五元组

2.协议分层

1.OSI七层网络模型

2.TCP/IP五层(四层)协议模型

三、网络数据通信的基本流程


一、网络通信基础

1.IP地址

IP地址主要⽤于标识⽹络主机、其他⽹络设备(如路由器)的⽹络地址。简单说,IP地址⽤于定位主 机的⽹络地址。
就像我们发送快递⼀样,需要知道对⽅的收货地址,快递员才能将包裹送到⽬的地。
综上所述 IP地址是标识网络一台设备所在的位置。

2.端口号

我们知道一台主机上可能会有多个程序来同时使用网络,端口号就是用来区分一台主机上的多个程序的。简单来说:端口号就是用来定位主机上的进程的。

二、认识协议

网络协议就是通信双方用于发送/接受数据格式的约定。

协议最终体现在网络中传输数据包的格式。(值得注意的是在网络通信中 协议是非常关键的)

1.五元组

在TCP/IP协议中,用五元组来表示一个网络通信:

1.源IP:标识源主机

2.源端口:标识源主机中该次通信发送数据的进程

3.目的IP:标识目的主机

4.目的端口:标识源主机中接收该次通信数据的进程

5.协议类型 :标识发送和接收进程双方约定的数据包格式

2.协议分层

由于网络通信这个过程非常复杂,如果我们设计一个协议,完成网络通信中方方面面的问题,势必会使这个协议非常复杂,非常庞大。

所以我们选择拆分这种做法,把一个大的协议拆成若干个小的,功能单一协议,这么做又会导致拆完后的协议太多了,甚至会有几十上百个。所以我们将这些小的协议归类,引入分层这个概念。

协议分层:只有相邻两层的协议可以进行交互。上层协议可以调用下层协议。下层协议可以给上层提供服务。(协议之间的交互不能跨层进行)

这样做的好处在于:

1.上层协议不需要了解下层协议的细节

2.分层之后,灵活的替换其中的某一层,对于整体的工作过程影响很小。

1.OSI七层网络模型

但是这一套分层的体系过于复杂,实际真实的网络分层方式是更简化的。 

2.TCP/IP五层(四层)协议模型

 应用层应用程序之间的沟通
 传输层两个任意设备之间的通信(不考虑中间过程,只考虑起点和终点)
 网络层两个任意设备直接如何进行通信(这两个设备之间可能隔着很多的交换机和路由器)
数据链路层完成两个相邻的设备之间如何进行通信的(通过网线把电脑连到交换机|路由器上)
  物理层规定了网络通信的一些硬件设施符合的要求

有些资料把物理层和数据链路层看作一个整体。 

 主机: 工作过程涉及到 从物理层-->应用层

 路由器 :  工作过程涉及到 从物理层--.>网络层

 交换机:  工作过程涉及到 从物理层-->数据链路层

三、网络数据通信的基本流程

网络传输的数据,本质上都是“字符串”或者“二进制的bit流”

例如我们通过 qq 发送hello给对方

1.应用程序获取到用户输入,构造一个应用层的数据包。这个应用层数据包就会遵守应用层协议(往往是开发这个程序的程序员自己定义的(此处假设这样的协议格式:发送者的qq,消息的时间,消息正文))。

2.应用程序调用 传输层提供的接口(API),把数据交给传输层,传输层拿到数据之后,构造出“传输层数据包”。传输层的协议主要是:TCP UDP

3.传输层构造好数据后,继续调用网络层的API,把传输层的数据包交给网络层,网络层继续进行处理。   网络层最主要的协议:IP协议

4.IP协议继续调用数据链路层的API,把IP数据包交给数据链路层。

数据链路层中核心协议: “以太网”

5.以太网会继续把这样的数据交给硬件设备(网卡)网卡会把上述二进制数据,最终以 光信号/电信号/电磁波信号传播出去。

从上层到下层,数据都要进一步加工(添加报头)这个过程就叫做封装

分用,数据到达接收方主机,逐层进行解析

1.数据到达接收方网卡,光电信号,网卡把光电信号还原成二进制0101,把二进制数据交给上层数据链路层。

2.数据链路层按照以太网协议解析,把报头和报尾取出来,剩下的载荷往上传递给网络层。

3.网络层拿到这个数据之后按照IP协议的格式解析,再把载荷数据交给传输层。

4.传输层拿到数据后按照TCP协议来解析,取出载荷,交给应用层。

5.qq应用程序,解析应用层数据,拿到关键信息展示到页面上。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值