我是靠谱客的博主 高高小土豆,最近开发中收集的这篇文章主要介绍为什么TCP/IP协议栈要进行分层?一、总结二、术语定义二、封存三、参考资料,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

目录

一、总结

二、术语定义

二、封存

1、简介

2、TCP/IP Layering(TCP/IP 分层)

1)TCP(Transmission Control Protocol)传输控制协议

2)UDP(User Datagram Protocol)用户数据报协议

3)IP(Internet Protocol)网际互连协议

4)ARP(Address Resolution Protocol)

5)Internet Address(IP地址)

3、封装与解封装

1)Encapsulation(封装)

2)Demultiplexing(解封装)

4、其它知识

1)Routers(路由器)

三、参考资料


一、总结

  1. TCP/IP 协议栈的强大之处:让完全不同的操作系统和设备之间,可以跨越全球正常通信
  2. TCP/IP协议栈分层的原因:每一层都负责通信的不同方面(Each layer responsible for a different facet of the communications)
    1. 网络层:路由服务(hop-by-hop service)
    2. 传输层:端到端服务(end-to-end service)

二、术语定义

术语

网络层

作用

网桥(bridge)

链路层

将2个或2个以上的LAN互联为一个逻辑LAN

路由器(router)

网络层

连接不同的网络(networks,如Ethernet, token ring),将一个网络的数据包发送到另外一个网络

二、封存

1、简介

  1. TCP/IP 协议栈的作用:让完全不同的操作系统和设备之间,可以跨越全球通信
  2. TCP/IP 协议栈通常被认为是4层:链路层、网络层、传输层、应用层

分层

作用

协议举例

Application

应用层

处理特定的应用程序,如 FTP, Telnet, etc 

Telnet, FTP, e-mail, DNS, etc.

Transport

传输层

在两台主机之间建立数据流

TCP, UDP

Network

网络层

处理数据包在网络层的流动,比如路由数据包

IP, ICMP, IGMP

Llink

链路层

包括设备驱动及对应的网卡,它们一起处理通信介质细节(together they handle all the hardware details of physically interfaceing with the cable),比如 Ethernet, token ring 等

 

device driver and interface card

 

2、TCP/IP Layering(TCP/IP 分层)

 

1)TCP(Transmission Control Protocol)传输控制协议

TCP(给应用层提供复杂的服务):可靠的数据传输(在2个主机之间建立可靠地数据流)。比如对应用层的数据进行切分,应答接收的数据,设置超时时间确保对端知道数据包已经发出 等,以便应用层知晓数据发送情况

 

2)UDP(User Datagram Protocol)用户数据报协议

UDP(给应用层提供简单的服务):不可靠的数据传输(将一端的数据报文发送给另一端,不保证数据报文送达另一端),任何所需要的可靠性都需要在应用层添加。

 

3)IP(Internet Protocol)网际互连协议

IP是网络层的主要协议之一,TCP/UDP(传输层)发送数据,都需要使用IP协议。

ICMP是IP层的附属,用于交换IP层的差错信息。

 

4)ARP(Address Resolution Protocol)

ARP:用于将 IP地址转换为网络接口地址(interface address)

RARA:用于将网络接口地址转换为IP地址

 

5)Internet Address(IP地址)

IP:为每一个在网络上的物理接口分配一个地址用于通信。IPv4特点如下:

  • 32位数字

  • 书写时由4个小数点分隔成4部分,每部分1个字节

  • IP地址范围5类:Class A、Class B、Class C、Class D、Class E

  • IP地址的三种类型:

    • 单播(unicast):目的地址是单个主机

    • 多播(multicast):一系列属于多播组的地址

    • 广播(broadcast):目的地址是网络上的所有主机

3、封装与解封装

1)Encapsulation(封装)

封装(加头部):应用程序将数据发送给下层的协议栈时,每经过一层,都需要添加头部(某些添加的是尾部,比如链路层-以太网协议),直到将这些数据转化为以太网数据帧(Ethernet frame)

  • TCP segment:数据经过TCP添加头部发送给IP层后,称为 TCP报文
  • UDP datagram:数据经过UDP添加头部发送给IP层后,称为 UDP报文
  • IP datagram:数据经过IP层添加头部发送给网络接口(network interface)后,称为 IP报文
  • Ethernet frame:数据经过链路层添加头部和尾部变成数据流(stream of bits)后,称为 以太网数据帧(46-1500 字节bytes)

 

a、传输层头部添加标识符(Port number),用于区分数据属于什么有应用

b、IP头部添加标识符(Protocol),用于区分属于什么协议

  • 6:TCP
  • 17:UDP
  • 1:ICMP
  • 2:IGMP

c、链路层头部添加标识符(Protocol type),用于区分是什么IP协议(IPv4, IPv6)产生的数据

2)Demultiplexing(解封装)

解封装(去头部)—:以太网接口收到数据帧之后,会将数据帧丢进协议栈,协议栈会将包头一层层去掉,同时,通过标识符判断需要将数据交给哪一个更高层的协议,直到送给 应用层。这个过程叫做解封装。

  • 去掉数据包头
  • 确认将数据交给哪一个高层协议

 

4、其它知识

1)Routers(路由器)

网络层设备:

  • 诞生背景:通过路由器(routers),它可以将不同的物理网络(networks)连接到一起,如 以太网、令牌网(token ring)、点对点连接(point-to-point links)
  • 路由器的作用:将数据报文从一个网络转发到另外一个网络

 

 

三、参考资料

  1. 书籍 W. Richard Stevens.《TCP/IP Illustrated, Volume 1: The Protocols》

  2. network、internet、Internet三个概念区别

最后

以上就是高高小土豆为你收集整理的为什么TCP/IP协议栈要进行分层?一、总结二、术语定义二、封存三、参考资料的全部内容,希望文章能够帮你解决为什么TCP/IP协议栈要进行分层?一、总结二、术语定义二、封存三、参考资料所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(61)

评论列表共有 0 条评论

立即
投稿
返回
顶部