TCP/IP 协议族简述

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

  1. Link layer 也被叫做 Data link layer(数据链路层)或者 Network interface layer(网络接口层)。此 Layer 主要包括设备的驱动(device driver)和 NIC(网卡)。这一层主要用来解决物理接口上硬件的细节问题
  2. Network layer(网络层)处理 Packet(分组)在网络中移动,例如 Packet 的路由就发生在此 Layer。TCP/IP 协议族里面,IP 协议就在此 Layer 上
  3. Transport layer(传输层)主要解决两台主机之间数据流动的问题,在 TCP/IP 协议族里面,有两个非常不同的 Transport 协议:TCP 和 UDP
  4. 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 协议了:

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

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

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

数据的封装

其中:

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

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

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值