TCP/IP协议基础之一(概念解析)

ZDNet软件频道 时间:2009-12-06 作者:IXPUB技术社区 | IXPUB技术社区 我要评论()
本文关键词:网络协议 TCP/IP协议 TCP/IP
笔者将TCP/IP协议基础写成系列文章,此为第一篇,主要介绍了TCP/IP协议概念。

1、TCP/IP协议栈

四层模型

TCP/IP这个协议遵守一个四层的模型概念:应用层、传输层、互联层和网络接口层。

网络接口层——模型的基层是网络接口层。负责数据帧的发送和接收,帧是独立的网络信息传输单元。网络接口层将帧放在网上,或从网上把帧取下来。

互联层——互联协议将数据包封装成internet数据报,并运行必要的路由算法。

这里有四个互联协议:

网际协议IP:负责在主机和网络之间寻址和路由数据包。
地址解析协议ARP:获得同一物理网络中的硬件主机地址。
网际控制消息协议ICMP:发送消息,并报告有关数据包的传送错误。
互联组管理协议IGMP:被IP主机拿来向本地多路广播路由器报告主机组成员。

传输层——传输协议在计算机之间提供通信会话。传输协议的选择根据数据传输方式而定。

两个传输协议:
传输控制协议TCP:为应用程序提供可靠的通信连接。适合于一次传输大批数据的情况。并适用于要求得到响应的应用程序。
用户数据报协议UDP:提供了无连接通信,且不对传送包进行可靠的保证。适合于一次传输小量数据,可靠性则由应用层来负责。

应用层——应用程序通过这一层访问网络。

网络接口技术
IP使用网络设备接口规范NDIS向网络接口层提交帧。IP支持广域网和本地网接口技术。

串行线路协议
TCP/IPG一般通过internet串行线路协议SLIP或点对点协议PPP在串行线上进行数据传送。(是不是我们平时把它称之为异步通信,对于要拿LINUX提供建立远程连接的朋友应该多研究一下这方面的知识)?

2、ARP

要在网络上通信,主机就必须知道对方主机的硬件地址(我们不是老遇到网卡的物理地址嘛)。地址解析就是将主机IP地址映射为硬件地址的过程。地址解析协议ARP用于获得在同一物理网络中的主机的硬件地址。

解释本地IP地址(要了解地址解析工作过程的朋友看好了)

主机IP地址解析为硬件地址:

(1)当一台主机要与别的主机通信时,初始化ARP请求。当该IP断定IP地址是本地时,源主机在ARP缓存中查找目标主机的硬件地址。
(2)要是找不到映射的话,ARP建立一个请求,源主机IP地址和硬件地址会被包括在请求中,该请求通过广播,使所有本地主机均能接收并处理。
(3)本地网上的每个主机都收到广播并寻找相符的IP地址。
(4)当目标主机断定请求中的IP地址与自己的相符时,直接发送一个ARP答复,将自己的硬件地址传给源主机。以源主机的IP地址和硬件地址更新它的ARP缓存。源主机收到回答后便建立起了通信。

解析远程IP地址

不同网络中的主机互相通信,ARP广播的是源主机的缺省网关。

目标IP地址是一个远程网络主机的话,ARP将广播一个路由器的地址。

(1)通信请求初始化时,得知目标IP地址为远程地址。源主机在本地路由表中查找,若无,源主机认为是缺省网关的IP地址。在ARP缓存中查找符合该网关记录的IP地址(硬件地址)。
(2)若没找到该网关的记录,ARP将广播请求网关地址而不是目标主机的地址。路由器用自己的硬件地址响应源主机的ARP请求。源主机则将数据包送到路由器以传送到目标主机的网络,最终达到目标主机。
(3)在路由器上,由IP决定目标IP地址是本地还是远程。如果是本地,路由器用ARP(缓存或广播)获得硬件地址。如果是远程,路由器在其路由表中查找该网关,然后运用ARP获得此网关的硬件地址。数据包被直接发送到下一个目标主机。
(4)目标主机收到请求后,形成ICMP响应。因源主机在远程网上,将在本地路由表中查找源主机网的网关。找到网关后,ARP即获取它的硬件地址。
(5)如果此网关的硬件地址不在ARP缓存中,通过ARP广播获得。一旦它获得硬件地址,ICMP响应就送到路由器上,然后传到源主机。

ARP缓存

为减少广播量,ARP在缓存中保存地址映射以备用。ARP缓存保存有动态项和静态项。动态项是自动添加和删除的,静态项则保留在CACHE中直到计算机重新启动。

ARP缓存总是为本地子网保留硬件广播地址(0xffffffffffffh)作为一个永久项。

此项使主机能够接受ARP广播。当查看缓存时,该项不会显示。

每条ARP缓存记录的生命周期为10分钟,2分钟内未用则删除。缓存容量满时,删除最老的记录。

加入静态(永久)记录

通过添加静态ARP项可减少ARP请求访问主机的次数。

ARP包的结构

ARP结构的字段如下:
硬件类型--使用的硬件(网络访问层)类型。
协议类型--解析过程中的协议使用以太类型的值。
硬件地址长度--硬件地址的字节长度,对于以太网和令牌环来说,其长度为6字节。
协议地址长度--协议地址字节的长度,IP的长度是4字节。
操作号--指定当前执行操作的字段。
发送者的硬件地址--发送者的硬件地址。
发送者的协议地址--发送者的协议地址。
目的站硬件地址--目标者的硬件地址。
目的站协议地址--目标者的协议地址。


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134