目录
将一个分散的、具有独立功能的计算机系统,通过通信设备和线路连接起来,由功能完善的软件实现资源共享和信息传递的系统
计算机网络是互联的,自治的集合
互联:相互连通 自治:没有主从关系,不是相互控制的
计算机网络传输信号,就是传输0/1组成的数据序列
速率:连接在计算机网络上的主机在数字信道上传输数据位数的速率,单位是b/s,kb/s,mb/s,Gb/s,Tb/s
计算机网络中,用于描述网络的通信线路传输数据的能力,通常是网络设备支持的最高速度
单位时间内通过某个网络的数据量
指数据从网络的一端传送到另外一端的时间
时延带宽积=传播时延*带宽,也就是以bite为单位的链路长度
发送方将数据全部传入链道后开始计时,到发送方接受到了接收方发出的收到数据的指令之间的时间
往返时延RTT=2*传播时延+接收方处理并发出收到指令的时间
通过计算机网络可以让多台计算机实现连接,但是处于一个网络下的计算机之间要遵守同一规则,这样才可以保证数据是可以被正确交互的。在计算机网络中,这些连接和通信的规则被称为网络通信协议,它对数据的传输格式,传输速率,传输步骤等做了统一规定,通信双方必须同时遵守才可以完成数据交互
将计算机网络需要执行的各种功能划分开来,每层实现某种功能
7层OSI参考模型是标准化的层次结构,但是实际使用时,我们使用4/5层次结构
用户和网络产生联系的界面,就是可以和用户交互并且需要联网才可以使用的程序
涉及到的协议:万维网(HTTP),电子邮件(SMTP)等
用于处理在两个通信系统中交换信息的表达方式
功能一:数据格式的变化(微信聊天,发一个表情包,计算机发送的是一个二进制数据,但是显示到手机上就会是表情包)
功能二:数据加密解密(聊天软件会将我们发送的数据加密,防止被恶意窃取)
功能三:数据压缩和解压缩
向另一台发送建立连接的请求并在连接上发送数据(通信管理)
功能一:建立,管理,终止会话
功能二:如果通信突然中断,在此处插入校验点,下次直接从校验点处恢复通信
负责两个进程的通信(数据传输)传输单位是报文段或用户数据报
可靠传输,不可靠传输
可靠传输:保证另一个主机是收到传输数据的(A主机给B主机发送消息之前,要建立连接,保证B主机在线;A主机给B主机发一个数据,B主机会给收到数据的反馈,A主机收到这个反馈之后才会继续传入数据)
不可靠传输:不保证另一个主机的进程一定是在运行的
传输层有两个协议,TCP(传输控制协议)和UDP(用户数据报协议)
UDP是无连接通信协议,即发送信息时,发送方和接收方不需要建立逻辑连接(不可靠传输)
TCP是面向连接的通信协议,即发送信息时,发送方和接收方需要建立逻辑连接(可靠传输)
将用于传输的数据进行分组,将分组发送到目标计算机(地址管理与路由选择)
路由选择,选择最适合的一条线路进行数据传输
链路层是用于定义物理传输通道,通常是对某些网络连接设备的驱动协议,例如针对光纤,双绞线的驱动
将网络层传递的数据组织成帧,形成二进制序列
物理层
将数据链路层的数据放在物理媒体上传输(0,1表示电压高低)
单工:传输数据,只能有一个主机发送,一个主机接受
半双工:传输数据时,两个主机都可以发送也可以接受,但是同一时间只能有一个主机发送信息
双工:两个主机都可以传输数据(打电话)
想要计算机可以实现通信,每一个计算机需要指定一个标识号,通过这个标识号可以指定接受或者发送数据的计算机,这个标识号称为IP地址
目前,常用的IP地址版本是IPv4,由四个字节大小的二进制表示,如:00001010000000000000000000000001,为了方便我们读取,常用10进制形式表示,将其分开,每个字节表示一个十进制数,10.0.0.1
通过IP地址可以定位到计算机,但是要想定位到计算机内的进程,还需要端口号
在计算机中,不同的应用程序通过端口号来区分,端口号用两个字节表示,范围是0-65535
应用层:用户使用的各种联网使用的程序
传输层:负责两台主机的数据传输(只关注结果)
网络层:负责地址管理和路由选择
(从多种线路中选择一个线路)点到点(不一定相邻)
点到点:主机A到主机B,有两条路径,网络层负责选择出一条传输路径
数据链路层:负责设备的数据帧传输,相邻设备的传输
主机A-路由器-主机B,数据链路层负责主机A和路由器的数据传输,路由器和主机B的数据传输
物理层:负责光/电信号的传输,负责对网络通信的硬件设备(网线/网卡)的约定,例如约定网线的内部线路数,约定路由器网口的形状和尺寸等
用户在淘宝买了件衣服
应用层负责用户在淘宝下单操作的完成
传输层只关注结果,也就是快递能不能从商家那到用户手上
网络层负责规划路线,例如浙江到西安的路径就有多条,网络层负责选择其中一条线路,也就是快递公司选择传输路径的过程
数据链路层就负责浙江-山东的传输,山东-西安的传输,也就是快递小哥负责的工作
物理层就是通信过程中的硬件设备,也就是运输快递的传输方式(陆运,海运),传输工具(货车/电动车)等
从以上过程来看,每个层次将通信过程逐步细节化
传统意义上,一台路由器,主要实现物理层,数据链路层,网络层;
一台交换机,主要实现物理层,数据链路层
给朋友用QQ发送消息,内容为hello
数据从上层传播到下层
应用层
根据QQ内部的应用层协议,将数据构造为一个应用层的协议报文
假设出一个协议报文的格式
传输层(操作系统内核中)
根据应用层的协议报文,构造传输层的协议报文
传输层的协议有TCP和UDP
TCP的协议报头就有好多信息,包括了发送端的端口号和接收端的端口号
网络层(操作系统内核)
将传输层的数据,构造称为网络层的协议报文
网络层的协议有:IP,ICMP,IGMP等
IP的协议报头就有好多信息,包括了发送端的IP地址和接收端的IP地址
数据链路层(驱动程序)
在网络层数据基础上,构造数据链路层的协议报文(形成数据帧,包括帧头和帧尾)
数据链路层的协议有:以太网
帧头的信息:接下来相邻的设备地址
也就是说IP协议存储的是起点和终点(浙江,渭南)
帧头存储的信息就是(浙江,西安),随着数据的转发不断发送变化,(西安,渭南)
物理层(硬件设备)
将数据链路层的以太网数据帧(0,1组成的二进制序列)形成高低电平,通过网线进行传播;或者形成高低频的电磁波,通过无线/光纤的形式传播
物理层(硬件设备)
此时,如果A,B两个主机是网线直连的,那么数据到了B的物理层
B主机的硬件层感受得到了高低电平或者高低频信号,将其转化为0,1组成的以太网数据帧,将数据交给数据链路层
数据链路层(驱动程序)
对以太网数据帧进行解析,去掉帧头帧尾,取出IP数据报(IP地址),将数据交给网络层
网络层(内核)
网络层协议(IP协议)对IP数据报内容进行解析,去掉IP协议报头,取出TCP数据报(端口号),交给传输层
传输层(内核)
传输层协议(TCP协议)对数据进行解析,去掉TCP协议报头,取出TCP协议报,交给应用层
应用层(应用程序)
调用socket API(套接字 API :程序员创建的网络编程 API)从内核读取这个数据报,按照应用层协议进行解析,根据解析结果显示到窗口
但是AB之间通常是包括路由器或者交换机的