基本应用层的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 |
|
相关协议 | 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 |
|
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. |
|
相关协议 | 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 |
|
相关协议 | 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
|