TCP/IP协议与OSI七层模型

TCP/IP协议与OSI七层模型

  • TCP/IP协议
    • TCP分层
    • 细分TCP/IP协议族
    • TCP与UDP之间的区别
    • TCP三次握手
  • OSI七层模型
    • OSI七层模型以及各层作用
    • OSI 七层模型中每一层的协议数据单元
    • OSI 七层模型中每一层的相对应的主要设备
    • 数据的解封装
  • 总结
    • TCP/IP总结
    • OSI七层模型总结

TCP/IP协议

网络协议通常分不同层次进行开发,每一层分别负责不同的通信功能。一个协议族,比如 T C P / I P,是一组不同层次上的多个协议的组合。 T C P / I P通常被认为是一个四层协议系统,如图所示。

TCP/IP协议与OSI七层模型_第1张图片

TCP分层

每一层负责不同的功能:

  1. 链路层,有时也称作数据链路层或网络接口层,通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡。它们一起处理与电缆(或其他任何传输媒介)的物理接口细节。

  2. 网络层,有时也称作互联网层,处理分组在网络中的活动,例如分组的选路。在T C P / I P协议族中,网络层协议包括 I P协议(网际协议),I C M P协议(I n t e r n e t互联网控制报文协议),以及I G M P协议(I n t e r n e t组管理协议)。

  3. 运输层主要为两台主机上的应用程序提供端到端的通信。在 T C P / I P协议族中,有两个互不相同的传输协议:T C P(传输控制协议)和U D P(用户数据报协议)。
    T C P为两台主机提供高可靠性的数据通信。它所做的工作包括把应用程序交给它的数据分成合适的小块交给下面的网络层,确认接收到的分组,设置发送最后确认分组的超时时钟等。由于运输层提供了高可靠性的端到端的通信,因此应用层可以忽略所有这些细节。
    而另一方面,U D P则为应用层提供一种非常简单的服务。它只是把称作数据报的分组从一台主机发送到另一台主机,但并不保证该数据报能到达另一端。任何必需的可靠性必须由应用层来提供。

  4. 应用层负责处理特定的应用程序细节。几乎各种不同的 T C P / I P实现都会提供下面这些通用的应用程序:
    • Telnet 远程登录。
    • FTP 文件传输协议。
    • SMTP 简单邮件传送协议。
    • SNMP 简单网络管理协议

细分TCP/IP协议族

在T C P / I P协议族中,有很多种协议。
TCP/IP协议与OSI七层模型_第2张图片

T C P和U D P是两种最为著名的运输层协议,二者都使用 I P作为网络层协议。
虽然T C P使用不可靠的 I P服务,但它却提供一种可靠的运输层服务。

U D P为应用程序发送和接收数据报。一个数据报是指从发送方传输到接收方的一个信息单元(例如,发送方指定的一定字节数的信息)。但是与T C P不同的是,U D P是不可靠的,它不能保证数据报能安全无误地到达最终目的。

I P是网络层上的主要协议,同时被 T C P和U D P使用。T C P和U D P的每组数据都通过端系统和每个中间路由器中的I P层在互联网中进行传输。

I C M P是I P协议的附属协议。I P层用它来与其他主机或路由器交换错误报文和其他重要信息。尽管I C M P主要被I P使用,但应用程序也有可能访问它。我们将分析两个流行的诊断工具,P i n g和Tr a c e r o u t e,它们都使用了I C M P。

I G M P是I n t e r n e t组管理协议。它用来把一个 U D P数据报多播到多个主机。A R P(地址解析协议)和R A R P(逆地址解析协议)是某些网络接口(如以太网和令牌环网)使用的特殊协议,用来转换 I P层和网络接口层使用的地址。

TCP与UDP之间的区别

1.TCP 是面向连接的、可靠的传输协议,适用于对安全性和稳定性要求高的数据传输。
2.UDP 是面向无连接的,不可靠的传输协议。适用于网络负担重、对传输时延要求低的数据传输。

TCP三次握手

TCP/IP协议与OSI七层模型_第3张图片

假设网络中两台机器分别是 客户端A、服务器B 之间建立 TCP 连接。

首先一次握手,客户端A建立传输控制模块 TCB(传输控制块的数据结构把发给不同设备的数据封装起来),发送SYN报文包( 报文段首部的同步位 SYN=1表示请求服务器B建立连接,以及一个序列号 seq=x表示数据段的序号),此时客户端A进入syn_send状态,等待服务器 B的确认。

第二次握手,当服务器B收到客户端A的syn报文包,需要给客户端发送ACK确认报文包,同时服务器B也要向客户端A发送一个SNY报文包,所以也就是向客户端发送SYN报文包加ACK报文包(同步位SYN=1表示同步位等于1代表收到了客户端A的请求,确认位ACK=1表示确认位为1代表服务器B同意建立连接,序列号seq=y 表示服务器B发送的数据段序号,确认号ack=x+1表示确认号,希望客户端A回复的报文序号为x+1),此时服务器B进入syn_rcvd的状态

第三次握手,客户端A收到SYN报文包加ACK报文包,向服务器B发送ACK确认包(确认位ACK=1表示服务器B同意连接,序列号seq=x+1表示数据段的序号+1,确认号ack=y+1表示在正式传输数据时,第一个包的序号为y+1),客户端A进入Established的状态待服务器B收到客户端A发送的ACK包,也会进入Established的状态,完成三次握手
(ack表示确认号,ACK表示确认位)

OSI七层模型

开放式系统互联通信参考模型(英语:Open System Interconnection Reference Model,缩写为 OSI),简称为OSI模型(OSI model),一种概念模型,由国际标准化组织提出,一个试图使各种计算机在世界范围内互连为网络的标准框架。定义于ISO/IEC 7498-1。

OSI七层模型以及各层作用

TCP/IP协议与OSI七层模型_第4张图片

层次模型 作用
应用层 网络服务与最终用户的一个接口
表示层 数据的表示、压缩、格式化、加密
会话层 建立、管理、终止会话
传输层 定义传输数据的协议端口号,以及流量与差错校验
网络层 进行逻辑地址寻址,实现不同网络的路径选择
数据链路层 进行硬件地址寻址,差错校验等功能
物理层 建立、维护、断开物理连接

OSI 七层模型中每一层的协议数据单元

层次模型 数据单元
传输层 数据段
网络层 数据包
数据链路层 数据帧
物理层 比特流

OSI 七层模型中每一层的相对应的主要设备

层次模型 主要设备
传输层 防火墙
网络层 路由器
数据链路层 交换机
物理层 网卡

数据的解封装

当应用程序用 T C P传送数据时,数据被送入协议栈中,然后逐个通过每一层直到被当作一串比特流送入网络。其中每一层对收到的数据都要增加一些首部信息(有时还要增加尾部信息),该过程如图所示。T C P传给I P的数据单元称作 T C P报文段或简称为 T C P段(T C P s e g m e n t)。I P传给网络接口层的数据单元称作 I P数据报(IP datagram)。通过以太网传输的比特流称作帧(Fr a m e )。

如图中帧头和帧尾下面所标注的数字是典型以太网帧首部的字节长度。
TCP/IP协议与OSI七层模型_第5张图片

以太网数据帧的物理特性是其长度必须在 4 6~1 5 0 0字节之间。

更准确地说,图中I P和网络接口层之间传送的数据单元应该是分组( p a c k e t)。分组既可以是一个I P数据报,也可以是I P数据报的一个片(f r a g m e n t)。

U D P数据与T C P数据基本一致。唯一的不同是 U D P传给I P的信息单元称作 U D P数据报(UDP datagram),而且U D P的首部长为8字节。

由于T C P、U D P、I C M P和I G M P都要向I P传送数据,因此I P必须在生成的I P首部中加入某种标识,以表明数据属于哪一层。为此, I P在首部中存入一个长度为8 b i t的数值,称作协议域。

许多应用程序都可以使用 T C P或U D P来传送数据。运输层协议在生成报文首部时要存入一个应用程序的标识符。 T C P和U D P都用一个1 6 b i t的端口号来表示不同的应用程序。T C P和U D P把源端口号和目的端口号分别存入报文首部中。

总结

TCP/IP总结

T C P / I P协议族分为四层:链路层、网络层、运输层和应用层,每一层各有不同的责任。在T C P / I P中,网络层和运输层之间的区别是最为关键的:网络层( I P)提供点到点的服务,而运输层(T C P和U D P)提供端到端的服务。

一个互联网是网络的网络。构造互联网的共同基石是路由器,它们在 I P层把网络连在一起。第一个字母大写的I n t e r n e t是指分布在世界各地的大型互联网,其中包括 1万多个网络和超过1 0 0万台主机。

在一个互联网上,每个接口都用 I P地址来标识,尽管用户习惯使用主机名而不是 I P地址。域名系统为主机名和 I P地址之间提供动态的映射。端口号用来标识互相通信的应用程序。服务器使用知名端口号,而客户使用临时设定的端口号。

OSI七层模型总结

TCP/IP协议与OSI七层模型_第6张图片

你可能感兴趣的:(tcp/ip,网络,网络协议)