JAVA网络编程(一)(网络编程三要素)

1、ip地址:设备在网络中的地址,是唯一的标识。

IPv4:

IPv4正确的ip地址格式是x.x.x.x,IPv4的设计是32位(bit),分为4组,每组1个字节,用点号分隔。其中x的取值范围是0~255(十进制),那么是为什么呢?

因为1个字节(Byte)是8个二进制位(bit),是00000000~11111111之间的二进制值,转换为十进制是0~255。而我们使用的ip地址格式是采用十进制,则全部IPv4地址的范围为:0.0.0.0~255.255.255.255

IPv6:

IPv6正确的ip地址格式是x:x:x:x:x:x:x:x,IPv6的设计是128位(bit),分为8组,每组2个字节,用冒号分隔。其中x的取值范围是0~FFFF(十六进制,字母不分大小写),那么是为什么呢?

因为2个字节(Byte)是16个二进制位(bit),是0000000000000000~1111111111111111之间的二进制值,转换为十六进制是0~FFFF。而我们使用的IPv6地址格式是采用十六进制,则全部IPv6地址的范围是0:0:0:0:0:0:0:0~ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff。其中字母不分大小写,当x为0时,可以省略不写,如:1234:2345:0:0:4567:8910:0:ffbc缩写为1234:2345:::4567:8910::ffbc。

ipv6跟ipv4的区别

1、地址(IP地址)的数量:IPv4协议具有32位(4字节)地址长度;IPv6协议具有128位(16字节)地址长度。

2、安全性:IPv6的安全性更高,用户可以在网络层认证与加密数据并对 IP 报文进行校验。

3、传输速度:IPv6的路由表更小,聚合能力更强,提升了网络数据转发的效率。

地址的表示方法:IPv4地址是以小数表示的二进制数。 IPv6地址是以十六进制表示的二进制数。即使IPv6的地址是IPv4地址的4倍。但报头只有它的2倍大。

4.包的大小:IPv4协议的数据包需要576个字节,碎片可选 。IPv6协议的数据包需要1280个字节,不会碎片。

总结

IPv6是IP地址的未来。但是,从IPv4过渡到IPv6的过程却是漫长而复杂的。如果您对使用IPv6地址感到好奇,建议将其用法与IPv4结合使用,因为大多数网站和应用程序仍仅支持IPv4地址。IPv4和IPv6使用的结合称为双重堆栈。

2、端口:应用程序在设备中唯一的标识。

端口号:

用两个字节表示的整数,取值范围为0~65535。其中0~1023之间的端口用于一些知名的网络服务或者应用,我们自己使用1024以上的端口号就行了。一个端口只能被一个应用程序使用。

3、协议:数据在网络中传输的规则,常见的协议有UDP协议和TCP协议。

UDP协议(用户数据报协议):

是面向无连接的通信协议,速度快,有大小限制,一次最多发送64k,数据不安全,易丢失数据。

用户数据报协议(User Datagram Protocol)。UDP是无连接通信协议,即在数据传输时,数据的发送端和接收端不建立逻辑连接。

简单来说,当一台计算机向另外一台计算机发送数据时,发送端不会确认接收端是否存在,就会发出数据,同样接收端在收到数据时,也不会向发送端反馈是否收到数据。

由于使用UDP协议消耗资源小,通信效率高,**所以通常都会用于音频、视频和普通数据的传输例如视频会议都使用UDP协议**,因为这种情况即使偶尔丢失一两个数据包,也不会对接收结果产生太大影响。

但是在使用UDP协议传送数据时,由于UDP的面向无连接性,不能保证数据的完整性,因此在传输重要数据时不建议使用UDP协议。

TCP协议(传输控制协议):

TCP协议是面向连接的通信协议,速度慢,没有大小限制,数据安全。

传输控制协议 (Transmission Control Protocol)。TCP协议是面向连接的通信协议,即传输数据之前,在发送端和接收端建立逻辑连接,然后再传输数据,它提供了两台计算机之间可靠无差错的数据传输。

在TCP连接中必须要明确客户端与服务器端,由客户端向服务端发出连接请求,每次连接的创建都需要经过三次握手,断开连接需要进行四次挥手。

三次握手:

​ 第一次握手,客户端向服务器端发出连接请求,等待服务器确认。

​ 第二次握手,服务器端向客户端回送一个响应,通知客户端收到了连接请求。

​ 第三次握手,客户端再次向服务器端发送确认信息,确认连接。

​ “三次握手”的通俗理解

四次挥手

(1) TCP客户端发送一个FIN报文,用来关闭客户到服务器的数据传送。

(2) 服务器收到这个FIN报文,它发回一个ACK报文,确认序号为收到的序号加1。和SYN一样,一个FIN报文将占用一个序号。

(3) 服务器关闭客户端的连接,发送一个FIN给客户端。

(4) 客户端发回ACK报文确认,并将确认序号设置为收到序号加1。

“四次挥手”的通俗理解

UDP和TCP的区别

1.TCP 面向连接(如打电话要先拨号建立连接)提供可靠的服务,UDP 是无连接的,即发送数据之前不需要建立连接,UDP 尽最大努力交付,即不保证可靠交付。

2.UDP 具有较好的实时性,工作效率比 TCP 高,适用于对高速传输和实时性有较高的通信或广播通信。

3.每一条 TCP 连接只能是一对一的,UDP 支持一对一,一对多,多对一和多对多的交互通信。

4.UDP 分组首部开销小,TCP 首部开销 20 字节,UDP 的首部开销小,只有 8 个字节。

5.TCP 面向字节流,实际上是 TCP 把数据看成一连串无结构的字节流,UDP 是面向报文的一次交付一个完整的报文,报文不可分割,报文是 UDP 数据报处理的最小单位。

6.UDP 适合一次性传输较小数据的网络应用,如 DNS,SNMP 等。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

安逸的博客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值