TCP/IP
五层(或四层)模型
TCP/IP
是一组协议的代名词,它还包括许多协议,组成了
TCP/IP
协议簇。 TCP/IP通讯协议采用了
5
层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。
应用层
:负责应用程序间沟通,如简单电子邮件传输(
SMTP
)、文件传输协议(
FTP
)、网络远
程访问协议(
Telnet
)等。我们的网络编程主要就是针对应用层。(拿到数据具体用来做什么)
传输层
:负责两台主机之间的数据传输。如传输控制协议
(TCP)
,能够确保数据可靠的从源主机发
送到目标主机。(只关注数据的起点和终点,不关注中间过程)
网络层
:负责地址管理和路由选择。例如在
IP
协议中,通过
IP
地址来标识一台主机,并通过路由表
的方式规划出两台主机之间的数据传输的线路(路由)。路由器(
Router
)工作在网路层。(数据如何从起点传输到终点,也就是路径规划)
数据链路层
:负责设备之间的数据帧的传送和识别。例如网卡设备的驱动、帧同步
(
就是说从网线
上检测到什么信号算作新帧的开始
)
、冲突检测
(
如果检测到冲突就自动重发
)
、数据差错校验等工
作。有以太网、令牌环网,无线
LAN
等标准。交换机(
Switch
)工作在数据链路层。(相邻节点数据如何传输,也就是数据应该通过什么样的方式传输)
物理层
:负责光
/
电信号的传递方式。比如现在以太网通用的网线
(
双绞 线
)
、早期以太网采用的的
同轴电缆
(
现在主要用于有线电视
)
、光纤,现在的
wifi
无线网使用电磁波等都属于物理层的概念。
物理层的能力决定了最大传输速率、传输距离、抗干扰性等。集线器(
Hub
)工作在物理层。(描述的是网络通信中的一些基础设施所需要遵守的规范,如网线和网口应该做出怎么样)
物理层我们考虑的比较少。因此很多时候也可以称为
TCP/IP
四层模型。
网络设备所在分层
对于一台主机
,它的
操作系统
内核实现了从传输层到物理层的内容,也即是
TCP/IP
五层模型的
下
四层
; 对于一台路由器
,它实现了从网络层到物理层,也即是
TCP/IP
五层模型的
下三层
;对于一台交换机
,它实现了从数据链路层到物理层,也即是
TCP/IP
五层模型的
下两层
;对于集线器
,它只实现了
物理层
;注意我们这里说的是传统意义上的交换机和路由器,也称为二层交换机(工作在TCP/IP
五层模型的下两层)、三层路由器(工作在TCP/IP
五层模型的下三层)。随着现在网络设备技术的不断发展,也出现了很多3
层或
4
层交换机,
4
层路由器。我们以下说的网络设备都是传统意义上的交换机和路由器。
封装和分用
封装使得上一层协议数据单元的结构在本层中被隐藏,其所有的内容在本层都作为数据来传送。 接收数据时的分用 当数据到达目的主机时,数据就开始从协议栈中由网络接口层开始上升,一层一层的去掉各层中封装的报文首部信息。 每一层协议都要去检查报文首部中的协议标识,用来确定接收数据的上层协议。 这个过程称为分用。
不同的协议层对数据包有不同的称谓,在传输层叫做段(segment)
,在网络层叫做数据报
(datagram)
,在链路层叫做帧
(frame)
。
应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据首部(header)
,称为封装
(Encapsulation)
。 首部信息中包含了一些类似于首部有多长,载荷(payload)有多长,上层协议是什么等信息。
数据封装成帧后发到传输介质上,到达目的主机后每层协议再剥掉相应的首部,根据首部中
的
"
上层协议字段
"
将数据交给对应的上层协议处理