总括
- 协议是保证各设备之间可以互操作的统一标准
- 应用层协议:直接提供给应用进程使用的协议,DNS,HTTP
- 传输层协议:进程到进程之间使用,TCP面向可靠连接服务,UDP面向不可靠连接服务
- 网络层协议:主机到主机E2E,分为传统协议和SDN,传统协议(IP和路由协议,路由器将IP报文分组,然后查路由表转发),SDN(数据定义网络,分为数据平面和控制平面)
- 数据链路层协议:点到点P2P
- 物理层协议:数字信号转化为物理信号
1 Internet
从具体构成来说,Internet是网络的网络。网络由节点和边组成,节点包括主机节点和数据交换节点(交换机、路由器、负载均衡设备),边包括接入网、骨干链路网,依靠协议来完成数据的交换。
2 网络边缘
- 网络由边缘、核心和接入三部分组成
- 客户/服务器模式CS、p2p模式(节点既请求服务,也提供服务)
- TCP:面向连接、可靠,HTTP、Web、Telnet、SMTP
- UDP:无连接、不可靠,流媒体、远程会议、DNS
3 网络核心
- 路由器的网状网络
- 数据传输方式:电路交换和分组交换
3.1 电路交换
- 建立连接——数据传输——释放连接
- 如打电话,需要找到一条A到B的路径,并独占该路径
- 速度快、实时、资源利用率低、建立连接时间长
3.2 分组交换
- 分组交换分为虚电路和数据报两种方式
- 虚电路方式:虚电路服务模拟了传统的电路交换,但在数据传输前并不需要建立实际的物理连接,而是建立一条逻辑连接,保证数据的顺序传输。
- 数据报方式:将数据包分组成更小的数据包进行传输,采用存储转发的机制,不用建立专用通信线路。如A将数据包P转发给E,拆分为p1,p2,p3,按照路由选择算法,A将p1丢给B路由器,最终汇总到E
- 存在延时,可能造成通信阻塞,存在重复无用数据,可能丢包,但资源利用率高
- 网络核心的关键功能:路由和转发
4 接入网和物理介质
- 住宅接入:modem调制解调,利用电话线传播数据,不能同时上网和打电话(DSL方式通过区分电信号和上网信号的频率可以同时传播)
- 企业接入网:局域网,Ethernet,以太网
- 无线接入网络:WLANs和广域无线接入
- 物理介质:双绞线、同轴电缆、光纤
5 Internet结构和ISP
- 互联网另一种划分方式:由多个ISPs网络组成(ISP是子网络,比如学校教育网)
- ISP运营商提供网络,ICP运营商提供服务,为了提高服务质量,IPC会选择部署数据中心,通过专网连接
- IXP是不同ISP的对等接入点
6 分组、时延
- 节点处理延时: 检查 bit级差错、 检查分组首部和决定将分组导向何处
- 排队延时:在输出链路上等待传输的时间、 依赖于路由器的拥塞程度
- 传输延时: R=链路带宽(bps) 、L=分组长度(bits) ,将分组发送到链路上的时间= L/R ,存储转发延时
- 传播延时: d = 物理链路的长度 、s = 在媒体上的传播速度 (~2x10^8 m/sec) ,传播延时 = d/s
7 协议层次和服务模型
7.1 服务
- 服务是垂直的
- 服务是底层向上层实体提供它们之间通信的能力,分为服务用户和服务提供者
- 原语是上层使用下层服务的形式,服务都是通过原语来进行交互的
- 服务访问点SAP,是上层使用下层服务的层间接口(地点),如邮箱、端口
- 分为面向连接和无连接的服务
7.2 协议
- 协议是水平的
- 协议是对等层实体之间在相互通信的过程中,需要遵循的规则的集合
- 服务和协议的区别:服务是垂直的,协议是水平的
- 关系:本层协议的实现靠下层的服务实现,协议实现的目的是为上层提供更好的服务
- 本层为上层提供的服务包括下面所有层向上提供的服务以及本层间的协议
7.3 数据单元DU
- 上层交给下层的要传输的数据成为SDU(服务数据单元),穿过SAP时要加入上层的ICI(接口控制信息)
- 穿过SAP后,上层的SDU在头部加上本层用于控制的交换信息(ICI,本层的ICI可能来自于上层的ICI),合成PDU(协议数据单元),又作为下下层的SDU
- 当SDU很大时,需要将其拆分为小块的SDU,再加上ICI形成PDU,一对多
- 当SDU很小时,可以将若干个SDU组合为大的SDU,再加上ICI形成PDU,多对一
- 每一层的PDU称呼:应用层叫报文,传输层叫报文段,网络层叫分组(无连接模式下叫数据报),链路层叫帧,物理层叫位
7.4 Internet协议栈
从下到上:
- 物理层和链路层被封装在网卡中,实现数字信号转化、帧数据的拆分和恢复。
- 网络层提供的服务:以分组为单位,提供端到端的数据传输,功能是路由和转发,路由是全局的(如何找路),转发是局部的(从哪个端口进哪个出)
- 传输层提供的服务:在网络层提供的端到端数据传输基础上,对数据进行应用程序的区分;将网络层不可靠的服务转为可靠的服务。
- 应用层提供的服务:在传输层基础上,实现各种网络应用
7.5 ISO/OSI参考模型
- 相比TCP/IP协议栈,在应用层下加了表示层和会话层(从应用层细分出来的),分别实现表示转换和会话管理的功能
7.6 封装和解封装
- 源端做封装,目标端做解封装,路由器做三层的封装和解封装,交换机做两层的封装和解封装
- 传输层交给网络层后,数据头加上目标和源IP地址
- 网络层交给数据链路层后,数据头加上目标和源MAC地址
- 路由器是网络交换设备,每张网卡对应一个网络,工作在网络层;交换机工作在数据链路层
- 交换机负责连接网络设备(如交换机、路由器、防火墙、无线AP等)和终端设备(如计算机、服务器、摄像头、网络打印机等);路由器实现局域网与局域网的互联,局域网与Internet的互联;而防火墙作为一个安全网络设备,作用于内部网络与内部网络之间,或者内部网络与Internet之间。
8 TCP/IP 网络模型有哪几层
8.1 应用层
应用层只专注于为用户提供应用功能,比如 HTTP、FTP、Telnet、DNS、SMTP等。
应用层是不用去关心数据是如何传输的,就类似于,我们寄快递的时候,只需要把包裹交给快递员,由他负责运输快递,我们不需要关心快递是如何被运输的。
而且应用层是工作在操作系统中的用户态,传输层及以下则工作在内核态。
8.2 传输层
【进程到进程】【TCP报文段,UDP数据报】应用层的数据包会传送给传输层,传输层是为应用层提供网络支持的。
传输层有两个传输协议。
- TCP传输控制协议:特性有流量控制、超时重传、拥塞控制,都是为了数据包能可靠的传输给对方。
- UDP用户数据报协议:只负责发送数据,不保证数据包是否能抵达对方,但实时性相对更好,传输效率更高。
8.3 网络层
【主机到主机/端到端】【IP分组】网络层负责将数据从一个设备传输到另一个设备。
IP协议:路由和转发。
8.4 网络接口层
【点到点】【帧】网络接口层主要为网络层提供「链路级别」传输的服务,负责在以太网、WiFi 这样的底层网络上发送原始数据包,工作在网卡这个层次,使用 MAC 地址来标识网络上的设备。