TCP/IP协议族理论上是七层模型,在实际应用中是四层,下面介绍每一层的作用。
写博客
1.数据链路层
数据链路层实现了网卡接口的网络驱动程序,以处理数据在物理媒介(比如以太网、令牌环网)上的传输。不同的物理网络具有不同的电器特性,网络驱动程序隐藏了这些细节,为上层协议提供了一个统一的接口。
数据链路层两个常用的协议是ARP协议和RARP协议。
2.网络层
网络层的核心协议是IP协议,它的作用是实现数据包的选路和转发。IP协议根据数据包中的目的IP地址来决定如何投递它。如果数据包不能直接发送给目标主机,那么IP协议就为它寻找一个合适的下一跳路由器,并将数据包交付给该路由器来转发。多次重复这一过程,数据包最终达到目标主机,或者由于发送失败而被丢弃。
3.传输层
传输层为两台主机上的应用程序提供端到端(这里的端是指端口)的通信。传输层协议有三个:TCP协议、UDP协议和SCTP协议,这里主要介绍TCP协议和UDP协议。
TCP协议(Transmission Control Protocol,传输控制协议)为应用层提供面向连接的、可靠的和基于数据流的服务。面向连接,使用TCP通信的双方需要在传输数据前通过三次握手建立连接,并在内核中为该连接维持一些必要的数据结构,如连接的状态、读写缓冲区和多个定时器等;可靠的,TCP协议通过超时重传和确认机制来保证数据从发送端到达接收端;基于数据流,发送的数据没有边界(长度)限制,它源源不断从通信的一端流入另一端。
UDP协议(User Datagram Protocol,用户数据报协议)为应用层提供无连接、不可靠的和基于数据报的服务。无连接,使用UDP协议通信的双方不保持一个长久的联系,因此应用程序每次发送数据都要明确指定接收端的地址;不可靠的,意味着UDP协议无法保证数据从发送端正确地传送到目的端,如果数据在中途丢失,不会重发;基于数据报,每个UDP数据报都有一个长度,接收端必须以该长度为最小单位将其所有内容一次性读出,否则数据将被截断。
4.应用层
应用层负责处理应用程序的逻辑。
应用层的协议很多,如ping、telnet、OSPF和DNS等。
5.常用协议及作用
协议 | 作用 |
TCP | 提供端到端的可靠通信 |
UDP | 提供端到端的不可靠通信 |
IP | 数据包的路由和转发 |
ARP | 将IP地址转换为MAC地址 |
RARP | 将MAC地址转换为IP地址 |
DNS | 将域名解析成对应的IP地址 |
ICMP | 网络诊断与检测 |