Java网络编程网络知识



Java网络编程网络知识

1.首先要说一说计算机网络体系结构

这里写图片描述

计算机网络体系结构根据不同的分法,分为以上几种。在这里我们以五层协议为例(哈哈,因为我大学学的就是这种,其实差不多啦)。

物理层

其表现形式就是,数据的电、光信号传输。信息数据是以二进制存储和发送的,在实际传输过程中电信号通过双绞线、同轴电缆进行高低电平的传播,这些高低电平就代表着 二进制的1 和0。光信号是通过光纤来进行传输,通过激光的有无,代表二进制信息。

数据链路层

实现相邻结点帧的透明传输。那数据链路层的节点又是什么呢?在此处节点代表主机,即我们面前的电脑和路由器(也相当于电脑),我,我们的数据发送到目的主机的这个过程中,需要经过许多结点,这些节点的作用就是接力替我们找到目的主机在哪里。

​ 什么是帧?举个例子,视频不就是一个个图片快速切换,达到人眼的视觉暂留,让人看起来是连续的,就成了视频,他的最小单位是是一帧帧的图片。同理我们向目标主机发送数据,一个完整的数据包,可能会超过数据链路层的最大发送上限,此时这个数据包,就会被分割成一块一块的,使其小于这一层的最大发送上限。这每一块都被称为一个帧。

网络层

我们需要着重注意的就是ip地址的分类
实现发送主机与目的主机IP数据报的的传输。这里最重要的就是IP地址,IP地址就相当于你的身份证,但又有所不同。

首先每一个主机都有一个网卡,网卡里有一个不可更改的网卡地址,这个是一出厂就有的。IP地址是网卡地址的映射,他俩捆绑在一块。

但是IP地址是可以改变的,每一次改变网卡都会自动与新的IP地址进行捆绑。

IP地址分为IPV4和IPV6。ipv4 由32位二进制组成,接近枯竭。ipv6由128位二进制组成,一举解决ip地址不够用的问题。但是我们目前用的最多的依然是IPV4,通过私有地址的实行,ipv4生命又得到了延续.

IP地址的分类(IPV4)

IPV4二进制表示形式位:XXXXXXXX.XXXXXXXX.XXXXXXXX.XXXXXXXX 其中X代表0或1,共32位,我们通常用点分十进制表示

例如:00011010.00011000.01100000.11000000 ,点分十进制表示就是 26.24.96.192

A类网络的IP地址范围为:1.0.0.1-126.255.255.254; 本地网络地址:前8位不变,后24位为0(如121.0.0.0);广播地址:前8位不变,后24位为1(如121.255.255.255);

B类网络的IP地址范围为:128.1.0.1-191.255.255.254; 本地网络地址:前16位不变,后16位为0(如172.5.0.0);广播地址:前16位不变,后16位为1(如172.5.255.255);

C类网络的IP地址范围为:192.0.1.1-223.255.255.254 ;本地网络地址:前24位不变,后8位为0(如199.12.80.0);广播地址:前24位不变,后824位为1(如199.12.80.255);

另外说一下什么是公有地址和私有地址?
公有地址:是直接与国际互联网相联的、唯一的、不可重复的IP地址。
私有地址:可重复使用、在局域网中使用,在不同的局域网中可以有许多相同的私有的IP地址。具有私有IP地址的主机,想要访问国际互联网,必须通过与该局域网相连的特定的路由器,将私有IP地址转换成公有IP地址,才能被允许访问。

运输层

主要就是两个协议TCP和UDP

TCP特点:有连接、可靠、分组、速度慢
有连接体现在:类似于打电话,你给别人打电话——>别人收到后接听电话——>互相得到反馈电话已拨通(简称三次握手),就可以开始说话了。

[外链图片转存失败,源站可能有防盗链在这里插入图片描述

可靠体现在:如果对方接受不到信息,就会告知发送方 需要重新发送
分组:一个数据报大小如果超过了运输层的最大传输上限,就需要被分组,知道符合限制要求,此动作由主机操作。
速度慢:由于TCP需要建立连接,还需要释放连接,占用的开销较多,因此效率较低、速度慢。(释放连接简称四次挥手)

在这里插入图片描述

TCP协议注重信息的完整性不强调传输速度和效率。
UDP协议
特点:无连接、不可靠、效率高
无连接体现在,不需要像TCP协议一样需要三次握手、四次挥手,建立和断开连接,发送方直接发送数据。
不可靠在于:发送方直接发送数据,不知道接收方,收没收到数据,就接着发送下一个数据段。
效率高:虽然数据容易丢失,但大部分情况下数据还是能够被成功接收的,再加上传输速度快,所以效率要高些。
TCP协议注重信息的及时不强调数据完整性和可靠性。
应用层

主机上有很多应用,当数据传给某个主机后,怎么确定是传给哪一个应用的呢?

答:通过端口号

主机会给应用(进程)分配对应的端口号,用于区分在应用层上数据数据传播的目的进程。

端口号是16比特,可以有在0—65535范围内的端口号。对于这65536个端口号有以下的使用规定 :
(1)端口号小于256的定义为常用端口,服务器一般都是通过常用端口号来识别的。

​ 任何TCP/IP实现所提供的服务都用1—1023之间的端口号;

​ 端口号从1024—49151是被注册的端口,也成为“用户端口”,被IANA指定为特殊服务使用 [6] ;
(2)应用(进程)只需保证该端口号在本机上是唯一的就可以了。应用(进程)端口号因存在时间很短暂又称临时端口号 ;
ANA指定为特殊服务使用 [6] ;
(2)应用(进程)只需保证该端口号在本机上是唯一的就可以了。应用(进程)端口号因存在时间很短暂又称临时端口号 ;
(3)大多数TCP/IP实现给临时端口号分配1024—5000之间的端口号。大于5000的端口号是为其他服务器预留的 。

本人是一个小垃圾,有不足之处还望指正,第一篇文章开启博客生涯。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值