TCP IP模型及OSI参考模型Word下载.docx
- 文档编号:21141183
- 上传时间:2023-01-27
- 格式:DOCX
- 页数:8
- 大小:109.15KB
TCP IP模型及OSI参考模型Word下载.docx
《TCP IP模型及OSI参考模型Word下载.docx》由会员分享,可在线阅读,更多相关《TCP IP模型及OSI参考模型Word下载.docx(8页珍藏版)》请在冰豆网上搜索。
网络层检查网络拓扑,以决定传输报文的最佳路由,执行数据转发。
其关键问题是确定数据包从源端到目的端如何选择路由。
网络层的主要协议有IP、ICMP(InternetControlMessageProtocol,互联网控制报文协议)、IGMP(InternetGroupManagementProtocol,互联网组管理协议)、ARP(AddressResolutionProtocol,地址解析协议)和RARP(ReverseAddressResolutionProtocol,反向地址解析协议)等。
传输层的基本功能是为两台主机间的应用程序提供端到端的通信。
传输层从应用层接收数据,并且在必要的时候把它分成较小的单元,传递给网络层,并确保到达对方的各段信息正确无误。
传输层的主要协议有TCP、UDP(UserDatagraphProtocol,用户数据报协议)。
应用层负责处理特定的应用程序细节。
应用层显示接收到的信息,把用户的数据发送到低层,为应用软件提供网络接口。
应用层包含大量常用的应用程序,例如HTTP(HyperTextTransferProtocol超文本传输协议)、Telnet(远程登录)、FTP(FileTransferProtocol)等。
二、TCP/IP协议数据封装
图3TCP/IP协议数据封装
同OSI参考模型数据封装过程一样,TCP/IP协议在报文转发过程中,封装和去封装也发生在各层之间。
发送方,加封装的操作是逐层进行的:
各个应用程序将要发送的数据送给传输层;
传输层(TCP/UDP)把数据分段为大小一定的数据段,加上本层的报文头,发送给网络层。
在传输层报文头中,包含接收它所携带的数据的上层协议或应用程序的端口号,例如,Telnet的端口号是23。
传输层协议利用端口号来调用和区别应用层各种应用程序。
网络层对来自传输层的数据段进行一定的处理(利用协议号区分传输层协议、寻找下一跳地址、解析数据链路层物理地址等),加上本层的IP报文头后,转换为数据包,再发送给链路层(以太网、帧中继、PPP、HDLC等)。
链路层依据不同的数据链路层协议加上本层的帧头,发送给物理层以比特流的形式将报文发送出去。
在接收方,这种去封装的操作也是逐层进行的。
从物理层到数据链路层,逐层去掉各层的报文头部,将数据传递给应用程序执行。
三、传输层协议——TCP和UDP
传输层位于应用层和网络层之间,为终端主机提供端到端的连接,以及流量控制(由窗口机制实现)、可靠性(由序列号和确认技术实现)、支持全双工传输等等。
传输层协议有两种:
TCP和UDP。
虽然TCP和UDP都使用相同的网络层协议IP,但是TCP和UDP却为应用层提供完全不同的服务。
传输控制协议TCP:
为应用程序提供可靠的面向连接的通信服务,适用于要求得到响应的应用程序。
目前,许多流行的应用程序都使用TCP。
用户数据报协议UDP:
提供了无连接通信,且不对传送数据包进行可靠的保证。
适合于一次传输小量数据,可靠性则由应用层来负责。
TCP协议通过以下过程来保证端到端数据通信的可靠性:
1.TCP实体把应用程序划分为合适的数据块,加上TCP报文头,生成数据段;
2.当TCP实体发出数据段后,立即启动计时器,如果源设备在计时器清零后仍然没有收到目的设备的确认报文,重发数据段;
3.当对端TCP实体收到数据,发回一个确认。
4.TCP包含一个端到端的校验和字段,检测数据传输过程的任何变化。
如果目的设备收到的数据校验和计算结果有误,TCP将丢弃数据段,源设备在前面所述的计时器清零后重发数据段。
5.由于TCP数据承载在IP数据包内,而IP提供了无连接的、不可靠的服务,数据包有可能会失序。
TCP提供了重新排序机制,目的设备将收到的数据重新排序,交给应用程序。
6.TCP提供流量控制。
TCP连接的每一端都有缓冲窗口。
目的设备只允许源设备发送自己可以接收的数据,防止缓冲区溢出。
7.TCP支持全双工数据传输。
TCP协议为终端设备提供了面向连接的、可靠的网络服务,UDP协议为终端设备提供了无连接的、不可靠的数据报服务。
TCP协议为了保证数据传输的可靠性,相对于UDP报文,TCP报文头部有更多的字段选项。
我们来看一下TCP的报文头部主要字段:
每个TCP报文头部都包含源端口号(sourceport)和目的端口号(destinationport),用于标识和区分源端设备和目的端设备的应用进程。
在TCP/IP协议栈中,源端口号和目的端口号分别与源IP地址和目的IP地址组成套接字(socket),唯一的确定一条TCP连接。
序列号(Sequencenumber)字段用来标识TCP源端设备向目的端设备发送的字节流,它表示在这个报文段中的第一个数据字节。
如果将字节流看作在两个应用程序间的单向流动,则TCP用序列号对每个字节进行计数。
序列号是一个32bits的数。
既然每个传输的字节都被计数,确认序号(Acknowledgementnumber,32bits)包含发送确认的一端所期望接收到的下一个序号。
因此,确认序号应该是上次已成功收到的数据字节序列号加1。
TCP的流量控制由连接的每一端通过声明的窗口大小(windowssize)来提供。
窗口大小用数据包来表示,例如Windowssize=3,表示一次可以发送三个数据包。
窗口大小起始于确认字段指明的值,是一个16bits字段。
窗口大小可以调节。
校验和(checksum)字段用于校验TCP报头部分和数据部分的正确性。
最常见的可选字段是MSS(MaximumSegmentSize,最大报文大小)。
MSS指明本端所能够接收的最大长度的报文段。
当一个TCP连接建立时,连接的双方都要通告各自的MSS协商可以传输的最大报文长度。
我们常见的MSS有1024(以太网可达1460字节)字节。
相对于TCP报文,UDP报文只有少量的字段:
源端口号、目的端口号、长度、校验和等,各个字段功能和TCP报文相应字段一样。
UDP报文没有可靠性保证和顺序保证字段,流量控制字段等,可靠性较差。
当然,使用传输层UDP服务的应用程序也有优势。
正因为UDP协议较少的控制选项,在数据传输过程中,延迟较小,数据传输效率较高,适合于对可靠性要求并不高的应用程序,或者可以保障可靠性的应用程序像DNS、TFTP、SNMP等;
UDP协议也可以用于传输链路可靠的网络。
TCP协议和UDP协议使用16bits端口号(或者socket)来表示和区别网络中的不同应用程序,网络层协议IP使用特定的协议号(TCP6,UDP17)来表示和区别传输层协议。
任何TCP/IP实现所提供的服务都是1~1023之间的端口号,这些端口号由IANA(InternetAssignedNumbersAuthority,Internet号码分配机构)分配管理。
其中,低于255的端口号保留用于公共应用;
255到1023的端口号分配给各个公司,用于特殊应用;
对于高于1023的端口号,称为临时端口号,IANA未做规定。
常用的TCP端口号有:
HTTP80,FTP20/21,Telnet23,SMTP25,DNS53等;
常用的保留UDP端口号有:
DNS53,BootP67(server)/68(client),TFTP69,SNMP161等。
套接字(socket)分为源套接字和目的套接字:
源套接字:
源端口号+源IP地址;
目的套接字:
目的端口号+目的IP地址;
源套接字和目的套接字用于唯一的确定一条TCP连接。
TCP滑动窗口技术通过动态改变窗口大小来调节两台主机间数据传输。
每个TCP/IP主机支持全双工数据传输,因此TCP有两个滑动窗口:
一个用于接收数据,另一个用于发送数据。
TCP使用肯定确认技术,其确认号指的是下一个所期待的字节。
下面我们以数据单方向发送为例,介绍滑动窗口如何实现流量控制。
假定发送方设备以每一次三个数据包的方式发送数据,也就是说,窗口大小为3。
发送方发送序列号为1、2、3的三个数据包,接收方设备成功接收数据包,用序列号4确认。
发送方设备收到确认,继续以窗口大小3发送数据。
当接收方设备要求降低或者增大网络流量时,可以对窗口大小进行减小或者增加,本例降低窗口大小为2,每一次发送两个数据包。
当接收方设备要求窗口大小为0,表明接收方已经接收了全部数据,或者接收方应用程序没有时间读取数据,要求暂停发送。
发送方接收到携带窗口号为0的确认,停止这一方向的数据传输。
滑动窗口机制为端到端设备间的数据传输提供了可靠的流量控制机制。
然而,它只能在源端设备和目的端设备起作用,当网络中间设备(例如路由器等)发生拥塞时,滑动窗口机制将不起作用。
我们可以利用ICMP的源抑制机制进行拥塞管理。
四、网络层协议
图4网络层协议
1.IP(InternetProtocol)协议:
IP协议和路由协议协同工作,寻找能够将数据包传送到目的端的最优路径。
IP协议不关心数据报文的内容,提供无连接的、不可靠的服务。
2.ARP协议(AddressResolutionProtocol,地址解析协议):
把已知的IP地址解析为MAC地址。
图5ARP协议示意图
假定主机A需要知道主机B的MAC地址,主机A发送称为ARP请求的以太网数据帧给网段上的每一台主机,这个过程称为广播。
发送的ARP请求报文中,带有自己的IP地址到MAC地址的映射,同时还带有需要解析的目的主机的IP地址。
目的主机B收到请求报文后,将其中的主机A的IP地址与MAC地址的映射存到自己的ARP高速缓存中,并把自己的IP地址到MAC地址的映射作为响应发回主机A。
主机A收到ARP应答,就得到了主机B的MAC地址,同时,主机A缓存主机B的IP地址到MAC地址映射。
3.RARP(ReverseAddressResolutionProtocol,反向地址解析协议):
用于数据链路层地址已知时,解析IP地址。
图6RARP协议示意
RARP常用于无盘工作站等,这些设备知道自己MAC地址,需要获得IP地址。
以图6为例,无盘工作站需要获得自己的IP地址,向网络中广播RARP请求,RARP服务器接收广播请求,发送应答报文,无盘工作站获得IP地址。
对应于ARP、RARP请求以广播方式发送,ARP、RARP应答一般以单播方式发送,以节省网络资源。
4.ICMP(InternetControlMessageProtocol,网际控制消息协议)定义了网络层控制和传递消息的功能。
ICMP包含很多种不同类型的消息,其中ping和tracert命令就是使用不同类型的ICMP消息来对网络的连通性作一些检测。
执行ping命令的一方(也就是源节点)向目的节点发送echorequest消息,如果两个节点是连通的,目的节点就会向源节点发送回来EchoReply消息,那么源节点也就知道目的节点是可达的。
tracert命令和ping命令类似,但是tracert命令可以显示数据包经过的每一台网络设备信息。
比如,在A上执行ping命令去pingB,从源A发向目的B。
当B收到后,会返回消息,此时就是从B发向A。
在这个例子中,就是有两个数据流来完成一次ping操作:
先是从A向B的echorequest,然后是从B向A的echoreply。
同样的一个网络,如果我们是在B上执行ping命令去pingA,也是有两个数据流,先是从B到A的echorequest,然后是从A到B的echoreply。
了解了数据流的走向之后,就可以使用一些过滤工具对数据流进行过滤,从而实现对网络中各种应用的控制。
如借助一些数据过滤工具,在A和B之间进行数据过滤,只允许从B到A的echoreply,但是不允许从B到A的echorequest,而从A到B的所有流量都是允许的,这样的结果就是可以从A能ping通B,但是从B不能ping通A。
这也是我们在日常的网络维护过程中常用的一些简单有效的应用控制方法。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- TCP IP模型及OSI参考模型 IP 模型 OSI 参考