计算机网络根据网络互连的规模可以分为局域网(LAN)和广域网(WAN)。
一、局域网
简称LAN,局域网是就是局部组建的一种私有网络,在局域网内部的主机之间能够进行网络通信(网络数据传输),也成为内网。局域网和局域网在没有连接的情况下是无法通信的。
局域网的组建方式有很多种,如:
- 基于网线直连
- 基于集线器组建
- 基于交换机组建
- 基于交换机和路由器组建
二、广域网
简称WAN,通过路由器将多个局域网连接起来,组成较大范围的网络形成广域网。
全球化的公共型广域网,称为互联网,又称公网,外网。
组建网络的目的是进行网络通信,也就是网络主机的不同进程间,基于网络传输数据。
那我们在互连的网络中传输数据,怎么判断数据来自哪台主机,我们要将数据传输到哪台主机呢?
这就要用到IP地址来辨别。
三、IP地址
IP地址主要用于标识网络主机、路由器等设备的网络地址。
IP地址的格式:
IP地址是一个32位数,通常被分割位4个“8位二进制数”:01100111.00001101.00000011。
通常用点分十进制
来表示,即a.b.c.d的形式(a,b,c,d都是0~255之间的十进制数),比如100.4.5.6。
特殊的IP:127.*的IP地址用于本机环回测试,通常是127.0.0.1
四、端口号
在网络通信中,IP地址用于表示主机网络地址,端口号可以标识主机中发送数据、接收数据的进程。也就是端口号用于定位主机中的进程。
发快递时,首先要知道收货地址(IP地址),其次要知道收货人(端口号)。
格式:端口号时0~65535范围的数字,在网络通信中,进程可以通过绑定一个端口号来发送和接收数据。
注意:一个进程可以绑定多个端口号,但是一个端口号只属于一个进程。
举例:你可以办多个运营商的手机卡,联通、电信等待,但是每个手机号只属于你一个人,别人拨打这个这个手机号只有你能接听地到。
知名协议的默认端口:
系统端口的范围为0~65535
,其中0~1023为知名端口号,在开发程序时服务器可以使用1024~65535
范围内的端口号来绑定知名协议。
- 22端口:预留给SSH服务器绑定SSH协议
- 21端口:预留给FTP服务器绑定FTP协议
- 23端口:预留给Telent服务器绑定Telent协议
- 80端口:预留给HTTP服务器绑定HTTP协议
- 443端口:预留给HTTPS服务器绑定HTTPS协议
五、网络协议
网络协议是网络通信经过的所有网络设备都必须共同遵从地一组约定、规定。
只有遵守这个约定,计算机之间才能相互通信交流。否则每个主机都用自己的规则传输数据,别的主机接收到数据,他是看不懂的。
协议通常由三要素组成:
- 语法:数据与控制信息的结构和格式;
类似打电话时规定,双方都讲普通话
- 语义:需要发出何种控制信息,完成何种动作,以及做出何种响应。(主要说通信双方应该怎么做)
- 时序:事件实现顺序的详细说明。
协议最终体现为在网络上传输的数据包格式。
六、五元组
在TCP/IP协议中,用五元组来标识一个网络通信:
- 源IP:标识源主机
- 源端口号:标识源主机中这次通信发送数据的进程
- 目的IP:标识目的主机
- 目的端口号:标识目的主机中这次通信接收数据的进程
- 协议号:标识发送进程和接收进程双方约定的数据格式
七、OSI七层模型
即Open System Interconnection:开放系统互连。
是逻辑上的一个定义和规范,把网络从逻辑上分了七层。
划分为以下七层:
- 物理层:主要定义物理设备标准。它的主要作用是传输比特流,这一层的数据叫做比特。
- 数据链路层:在物理层提供比特流服务的基础上,建立相邻节点之间的数据链路,以及识别数据帧。
- 网络层:在位于不同地理位置的网络中的两个主机系统之间提供连接和路径选择。
- 传输层:管理两个节点之间的数据传输,负责可靠传输(确保数据被可靠地传送到目标地址)。
- 会话层:通信管理。负责建立和断开通信连接。
- 表示层:应用程序和网络之间的翻译官,在表示层,数据将按照网络能理解的方案进行格式化,这种格式化也因所使用的网络的类型不同而不同。
7.应用层:提供的服务包括文件传输、文件管理以及电子邮件的信息处理。
OSI模型的优点:
- 最大优点是将服务、接口、协议这三个概念明确的区分开;
- 减轻问题的复杂程度,一旦网络发生故障,可迅速定位故障所处的层次,便于查找和纠错;
- 每次更新只需要在小范围内进行,不需要对整个网络改动。
八、TCP/IP五层(四层)协议
通常我们不关注物理层的实现,因此有时也称TCP/IP的四层协议。
TCP/IP协议是一组协议的代名词,他还包括许多协议,组成了TCP/IP协议簇。
TCP/IP协议与OSI模型的对比:
TCP/IP协议分为以下四层:
- 数据链路层:负责设备之间的数据帧的传送和识别。在这一层数据的传输单位为比特。
- 网络层:负责地址管理和路由选择。在复杂的网络中找到一个合适的路径进行传输。也就是,网络层负责将数据传输到目标地址,同时负责寻找合适的路径到达对方计算机。
- 传输层:解决了端到端可靠性问题,能确保数据可靠的到达目的地,甚至能保证数据按照正确的顺序到达目的地。
- 应用层:负责应用程序间沟通。
封装和分用
应用层数据通过协议栈发送到网络上,每层协议都要加上一个数据首部(以太网还包括尾部信息),称为封装。
不同的协议层对数据包有不同的称谓,在传输层叫做段,在网络层叫做数据报,在链路层叫做帧。
下面是数据封装的过程:
数据分用的过程:
当帧到达目的主机时,将沿着TCP/IP协议簇从下往上依次传递,各层协议依次处理帧中本层负责的头部数据,以获取所需的数据,并最终将处理后的数据交给目标应用程序,这个过程称为分用。