TCP/IP协议族
一、TCP/IP协议族体系结构
TCP/IP协议是一个四层协议系统,自底向下分别是数据链路层、网络层、传输层和应用层。
每一层完成不同的功能,且通过若干协议来实现,上层协议使用下层协议提供的服务。
数据链路层(封装物理网络的电气细节)
数据链路层实现了网卡接口的网络驱动程序,以处理数据在物理媒介上的传输。
不同的物理网络具有不同的电气特性,网络驱动程序隐藏了这些细节,为上层协议提供了一个统一的接口。
两个常用协议:ARP/RARP协议:实现IP地址与物理地址的相互转换。网络层(封装网络连接的细节)
网络层实现数据包的选路与转发。
网络层的任务:选择不同的中间结点(路由器),已确定两台主机之间的通信路径。
网络层对上层协议隐藏了网络拓扑连接的细节,使得在传输层看来,通信的双方是直接相连的。
两个常用协议:IP协议与ICMP协议
IP协议:封装网络拓扑连接的细节。根据数据包的目的IP地址来决定如何投递它。(一跳一跳)--->数据包到达目的主机,或者发送失败而丢弃。
ICMP协议:主要用于检测网络连接。(并非严格的网络层协议:使用同一层的IP协议提供服务)
8位类型字段用于区分报文类型。两大类:一类差错报文:用来回应网络错误(目标不可达:类型值3 重定向:类型值5) 另一类查询报文:用于查询网络信息。ping程序:使用ICMP报文查看目标是否可到达。传输层(封装端到端的逻辑通信)
提供端到端的通信。(负责数据的收发,链路的超时重连)
三个常用协议:TCP/UDP/SCTP
TCP协议:为应用层提供可靠的,面向连接的和基于流的服务。
使用超时重传,数据确认等方式来确保数据包被正确地发送至目的端。
TCP协议通信的双方必须先建立TCP连接,并在内核中为该连接维持必要的数据结构,如连接的状态,读写缓冲区,以及诸多定时器等。
UDP协议:为应用层提供不可靠的,无连接的基于数据报的服务。应用层(负责处理应用程序的逻辑)
前三层负责处理网络通信的细节,为保持稳定高效,在内核空间实现。而应用层为提高可移植性,在用户空间实现。(负责众多逻辑,如文件传输,名称查询和网络管理)
ping应用程序:调试网络环境。
应用层协议:telnet/OSPF/DNS
telnet协议:远程登录协议
DNS协议:机器域名到IP地址的转换封装
上层协议是如何使用下层协议提供的服务,即封装。
- 经过TCP封装后的数据为TCP报文段。TCP协议为通信双方维持一个连接(并且在内核中存储相关数据)。
细节:发送方向TCP连接写入数据时,内核中的TCP模块首先将这些数据复制到与该连接对应的TCP内核缓冲区中。 - 经过IP封装后的数据为IP报文段。IP协议保证数据到目标地址。
- 数据链路层封装的数据为帧。MTU=1500B(字节)
- 经过TCP封装后的数据为TCP报文段。TCP协议为通信双方维持一个连接(并且在内核中存储相关数据)。