`
varsoft
  • 浏览: 2430445 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

[转]基本应用层的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 ― 包括上层信息。

相关协议 IPv6TCPUDP、ICMP、SNMPFTPTELNETSMTPARPRARPRPC、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 – 包含上层信息。

相关协议 IPUDPICMPSNMPFTPTELNETSMTPRPC、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 — 包含上层数据信息。

相关协议 IPTCPICMPSNMPDNSTFTP、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


分享到:
评论

相关推荐

    TCP/IP协议与网络编程技术

    第5章:介绍TCP/IP协议层次结构中应用层及其相关知识。主要内容有应用层常用协议DNS、FTP、Telnet、HTTP、POP和SMTP的格式、工作原理、协议实例等内容。 第6章:简要的介绍了一下TCP/IP协议在Windows和LINUX操作系统...

    TCP/udp/ip协议分析

    互连网早期的时候,主机间的互连使用的是NCP协议。这种协议本身有很多缺陷,如:不能互连不同的主机,不能互连不同的操作系统,没有...TCP/IP协议栈主要分为四层:应用层、传输层、网络层、数据链路层,每层都有相应的协议

    tcp/ip协议.pdf

    tcp/ip协议;三次握手四次挥手;tcp/udp;http/https;数据链路层,网络层,传输层以及应用层

    TCP/IP协议详解卷二:实现

    《TCP/IP详解·卷2:实现》完整而详细地介绍了TCP/IP协议是如何实现的。书中给出了约500个图例,15000行实际操作的C代码,采用举例教学的方法帮助你掌握TCP/IP实现。《TCP/IP详解·卷2:实现》不仅说明了插口API和...

    嵌入式Linux网络体系结构设计与TCP/IP协议栈.part4.rar

    第8~9章介绍传输层数据收发过程,重点介绍基于套接字的TCP/UDP传输实现。第10章讨论了Linux内核套接字层的实现,以及套接字层与应用层、传输层之间的接口。第11章介绍网络应用软件的开发技术,以及内核对网络应用的...

    嵌入式Linux网络体系结构设计与TCP/IP协议栈.part5

    第8~9章介绍传输层数据收发过程,重点介绍基于套接字的TCP/UDP传输实现。第10章讨论了Linux内核套接字层的实现,以及套接字层与应用层、传输层之间的接口。第11章介绍网络应用软件的开发技术,以及内核对网络应用的...

    嵌入式Linux网络体系结构设计与TCP/IP协议栈.part3.rar

    第8~9章介绍传输层数据收发过程,重点介绍基于套接字的TCP/UDP传输实现。第10章讨论了Linux内核套接字层的实现,以及套接字层与应用层、传输层之间的接口。第11章介绍网络应用软件的开发技术,以及内核对网络应用的...

    《TCP/IP详解,卷1:协议》

    第30章 其他的TCP/IP应用程序 363 附录A tcpdump程序 371 附录B 计算机时钟 376 附录C sock程序 378 附录D 部分习题的解答 381 附录E 配置选项 395 附录F 可以免费获得的源代码 406 参考文献 409 缩略语 420

    TCP/IP协议分析及应用电子课件

    TCP/IP(Transmission Control Protocol/Internet Protocol)的简写,中文译名为传输控制协议/因特网互联协议,又叫网络通讯协议,这个协议是是Internet最基本的协议、Internet国际互联网络的基础,简单地说,就是由网络层...

    《TCP_IP协议与网络编程》(任泰明)

    第1章 Internet与TCP/IP协议 第2章 IP协议 第3章 传输层协议UDP和TCP 第4章 TCP/IP应用层常用协议 第5章 TCP/IP协议代码实例分析 第6章 网络程序设计基本知识 第7章 TCP/IP网络程序框架与...

    TCP/IP协议与网络编程

    Internet与TCP协议 IP协议 传输层协议UDP与TCP TCP应用层常用协议 TCP协议代码实例分析 网络程序设计基本知识 TCP-IP网络程序框架与实例 Winsock API 高级网络编程API 网络程序设计实例

    TCP/IP教程TCP/IP基础

    第一部分 TCP/IP基础 第1章 开放式通信模型简介 1 1.1 开放式网络的发展 1 1.1.1 通信处理层次化 2 1.1.2 OSI参考模型 3 1.1.3 模型的使用 5 1.2 TCP/IP参考模型 7 1.3 小结 7 第2章 TCP/IP和Internet 8 2.1 一段...

    tcp_ip协议的详细介绍

    1、应用层:应用层是TCP/IP协议的第一du层,是直接zhi为应用进程提供服务的。 2、运输层dao:作为TCP/IP协议的第二层,运输层在整个TCP/IP协议中起到了中流砥柱的作用。且在运输层中,TCP和UDP也同样起到了中流砥柱...

    TCP/IP java 编程

    TCP/IP网络中最常用的传输协议TCP和UDP。传输层通常以TCP和UDP协议来控制端点到端点的通信。Socket定义了通信的端点,是由IP地址和端口号组成。JAVA语言已经成为现今网络应用中最广泛的语言,本文就是介绍JAVA中的...

    TCP/IP技术大全

    第一部分 TCP/IP基础 第1章 开放式通信模型简介 1 1.1 开放式网络的发展 1 1.1.1 通信处理层次化 2 1.1.2 OSI参考模型 3 1.1.3 模型的使用 5 1.2 TCP/IP参考模型 7 1.3 小结 7 第2章 TCP/IP和Internet 8 2.1 一段...

    TCP/IP详解 卷3:TCP事务协议、HTTP、NNTP和UNIX域协议

    本书适用于希望理解TCP/IP如何工作的人,包括编写网络应用程序的程序员以及利用TCP/IP维护计算机网络的系统管理员。本书的特点是内容丰富,概念清楚且准确,讲解详细,例子很多。作者在书中举出的所有例子均在作者...

    TCP/IP详解(卷一)

    与其他的TCP/IP书藉的最大不同在于,本书不仅仅讲述了RFCS的标准协议,而且结合大量实例讲述了TCP/IP协议包的定义原因及在各种不同的操作系统中(如Sunos4.1.3、Soloris2.2、AIX3.2.2)的应用与工作方式,这样可以以...

    TCP_IP协议与网络编程

    本书的内容分为两大部分。...第4章主要讲述了当前TCP/IP协议应用层常用的Telnet. FI'P. SMTP. POPS 和HTTP协议的工作原理。第5章详细分析了TCP/IP协议的代码实例,以 进一步提高读者对TCP/IP协议工作原理的理解。

    嵌入式Linux网络体系结构设计与TCP/IP协议栈.part1

    第8~9章介绍传输层数据收发过程,重点介绍基于套接字的TCP/UDP传输实现。第10章讨论了Linux内核套接字层的实现,以及套接字层与应用层、传输层之间的接口。第11章介绍网络应用软件的开发技术,以及内核对网络应用的...

Global site tag (gtag.js) - Google Analytics