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 的标识来决定上层是由哪一个协议盒来接受数据,这被叫做数据的分用:
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 的标识来决定上层是由哪一个协议盒来接受数据,这被叫做数据的分用:
相关文章推荐
- TCP,IP,HTTP,SOCKET简述区别和联系
- OSI网络模型以及TCP/IP模型(协议族)
- TCP/IP数据加密传输及CA简述
- Http,Socket,TCP/IP 协议简述
- TCP/IP原理简述
- iOS 的 TCP/IP 协议族剖析 && Socket
- 各协议(TCP/IP、UDP、HTTP、socket)内与外简述
- Socket编程实践(1) --TCP/IP简述
- Socket编程实践(1) --TCP/IP简述
- OSI[七层]与TCP/IP[四层]模型简述简图
- 简述Socket,IP,TCP三次握手,HTTP协议(有助于理解、记忆和学习)
- 各协议(TCP/IP、UDP、HTTP、socket)内与外简述
- tcp/ip 协议族简介
- OSI七层与TCP/IP四层模型简述
- Socket编程实践(1) --TCP/IP简述
- 简述Socket,IP,TCP三次握手,HTTP协议(有助于理解、记忆和学习)
- 简述Socket,IP,TCP三次握手,HTTP协议
- 简述OSI七层协议模型、TCP/IP四层模型和五层协议之间的关系
- Perface(TCP/IP 协议族)
- 简述osi七层模型和TCP/IP五层模型