JAVA高级知识点学习集合六 —— 网络编程

一、计算机网络

1、什么是网络

通过计算机硬件设备和软件将多台计算机进行连接在一起,能够使这些计算机实现信息、资源和服务的共享,数据的传递,称之为计算机网络

2、计算机网络的目的

主要目的是实现数据和信息的传输,是不同的计算机之间相互通信和数据交换。这些计算机可以是同一个地理位置的,也可以是分布在全球范围,打破信息孤岛。

根据TCP协议将网络分为五层架构模型:

  • 应用层(Application Layer):负责应用程序之间的通信和数据交换,提供了一些高级协议,使应用能够通过网络进行数据传递。常用网络协议包括:HTTP协议,FTP议,SMTP协议,POP3协议,DNS协议等 —— 最顶层
  • 传输层(Transport Layer): 这一层处理端到端通信,确保数据在源和目标之间的可靠传输。常用协议包括:TCP协议,UDP协议等。(打包数据,贴条)
  • 网络层(Network Layer): 在这一层,数据被分组成数据包,通过网络传输到目标主机。主要协议是IP协议。
  • 数据链路层(Data Link Layer): 这一层管理数据帧在物理介质上的传输,处理物理寻之和错误检测。
  • 物理层(Physical Layer): 这一层处理比特流在物理媒体上的传输,包括电压、频率等。他负责实际的硬件链接和传输。

IP协议

1、IP协议简介

IP(Internet Protocol)即互联网协议。用于在计算机网络中定位和寻址设备,以便于

数据能够在网络中传输、路由和交付。是互联网通信的基础协议之一。

2、IP协议的两个主要版本

(1)IPv4 (Internet Protocol version 4)

IPv4是使用最早、最广泛的IP协议版本,IPv4协议地址组成由32位二进制数据组 成,例如:00000000.01010101.10101010.11111111,其中每8位为一段,共分 为4段组成。通常为了方便使用,会将二进制转化为十进制表示,例如: 192.168.24.114;为了能够在万维网上更加方便的使用,于是产生了域名。域名解 析服务器(DNS解析服务器)

(2)IPv6 (Internet Protocol version 6)

IPv6使用了128位二进制组成,通常以冒号分隔的8组4位16进制数字表示,例 如:2001:1010:ahsd:0000:dbck:0000:1111:1234。IPv6提供了大量的地址空间以 支持未来更多的网络设备连接互联网的需求。

3、IPv4的组成和分类:

(1)IPv4的组成

为了能够更好的使用IPv4,将IPv4分为了两个大部分组成,分别是:

网络地址用于表示该设备所在的网络区段。因此网络地址也称为网段。

主机地址用于表示该设备在该网段中的具体编号。

(2)IPv4的分类

在使用IPv4地址空间中,为了更好的为不同规模和需求的网络分配合适的IPv4地 址,因此将IPv4分为了五大类,分别是:

【特别注意】127.0.0.0,这个地址就是本机网卡地址,也称为本机地址,通常也可以使用关键字“localhost”表示。(不会用网络进行传输) 

TCP协议

1、Tcp协议简介

(1) 什么是TCP协议

   TCP (Transport Control Protocol)即传输控制协议,提供了可靠的、面向连接的数据传输协议,确保数据在源和目标之间以正确的顺序和完整性进行传输。

(2) TCP协议特点

  • 可靠性:TCP协议提供了可靠的数据传输,使用确认机制来确保数据的正确传输。当接收方收到数据后,会向发送方发送确认信息,以便于发送方知道数据已经成功 传输。
  • 流量控制TCP协议使用流量控制协议来调整发送数据的速率,以避免数据拥塞和丢失。
  • 面向连接在进行数据传输之前,TCP协议首先建立一个连接,然后再连接上进行数据传输,最后关闭连接,这确保了数据的有序传输和正确性。
  • 端口TCP协议使用端口表示应用程序或服务,源和目标设备使用端口来确保数据被正确的传输到相应的应用程序。( 标识特定的应用程序的地址,通过端口号查询应用,并且可以把正确的信息传输到对应的程序 )​​​​​​​

2、网络端口

(1)什么是网络端口

一种用于表示特定应用程序或服务的虚拟地址。每个端口都有一个编号,称之为端口号,端口号是一个有16位二进制组成的数字(0——65535)。通过端口可以在数据中表示特定的通信目标。

通过使用端口,网络中的数据可以被争取的路由到相应的应用程序中。因此要想进行网络传输的应用都必须占用一个端口。

(2)常用端口范围和用途

  •  0 —— 1023: Well——Know Ports ,这些端口是预留给一些常用服务的,如操作系统。 例如HTTP协议的默认端口位80,HTTPS协议的默认端口为443,FTP协议的默认 端口为21等。
  • 1024 —— 49151 : Registered Ports,这些端口用于一些已经注册的应用程序或服务。很多应用程序会使用这个范围的端口,例如MySQL默认使用3306,Oracle默认使用1521,Redis默认使用6379,Tomcat默认使用8080等。我们自己的应用也可以使用一范围的端口。
  • 49152 —— 65535: Dynamic/Private Ports,这些端口通常被用作临时使用的端口,用于客户端和服务器之间的短暂通信。(建议不要占用8000以下的端口,就往大的走)

3、TCP协议的三次握手

​​​​​​​

4、TCP协议的四次挥手,服务端是被动的

四、UDP协议

  1、UDP协议简介

UDP(User Datagram Protocol) 即用户数据报协议,是一种无连接的,不可靠的传输协议,提供了一种简单的数据传输方式,适用于一些对数据可靠性要求不高的场景。

2、UDP协议特点

  • 无连接性:UDP协议是无连接的,这意味着在数据传输之前不需要建立连接。发送方直接将数据包发送到目标地址,而不需要等待连接。
  • 不可靠性:UDP协议不提供数据的可靠传输,就意味着发送的数据包有可能丢失,重复或者无序到达

  3、UDP协议适用场景

 UDP协议适用于一些无需快速传输和实时性要求高的应用场景,例如实时音频视频 通信、在线游戏、实时数据流等传输。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值