一、网络的发展
I.独立模式
计算机之间相互独立,每台计算机分别持有客户的数据,执行各自的业务。
II.网络互联
多台计算机连接在一起,完成数据共享。
网络的精神:共享、开放。
二、局域网和广域网
1.局域网(LAN、私网、内网)
定义:在某一区域内,由多台计算机互联成的计算机组。
特点:(1)在同一局域网内的计算机可以直接互相通信,实现数据共享。
(2)局域网是封闭型的,可以由办公室内的两台计算机组成,也可以由一个公司内的几千台计算机组成。
(3)使用专门铺设的传输介质进行联网,数据传输率高(10Mb/s~10Gb/s)。
(4)通信延迟时间短,可靠性高。
(5)局域网可以支持多种传输介质。
分类:
按传输介质分为:有线网和无线网。
按网络拓扑结构分为:总线型、星型、环型、树型、混合型。
按访问控制方法分为:以太网、令牌环网、FDDI网和无线局域网。其中,以太网是当前应用最普遍的局域网技术。
2.广域网(WAN、公网、外网)
定义:连接不同地区局域网或城域网计算机通信的远程网。简单来说,就是把相隔千里的计算机都连接在一起。
特点:(1)数据传输距离远,往往要经过多个广域网设备转发,延迟较长。
(2)可以连接多个地区、城市和国家,覆盖范围广。
(3)由电信部门或公司负责组建、管理和维护,并向全社会提供面向通信的有偿服务、流量统计和计费问题。
(4)广域网没有固定的拓扑结构,通常使用高速光纤作为传输介质,广域网管理、维护困难。
(5)局域网可以作为广域网的终端员工和广域网连接。
分类:公共传输网络,大体分为电路交换网络和分组交换网络。
专用传输网络,主要是数字数据网。
无线传输网络,主要是移动无线网。
3.局域网和广域网的区别和联系
区别:
范围不同:局域网是在一个不大的范围,而广域网可以连接不同范围的计算机。
数据传输速度不同:局域网传输速度较广域网块。
联系:广域网可以实现几个不同局域网之间的通信。
三、协议
定义:执行之前的一种约定。
计算机之间的传输媒介是光信号和电信号,通过“频率”和“强弱”来表示0和1这样的信息。要想传递不同的信息,就需要约定好双方的数据格式。
因此通信的两台主机,不仅要约定好协议,协议还需要采用同一种语言。
通信协议:通信双方的数据格式约定。
不同的硬件、操作系统之间的通信,所有的这一切都需要一种规则,这种规则称为协议。协议中存在各式各样的内容:从电缆的规格到IP地址的选定方法、寻找异地用户的方法、双方建立通信的顺序,以及Web页面显示需要处理的步骤等等。
制定协议的往往是该行业的精英,有着绝对的话语权。如华为有定制5G的标准。
协议也是分层的,协议分层的目的是为了便于维护。
协议分层:明确按照提供的服务以及适用的协议,以及提供的接口对复杂的网络通信环境进行层次划分。就是一种封装。封装了具体实现,只需要向上提供接口与服务即可。
协议分层的好处:便于上层使用,清晰化结构,使用简单。
同时,分层也是为了进行改动。试想,如果互联网只由一个协议统筹,某个地方需要改变设计时,就必须把所有部分整体替换掉。而分层之后只需把变动的层替换掉即可。把各层之间的接口部分规划好之后,每个层次内部的设计就能够自由改动了。
四、OSI(Open System Interconnection)七层模型(权威)
1.简介
OSI模型把网络从逻辑上分为了七层,是一种框架性的设计方法。其最主要的功能是帮助不同的主机实现数据共享。最大优点是将服务、接口和协议这三个概念明确地区分开来,使不同的系统不同的网络之间实现可靠的通信。
OSI模型从内到外依次为:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。
2.OSI模型中各层的功能
物理层:实现计算机系统与网络间的物理连接。
数据链路层:进行数据打包与解包,形成数据帧。
网络层:提供数据通过的路由。
传输层:提供传输顺序与相应信息。
会话层:建立和终止连接。
表示层:数据转换,确认数据格式。
应用层:提供用户程序接口。
OSI模型只是一个框架,它的每一层并不执行某种功能,功能的具体实现还需通信协议,主要通过软件来进行。当数据(源主机)在层之间向下传播时,每一层都会在数据前面加上一个报头,用于标识包的来源和目的。
五、TCP/IP四层(或五层)模型(应用)
1.简介
TCP/IP是一组协议的代名词,它还包括许多协议,组成了TCP/IP协议簇。
TCP/IP通讯协议采用5层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。
网络协议是用C语言写的。
2.每层的作用
TCP/IP五层模型从内到外依次是物理层、数据链路层、网络层、传输层、应用层。
物理层:主要负责光/电信号的传输方式。集线器工作在物理层。集线器的作用是将信号放大,让信号传输得更远。
数据链路层:负责设备之间数据帧的传送和识别,局域网的通信。交换机工作在数据链路层。
网络层:负责地址管理和路由选择,广域网的通信。路由器工作在网络层。
传输层:负责两台主机之间的数据传输。
应用层:负责应用程序的沟通。网络编程主要针对应用层。
说明:
1)应用层决定了向用户提供应用服务时通信的活动。
2)传输层对上层应用层,提供处于网络连接中的两台计算机之间的数据传输。
3)网络层是用来处理在网络上流动的数据包。数据包是网络传输的最小数据单位。该层规定了通过怎么的路径(所谓的传输路线)到达对方计算机,并把数据包传送给对方。与对方计算机通过多台计算机或网络设备进行传输时,网络层所起的作用就是在众多的选项中选择一条传输路线。
4)链路层(又名数据链路层,网络接口层)用来处理连接网络的硬件部分。包括控制操作系统、硬件的设备驱动、NIC(Network Interface Card,网络适配器,即网卡),及光纤等物理可见部分(还包括连接器等一切传输媒介)。硬件上的范畴均在链路层的作用范围之内。
一般而言,
对于一台主机,它的操作系统内核实现了从传输层到物理层的内容;
对于一台路由器,它实现了网络层到物理层;
对于一台交换机,它实现了从数据链路层到物理层;
对于集线器,它实现了物理层。
但是并不绝对,很多交换机也实现了网络层的转发,很多路由器也实现了部分传输层的内容(比如端口转发)。
3.每层的协议列举
数据链路层:以太网协议(局域网的标准)。
网络层:IP协议(网际协议)、ICMP(Internet控制报文)协议以及IGMP(Internet组管理协议)。
传输层:UDP(用户数据报协议)、TCP(传输控制协议)。
应用层:Telnet、HTTP、SMTP、FTP、DNS和SNMP等协议和应用。
4.跨网段的主机的文件传输过程
如上图所示,两台主机通过路由器互相连接。路由器可以把以太网、令牌点对点链接和FDDI(光纤分布式数据接口)等不同的网络连接在一起。协议中的各层对上一层是透明的。即应用层只负责应用程序之间的通信规则,不必了解数据如何在网络中传输,也不必了解怎样接入网络。而链路层只需要负责传输,而不需要知道正在传送的是什么数据。
六、网络传输基本流程
假设A主机和B主机位于两个不同的局域网上,从A主机传输信息到B主机,通讯过程如下:
应用层的操作为用户进程,其它层均为操作系统内核进程。
应用层由用户完成,让用户关注处理数据本身,我们(Java程序员)的大部分工作都是在当前层或更上层。
传输层、网络层和链路层的操作集成在内核,让用户忽略通信细节。
从A主机由外层到内层每一层数据都要经过封装的过程,而B主机从内层到外层每一层数据都要经过解包的过程。每一层上都有对应的协议,即协议分层。数据的传输必须要经过物理层(在这里我们不进行研究)。我们先来介绍一下几个过程:
发送端在层与层之间传输数据时,每经过一层时必定会被打上一个该层所属的首部信息。反之,接收端在层与层传输数据时,每经过一层会把对应的首部消去,这种把数据信息包装起来的做法称为封装。
封装:应用层数据通过协议栈发到网络时,每层协议上都要加上一个数据首部(也称为报头)。我们可以理解为快递包裹外面的配送信息。
解包:将报头和有效载荷正确分离。我们可以理解为拆包裹,有效载荷即为我们真正买的商品,报头即为我们不关心的商品的包装、包裹。
分用:解包交付的时候,B主机的每一层必须要明确把有效载荷交给上层的谁,决定交给谁的信息就包含在当前层的报头中。
利用TCP/IP协议族进行网络通信时,会通过分层顺序与对方进行通信。发送端从应用层往下走,接收端则从应用层往上走。
我们用HTTP举例说明,首先作为发送端的客户端在应用层(HTTP协议)发出一个想看某个Web页面的HTTP请求。接着为了传输方便,在传输层(TCP协议)把从应用层处收到的数据(HTTP请求报文)进行分割,并在各个报文打上标记序号及端口号后转发给网络层。在网络层(IP协议),增加作为通信目的地的MAC地址后转发给链路层。这样一来,发往网络的通信请求就准备齐全了。(可以总结为a.发送HTTP请求,b.传输层进行HTTP请求分割,添加标号和端口号,c.网络层添加作为通信目的地的MAC地址,并转发给数据链路层。)
接收端的服务器在链路层接收到数据,按序往上层发送,一直到应用层。当传输到应用层,才能算真正接收到由客户端发送过来的HTTP请求。
事实上,B所在的局域网中的所有主机都可以收到来自A局域网的信息,那么A主机是怎么让B主机接收到的呢?
在A主机向B主机发消息时,会包含一个MAC地址。MAC地址会惟一标识主机,在每台主机的网卡中。位于B局域网中的其它主机会自动丢弃来自A主机的信息(因为MAC地址不匹配)。
如果A局域网中多台主机同时向B主机发送信息,就可能在数据链路层发生数据碰撞。每个局域网都有碰撞检测的功能;一旦发生数据碰撞,主机就会通过“等”的方式来避免碰撞。
说明:IP协议的作用是把各种数据包传送给对方。而要保证确实传送到对方那里,则需要满足各类条件。其中两个重要的条件是IP地址和MAC地址。IP地址指明了节点被分配到的地址,而MAC地址是指网卡所属的固定地址。IP地址可以和MAC地址进行配对。IP地址可以变换,但MAC地址基本上不会更改。