基本概念
随着时代的发展,计算机之间需要相互通信,共享软件和数据,需要多个计算机协同工作来完成业务,
就有了网络互连,即将多台计算机连接在一起,完成数据共享
局域网
根据网络互联的规模,可以划分为局域网和广域网
局域网LAN:Local 即标识了局域网是本地,局部组建的一种私有网络
局域网主机之间可以方便的进行网络通信,又称内网,而局域网与局域网之间不进行连接无法通信
广域网WAN:通过路由器,将多个局域网连接起来,在物理上组成很大范围的网络,就形成了广域网。广域网内部的
局域网都属于其子网。
ip地址
网络互联的目的是进行网络通信,即网络数据传输,说得再具体一点就是网络中不同主机的进程之间的网络数据传输,那么标识发送端主机和接收端主机就需要使用到ip地址了
ip地址:用于定位主机的网络地址。
格式:点分十进制
端口号
然而ip地址只解决定位主机网络地址的问题,那传输到目的主机后,由哪个程序来接收呢,这里就需要用到端口号来标识主机中发送数据、接收数据的进程。
端口号:端口号用于定位主机中的进程。
有了ip地址和端口号, 我们可以定位到网络中唯一的进程
协议,但是还存在一个问题,我们如何告知通信双方发送的数据格式呢,比如文本,视频等等
所以基于网络传输,我们要使用协议规定双方的数据格式
协议
协议:络协议是网络通信(即网络数据传输)经过的所有网络设备都必须共同遵从的一组约定、规则。
- 语法:即数据与控制信息的结构或格式;
- 语义:即需要发出何种控制信息,完成何种动作以及做出何种响应;
语义主要用来说明通信双方应当怎么做。用于协调与差错处理的控制信息。 - 时序,即事件实现顺序的详细说明。
时序定义了何时进行通信,先讲什么,后讲什么,讲话的速度等。比如是采用同步传输还是异步传输。
协议(protocol)最终体现为在网络上传输的数据包的格式
OSI七层协议
这里提供一种含义多重表达,多种记忆方式选择最合适你的那个记
应用层:规定应用进程间通信的规则。
表示层:处理通信双方信息表示的问题。设备固有格式和网络标准格式的转换。
会话层:管理两个应用系统间的会话 (主机间原始报传文的传输) 通信管理 负责建立和断开通讯连接。传输层以下
传输层:完成两台主机进程之间的通信。负责节点之间的数据传输。
网络层:为主机提供通信服务,把运输产生报文发送出去。地址管理和路由选择。
数据链路:相邻节点之间在链路上传递以甄为单位的数据。负责设备之间传送和识别数据帧
物理层:在传输媒体传送比特流 负责光/电信号的传输方式。
TCP/IP(四)五层协议
TCP/IP是一组协议的代名词,它还包括许多协议,组成了TCP/IP协议簇。
TCP/IP通讯协议采用了5层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求
这里提供一种含义多重表达,多种记忆方式选择最合适你的那个记
应用层:如何通过应用进程的交互来完成特定的网络应用 针对特定应用的协议。负责应用程序间沟通。
传输层:完成两台主机进程之间的通信。负责节点之间的数据传输。
网络层:为主机提供通信服务,把运输产生报文发送出去。地址管理和路由选择。
数据链路:相邻节点之间在链路上传递以甄为单位的数据。负责设备之间传送和识别数据帧
物理层:在传输媒体传送比特流 负责光/电信号的传输方式。
五元组
在TCP/IP协议中,用五元组来标识一个网络通信:
- 源IP:标识源主机
- 源端口号:标识源主机中该次通信发送数据的进程
- 目的IP:标识目的主机
- 目的端口号:标识目的主机中该次通信接收数据的进程
- 协议号:标识发送进程和接收进程双方约定的数据格式
协议分层
网络数据传输时,经过不同的网络节点(主机、路由器)时,网络分层需要对应。
以下为同一个网段内的两台主机进行文件传输:
网络协议的分层的好处:更好的扩展和维护
类似于面向接口编程:定义好两层间的接口规范,让双方遵循这个规范来对接。
对于使用方来说,并不关心提供方是如何实现的,只需要使用接口即可
对于提供方来说,利用封装的特性,隐藏了实现的细节,只需要开放接口即可。
封装和分用
不同的协议层对数据包有不同的称谓,在传输层叫做段,在网络层叫做数据报,在链路层叫做帧。
- 应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据首部,称为封装
- 首部信息中包含了一些类似于首部有多长,载荷有多长,上层协议是什么等信息。
- 数据封装成帧后发到传输介质上,到达目的主机后每层协议再剥掉相应的首部,逐层分用,层层解析,根据首部中的 “上层协议字段” 将数据交给对应的上层协议处理。