网络模型

各种网络模型

TCP/IP网络模型一共分为四层,分别是应用层、传输层、网络层、网络接口层

OSI七层模型:应用层、会话层、传输层、网络层、数据链路层、物理层

讲述工作原理的五层模型:应用层、传输层、网络层、数据链路层、物理层

每一层使用的协议栈不同,每层协议都依赖于下一层提供的服务,层于层之间存在access point,也就是底层向上提供服务的服务访问点

应用层

应用层是所有网络模型中的最顶层,是最高级的服务,当两个不同设备的应用进行通信的时候,应用就会将准备好的分组加上应用层的首部,发送到下一层,然后交给传输层进行相关的封装。

功能:调用传输层的TCP/UDP协议,封装数据进行传输。

典型的应用层协议:HTTP/FTP/SFTP/Telnet/DNS等

由于应用层是面向客户工作的,因此是工作在操作系统的用户态,而应用层以下是工作在操作系统的内核态的。

传输层

传输层是为应用层提供传输支持的,属于面向通信部分的最高层,同时也是用户功能的最底层

作用:因为网络层提供的服务是不可靠的服务,所以我们通过传输层的TCP协议来保证数据的可靠传输。

传输层还承担了分用/复用的功能,因为网络层分组转发时,节点是不同的主机,而操作系统传输的是进程。传输层在接受了网络层的数据后,会根据传输层的信息,讲不同的数据分发到操作系统中不同的进程,这一点是通过端口来实现的。

传输层中主要的协议:TCP(传输控制协议),大部分的应用使用的是TCP,比如说HTTP应用层协议,TCP相比器UDP更加复杂,比如流量控制,超时重传等,但数据传输更加可靠,TCP的和核心是滑动窗口协议。

UDP(用户数据报协议),实现的不是面向连接的,因此不能够实现数据的可靠传输,只负责发送数据包而不保证数据能否到达对方,他的实时性是更强的。

应用层需要传输的数据在比较大的情况下,需要对TCP报文进行分段处理,达到一个最大报文段MSS时会对数据分段处理,这样即使数据出现丢失也只需要重新发送数据块而不是整个数据包。

当接收方接收数据时,传输层需将数据包分发给不同的应用,基于端口实现这一过程,传输层的报文首部会携带端口,解析完毕之后就可以分发到对应的端口了。

网络层

功能:路由选择、分组转发

路由选择可以分为域内路由协议(RIP或者OSPF)和域间路由选择协议(BGP)

核心协议为IP协议,工作原理:将上层传输层的报文拿到,并且封装网络层的首部信息,报文很大时也会进行分片,依据为MTU,在数据链路层规定。如果要将数据从一台主机发送到另一台主机,一种情况是局域网内通信,一种是联网通信,都是基于IP地址进行。

联网通信:找到网络所在路由器,将分组发送到目标路由器,然后目标路由器将数据发送到其局域网内部的主机上。

IP地址由两部分组成:网络号和主机号。通过子网掩码确定主机属于哪个网络。

用子网掩码是为了配合CIDR,因为传统的网络分类会造成比较严重的IP浪费现象。

网络接口层/数据链路层

ARP协议:将IP地址转为MAC地址的协议

1
2
3
4
5
ARP协议工作的流程是这样的:

首先在局域网内如果要数据传输,那么首先它会先将IP地址解析为MAC地址,这个过程通常要借助于设备上的ARP Cache,它本质上就是一个哈希表,当它能够通过IP地址找到MAC地址的时候,就会在MAC帧上封装对应的目标MAC地址,然后发送过去

而如果Cache中没有对应的MAC地址的时候,就会触发学习,它会发送一个广播,当有设备的IP地址对得上的话,就会发送回答,然后这时候的发送设备就会记录这个IP->MAC的映射,然后自此以后就可以直接封装MAC帧了

网络层工作原理

数据链路层:在物理层提供服务的基础上向网络层提供服务,最基本的任务是将源自网络层的数据可靠地传输到相邻节点的网络层,主要作用是加强物理层传输原始比特流的功能,将物理层提供的可能出错的物理连接改造成为逻辑上无差错的数据链路,是指对网络层表现为一条无差错的链路。

节点:主机或者路由器

链路:网络中从一节点到相邻节点的物理通道,链路的传输介质主要有双绞线、光纤和微波。分为有限链路和无线链路。一条无源的点到点的物理线路段,中间没有任何的交换节点,一条链路只是通路的一个部分。

数据链路:网络中两个节点之间的的逻辑通道,把实现控制数据传输协议的硬件和软件加到链路上就构成了数据链路。

帧:链路层的协议数据单元,封装网络层数据报

数据链路层负责把一条链路从一个结点相邻一个物理链路直接相连的相邻节点传输数据报。他把网路层交下来的数据封装成帧发送到链路上,以及吧接收到的帧中的数据取出来并且上交到网络层。

在因特网上,网络层协议数据单元就是IP数据报。数据链路层封装的帧,在物理层变成数字信号链路上传输。

数据链路层的信道类型

点对点通信(p2p):使用一对一的点对点的通信方式

广播信道:使用一对多的广播通信方式,必须使用专用的共享信道协议来协调主机的数据发送。

封装成帧

在网络层的ip数据报的前后分别添加其首部和尾部,构成了一个帧

并一同数据链路层协议的帧的首部和尾部包含的信息有明确的规则,有帧开始符和帧结束符,称为帧定界符。发送帧的时候是从帧的首部开始发送的。

接收端收到物理层传过来的比特流后,可以根据首部和尾部的标记,从收到的比特流中识别到帧的开始和结束。

最大传输单元MTU(maximum transfer unit),以太网的MTU为1500字节。

透明传输

差错检验

1
2
3
4
5
比如说1可能变成0,0也有可能变成1,这种差错叫做比特差错

传输错误的比特占所传输比特总数的比率叫做误码率(Bit Error Rate)

误码率与信噪比有很大的关系,如果设法提高信噪比,就可以使得误码率降低,但是不可能降低为0

数据链路层中采用循环冗余检验(CRC)进行差错检测。

循环冗余码计算方式:通过生成多项式的系数得到除数,在将数据用模二除法对除数进行处理,最终得到CRC(余数)

物理层

物理层作用:屏蔽不同传输媒体的通信手段的差异。

串行传输:逐个bit按时间顺序传输。