Java系列学习笔记 --- 网络编程(1)网络基础知识

目录

前言

一、网络基础知识

     1.1 网络结构

     1.2 网络协议

     1.3 网络分层模型

     1.4 IP地址和端口号


 前言

     Java程序可以非常方便地访问互联网上的HTTP服务、FTP服务等,并可以直接获取互联网上的远程资源,还可以向远程资源发送GET、POST请求。

一、网络基础知识

       计算机网络就是把分布在不同地理区域的计算机通过专门的外部设备用通信线路互连成一个规模大、功能强的网络系统,从而使众多的计算机可以方便地互相传递信息,共享硬件、软件、数据信息等资源

1.1 网络结构

       计算机网络通常是按照规模大小和延伸范围来分类的,常见的划分为:局域网(LAN)城域网(MAN)广域网(WAN)。Internet就是世界上最大的广域网。

       局域网:网络所涉及的地理距离一般来说几米至10公里以内,这种网络的特点就是连接范围窄、用户数少、配置容易、连接速率高。

       城域网:网络在同一个城市,但不再同一地理范围内的计算机互联。这种网络的连接距离可以在10公里至100公里。城域网比局域网扩展的距离更长,连接的计算机数量更多。

       广域网:覆盖的范围比城域网更广,它一般是在不同城市之间的局域网或者城域网的网络互联,其地理范围可从几百公里到几千公里。

Java系列学习笔记 --- 网络编程(1)网络基础知识_第1张图片

       如果按照网络的拓扑结构来划分,可以分为总线型网络环形网络星型网络树型网络网状网络

(1)总线型网络Java系列学习笔记 --- 网络编程(1)网络基础知识_第2张图片

       总线型拓扑结构是一种共享通路的物理结构,这种结构中总线具有信息的双向传输功能,总线一般采用同轴电缆或双绞线。

       优点:扩充或删除一个节点很容易,不需停止网络的正常工作,节点的故障不会殃及系统。由于各个节点共用一个总线作为数据通路,信道的利用率高。

       缺点:由于信道共享,连接的节点不宜过多,并且总线自身的故障可以导致系统的崩溃。

(2)环形网络Java系列学习笔记 --- 网络编程(1)网络基础知识_第3张图片

       各网络节点连成环状。数据信息沿一个方向传送,通过各中间节点存储转发最后到达目的节点。

       优点:结构没有路径选择问题,网络管理软件实现简单。

       缺点:信息在传输过程中要经过环路上的许多节点,容易因某个节点发生故障而破坏整个网络的通信;另外网络的吞吐能力较差,适用于信息传输量不大的情况,一般用于局域网。 

(3)星型网络Java系列学习笔记 --- 网络编程(1)网络基础知识_第4张图片

       星型拓扑结构是一种以中央结点为中心,把若干外围结点连接起来的辐射式互联结构。

       优点:简单、容易建网,便于管理。

       缺点:由于通信线路总长度较长,成本高。同时对中心节点的可靠性要求高,中心节点出故障将会引起整个网络瘫痪。

(4)树型网络Java系列学习笔记 --- 网络编程(1)网络基础知识_第5张图片

       网络中各节点按层次进行连接,是一个在分级管理基础上集中式的网络,适合于各种统计管理系统。

       优点:通信线路总长度较短,成本低。 

       缺点:任一节点故障均会影响它所在支路网络的正常工作,而且处于越高层次的节点,其可靠性要求越高。  

(5)网形网络Java系列学习笔记 --- 网络编程(1)网络基础知识_第6张图片

       这种结构无严格的布局规定和构形,其中一个节点可取道若干路径到达另一个节点。

       优点:可靠性高。 

       缺点:所需通信线路总长度长,投资成本高,路径选择技术较复杂,网络管理软件也比较复杂

 

1.2 网络协议

       想要让电脑彼此之间能够进行对话,必须在它们之间建立通信协议,使彼此之间能够按照约定进行信息交换。通信协议主要负责对传输速率、传输代码、代码结构、传输控制步骤、出错控制等指定处理标准

       通信协议通常由三部分组成:语义、语法和时序。

      · 语义部分,决定“通信内容”,包括数据内容、含义以及控制信息等。

       ·语法部分,决定“对话格式,包括数据的格式、编码和信号等级等

      · 时序规则,决定“应答关系”,即何时通信通信的顺序、速率匹配和排序。

       可以形象地把这三个要素描述为:做什么?怎么做谁先做?

1.3 网络分层模型

       国际标准化组织ISO于1978年提出“开放系统互连参考模型”,即著名的ISO(Open System Interconnection)系统,即开放系统互连参考模型。

       ISO模型力求将网络简化,并以模块化的方式来设计网络。它将计算机网络分成物理层、数据链路层、网络层、传输层、会话层、表示层、应用层七层,经过几十年的发展和推进,OSI模式已经成为各种计算机网络结构的参考标准。

Java系列学习笔记 --- 网络编程(1)网络基础知识_第7张图片

       自下而上为物理层(物理介质,比特流)、数据链路层(网卡、交换机)、网络层(IP协议)、传输层(TCP/UDP协议)、会话层(创建/建立/断开连接)、表示层(翻译,编码,压缩,加密)、应用层(HTTP协议)

1.4 IP地址和端口号

       IP地址是网络中唯一的标识一个通信实体,这个通信实体既可以是一台主机,也可以是一台打印机,或者是路由器的某一个端口。而在基于IP协议的网络中,每个被传输的数据包都要包括一个源IP地址和一个目的IP地址,当数据包在网络中进行传输时,这两个地址都保持不变,以确保网络设备总能根据确定的IP地址,将数据包从源通信实体送往指定的目的通信实体。

       IP地址被分成了A、B、C、D、E五类,其A、B、C三类由NIC在全球范围内统一分配,D、E类为特殊地址,每个类别的网络标识和主机标识各有规则。

       ·A类:10.0.0.0 ~ 10.255.255.255

       ·B类:172.16.0.0 ~ 172.31.255.255

       ·C类:192.168.0.0 ~ 192.168.255.255

       IP地址用于唯一地标识网络上的一个通信实体,但一个通信实体上存在多个通信程序同时提供网络服务,此时我们还需要使用端口来标识通信程序。

       端口是一个16位的整数,表示数据交给那个通信程序处理。因此,端口就是应用程序与外界交流的出入口,它是一种抽象的软件结构,包括一些数据结构和I/O缓冲区。

       不同程序处理不同端口上的数据,同一台机器上不能有两个程序使用同一个端口,端口号可以从0到65535,通常将它分为如下三类。

       ·公认端口:端口范围从0到1023,分配给了网络中常见的网络服务。

       ·注册端口:端口范围从1024到49151,这些端口并不捆绑网络服务

       ·动态端口:端口范围从49152到65535,操作系统将这些端口动态的分配给各个进程,同一进程两次分配有可能分配到不同的端口。

       通过上述的概念讲解,可以将IP理解为某个人所在地方的地址,但是仅有地址是无法找到这个人的,我们还需要它所在的地点才可以找到这个人,但是这个地点可能是固定的、暂时的、随机的。所以,只有给出了具体的地址找到通信实体,然后再找到具体的端口找到通信程序,数据才能够成功传递。

你可能感兴趣的:(Java)