TCP/IP协议栈学习记录

TCP/IP协议栈是指能够在多个不同网络间实现信息传输的协议簇。其中TCP协议和IP协议是最具有代表性的两个协议,而协议簇中还包括FTP、SMTP、UDP等协议。

下面的图表试图显示不同的TCP/IP和其他的协议在最初OSI模型中的位置

TCP/IP参考模型OSI模型
7应用层
application layer
应用层
application layer
例如HTTPSMTPSNMPFTPTelnetSIPSSHNFSRTSPXMPPWhoisENRPTLS
6应用层表示层
presentation layer
例如XDRASN.1NCPTLSASCII
5应用层会话层
session layer
例如ASAP、ISO 8327 / CCITT X.225、RPCNetBIOSWinsockBSD socketsSOCKSPAP
4传输层
transport layer
传输层
transport layer
例如TCPUDPRTPSCTPSPXATPIL
3网络互连层
internet layer
网络层
network layer
例如IPICMPIPXBGPOSPFRIPIGRPEIGRPARP[来源请求]RARP[来源请求]X.25
2网络访问(链接)层
Network Access (link) layer
数据链路层
data link layer
例如以太网令牌环HDLC帧中继ISDNATMIEEE 802.11FDDIPPP
1物理层
physical layer
例如调制解调器无线电光纤

在这里我们使用OSI模型对TCP/IP协议栈进行分析。

以下内容译自 TCP/IP GUIDE

1 – 物理层 Physical Layer

物理层是OSI参考模型的最低层;它通常缩写为“PHY”。与模型的其他层相比,物理层是特殊的,因为它是唯一一个通过网络接口物理移动数据的层。所有其他层都执行有用的功能来创建要发送的消息,但是它们都必须沿着协议栈传输到物理层,在那里它们实际上通过网络发送出去。

物理层也是“特殊的”,因为它是唯一一个真正不适用于TCP/IP参考模型的层。然而在研究TCP/IP的过程中,了解它相对于TCP/IP协议所在的其他层的作用和意义仍然很重要。

理解物理层的作用

“物理层”的名称可能有点问题。因为这个名字并且我刚才所说的物理层实际作用为传输原始数据。许多人认为物理层只与实际的网络硬件有关。有人可能会说物理层是“网络接口卡和电缆”。然而,事实并非如此。物理层定义了许多网络功能,而不仅仅是硬件电缆和卡。

“所有网络硬件都属于物理层”这样的说法同样不是严格准确的。为了通过网络发送数据,所有硬件必须与物理层有一定的关系,但硬件设备功能通常横跨OSI模型的多个层,包括物理层和其他层。例如,以太网网络接口卡在物理层和数据链路层执行功能。

物理层功能

以下是OSI参考模型中物理层的主要职责:

  • 定义硬件规范:定义电缆、连接器、无线无线电收发器、网络接口卡和其他硬件设备的详细规范通常是物理层的功能(尽管也有部分是数据链路层定义的;见下文)。
  • 编码和信号收发(signaling):物理层负责各种编码和信号收发功能,将驻留在计算机或其他设备中的比特数据转换为可以通过网络发送的数据信号。
  • 数据传输和接收:在对数据进行适当编码后,物理层实际进行数据传输和数据接收。请注意,这同样适用于有线和无线网络,即使无线网络中没有有形电缆!
  • 拓扑和物理网络设计:物理层也被认为是与网络硬件设计相关的领域,如LAN和WAN拓扑。

一般来说,物理层技术是处于最低级别的技术,处理通过网络发送的实际1和0。例如,在考虑网络互连设备时,最简单的设备在物理层运行:中继器、传统集线器和收发器。这些设备完全不知道消息的内容。它们只是获取输入位并将其作为输出发送。像交换机和路由器这样的设备在更高的层次上运行,它们接收到的数据不仅仅是表示一或零的电压或光脉冲。

物理层和数据链路层之间的关系

需要指出的是,虽然网络技术的物理层初步定义了它所使用的硬件,但物理层与数据链路层密切相关。因此,通常不可能“独立于”在数据链路层来定义物理层上的硬件。例如,以太网是一种描述特定类型电缆和网络硬件的技术,但以太网的物理层只能与其数据链路层方面隔离到某一点。例如,虽然以太网电缆是“物理层”,但其最大长度与数据链路层存在的消息格式规则密切相关。

此外,一些技术在物理层执行通常与数据链路层更密切相关的功能。例如,通常让物理层为数据链路层数据帧执行低级别(位级别)重新打包用以进行传输。在某些情况下,还可以在第1层进行错误检测和纠正。大多数人都会认为这些是“第二层功能”,但实际上是在第一层物理层执行。

在许多技术中,许多物理层可以与数据链路层一起使用。这里以以太网为经典示例,其中存在数十种不同的物理层实现,每个物理层却可以使用相同的数据链路层(可能略有变化)。

物理层子层

最后,许多技术将物理层进一步细分为子层。随着时间的推移,为了提高性能,物理层编码和传输方法变得越来越复杂。物理层可以被分为多个层,以允许不同的网络传输介质由相同的技术支持,同时物理层在各种传输介质之间共享其他通用功能。一个很好的例子是用于快速以太网、千兆以太网和万兆以太网的物理层架构。

:在某些情况下,用于通过网络或通信线路传输位的物理层技术称为传输方法(transport method)。不要将其与OSI传输层(transport layer)(第4层)的功能混淆。

关键概念:OSI参考模型的最低层是物理层。它是网络硬件规范的领域,是执行数据编码、信号收发、传输和接收功能的技术所在地。物理层与数据链路层密切相关。

2 – 数据链路层 Data Link Layer

OSI参考模型堆栈中的第二层是数据链路层,通常缩写为“DLL”(计算机领域歧义缩写DynamicLinkLibrary动态链接库等)。数据链路层(Data Link Layer),有时也称为链路层(Link Layer),是定义有线和无线局域网(LAN)技术的主要功能的一层。例如,以太网Ethernet、令牌环Token Ring、光纤分布式数据接口Fiber Distributed Data Interface(FDDI)和802.11(“无线以太网”或“Wi-Fi”)。这些技术有时都被称为“数据链路层技术”。在数据链路层连接的一组设备通常被认为是一个简单的“网络”,而不是一个互联网络。

数据链路层子层:逻辑链路控制(LLC)和介质访问控制 (MAC)

数据链路层通常在概念上分为两个子层:逻辑链路控制 Logical Link Control(LLC)和介质访问控制 Media Access Control(MAC)。该划分基于IEEE 802项目中使用的体系结构。IEEE工作组(电气与电子工程师协会)负责创建定义许多网络技术的标准(包括我上面提到的除FDDI之外的所有网络技术)。正如我们之前对网络模型概念的讨论中所解释的那样,通过将数据链路层分割分离为LLC和MAC功能,不同网络技术的互操作性变得更容易。

数据链路层功能

以下是在数据链路层执行的关键任务:

逻辑链路控制(LLC):逻辑链路控制是指在网络上本地设备之间建立和控制逻辑链路所需的功能。如上所述,这通常被视为DLL子层;它向其上面的网络层提供服务,并隐藏数据链路层的其余细节,以允许不同的技术与更高层无缝协作。大多数局域网技术使用IEEE 802.2 LLC协议。

介质访问控制(MAC):这是指控制设备对网络介质访问的功能。由于许多网络使用共享介质(例如单个网络电缆,或电气连接到单个虚拟介质中的一系列电缆),因此有必要制定管理介质的规则以避免冲突。例如以太网使用CSMA/CD方法进行介质访问控制,而令牌环使用令牌传递。

数据帧:数据链路层负责将高级消息最终封装到物理层通过网络发送的帧中。它包括三部分:帧头,数据部分,帧尾。其中,帧头和帧尾包含一些必要的控制信息,比如同步信息、地址信息、差错控制信息等;数据部分则包含网络层传下来的数据,比如IP数据包。

硬件寻址:数据链路层是OSI模型中涉及寻址的最低层:用特定目标地址标记信息。网络上的每个设备都有一个唯一的编号,通常称为硬件地址或MAC地址(Media Access Control Address),数据链路层协议使用该编号来确保发送给特定机器的数据正确到达该设备。

错误检测和处理:数据链路层处理发生在网络堆栈较低级别的错误。例如,循环冗余校验(CRC)字段通常用于允许接收数据的设备检测数据是否正确接收。

物理层要求定义和网络互连设备层

正如我在物理层中提到的,物理层和数据链路层是密切相关的。对网络物理层的要求通常是特定技术的数据链路层定义的一部分。某些物理层硬件和编码方面由所使用的DLL技术指定。最好的例子是以太网标准IEEE 802.3,它不仅规定了以太网在数据链路层的工作方式,还规定了其各种物理层。

由于数据链路层和物理层密切相关,许多类型的硬件都与数据链路层相关。网络接口卡(NIC)通常实现特定的数据链路层技术,因此它们通常被称为“以太网卡”、“令牌环卡”等。还有许多网络互连设备被称为部分地或全部地“在第2层操作控制”,因为它们通过查看数据链路层帧信息来决定如何处理接收到的数据。这些设备包括大多数桥接器bridge、交换机switch和barter(不懂),尽管后两者也包括第三层执行的功能。

通常与第2层相关的一些最流行的技术和协议:以太网、令牌环、FDDI(加上CDDI)、HomePNA(Home Phoneline Networking Alliance)、IEEE 802.11、ATM(Asynchronous Transfer Mode)和TCP/IP的串行链路接口协议(SLIP Serial Line Internet Protocol)和点对点协议(PPP)。

关键概念:OSI参考模型第二层是数据链路层。这是定义大多数局域网和无线局域网技术的地方。第二层负责逻辑链路控制、介质访问控制、硬件寻址、错误检测和处理,并定义物理层标准。根据使用该体系结构的IEEE 802项目,它通常分为逻辑链路控制(LLC)和介质访问控制(MAC)子层。

3 – 网络层 Network Layer

OSI参考模型的第三层是网络层。如果数据链路层基本上定义了网络的边界,那么网络层就是定义了网络互联(internetworks)是如何工作的层。网络层是OSI模型中涉及从一台本地计算机到另一远端计算机(即使目标计算机属于另一网络)获取实际数据的最低层。与之相反的是,数据链路层只处理本地的设备之间的数据交互。

虽然OSI参考模型中的从第二层到第六层任一层都被认为是它们相邻两层之间的“隔栏”(即相邻层无法相互感知)。而在这方面网络层尤为重要,正是在网络层才真正开始对物理层、数据链路层实现的数据通路进行更高层、更抽象的过渡。即上层本身并不太关心数据交付,而是将关注重心转换到数据目的地执行的特定任务上。而网络层上层传输层将继续进行这种“抽象转换”。

网络层功能

通常由网络层执行的一些特定作业包括:

逻辑寻址:通过网络进行通信的每个设备都有一个与之关联的逻辑地址,有时称为第三层地址。例如,在因特网上,Internet协议(IP)是网络层协议,每台机器都有一个IP地址。请注意,寻址也在数据链路层(MAC)完成,但这些地址指的是本地物理设备。相反,逻辑地址独立于特定硬件,在整个互联网络中必须是唯一的。

路由:在一系列互连网络之间发送数据应该是网络层的定义功能。在网络层起作用的设备和软件例程用于处理不同来源的传入数据包,确定它们的最终目的地,然后找出它们需要发送到哪里,让它们到达它们应该去的地方。在“间接设备连接”章节中,我将更全面地讨论OSI模型中的路由,并通过OSI模型类比的方式展示它是如何工作的。

数据报封装:网络层通常通过将从更高层接收的消息放入具有网络层数据报头的数据报(也称为数据包)中来封装消息。

分片和重组:网络层必须将消息发送到数据链路层进行传输。一些数据链路层技术对可以发送的消息的长度有限制。如果网络层想要发送的数据包太大,则必须将数据包分片,将每个数据报发送到数据链路层,然后在数据报到达目标机器上的网络层后重新组装数据包。一个很好的例子是Internet协议的实现

错误处理和诊断:网络层使用特殊协议允许逻辑连接的设备或尝试路由流量的设备交换有关网络上主机的状态或设备本身的信息。

网络层面向连接和无连接的服务

网络层协议在网络上传送数据包时可以提供面向连接或无连接的服务。而无连接服务在网络层更为常见。在许多协议簇中,面向连接的服务由传输层提供,网络层协议则是无连接的。例如,在TCP/IP中,Internet协议(IP)是无连接的,而第四层传输控制协议(TCP)是面向连接的。

最常见的网络层协议当然是Internet协议(IP)。Internet协议是英特网的主干,是整个TCP/IP协议簇的基础。另外还有一些与IP直接相关的协议在网络层使用,如IPsecIP NATMobile IP。ICMP(Internet Control Message Protocol)是与Internet协议中主要的错误处理和控制的协议。TCP/IP世界之外另一个值得注意的网络层协议是Novell IPX协议。

关键概念:OSI参考模型的第三层称为网络层。这是模型中最重要的层之一;它负责将各个网络连接到互联网络。网络层功能包括网络级寻址、路由、数据报封装、分片和重组,以及某些类型的错误处理和诊断。网络层和传输层是密切相关的。

在网络层运行的网络互连设备通常称为路由器。他们通过接收沿着路由的每个“跃点”发送的数据包,并在行程的下一段发送它们实现网络层路由功能。它们使用路由协议相互通信,以确定有效发送流量的最佳路由。所谓的“brouters”也至少部分驻留在网络层,他们相当明显的名称是“三层交换机”。

资料来源:

TCP/IP GUIDE: http://www.tcpipguide.com/buybook.htm?free

Wikipedia: en.wikipedia.org


v0.3wep 创建文章翻译到传输层

发表评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注