协议分层
正如
OSI
七层模型定义的一样,
TCP/IP
协议也根据不同的通信功能分为不同的层次,
TCP/IP
通常被认为是一个四层协议系统,
TCP/IP
的四层跟
OSI
的七层对应关系如表
1-2
所示。
表
1-2 TCP/IP
协议与
OSI
七层模型的对应关系
OSI
七层模型
|
TCP/IP
协议
|
应用层
|
应用层(Application)
|
表示层
| |
会话层
| |
传输层
|
传输层(Transport)
|
网络层
|
网络层(Internet)
|
数据链路层
|
网络接口层(Network)
|
物理层
|
1
、网络接口层
也叫数据链路层,通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡,它们一起处理与传输媒介的物理接口细节。上表中
TCP/IP
协议没有相应的层次对应
OSI
七层模型中的物理层,正是因为
TCP/IP
协议的这种特性,使得其构筑的
Internet
被广泛的应用。
2
、网络层
也叫互联网层,处理路由选择等分组在网络中的活动。在
TCP/IP
协议组件中,网络层协议包括
IP
协议(
Internet Protocol
,网际协议)、
ICMP
协议(
Internet
互联网控制报文协议),以及
IGMP
协议(
Internet
组管理协议)。
3
、传输层
主要功能是为两台主机上的应用程序提供端到端的通信。在
TCP/IP
协议组件中,有两个互不相同的传输协议:
TCP
(传输控制协议)和
UDP
(用户数据报协议)。
TCP
为两台主机提供高可靠性的数据通信。它所做的工作包括把应用程序交给它的数据分成合适的小块交给下面的网络层、确认接收到的分组、设置发送最后确认分组的超时时钟等。
另一方面,
UDP
为应用层提供一种非常简单的服务。它只是把数据报从一台主机发送到另一台主机,但并不保证该数据报能到达另一端。
TCP
提供了高可靠性,因此不需要应用层去考虑,
UDP
则把所有必需的的可靠性交给应用层自己解决。
4
、应用层
应用层负责处理特定的应用程序
TCP/IP
提供了大量的应用程序,下面几种是最为通用的:
WWW
国际互联网、
Telnet
远程登录、
FTP
文件传输协议、
SMTP
用于电子邮件的简单邮件传输协议、
SNMP
简单网络管理协议。
表
1-3 TCP/IP
协议层与对应的服务
TCP/IP
协议
|
对应的服务
|
应用层
|
WWW
、SMTP、FTP、Telnet、Gopher、SNMP
|
Socket
、NetBIOS
| |
传输层
|
TCP
、UDP
|
网络层
|
IP
(ARP、RARP、ICMP)
|
网络接口层
|
Ethernet
、X.25、PPP、SLIP
|
如表
1-3
所示,
FTP
是一种应用层协议,
TCP
是一种传输层协议,
IP
是一种网络层协议,而以太网协议则应用于网络接口层上。
TCP/IP
协议组件是一组不同的协议组合在一起构成的协议族。尽管通常称该协议组件为
TCP/IP
,但
TCP
和
IP
只是其中的两种协议而已。
在
TCP/IP
协议组件中,网络层
IP
提供的是一种不可靠的服务。也就是说,它只是尽可能快地把分组从源结点送到目的结点,但是并不提供任何可靠性保证。而另一方面,
TCP
在不可靠的
IP
层上提供了一个可靠的传输层。为了提供这种可靠的服务,
TCP
采用了超时重传,发送和接收端到端的确认分组等机制。
TCP
和
UDP
是两种最为著名的传输层协议,二者都使用
IP
作为网络层协议。
如前面所说的,
TCP
采用的超时重传、确认分组机制,使得可以提供可靠的服务。
UDP
不提供可靠性:它把应用程序传给
IP
层的数据发送出去,但是并不保证它们能到达目的地。
UDP
是一个简单的面向数据报的传输层协议:进程的每个输出操作都正好产生一个
UDP
数据报,并组装成一份待发送的
IP
数据报。
IP
数据报的长度如果如果超过网络的
MTU
,那么就要对
IP
数据报进行分片。
IP
是网络层上的主要协议,同时被
TCP
和
UDP
使用。
TCP
和
UDP
的每组数据都通过端系统和每个中间路由器中的
IP
层在互连网中进行传输。
ICMP
是
IP
协议的附属协议,它用来把一个
UDP
数据报多播到多个主机。
IP
层用它来与其他主机或路由器交换错误报文和其他重要信息。
ICMP
主要被
IP
使用,应用程序也有可能访问它。
Ping
和
Traceroute
是我们经常要使用的诊断工具,它们就是使用的
ICMP
。
ICMP
包括了各种类型的
ICMP
报文,报文的类型由类型字段和代码字段共同决定。
ARP
(地址解析协议)和
RARP
(逆地址解析协议)是某些网络接口(如以太网和令牌环网)使用的特殊协议,用来转换
IP
层和网络接口层使用的地址。
C:/>arp
Displays and modifies the IP-to-Physical address translation tables used
by address resolution protocol (ARP).
//显示和修改由地址解析协议使用的IP物理地址表
ARP -s inet_addr eth_addr [if_addr]
ARP -d inet_addr [if_addr]
ARP -a [inet_addr] [-N if_addr]
-a Displays current ARP entries by interrogating the current
protocol data. If inet_addr is specified, the IP and Physical
addresses for only the specified computer are displayed. If
more than one network interface uses ARP, entries for each
ARP table are displayed.
//显示询问当前协议数据的ARP当前入口,如果指定了//inet_addr,则只显示指定计算机的IP地址和物理地址;如//果有不只一个网卡使用ARP,则显示每一个网卡的ARP列//表。
-g Same as -a. //类似于-a
inet_addr Specifies an internet address.
//指定一个Internet地址
-N if_addr Displays the ARP entries for the network interface specified
by if_addr.
//显示由if_addr指定的网卡的ARP入口
-d Deletes the host specified by inet_addr. inet_addr may be
wildcarded with * to delete all hosts.
//删除由inet_addr指定的主机,如果inet_addr是通配符*,则删
//除所有主机
-s Adds the host and associates the Internet address inet_addr
with the Physical address eth_addr. The Physical address
is given as 6 hexadecimal bytes separated by hyphens. The
entry is permanent.
//增加主机,并把Internet地址inet_addr和物理地址eth_addr
//进行关联,物理地址是6个以连字符号“-”隔开的16进制
//位,这个入口是永久的
eth_addr Specifies a physical address.
//指定物理地址
if_addr If present, this specifies the Internet address of the
interface whose address translation table should be modified.
If not present, the first applicable interface will be used.
//如果出现,则代表网卡的Internet地址,该地址的地址转换表
//将要修改。如果不出现,则使用第一个可用的接口
Example:
> arp -s 157.55.85.212 00-aa-00-62-c6-09 .... Adds a static entry.
//增加一个静态入口
> arp -a .... Displays the arp table.
//显示ARP表