Java之网络基础知识

1、网络是什么

网络也称为计算机网络,是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统、网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。计算机网络实现将千千万万台计算机连接起来,形成一个大的整体。

2、网络体系

网络体系主要的分为三种:OSI七层协议、TCP/IP四层协议、五层协议。
在这里插入图片描述

2.1、OSI七层模型

  OSI意为开放式系统互联,是国际标准组织制定的。这个模型把网络通信的工作分为7层,分别是物理层,数据链路层,网络层,传输层,会话层,表示层和应用层。1至4层被认为是低层,这些层与数据移动密切相关;5至7层是高层,包含应用程序级的数据。每一层负责一项具体的工作,然后把数据传送到下一层。

  第1层是物理层,实际上就是布线、光纤、网卡和其它用来把两台设备连接在一起的东西。

  第2层是数据链路层,运行以太网等协议。将物理层的bit数据组织成帧,并以其为单元进行传输。通过校验、确认和反馈重发等操作将不可靠的物理链路改造成对网络层来说无差错的数据链路。采用流量控制,以防止接收方因来不及处理发送方来的高速数据而导致缓冲器溢出及线路阻塞等。

  第3层是网络层,在计算机网络中进行通信的两个计算机之间可能会经过很多个数据链路,也可能还要经过很多通信子网。网络层的任务就是选择合适的网间路由和交换结点, 确保数据及时传送。网络层将数据链路层提供的帧组成数据包,包中封装有网络层包头,其中含有逻辑地址信息- -源站点和目的站点地址的网络地址。

  第4层是传输层,第4层的数据单元也称作数据包。但是,当你谈论TCP等具体的协议时又有特殊的叫法,TCP的数据单元称为段(segments),而UDP协议的数据单元称为数据报(datagrams)。这个层负责获取全部信息,因此,它必须跟踪数据单元碎片、乱序到达的数据包和其它在传输过程中可能发生的危险。

  第5层是会话层,在会话层及以上的高层次中,数据传送的单位不再另外命名,统称为报文。会话层不参与具体的传输,它提供包括访问验证和会话管理在内的建立和维护应用之间通信的机制。

  第6层是表示层,这一层主要解决用户信息的语法表示问题。它将欲交换的数据从适合于某一用户的抽象语法,转换为适合于OSI系统内部使用的传送语法。即提供格式化的表示和转换数据服务。数据的压缩和解压缩, 加密和解密等工作都由表示层负责。

  第7层是应用层,是专门用于应用程序的。应用层确定进程之间通信的性质以满足用户需要以及提供网络与用户应用软件之间的接口服务。如果你的程序需要一种具体格式的数据,你可以发明一些你希望能够把数据发送到目的地的格式,并且创建一个第7层协议。

2.2、TCP/IP四层模型

  TCP/IP协议在一定程度上参考了OSI的体系结构。OSI模型共有七层,而在TCP/IP协议中,它们被简化为了四个层次。

  应用层、表示层、会话层三个层次提供的服务相差不是很大,所以在TCP/IP协议中,它们被合并为应用层一个层次。

  由于运输层和网络层在网络协议中的地位十分重要,所以在TCP/IP协议中它们被作为独立的两个层次。

  因为数据链路层和物理层的内容相差不多,所以在TCP/IP协议中它们被归并在网络接口层一个层次里。只有四层体系结构的TCP/IP协议,与有七层体系结构的OSI相比要简单了不少,也正是这样,TCP/IP协议在实际的应用中效率更高,成本更低。

3、协议分类

3.1、UDP协议

  UDP协议全称为用户数据报协议(User Datagram Protocol)。UDP是无连接通信协议,即在数据传输时,数据的发送端和接收端不建立逻辑连接。简单来说,当一台计算机向另外一台计算机发送数据时,发送端不会确认接收端是否存在,就会发出数据,同样接收端在收到数据时,也不会向发送端反馈是否收到数据。

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

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

3.2、TCP协议

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

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

  三次握手:TCP协议中,在发送数据的准备阶段,客户端与服务器之间的三次交互,以保证连接的可靠。三次握手也是面试的重点!

  1. 第一次握手,客户端向服务器端发出连接请求,等待服务器确认。
  2. 第二次握手,服务器端向客户端回送一个响应,通知客户端收到了连接请求。
  3. 第三次握手,客户端再次向服务器端发送确认信息,确认连接。

   完成三次握手,连接建立后,客户端和服务器就可以开始进行数据传输了。由于这种面向连接的特性,TCP协议可以保证传输数据的安全,所以应用十分广泛,例如下载文件、浏览网页等。

4、网络三要素

  网络编程三要素分别是协议、IP地址和端口号

4.1、协议

  协议是计算机网络通信必须遵守的规则,常见的就是上述UDP协议和TCP协议。在通信过程中,必须按照协议中规定去传输数据,这样可以使发送方和接收方按照相同的规则去封装解析数据。

4.2、IP地址

  IP地址:指互联网协议地址(Internet Protocol Address)。IP地址用来给一个网络中的计算机设备做唯一的编号。每一台计算机都有自己的IP,每个IP都不会相同。

4.2.1、IP地址分类

  IPv4:是一个32位的二进制数,通常被分为4个字节,例如192.168.138.100 。这样的表示规则那么最多可以表示42亿个!

  IPv6:由于互联网的蓬勃发展,IP地址的需求量愈来愈大,42亿都快不够用了!但是网络地址资源有限,使得IP的分配越发紧张。为了扩大地址空间,拟通过IPv6重新定义地址空间,采用128位地址长度,每16个字节一组,分成8组十六进制数,表示成ABCD:EF01:2345:6789 :ABCD:EF01:2345:6789,号称可以为全世界的每一粒沙子编上一个网址,这样就解决了网络地址资源数量不够的问题。

4.2.2、查看IP

windows下的话就是Win + R,输入cmd,打开命令提示符,输入ipconfig就可以查看了
linux下的话命令是ip addr

4.3、端口号

  网络的通信,本质上是两个进程(应用程序)的通信。每台计算机都有很多的进程,如果说IP地址可以唯一标识网络中的设备,那么端口号就可以唯一标识设备中的进程了。

  因此,利用协议+IP地址+端口号 三元组合,就可以标识网络中的进程了,那么进程间的通信就可以利用这个标识与其它进程进行交互。

有错误的地方敬请指出!觉得写得可以的话麻烦给个赞!欢迎大家评论区或者私信交流!

发布了49 篇原创文章 · 获赞 119 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/Orange_minger/article/details/104979440