计算机网络随记

 

TCP/IP 协议自顶向下分别是:应用层、传输层、网络层、链路层。

OSI参考模型划分了7层模型,自顶向上分别是:应用层、表示层、会话层、传输层、网络层、链路层、物理层。
示意图

链路层

在数据链路层中主要有两种不同的通信方式:点对点信道,广播信道

数据链路层提供的服务:

封装成帧

数据链路层的数据协议单元——帧 每种数据链路层都规定了所能传送的帧的数据部分长度上限——最大传输单元MTU(Maximum Transfor Unit)

透明传输

透明传输是指不管所传数据是什么样的比特组合,都应该能在链路上传递
一般如果出现控制字符,在控制字符前面插入转义字符

差错检测

目前在链路层广泛采用的是循环于检测CRC(Cycle Redundancy Check)的检测技术

数据链路如何实现

链路层的主体部分是在网络适配器(网卡),位于网络适配器的核心是链路层控制器。链路层控制器的许多功能是用硬件实现的。

数据链路地址

数据链路地址的目的是在同一网络中将数据链路帧从一个网络接口发送到另一个网络接口。又称为物理地址或MAC地址。
每个网卡都有一个唯一的MAC地址,MAC地址共有48位,每个地址都有唯一性。

数据链路层的设备

数据链路层的主要设备是交换机
以太网帧包含源MAC地址和目的MAC地址,交换机从源设备接收到帧并快速发往目的地址。
交换机维护着一张表,通过这张表决定着如何转发数据流,这张表维护着端口和MAC地址的关系。


网络层

网络层提供主机到主机的通信服务。
当数据到达网络层时要经过下面三个步骤:
将第二层的帧头和帧尾移除,解析出第三层报文
检查IP报文的目的IP地址,在路由表中查找最佳路由
如果找到一条路径则将三层报文封装到新的二层帧中,并将帧转发到输出端口

网络层主要提供的服务

转发

转发是指将分组从一个输入链路接口转移到适当的输出链路接口的路由器本地动作。转发时间很短,通常由硬件实现。
转发就是上面三个步骤中的第一、三步。

路由选择

路由选择是指确定分组从源到目的所采取的端到端路径的网络范围处理过程。路由选择时间较长,通常由软件实现。
路由选择就是上面三个步骤中的第二步

网络层地址

IP地址就是给互联网上的每台主机分配的唯一的32位标识符。
可见上篇
子网掩码标志着两个IP地址是否是一个子网,每个为1代表着网络位,0代表着主机位。子网掩码不能单独使用,必须结合IP地址一起使用。其作用就是将某个IP地址划分成网络地址和主机地址。

网络层的设备

以太网的交换机工作在第二层即数据链路层,用于在同一网络内部转发以太帧。但是当源和目的IP地址位于不同网络时,以太帧必须发送给路由器。路由器负责在不同网络间传输报文,通过路由表来决定最佳转发路径。

网络层协议

ARP协议

根据IP地址获取物理地址的一个TCP/IP协议。

ICMP协议

ICMP允许主机或路由器报告差错情况和提供有关异常的报告。我们常用的PING功能,就是基于ICMP协议实现的。
————

传输层

传输层是OSI中最关键也是最重要的一层,是唯一负责总体的数据传输和数据控制的一层。
我们知道网络层为主机之间提供通信,而传输层为应用进程之间提供端到端的逻辑通信。

传输层端口

传输层使用端口来实现进程之间的通信。这里的端口是软件端口并非路由器等设备上的物理端口

传输层协议

UDP

UDP是一种无链接的传输层协议,主要用于不要求分组顺序到达的传输中,分组传输顺序的检查和排序由应用层完成。
UDP在传送数据之前不需要建立连接。远程主机在运输层收到UDP报文之后不需要回复确认。

TCP

TCP是一种面向连接的、可靠的、基于字节流的传输层协议。
TCP在传送数据之前必须先建立连接,传递数据结束之后要释放连接。由于TCP提供可靠的面向连接的运输服务,因此不可避免的增加了许多开销,如确认、流量控制、计时器以及连接管理等。
————

应用层

不同网络的应用的应用进程之间,还需要不同的通信规则。因此在运输层协议之上,还需要有应用层协议。这是因为,每个应用层协议都是为了解决某一类应用问题,而问题的解决又必须通过位于不同主机中的多个应用程序之间的通信和协作来完成。
所以每个应用层协议应当定义:
应用进程交换的报文类型,如请求报文和响应报文
各种报文类型的语法,如报文中的各个字段及其详细描述
字段的语义,既包含字段中的信息的含义
进程何时、如何发送报文,以及对报文进行响应的规则。

HTTP 协议

超文本传输协议(HTTP,HyperText Transfer Protocol)是最广泛的一种协议,我们浏览的网页,看到的新闻都是基于HTTP协议。

SMTP 协议

简单邮件传输协议(SMTP,Simple Mail Transfer Protocol)是一个相对简单的基于文本的协议,主要用于邮件的发送和接收。

DHCP 协议

动态主机配置协议(DHCP,Dynamic Host Configuration Protocol)主要用于给内部网络或者网络供应商自动分配IP地址,DHCP协议基于UDP协议实现。