您的位置:首页 > 理论基础 > 计算机网络

TCP/IP 协议族简述

2015-01-27 01:03 274 查看
网络协议通常都是分层开发的,一个协议族(protocol suite)则是不同 layer(层)上的协议的集合,TCP/IP 协议族是我们常用的一个协议族,其包含 4 个 layer:

Link layer 也被叫做 Data link layer(数据链路层)或者 Network interface layer(网络接口层)。此 Layer 主要包括设备的驱动(device driver)和 NIC(网卡)。这一层主要用来解决物理接口上硬件的细节问题
Network layer(网络层)处理 Packet(分组)在网络中移动,例如 Packet 的路由就发生在此 Layer。TCP/IP 协议族里面,IP 协议就在此 Layer 上
Transport layer(传输层)主要解决两台主机之间数据流动的问题,在 TCP/IP 协议族里面,有两个非常不同的 Transport 协议:TCP 和 UDP
Application layer(应用层)主要处理特定的应用程序细节。不同的 TCP/IP 实现下都会提供一些通用的程序:Telnet、FTP、SMTP 等

各层协议:

Application layer — Telnet、FTP、HTTP、SMTP、DNS 等

Transport layer — TCP、UDP

Network layer — IP、ICMP、IGMP

Transport layer 协议:

通常来说,程序员最关心了两个协议就是 Transport layer 的 TCP 和 UDP 协议了:

TCP 协议提供了两台主机之间可靠的通讯,使得 Application layer 无需关注这些细节
UDP 协议只是为 Application layer 提供非常简单的服务,它只是将 datagrams(数据报)从一台主机发送到另外一台,并不保证数据能够到达另一端,可靠性必须要由 Application layer 来提供

TCP/IP 协议族协议分层图示:



数据的封装

当一个应用程序使用 TCP 发送数据的时候,数据被发送到协议栈(protocol stack)上,然后通过各个 Layer 最终以 Bits 流发送到网络上。每个 Layer 都会在数据上加一些 Header 信息(有时候还需要加上尾部信息),下图显示了这个过程:



其中:

TCP 发送给 IP 的数据单元被叫做 TCP Segment(TCP 报文段)
IP 发送给网络接口的数据单元被叫做 IP Packet(IP 分组)
通过以太网传送的 bits 流被叫做 Frame(帧)

UDP 发送给 IP 的数据单元被叫做 UDP Datagram(UDP 数据报),UDP Header 为 8 个字节。

UDP 和 TCP 都使用了一个 2 个字节的端口号(port numbers)来标识一个应用程序,UDP 和 TCP 把源和目标 port numbers 保存在 Header 中。

数据的分用(Demultiplexing)

当主机接收到数据的时候,数据就从协议栈的底部向上走,逐步去掉各个协议加上去的 Header。每个协议盒都会查看 Header 的标识来决定上层是由哪一个协议盒来接受数据,这被叫做数据的分用:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: