TCP/IP协议同ISO/OSI模型一样,也可以安排成栈形式。但这个栈不同于ISO/OSI版本,比ISO/OSI栈少,所以又称之为短栈。另外,需要知道的是:TCP/IP协议栈只是许多支持ISO/OSI分层模型协议栈的一种,是一个具体的协议栈。

对于TCP/IP协议栈划分为几层更合适,多年来专家们一直未达成共识,大部分对TCP/IP协议栈的描述都假定它占据了协议结构的4到5个功能层。下面我们对这两种主流的分层方法分别进行描述。

1  基于4层的TCP/IP协议栈基本描述

基于4层的TCP/IP协议栈最具说服力的是:这一观点是由TCP/IP原始标准的创立者——美国国防部提出的,它与ISO/OSI参考模型的对应关系如下图:

图1  TCP/IP协议栈层次结构与ISO/OSI参考模型的对应关系

如图1所示,TCP/IP协议栈从低层开始,依次为网络存取层、网络互连层、传输层和应用层,具体描述如下:

1.1  网络存取层(Network Access Layer)

网络存取层(又称网络层),位于TCP/IP协议栈的最低层,该层中的协议提供了数据传送的方法,使得系统可以通过连接的网络将数据传送到其它设备,并定义了如何利用网络来传送IP数据报。它基本上包括了ISO/OSI模型中的数据链路层和物理层的所有功能。TCP/IP网络存取层定义了网络传送IP数据报的方式(即流与分组),使得系统能够把数据传送给与网络直接相连的设备。

网络存取层的协议与较高层协议不一样,它必须知道物理网络的各种细节,以便准确地格式化传输的数据,使其遵守网络规定。因此,网络存取层的协议种类繁多,每一个协议都对应一种物理网络标准。这些协议常常由设备驱动程序和相关的程序结合而成,其内含的API除将IP数据封装成能在网络中传送的单元——帧外,还能将IP地址转换成为网络使用的物理地址。典型的协议实例有RFC 826(地址转换协议 ARP)、RFC 894(以太网上IP数据报传输标准)等。

1.2  网络互连层 (Internet Layer)

网络互连层(又称网际层)位于网络存取层之上,由互连网协议(IP)、互连网控制报文协议(ICMP)和互连网组管理协议(IGMP)等协议组成。IP是TCP/IP的核心,也是网络互连层中最重要的协议,它提供基本的分组传送服务,是构建TCP/IP网络的基础。因为,无论是IP上层还是IP下层的协议,也不管数据是输入还是输出,目的地在何方,它们都使用IP来传递数据。概括起来,IP主要完成以下任务:

  • 定义数据报,数据报是Internet中传输的基本单元。
  • 定义Internet地址系统。
  • 把数据报分解或重组成易于在网络中传输的结构。
  • 在网络存取层和传输层之间传递数据。
  • 给远端主机的数据报指定路由。
  • 完成数据报的拥挤控制和信息控制。

IP是一个“无连接协议”,它在传输数据之前不交换控制信息来建立端到端的连接,而且还要依靠其它层的协议提供错误检测和错误恢复。但这并不能说明IP协议是不可信赖的,事实上,它可以正确的将数据传送到已连接的网络,只是它并不能检验数据是否被正确地接收。

1.3  传输层( Transport Layer)

传输层也称主机到主机的传输层,位于TCP/IP栈的第3层,它为应用层提供可靠的或不可靠的端到端服务。TCP(传输控制协议)和UDP(用户数据报协议)是传输层中两个最重要的协议。它们都为应用层和网络互连层传送数据,二者的区别在于:TCP是一种可靠的、面向连接的、字节流协议,它利用端到端错误检测与纠正功能提供可靠的数据传输服务,因为它能验证数据在网络上是否以合适的序列正确地传输;而UDP是一个不可靠的无连接数据报协议,就像IP一样,它能为应用程序提供低开销的无连接数据报传输服务。

总之,TCP的优势在于可靠,但开销大;而UDP比较适合于传输的数据量少及使用“查询——响应”方式的应用程序的服务。

1.4  应用层(Application Layer)

应用层位于TCP/IP协议栈的顶层,它为用户提供各种网络服务,如文件传输、远程登录、电子邮件等。同时,应用层包含与具体应用程序相关的所有细节。

对于网络软件工程师而言,你在应用层的工作是将信息传到协议栈的下一合适层。协议栈的每一层要完成各自的功能。也就是说,TCP/IP协议将共同工作,完成地址转换、寻址和数据传输工作。为了和协议栈上的协议通信,必须知道有哪些协议可用,并知道它们在协议栈中的位置和功能。正常情况下应用程序将和传输协议的某一个协议(TCP或UDP)进行通信,或不使用传输层服务,直接与网络互连层的IP打交道(如外部网关协议 EGP)。

2  基于5层的TCP/IP协议栈基本描述

相对于ISO/OSI模型,基于5层的TCP/IP协议比基于4层的TCP/IP协议更容易理解,具体的分层方案如下图2:

图2   TCP/IP协议栈层次结构与ISO/OSI参考模型的对应关系

比较图2和图1可以看出,从顶层向下三层(应用层、传输层和网络互连层)对于基于5层的TCP/IP和基于4层的TCP/IP其功能都是一样的,这里不在赘述。除此之外,基于5层的TCP/IP在低层比基于4层的TCP/IP分层更详细,即用物理层和链路层两层来表示上面讲到的网络存取层。

2.1  物理层

TCP/IP协议栈的物理层与ISO/OSI模型的物理层相同——它包括携带网络数据的传输媒体介质,这种介质通常是双绞线、同轴电缆或标准串口线等,网络设计人员必须知道网络介质的传输特性。

2.2  链路层

链路层包括一个硬件接口和两个协议模块:地址解析协议(ARP)和反向地址解析协议(RARP)。链路层处理物理层和网络互连层的数据交换,并向网络互连层隐藏物理层的执行细节。当链路层完成其工作时,网络互连层的协议不关心网络是使用以太网技术还是令牌环技术,网络互连层只是简单地将数据传给链路层,然后由链路层处理所有进一步的数据传输。

综上所述,不论采用哪种分层方式,其核心和功能是一样的,特别是在应用层。应用层的初级网络用户对分层几乎不感兴趣,但要进行网络编程的人必须清楚这一点:当用户启动了某个应用层服务之后,该应用要首先建立一个到某特定机器的连接,随后告诉目的机器本次连接的操作意图,并控制整个操作过程。在源计算机系统中,应用层将要发送的信息交给服务层的TCP(或UDP),TCP通过增加TCP协议所规定的报头来确保信息正确地传输到目的地。然后,TCP把包括目的地址在内的报头和用户数据交给网络互连层的IP,IP负责为信息选择路由。由于 TCP和IP处理与网络有关的细节,所以应用层协议可以将一个网络连接看成一个简单的字节流,而不必描述与通信有关的任何细节。

对网络通信软件设计者而言,一个网络连接可由两对元素完全刻画:源主机的IP地址和应用程序端口号;目的主机的IP地址和应用程序端口号。为了保证使用TCP/IP 协议的网络中两台主机的正常连接,应禁止使用相同的IP地址和端口号,特别是IP地址。

TCP/IP协议——TCP/IP协议栈及框架相关推荐

  1. 深入理解TCP/IP协议-TCP建立与终止连接

    转载自  深入理解TCP/IP协议-TCP建立与终止连接 一.引言   TCP 是一个面向连接的协议.无论哪一方向另一方发送数据之前,都必须先在双方之间建立一条连接.连接创建与终止的状态变化图如下: ...

  2. TCP/IP协议 TCP包深入理解

    详细解释TCP/IP标志位 TCP报格式 继续使用TCP/IP协议 TCP浅析中抓到的包进行分析. no Time Source Destination protocal Length info 3 ...

  3. 计算机网络基础知识--TCP/IP协议、IP分组、TCP传输

    转 计算机网络基础知识--TCP/IP协议.IP分组.TCP传输 2017年12月08日 08:35:09 孔维昊 阅读数 1820 查看全文 http://www.taodudu.cc/news/s ...

  4. 【网络】网络的基础知识--TCP/IP协议、IP分组、TCP传输

    1.OSI参考模型: OSI(Open System Interconnect),即开放式系统互联.一般都称为OSI参考模型,是ISO(国际标准化组织)组织在1985年研究的网络互联模型.该体系结构标 ...

  5. 打印服务器通常不采用tcp ip协议,TCP/IP 卷Ⅰ协议-绪论

    TCP/IP 概述 简介:本系列文章,主要对TCP/IP协议族进行概述,其实对于整个计算机网络来说,TCP/IP只是属于其中的一个或者两个层级里面的内容: 1.1 分层 网络协议通常分不同的层次进行开 ...

  6. 网络编程入门 TCP/IP 协议 端口 IP 软件结构

    目录 一.软件结构 二.网络通信协议 三.协议分类: 四.网络编程三要素:协议,ip,端口号 1.协议 2.IP地址 3.IP地址分类 a.IPv4 b.IPv6 4.IP常用命令 1. 查看本机IP ...

  7. IP协议(RFC791)-IP包格式

    IP封包格式(IPv4包首部长度为20字节) Internet Header Format0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 ...

  8. linux ip协议号,IP协议号大全

    IP协议号大全(网络协议号) 1     ICMP        Internet Control Message           [RFC792] 2     IGMP        Inter ...

  9. 【计算机网络】6. 网络基础4之详解IP协议( IP协议头格式、IP地址管理、路由选择)

    目录 1. IP协议头格式 2. IP地址管理 2.1 IP地址的早期划分方式 2.1.1 A类 2.1.2 B类 2.1.3 C类 2.2 现在分配IP的方式:CIDR方式 2.2.1 引入子网掩码 ...

最新文章

  1. 【视频课】生成对抗网络经典任务,详解基于GAN的图像生成算法!
  2. 5G NR SRS (R15)
  3. 【转载保存】什么是线程阻塞?为什么会出现线程阻塞?
  4. 没有bug队——加贝——Python 练习实例 13,14
  5. php中命名空间、面向对象、访问控制、接口
  6. java中jxl飘红_jxl导出excel文件,部署到tomcat中就会报错,为什么呢,求解!
  7. css3 media媒体查询器用法总结
  8. Mysql中INSTR(str, substr)函数
  9. kernel命令行参数(grub启动项参数)
  10. 重力坝计算c语言程序,混凝土重力坝计算程序
  11. ubuntu上搭建wiki系统
  12. git远程上传gitbub的相关问题
  13. druid emitter 监控模块
  14. Stochastic Answer Networks for Machine Reading Comprehension读书笔记
  15. python红楼梦人物词频统计_通过数据挖掘能分析《红楼梦》各回的真伪吗?
  16. Ⅳ JavaScript函数
  17. [C语言]累加器----PTA
  18. ElementUI折叠组件bug问题及解决
  19. html2canvas边框无法渲染,html2canvas无法正常渲染特定的数据URI
  20. 黑客攻防从入门到精通 第7章及后文

热门文章

  1. win7 下anaconda TensorFlow tensorboard使用
  2. CY13-Q2 OpenStack、OpenNebula、Eucalyptus、CloudStack社区活跃度比较
  3. 区间之和 (sdut oj)
  4. Unity中fps游戏的枪准心的动态调整
  5. 7.6 曲面及其方程
  6. pygame文字绘制机制
  7. Java毕业设计——> JSP+Servlet+C3P0+Mysql实现的网上蛋糕店
  8. 深度学习——激励函数
  9. 数字化精准会员营销 助消费品连锁企业提升转化
  10. 全球及中国磷酸燃料电池行业销售状况及供需前景分析报告2022-2028年版