[转]基本应用层的TCP/IP协议介绍 (IP/TCP/UDP)

基本应用层的TCP/IP协议介绍 (IP/TCP/UDP)

来源:http://www.networkdictionary.com/chinese/protocols/tcpip.php

IP/IPv4:网际协议

IP/IPv4:网际协议
(IP/IPv4:Internet Protocol)

  网际协议(IP)是一个网络层协议,它包含寻址信息和控制信息 ,可使数据包在网络中路由。 IP 协议是 TCP/IP 协议族中的主要网络层协议,与 TCP 协议结合组成整个因特网协议的核心协议。 IP 协议同样都适用于 LAN 和 WAN 通信。

  IP 协议有两个基本任务:提供无连接的和最有效的数据包传送;提供数据包的分割及重组以支持不同最大传输单元大小的数据连接。对于互联网络中 IP 数据报的路由选择处理,有一套完善的 IP 寻址方式。每一个 IP 地址都有其特定的组成但同时遵循基本格式。 IP 地址可以进行细分并可用于建立子网地址。 TCP/IP 网络中的每台计算机都被分配了一个唯一的 32 位逻辑地址,这个地址分为两个主要部分:网络号和主机号。网络号用以确认网络,如果该网络是因特网的一部分,其网络号必须由 InterNIC 统一分配。一个网络服务器供应商(ISP)可以从 InterNIC 那里获得一块网络地址,按照需要自己分配地址空间。主机号确认网络中的主机,它由本地网络管理员分配。

  当你发送或接受数据时(例如,一封电子信函或网页),消息分成若干个块,也就是我们所说的“包”。每个包既包含发送者的网络地址又包含接受者的地址。由于消息被划分为大量的包,若需要,每个包都可以通过不同的网络路径发送出去。包到达时的顺序不一定和发送顺序相同, IP 协议只用于发送包,而 TCP 协议负责将其按正确顺序排列。

  除了 ARP 和 RARP ,其它所有 TCP/IP 族中的协议都是使用 IP 传送主机与主机间的通信。当前 IP 协议有两种版本: IPv4 和 IPv6 。本文主要阐述 IPv4 。 IPv6 的相关细节将在其它文件中再作介绍。


协议结构

4 8 16 32bit
Version IHL Type of service Total length
Identification Flags Fragment offset
Time to live Protocol Header checksum
Source address
Destination address
Option + Padding
Data

  • Version – 4位字段,指出当前使用的 IP 版本。
  • IP Header Length (IHL) ― 指数据报协议头长度,具有32位字长。指向数据起点。正确协议头最小值为5。
  • Type-of-Service ― 指出上层协议对处理当前数据报所期望的服务质量,并对数据报按照重要性级别进行分配。这些8位字段用于分配优先级、延迟、吞吐量以及可靠性。
  • Total Length ― 指定整个 IP 数据包的字节长度,包括数据和协议头。其最大值为65,535字节。典型的主机可以接收576字节的数据报。
  • Identification ― 包含一个整数,用于识别当前数据报。该字段由发送端分配帮助接收端集中数据报分片。
  • Flags ― 由3位字段构成,其中低两位(最不重要)控制分片。低位指出数据包是否可进行分片。中间位指出在一系列分片数据包中数据包是否是最后的分片。第三位即最高位不使用。
  • Fragment Offset ― 13位字段,指出与源数据报的起始端相关的分片数据位置,支持目标IP适当重建源数据报。
  • Time-to-Live ― 是一种计数器,在丢弃数据报的每个点值依次减1直至减少为0。这样确保数据包无止境的环路过程。
  • Protocol ― 指出在 IP 处理过程完成之后,有哪种上层协议接收导入数据包。
  • Header Checksum ― 帮助确保 IP 协议头的完整性。由于某些协议头字段的改变,如生存期(Time to Live),这就需要对每个点重新计算和检验。Internet 协议头需要进行处理。
  • Source Address ― 指定发送代码。
  • Destination Address ― 指定接收代码。
  • Options ― 允许 IP 支持各种选项,如安全性。
  • Data ― 包括上层信息。

相关协议 IPv6、TCP、UDP、ICMP、SNMP、FTP、TELNET、SMTP、ARP、RARP、RPC、XDR、NFS
组织来源 IP 由 IETF(http://www.ietf.org)定义在 RFC 791中。
相关链接 http://www.javvin.com/protocol/rfc791.pdf: Internet Protocol Specifications
http://www.cisco.com/univercd/cc/td/doc/cisintwk/ito_doc/ip.htm: IP Overview

TCP:传输控制协议

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

  传输控制协议 TCP 是 TCP/IP 协议栈中的传输层协议,它通过序列确认以及包重发机制,提供可靠的数据流发送和到应用程序的虚拟连接服务。与 IP 协议相结合, TCP 组成了因特网协议的核心。

  由于大多数网络应用程序都在同一台机器上运行,计算机上必须能够确保目的地机器上的软件程序能从源地址机器处获得数据包,以及源计算机能收到正确的回复。这是通过使用 TCP 的“端口号”完成的。网络 IP 地址和端口号结合成为唯一的标识 , 我们称之为“套接字”或“端点”。 TCP 在端点间建立连接或虚拟电路进行可靠通信。

  TCP 服务提供了数据流传输、可靠性、有效流控制、全双工操作和多路复用技术等。

  关于流数据传输 ,TCP 交付一个由序列号定义的无结构的字节流。 这个服务对应用程序有利,因为在送出到 TCP 之前应用程序不需要将数据划分成块, TCP 可以将字节整合成字段,然后传给 IP 进行发送。

  TCP 通过面向连接的、端到端的可靠数据报发送来保证可靠性。 TCP 在字节上加上一个递进的确认序列号来告诉接收者发送者期望收到的下一个字节。如果在规定时间内,没有收到关于这个包的确认响应,重新发送此包。 TCP 的可靠机制允许设备处理丢失、延时、重复及读错的包。超时机制允许设备监测丢失包并请求重发。

  TCP 提供了有效流控制。当向发送者返回确认响应时,接收 TCP 进程就会说明它能接收并保证缓存不会发生溢出的最高序列号。

  全双工操作: TCP 进程能够同时发送和接收包。

  TCP 中的多路技术:大量同时发生的上层会话能在单个连接上时进行多路复用。


协议结构

16 32 bit
Source port Destination port
Sequence number
Acknowledgement number
Offset Reserved U A P R S F Window
Checksum Urgent pointer
Option + Padding
Data

  • Source Port – 识别上层源处理器接收 TCP 服务的点。
  • Destination Port – 识别上层目标处理器接收 TCP 服务的点。
  • Sequence Number – 通常指定分配到当前信息中的数据首字节的序号。在连接建立阶段,该字段用于设别传输中的初始序列号。
  • Acknowledgment Number – 包含数据包发送端期望接收的数据下一字节的序列号。一旦连接成功,该值会一直被发送。
  • Data Offset – 4 位。TCP 协议头中的32位字序号表示数据开始位置。
  • Reserved – 6位。预留以备用,必须设置为0。
  • Control Bits (Flags) – 6位。传送各种控制信息。控制位可以是:

U (URG) Urgent pointer field significant.
A (ACK) Acknowledgment field significant.
P (PSH) Push function.
R (RST) Reset the connection.
S (SYN) Synchronize sequence numbers.
F (FIN) No more data from sender.

  • Window – 16位。指定发送端接收窗口的大小,也就是说,数据可用的八位缓存区大小。
  • Checksum – 16 位。指出协议头在传输中是否遭到破坏。
  • Urgent Pointer – 16 位。指向数据包中的第一个重要数据字节。
  • Option + Padding – 指定各种 TCP 选项。可选项有两种可能形式:单个八位可选类型和八位可选类型,八位可选长度和实际可选数据八位位组。
  • Data – 包含上层信息。

相关协议 IP、UDP、ICMP、SNMP、FTP、TELNET、SMTP、RPC、XDR、NFS
组织来源 TCP 由 IETF(http://www.ietf.org)定义在 RFC 793中。
相关链接 http://www.javvin.com/protocol/rfc793.pdf: TCP Specifications
http://www.javvin.com/protocol/rfc3168.pdf: The Addition of Explicit Congestion Notification (ECN) to IP
http://www.iana.org/assignments/port-numbers : TCP and UDP port numbers

UDP:用户数据报协议

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

  用户数据报协议(UDP)是 ISO 参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。 UDP 协议基本上是 IP 协议与上层协议的接口。 UDP 协议适用端口分辨运行在同一台设备上的多个应用程序。

  由于大多数网络应用程序都在同一台机器上运行,计算机上必须能够确保目的地机器上的软件程序能从源地址机器处获得数据包,以及源计算机能收到正确的回复。这是通过使用 UDP 的“端口号”完成的。例如,如果一个工作站希望在工作站 128.1.123.1 上使用域名服务系统,它就会给数据包一个目的地址 128.1.123.1 ,并在 UDP 头插入目标端口号 53 。源端口号标识了请求域名服务的本地机的应用程序,同时需要将所有由目的站生成的响应包都指定到源主机的这个端口上。 UDP 端口的详细介绍可以参照相关文章。

  与 TCP 不同, UDP 并不提供对 IP 协议的可靠机制、流控制以及错误恢复功能等。由于 UDP 比较简单, UDP 头包含很少的字节,比 TCP 负载消耗少。

  UDP 适用于不需要 TCP 可靠机制的情形,比如,当高层协议或应用程序提供错误和流控制功能的时候。 UDP 是传输层协议,服务于很多知名应用层协议,包括网络文件系统(NFS)、简单网络管理协议(SNMP)、域名系统(DNS)以及简单文件传输系统(TFTP)。


协议结构

16 32bit
Source port Destination port
Length Checksum
Data

  • Source Port — 16位。源端口是可选字段。当使用时,它表示发送程序的端口,同时它还被认为是没有其它信息的情况下需要被寻址的答复端口。如果不使用,设置值为0。
  • Destination Port — 16位。目标端口在特殊因特网目标地址的情况下具有意义。
  • Length — 16位。该用户数据报的八位长度,包括协议头和数据。长度最小值为8。
  • Checksum — 16位。IP 协议头、UDP 协议头和数据位,最后用0填补的信息假协议头总和。如果必要的话,可以由两个八位复合而成。
  • Data — 包含上层数据信息。

相关协议 IP、TCP、ICMP、SNMP、DNS、TFTP、NFS
组织来源

UDP 由 IETF(http://www.ietf.org)定义在 RFC 768中。

相关链接

http://www.javvin.com/protocol/rfc768.pdf:User Datagram Protocol(UDP) Specifications
http://www.iana.org/assignments/port-numbers:UDP and TCP port numbers


你可能感兴趣的:(网络协议,网络应用,应用服务器,数据结构,Cisco)