🍏 TCP/IP 协议
相关问题:
- 如何理解 TCP/IP 协议?
# TCP/IP 的概念
是 传输控制协议 / 网际协议。指能够在多个网络之间实现信息传输的协议簇。
- TCP 传输控制协议: 面向连接的、可靠的、基于字节流的传输层通信协议;
- IP 网际协议:用于封包交换数据网络的协议;
TCP / IP 不仅仅是指 TCP 和 IP 两个协议,而是指由 FTP、SMTP、TCP、UDP、IP 等协议构成的协议簇。仅仅因为 TCP 协议与 IP 协议最具代表性,所以统称为 TCP/IP 协议簇(TCP/IP Protocol Suite or TCP/IP Protocols) 。
# TCP/IP 划分层次
TCP/IP 协议簇划分了 五层体系 或者 四层体系:
五层体系协议结构:综合 OSI 和 TCP/IP 的优点,包括应用层、传输层、网络层、数据链路层和物理层。
五层体系只是为了介绍计算机网络原理。实际应用是 TCP/IP 四层体系结构。
四层体系结构:包括应用层、传输层、网络层、网络接口层。
# 五层体系
应用层:TCP/IP 将 OSI 参考模型中的会话层、表示层、应用层的功能合并到一个应用层中实现,通过不同的应用层协议为不同的应用提供服务。(例如: FTP、TELNENT、DNS、SMTP)
传输层:对应 OSI 参考模型的传输层。为上层实体提供源端到对端主机的通信功能。定义了两个主要的协议:传输控制协议(TCP)和用户数据报协议(UDP)。
网络层:负责为分组网络中的不同主机提供通信服务,并且通过选择合适的路由将数据传递到目标主机。在发送数据时,网络层把运输层产生的报文段或者用户数据封装成分组和包进行传送。
数据链路层:在两个相邻节点传输数据时,将网络层交下来的 IP 数据包组装成帧,在两个相邻节点之间的链路上传送帧。
物理层:保证数据可以在各种物理媒介上进行传输,为数据的传输提供可靠的环境。
# 四层体系
应用层:
功能:负责一切与应用程序相关的功能。
相关协议:FTP、HTTP、DNS、SMTP、NFS
传输层:
单位:报文段;
功能:负责提供可靠的传输服务,对应 OSI 参考模型的第四层。
相关协议:TCP、UDP
网络层(网络互联层):
单位:数据报;
功能:负责网络间的寻址数据传输,对应 OSI 参考模型的第三层。
相关协议:IP、ICMP、 ARP、 RARP
网络接口层:
单位:帧;
功能:负责实际数据的传输,对应 OSI 参考模型的下两层。
相关协议: HDLC、 PPP、 SLIP
# OSI 参考模型
OSI (Open System Interconnect) 模型为 开放式通信系统互联参考模型,是国际标准化组织提出的 计算机在世界范围内互联为网络的 标准框架。
将计算机网络体系结构分为 7 层,每一层都有各自的功能和协议,并且完成与相邻层的接口通信,互不打扰。
应用层:定义了应用进程之间的交互规则,通过不同的应用层协议为不同的网络应用提供服务。例如,DNS 域名系统、HTTP 协议、电子邮件协议 SMTP 协议等。
- 作用:通过应用程序间的交互完成特定的网络应用。
- 数据单元:报文。
表示层:提供的服务包括 数据压缩、数据加密、数据描述;使应用程序不必担心在各台计算机中表示和存储的内部格式存在差异。
- 作用:使通信的应用程序能够解释交换数据的含义。为上层应用层提供服务,向下接收来自会话层的服务。
会话层:提供了数据交换的定界和同步功能,包括建立检查点和恢复方案的方法。
- 作用:负责建立、管理、终止表示层实体之间的通信会话。
传输层:向高层屏蔽下层数据通信的细节。是计算机通信体系结构中关键的一层。
- 作用:为两台主机进程之间的通信提供服务,处理数据包错误、数据包次序,以及其它一些关键传输问题。
网络层:
两台计算机之间传送数据时,通信链路往往不止一条,传输的信息可能经过很多通信子网。
作用:选择合适的网间路由和交换节点,确保数据按时成功传送。在发送数据时,网络层把传输层产生的报文或者用户数据封装成分组或包,向下传输到数据链路层。
使用无连接的 IP 网际协议(Internet Protocol) 和许多路由协议。所以网络层也称 IP 层。
数据链路层:
也叫链路层,在网络层和物理层之间。两台主机之间的数据传输,总是在一段一段的链路上传送的,这时需要使用专门的链路层协议。
作用:在两个相邻节点之间传送数据时,数据链路层将网络层交下来的 IP 数据组装成帧,在两个相邻节点间的链路上传送帧。
每一组数据帧包含 报头 head 和 数据 data 两部分:
head 标明数据发送者、接受者、数据类型,例如 MAC 地址;
data 存储了计算机之间交互的数据。
通过控制信息可以知道帧的起止比特位置,也能使接收端检测出所收到的帧有无差错,如果发现差错,数据链路层能够简单丢弃这个帧,以免继续占用网络资源。
物理层:
作用:实现计算机节点之间比特流的透明传送。
主要任务是确定传输媒体接口的一些特性(机械特性、电气特性、功能特性、过程特性)。主要和硬件有关。
数据在各层中的传输过程:
应用层中的报文传送到运输层。
最简单的情况下,运输层收到报文并附上附加信息,该首部将被接收端的运输层接收。
应用层和运输层首部信息构成运输层报文段,附加信息可能包括:允许接收端向上适当的应用程序交付报文的信息以及差错检查位的信息。该信息能让接收端判断报文中的比特是否在途中已被改变。
运输层向网络层传递该报文段,网络层增加了如源头和目的端系统地址等网络层首部信息,生层网络层数据报。
网络层数据报传递给数据链路层,在数据链路层中数据报添加发送端 MAC 地址和接收端 MAC 地址后,被封装成帧。
在物理层中,数据帧被封装为比特流,然后通过传输介质传送到对端。
对端通过一步步解开封装,获取到传送的数据。
# TCP/IP 与 OSI 参考模型对比
相同点:
- 都采用了层次结构;
- 都能提供面向连接和无连接的两种通信服务机制;
不同点:
- OSI 采用七层模型;TCP/IP 采用 四层或者五层 结构;
- TCP/IP 没有对网络接口层进行细分;OSI 参考模型对服务和协议进行了明确的细分;
- OSI 作为概念模型实现较为困难;TCP/IP 能够投入实际应用中;
- TCP/IP 协议去掉表示层和会话层原因在于:表示层和会话层、应用成都是在应用程序中内部实现的,最终产出的是一个应用数据包,而应用程序之间是无法实现代码的抽象构想的,所以 OSI 参考模型的分层无法实现。