《tcp ip协议体系结构简介》由会员分享,可在线阅读,更多相关《tcp ip协议体系结构简介(15页珍藏版)》请在金锄头文库上搜索。
1、TCP/IP 协议体系结构简介TCP/IP 协议体系结构简介 1、TCP/IP 协议栈 四层模型 TCP/IP 这个协议遵守一个四层的模型概念:应用层、传输层、互联层和网络接口层。 网络接口层 模型的基层是网络接口层。负责数据帧的发送和接收,帧是独立的网络信息传输单元。网络接口层将帧放在网上,或从网上把帧取下来。 互联层 互联协议将数据包封装成 internet 数据报,并运行必要的路由算法。 这里有四个互联协议: 网际协议 IP:负责在主机和网络之间寻址和路由数据包。 地址解析协议 ARP:获得同一物理网络中的硬件主机地址。 网际控制消息协议 ICMP:发送消息,并报告有关数据包的传送错误。
2、 互联组管理协议 IGMP:被 IP 主机拿来向本地多路广播路由器报告主机组成员。 传输层 传输协议在计算机之间提供通信会话。传输协议的选择根据数据传输方式而定。 两个传输协议: 传输控制协议 TCP:为应用程序提供可*的通信连接。适合于一次传输大批数据的情况。并适用于要求得到响应的应用程序。 用户数据报协议 UDP:提供了无连接通信,且不对传送包进行可*的保证。适合于一次传输小量数据,可*性则由应用层来负责。 应用层 应用程序通过这一层访问网络。 网络接口技术 IP 使用网络设备接口规范 NDIS 向网络接口层提交帧。IP 支持广域网和本地网接口技术。 串行线路协议 TCP/IPG 一般通过
3、 internet 串行线路协议 SLIP 或点对点协议 PPP 在串行线上进行数据传送。(是不是我们平时把它称之为异步通信,对于要拿 L INUX 提供建立远程连接的朋友应该多研究一下这方面的知识)? 2、ARP 要在网络上通信,主机就必须知道对方主机的硬件地址(我们不是老遇到网卡的物理地址嘛) 。地址解析就是将主机 IP 地址映射为硬件地址的过程。地址解析协议 A RP 用于获得在同一物理网络中的主机的硬件地址。 解释本地 IP 地址(要了解地址解析工作过程的朋友看好了) 主机 IP 地址解析为硬件地址: (1)当一台主机要与别的主机通信时,初始化 ARP 请求。当该 IP 断定 IP 地
4、址是本地时,源主机在 ARP 缓存中查找目标主机的硬件地址。 (2)要是找不到映射的话,ARP 建立一个请求,源主机 IP 地址和硬件地址会被包括在请求中,该请求通过广播,使所有本地主机均能接收并处理。 (3)本地网上的每个主机都收到广播并寻找相符的 IP 地址。 (4)当目标主机断定请求中的 IP 地址与自己的相符时,直接发送一个 ARP 答复,将自己的硬件地址传给源主机。以源主机的 IP 地址和硬件地址更新它的 A RP 缓存。源主机收到回答后便建立起了通信。 解析远程 IP 地址 不同网络中的主机互相通信,ARP 广播的是源主机的缺省网关。 目标 IP 地址是一个远程网络主机的话,ARP
5、 将广播一个路由器的地址。 (1)通信请求初始化时,得知目标 IP 地址为远程地址。源主机在本地路由表中查找,若无,源主机认为是缺省网关的 IP 地址。在 ARP 缓存中查找符合该网关记录的 I P 地址( 硬件地址)。 (2)若没找到该网关的记录,ARP 将广播请求网关地址而不是目标主机的地址。路由器用自己的硬件地址响应源主机的 ARP 请求。源主机则将数据包送到路由器以传送到目标主机的网络,最终达到目标主机。 (3)在路由器上,由 IP 决定目标 IP 地址是本地还是远程。如果是本地,路由器用 ARP(缓存或广播)获得硬件地址。如果是远程,路由器在其路由表中查找该网关,然后运用 A RP
6、获得此网关的硬件地址。数据包被直接发送到下一个目标主机。 (4)目标主机收到请求后,形成 ICMP 响应。因源主机在远程网上,将在本地路由表中查找源主机网的网关。找到网关后,ARP 即获取它的硬件地址。 (5)如果此网关的硬件地址不在 ARP 缓存中,通过 ARP 广播获得。一旦它获得硬件地址,ICMP 响应就送到路由器上,然后传到源主机。 ARP 缓存 为减少广播量,ARP 在缓存中保存地址映射以备用。ARP 缓存保存有动态项和静态项。动态项是自动添加和删除的,静态项则保留在 CA CHE 中直到计算机重新启动。 ARP 缓存总是为本地子网保留硬件广播地址(0xffffffffffffh)作
7、为一个永久项。 此项使主机能够接受 ARP 广播。当查看缓存时,该项不会显示。 每条 ARP 缓存记录的生命周期为 10 分钟,2 分钟内未用则删除。缓存容量满时, 删除最老的记录。 加入静态(永久)记录 通过添加静态 ARP 项可减少 ARP 请求访问主机的次数。 ARP 包的结构 ARP 结构的字段如下: 硬件类型-使用的硬件(网络访问层 )类型。 协议类型-解析过程中的协议使用以太类型的值。 硬件地址长度-硬件地址的字节长度,对于以太网和令牌环来说,其长度为 6 字节。 协议地址长度-协议地址字节的长度,IP 的长度是 4 字节。 操作号-指定当前执行操作的字段。 发送者的硬件地址-发送
8、者的硬件地址。 发送者的协议地址-发送者的协议地址。 目的站硬件地址-目标者的硬件地址。 目的站协议地址-目标者的协议地址。 3、ICMP 和 IGMP internet 控制消息协议 ICMP 是用于报告错误并代表 IP 对消息进行控制。 IP 运用互联组管理协议 IGMP 来告诉路由器,某一网络上指导组中的可用主机。 ICMP ICMP 源抑制消息:当 TCP/IP 主机发送数据到另一主机时,如果速度达到路由器或者链路的饱和状态,路由器发出一个 ICMP 源抑制消息。 ICMP 数据包结构 类型:一个 8 位类型字段,表示 ICMP 数据包类型。 代码:一个 8 位代码域,表示指定类型中的
9、一个功能。如果一个类型中只有一种功能,代码域置为 0。 检验和:数据包中 ICMP 部分上的一个 16 位检验和。 指定类型的数据随每个 ICMP 类型变化的一个附加数据。 IGMP IGMP 信息传给别的路由器以使每个支持多路广播的路由器获知哪个主机组和哪个网络 中。 IGMP 包结构 版本:IGMP 的版本,值一般为 0x1h。 类型:IGMP 消息的类型。 0x1h 类型称为主机成员请求,在多路广播路由器上用于指定多级组中的任何成员轮询一个网络。0x2h 类型称为主机成员报告,在主机上用于发布指定组中的成员情况或对一个路由器的主机成员请求进行回答未用:未用的域名被发送者置零且被接收者忽略
10、。 检验和:IGMP 头的一个 16 位检验和。 组地址:主机用该组地址在一个主机成员请求中存储 IP 多路广播地址。在主机成员请求中,组地址被全置零,而且硬件级的多路广播地址被用来标示主机组。 4、IP IP 是一个无连接的协议,主要就是负责在主机间寻址并为数据包设定路由,在交换数据前它并不建立会话。因为它不保证正确传递,另一方面,数据在被收到时,I P 不需要收到确认,所以它是不可*的。 有一些字段,在当数据从传输层传下来时,会被附加在数据包中,我们来看一下这些字段: 源 IP 地址:用 IP 地址确定数据报发送者。 目标 IP 地址:用 IP 地址确定数据报目标。 协议:告知目的机的 I
11、P 是否将包传给 TCP 或 UDP。 检查和:一个简单的数学计算,用来证实收到的包的完整性。 TTL 生存有效时间:指定一个数据报被丢弃之前,在网络上能停留多少时间(以秒计) 。它避免了包在网络中无休止循环。路由器会根据数据在路由器中驻留的时间来递减 T TL。其中数据报通过一次路由器,TTL 至少减少一秒。 根据我们前面提到关于 ARP 的知识,如果 IP 地址目标为本地地址时,IP 将数据包直接传给那个主机;如果目标地址为远程地址的话,I P 在本地的路由表中查找远程主机的路由(看来好象我们平时拨 114 一样) 。如果找到一个路由, IP 用它传送数据包。如果没找到呢,就会将数据包发送
12、到源主机的缺省网关,也称之为路由器。( 很多时候一直在搞网关和路由器的定义,其实我觉得在学的时候不一定死抠概念,现在硬件和软件结合的产品越来越多了,一时很分清的,只要我们运用的时候可以解决实际问题嘛。) 这样当路由器收到一个包后,该包向上传给 IP: (1)如果交通阻塞(听起来蛮可怕的 ),包在路由器中停滞,TTL 至少减 1 或更多。要是它降到 0 的话,包就会被抛弃。 (2)如果对于下一网络来说包太大的话,IP 会将它分割成若干个小包。 (3)如果包被分解,IP 为每个新包制造一个新头,其中包括:一个标志,用来显示其它小包在其后;一个小包 ID,用来确定所有小包是一起的;一个小包偏移,用来
13、告诉接收主机怎么重新组合它们。 (4)IP 计算一个新的检验和。 (5)IP 获取一个路由的目标硬件地址。 (6)IP 转发包。 在下一主机,包被发送到 TCP 或 UDP。每个路由器都要重复该过程。直到包到达最终目的地。当包到达最终目的地后,IP 将小包组装成原来的包。 5、TCP TCP 是一种可*的面向连接的传送服务。它在传送数据时是分段进行的,主机交换数据必须建立一个会话。它用比特流通信,即数据被作为无结构的字节流。 通过每个 TCP 传输的字段指定顺序号,以获得可*性。如果一个分段被分解成几个小段,接收主机会知道是否所有小段都已收到。通过发送应答,用以确认别的主机收到了数据。对于发送
14、的每一个小段,接收主机必须在一个指定的时间返回一个确认。如果发送者未收到确认,数据会被重新发送;如果收到的数据包损坏,接收主机会舍弃它,因为确认未被发送,发送者会重新发送分段。 端口 SOCKETS 实用程序使用一个协议端口号来标明自己应用的唯一性。端口可以使用 0到 65536 之间的任何数字。在服务请求时,操作系统动态地为客户端的应用程序分配端口号。 套接字 套接字在要领上与文件句柄类似,因为其功能是作为网络通信的终结点。一个应用程序通过定义三部分来产生一个套接字:主机 IP 地址、服务类型( 面向连接的服务是 TCP,无连接服务是 UDP)、应用程序所用的端口。 TCP 端口 TCP 端
15、口为信息的传送提供定地点,端口号小于 256 的定义为常用端口。 TCP 的三次握手 TCP 对话通过三次握手来初始化。三次握手的目的是使数据段的发送和接收同步;告诉其它主机其一次可接收的数据量,并建立虚连接。 我们来看看这三次握手的简单过程: (1)初始化主机通过一个同步标志置位的数据段发出会话请求。 (2)接收主机通过发回具有以下项目的数据段表示回复:同步标志置位、即将发送的数据段 的起始字节的顺序号、应答并带有将收到的下一个数据段的字节顺序号。 (3)请求主机再回送一个数据段,并带有确认顺序号和确认号。 TCP 滑动窗口 TCP 滑动窗口用来暂存两台主机间要传送的数据,有点类似 CACH
16、E。 每个 TCP/IP 主机有两个滑动窗口:一个用于接收数据,另一个用于发送数据。 6、UDP 用户数据报协议 UDP 提供了无连接的数据报服务。它适用于无须应答并且通常一次只传送少量数据的应用软件。 UDP 端口 端口作为多路复用的消息队列使用。 15 NETSTAT 网络状态 53 DOMAIN 域名服务器 69 TFTP 平凡文件传送协议 137 NETBIOS-NS NETBIOS 命令服务 138 NETBIOS-DGM NETBIOS 数据报服务 161 SNMP SNMP 网络监视器 IP 地址分配 1、IP 地址 IP 地址标识着网络中一个系统的位置。我们知道每个 IP 地址都是由两部分组成的:网络号和主机号。其中网络号标识一个物理的网络,同一个网络上所有主机需要同一个网络号,该号在互联网中是唯一的;而主机号确定网络中的一个工作端、服务器、路由器其它T CP/IP 主机。对于同一个网络号来说,主机号是唯一的。每个 TCP/IP 主机由一个逻辑 IP地址确定。 网络号和主机号 IP