传输层网络协议.docx
- 文档编号:29037174
- 上传时间:2023-07-20
- 格式:DOCX
- 页数:9
- 大小:21.14KB
传输层网络协议.docx
《传输层网络协议.docx》由会员分享,可在线阅读,更多相关《传输层网络协议.docx(9页珍藏版)》请在冰豆网上搜索。
传输层网络协议
竭诚为您提供优质文档/双击可除
传输层网络协议
篇一:
osi七层网络协议之传输层
介于应用层和网络层之间的传输层是分层网络体系结构的重心部分。
它的重要任务就是直接给运行在不同主机上的应用程序提供通信服务。
传输层协议为不同主机上的应用程序进程提供逻辑通信。
逻辑通信的意思就是尽管通信的应用进程之间不是物理连接的(实际上,它们可能是在一个行星的不同位置,通过各种各样的路由器和各种链接类型连在一起),而从应用程序的角度来看,它们就像是物理连接的一样。
应用程序通过使用传输层提供的逻辑通信互相传输信息,而不用考虑用来传送这些信息的物理基础设施。
团.1描述了逻辑通信的概念。
如图1所示,传输层协议实现于终端系统上,而不是在网络路由器上。
网络路由器只作用于3—pdu的网络层字段,而不作用于传输层字段。
图1传输层在两个应用程序之间提供了逻辑的而不是物理的通信
在发送方,传输层将应用程序发送的消息转换成4—pdu形式(即:
传输层协议数据单元)。
构造4-pdu的过程就是将应用程序消息分割成较小的块,井给每个块加上一个头部。
然后,传输层将这些4-pdu传递给网络层。
在网络层,每一个4—pdu又被封装到一个3—pdu今。
在接收方,传输层接收从网络层传送过来
的4—pdu,并将这些4-pdu的头部去掉,将消息重新装配,最后将它们传递给接收进程。
一个计算机网络可以为网络应用程序制定多个传输层协议。
例如,因特网(internet)有两个协议——tcp和udp。
每一个协议都为调用应用程序提供一套不同的服务。
所有的传输层协议都为应用程序提供多路复用多路分解服务。
除了多路复用移路分解服务之外,传输层协议还可以给应用进程提供其他服务,包括可靠数据传输、带宽保证和传输延迟保证。
传输层和网络层之间的关系
在协议栈中,传输层位于网络层之上,传输层协议为不同主机上运行的进程提供逻辑通信,而网络层协议为不同主机提供逻辑通信。
这个区别很微妙,但是却非常重要。
让我们用一家人作为类比来说明一下这个区别。
设想一下有两所房子,一个位于东海岸而另一个位于西海岸,每所房子里都住着12个小孩。
东海岸的房子里的小孩和西海岸房子里的小孩是堂兄妹。
两所房子里的孩子喜欢互相通信——每个孩子每周都给每一个堂兄妹写一封信,每一封信都由老式的邮局分别用信封来寄。
这样,每一家每周就都有144封信要送到另一家(这些孩子如果可以用电子邮件的话就可以省掉很多钱了!
)在每一家里面.都由一个孩子——西海岸的房子里的ann和东海岸房子里的bili——负责邮件的收集和分发。
每周ann都从她的兄弟姐妹那里收集起来信件,并将这些信件送到每天都来的邮递服务员那里。
当信件到达西海岸的房子,ann又将这些信件分发给她的兄弟姐妹。
bili在东海岸有着同样的工作。
在这个例于中,邮递服务提供着两所房子之间的逻辑通信——邮递服务在两所房子之间传递邮件,而不是针对每个人的服务。
另一方面,ann和bili提供堂兄妹之间的逻辑通信——ann和bili从他们的兄弟姐妹那里收集邮件并将邮件递送给他们。
注意,从这些堂兄妹的角度看,ann和bili是邮件的服务人,尽管他们俩只是端到端寄送服务的一部分(终端系统部分)。
这个例子是传输层和网络层之间的关系的一个形象比喻:
主机(也称为终端系统)=房子进程=堂兄妹应用程序消息=信封里的信网络层协议=邮递服务(包括邮递员)传输层协议=ann和bill
继续我们的这个例子,ann和bill各自在他们的家中做所有的工作:
他们不负责各个邮递中心的邮件分类工作以及将邮件从一个中心送到另一个中心的工作。
这正与传输层协议在终端系统中的作用一样。
在一个终端系统中,传输层协议将应用进程的消息传送到网络边缘(也就是网络层),反之亦然:
但是它并不涉
及消息是如何在网络层之间传送的工作。
事实上,正如图1中所说的,中间路由器对于传输层加在应用程序消息上的信息不能做任何识别和处理。
继续我们的例子,假设ann和bill都去度假了,另外一对堂兄妹——susan和harvey代替——他们来提供家庭内部的邮件收取和分发工作。
不幸的是,susan和harvey所提供的收集和分发工作与ann和bill所提供的不完全相同。
对于年龄更小的susan和harvey来说,他们收集和分发邮件的频率比较少,而且偶尔会发生丢失信件的事情(这些信件偶尔被家里的狗吃掉了)。
这样,这一对堂兄妹susan和harvey提供了一套不同于ann和bill的服务(也就是说,服务模型不同)。
打比方来说,正如一个计算机网络可以接受不同的传输层协议一样,每一个协议为应用程序提供不同的服务模型。
ann和bill所可能提供服务明显地受限于邮递服务所提供的服务。
例如,如果邮递服务并不提供在两所房子之间传递邮件所需要的最大时限(如3天),那么ann和bill也就不能保证各个堂兄妹之间的邮件的最大延迟。
同样,传输层协议所提供的服务也通常受限于位于其下方的网络层协议。
如果网络层协议不能提供主机之间传送的4—pdu的延迟和带宽保证,那么传输层协议也不能提供进程之间传送的消息的延迟和带宽保证。
然而,即使当下面的网络层协议使得网络层并不能提供某些相应服务时,传输层协议仍然可以提供某些特定服务。
例如,即使下面的网络层协议并不是可靠的,也就是说,即使网络层协议丢失、篡改或者复制了传送的数据包,传输层协议也可以提供可靠的数据传输服务。
另一个例子是,即使网络层不能保证4—pdu的保密性,传输层协议也可以通过加密的方式来保证应用程序消息不被入侵吝读取。
我们会在以后的文章里逐渐接触到这些问题。
因特网中传输层
回忆一下因特网,通常是tcp/ip网络,应用层可以得到两种不同的传输层协议。
其中—·种协议是udp(userdatagramprotocol),它为调用应用进程提供了一种不可靠的、无连接的服务。
第二种协议是tcp(tansmissioncontrolprotocol),它为调用应用进程提供了一种可靠的、面向连接的服务。
当设计一个网络应用程序时,应用程序外发者必须指定这两种传输协议中的一种。
在进行udp和tcp的简单介绍之前,我们有必要先简介—下因特网的网络层。
因特网的网络层协议有——个名字——id,也就是inteRnetprotocol。
ip提供了主机之间的逻辑通信。
ip服务模型是一个尽力传送服务。
这就意味着ip尽它最大的努力在通信主机之间传送数据段,但是却不提供任何保障。
特别是,它不能保证数据段传输的安全性,不能保证数据段的顺序传输,不能保证数据段传输的数据完整性。
基于这些原因,ip被称为不可靠服务。
每一个主机都要有一个ip地址。
在对ip服务模型进行了简要介绍之后,让我们来总结—下tcp和udp的服务模型。
udp和tcp的基本职责就是将ip的两个终端系统之间的传送服务扩展为终端系统上运行的两个进程之间的传送服务。
主机—主机的传送到进程—进程
传送的扩展被称为应用程序的多路复用和多路分解。
udp和tcp还通过在头部中加入纠错字段来提供完整性检测。
这两个最小的传输层服务——进程—进程数据传送和错误检测——是udp所提供的惟一的两个服务!
特别是,正如ip一样,udp是一种不可靠的服务,它不能保证由一个进程送出的数据可以完整地到达目标进程。
另一方面,tcp为应用进程提供了几种额外的服务。
首先,也是最重要的,它提供可靠的数据传输。
通过使用数据流控制、序列编号、确认和计时器(我们会在以后的文章介绍这些技术),tcp保证了数据正确有序地从发送方进程传送到接收方进程。
这样,tcp就将ip的终端系统之间的不可靠传送服务转换成了进程之间的可靠的数据传输服务。
tcp还使用了拥塞控制机制。
与其说拥塞控制是提供给调用进程的服务,不如说它是提供给整个因特网的服务,为了公共利益的服务。
泛泛地说,tcp拥塞控制阻止了任何一个tcp连接在超大量数据传输时链路和交换机被淹没的问题。
确切地说,tcp允许tcp连接通过一个拥挤的网络链路平等地分享该链接的带宽。
这是通过调整发送方tcp可以传送到网络的流量米实现的。
而udp的通信流量是无法进行控制的。
一个使用udp传输协议的应用程序可以用其需要的任意速度发送数据。
篇二:
传输层协议及其应用
传输层协议及其应用
实验目的
1掌握传输层端口的作用
2了解udp协议的报文格式
3理解udp协议的工作原理
1.了解tcp协议的报文格式
2.理解tcp连接建立和释放的过程
3.理解tcp数据传输中编号与确认的过程
4.理解tcp重传机制
实验内容
1.通过使用udp工具,来学习传输层端口的作用。
1.
2.
1.
2.通过使用udp工具,来学习udp单播通信的过程。
通过使用udp工具,来学习udp广播通信的过程。
通过使用tcp工具,来学习tcp连接建立和释放的过程。
通过使用tcp工具,来学习tcp重传机制。
练习一通信端口的作用
实验原理
在网络技术中,端口(port)大致有两种意思:
一是物理意义上的端口,比如,adslmodem、集线器、交换机、路由器用于连接其他网络设备的接口,如Rj-45端口、sc端口等等。
二是逻辑意义上的端口,一般是指tcp/ip协议中的端口,端口号的范围从0到65535,比如用于浏览网页服务的80端口,用于Ftp服务的21端口等等。
我们这里将要介绍的就是逻辑意义上的端口。
逻辑意义上的端口有多种分类标准,下面将介绍两种常见的分类:
1.按端口号分布划分
(1)知名端口(well-knownports)
知名端口即众所周知的端口号,范围从0到1023,这些端口号一般固定分配给一些服务。
比如21端口分配给Ftp服务,25端口分配给smtp(简单邮件传输协议)服务,80端口分配给http服务,135端口分配给Rpc(远程过程调用)服务等等。
(2)动态端口(dynamicports)
动态端口的范围从1024到65535,这些端口号一般不固定分配给某个服务,也就是说许多服务都可以使用这些端口。
只要运行的程序向系统提出访问网络的申请,那么系统就可以从这些端口号中分配一个供该程序使用。
比如1024端口就是分配给第一个向系统发出申请的程序。
在关闭程序进程后,就会释放所占用的端口号。
不过,动态端口也常常被病毒木
马程序所利用,如冰河默认连接端口是7626、way2.4是8011、netspy3.0是7306、yai病毒是1024等等。
2.按协议类型划分
按协议类型划分,可以分为tcp、udp、ip和icmp等端口。
下面主要介绍tcp和udp端口:
(1)tcp端口
tcp端口,即传输控制协议端口,需要在客户端和服务器之间建立连接,这样可以提供可靠的数据传输。
常见的包括Ftp服务的21端口,telnet服务的23端口,smtp服务的25端口,以及http服务的80端口等等。
(2)udp端口
udp端口,即用户数据报协议端口,无需在客户端和服务器之间建立连接,安全性得不到保障。
常见的有dns服务的53端口,snmp(简单网络管理协议)服务的161端口,qq使用的8000和4000端口等等。
查看端口,可以使用netstat命令。
端口的作用就是让应用层的各种应用进程都能将其数据通过端口向下交付给运输层,以及让运输层知道应当将其报文段中的数据向上通过端口交付给应用层相应的进程。
从这个意义上讲,端口是用来标志应用层的进程。
实验步骤
【实验说明】
实验开始前,首先使用分组切换器将实验主机切换到理论学习环境中;
将智能网络设备的网络结构切换到“网络结构一”;
主机a、b、c、d、e、F使用【快照】将windows虚拟机恢复到“网络结构1”的状态;该练习每组2人,主机a和b作为一组,主机c和d作为一组,主机e和F作为一组,实验步骤以主机a、b所在组为例进行说明,其他组的操作参考主机a、b所在组的操作。
主机c、F的操作与主机a的相同,主机d、e的操作与主机b的相同;
单击平台工具栏中的【网络拓扑验证工具】,进入到实验指定的网络结构中,单击【拓扑验证】进行验证,如果验证成功,则开始进行实验,如果失败,则检查网络的连接情况。
1.主机a在工具栏中单击【udp工具】启动udp工具,选择服务器端,端口为2000,单击【创建】,准备接收数据。
图9-1-1创建udp服务器端
2.主机b首先单击工具栏中的【地址本】按钮,打开地址本工具。
图9-1-2地址本工具
3.主机b单击(【主机扫描】)按钮,在扫描的主机列表中,找出本组主机a的ip地址。
图9-1-3地址本工具扫描结果
4.主机b再选择【udp工具】,启动udp工具,选择客户端,端口为2000,在“地址”栏中输入主机a的ip地址,在“数据”栏中输入若干数据,点击【发送】按钮,发送数据给主机a,主机a进行观察。
篇三:
计算机网络实验-传输层协议分析
实验四、传输层协议分析
【实验目的】
1.通过捕获tcp包并进行分析,了解传输层协议的工作过程,加深对tcp及面向连接的服务的工作原理的理解与掌握,
2.观察简单的tcp流传输,理解其首部各字段的变化。
3.理解udp数据报的传输特点。
【实验原理】
pc1主动打开
连接请求
确认
pc2被动打开
确认确认
【实验内容】
1、查看分析tcp链路管理
(1)、在pc2(192.168.2.24)中安装有Ftp服务端程序。
(2)、在pc1中开启协议分析软件,进行数据包抓包。
(3)、在pc1中的协议分析软件中利用工具栏中的tcp连接工具对pc2发起连接,如下图所示。
图4-12tcp连接工具
在ip地址中填入pc2地址192.168.2.24,端口填入Ftp服务端口21,然后点击连接。
分析捕获到的三次握手报文。
图4-13三
次握手第一次连接
查看上图tcp报文中的报头部分:
源端口:
3241,由于发起连接的是客户端,因此源端口为tcp程序随机出的短暂端口,
在此连接中是3241。
目的端口:
21,由于是向Ftp服务发起连接,因此目的端口为Ftp服务的熟知端口,为21。
序列号:
0x732020cd,此序列号为tcp程序随机出的字节编号。
确认序号:
0x00000000,第一个发出的连接请求中,确认号为0。
tcp首部长度:
7,tcp首部长度包括tcp报头长度和数据长度,这个字段表示tcp报头长
度,其中20字节为标准tcp报头长度,另有8字节选项字段长度,选项字段中和服务器端协商了最大报文段长度。
标识位:
syn位置1,只有tcp连接中三次握手第一次连接的报文段中syn位置1。
窗口大小:
65535,默认大小。
校验和:
0x5d64,校验和是对tcp报头、数据和伪首部进行计算得出的校验和。
紧急指针:
0,当紧急标识位置1时,此16位字段才有效,说明此时报文段中包含紧急数
据,紧急数据到达接受端后可以不按次序优先被接受程序处理。
tcp三次握手过程中第二个报文如下图所示。
图4-14tcp三次握手第二个报文
查看上图中的tcp报头:
源端口:
21,服务端的源端口为相关服务的熟知端口,Ftp服务端口为tcp21。
目的端口:
3241,为客户端源端口复制过来得到。
序列号:
0x219deaa0,为服务端随机计算出的字节序号。
确认序列号:
0x732020ce,确认序列号的功能是对发送端数据进行确认,为发送端序号
0x732020cd+1得到。
tcp首部长度:
7,包含20字节标准tcp首部长度和8字节选项长度。
标志位:
syn位和ack位置1,表示此报文为tcp三次握手的第二个报文。
窗口大小:
65535,为默认大小。
校验和:
0x1115,tcp校验和为tcp首部、数据和伪首部三部分计算得出校验和。
紧急指针:
0。
tcp三次握手第三个报文如下图所示。
图4-15tcp三次握手第三个报文
查看tcp三次握手第三个报文首部:
源端口:
3241,同一个连接发送的数据,源端口保持不变。
目的端口:
21,对同一个服务发送的数据段中的目的端口保持不变。
序列号:
0x732020ce,为前一个数据段序列号加1。
确认序号:
0x219deaa1,由于此报文是对服务端发回的连接应答消息的确认,因此是上
一个报文序号0x219deaa0加1。
tcp首部长度:
5,标准tcp首部长度为5*4字节=20字节。
标识位:
tcp三次握手第三个报文段ack位置1。
窗口大小:
65535,默认窗口大小。
校验和:
0x7dd9,为tcp首部、数据、伪首部计算得出的校验和。
紧急指针:
0,未使用紧急指针。
通过上面的tcp三次握手的报文,可以很清楚的分析出在tcp连接建立时,客户端和服务端所进行的工作。
三次报文的重要区别在于标识位的不同,第一个报文,syn位置1,第二个报文是对第一个报文的确认,syn位置1,ack位置1,第三个报文是确认报文,ack位置1。
将三次握手的过程画出示意图并说明,并填写表中的信息
表4-1tcp报头和数据信息列表
客户端tcp连接建立阶段(控制连接)Ftp服务器
syn=
(1),ack=(0),Fin=(0)seqnum(0x732020cd)
port(21)port(21)
acknum(0x00000000)syn=
(1),ack=
(1),Fin=(0)
seqnum(0x219deaa0)acknum(0x732020ce)syn=(0),ack=
(1),Fin=(0)seqnum(0x732020ce)acknum(0x219deaa1)
2.通过捕获dns数据包分析其传输层udp报头各字段含义并写出你捕获到的下列字段的数值(选做内容)
端口号:
4104目的端口号:
53udp总长度:
53
【思考题】
1.tcp在建立连接时为什么需要3次握手,而断开连接是需要几次握手?
答:
4次。
(1)客户端a发送一个Fin,用来关闭客户a到服务器b的数据传送。
(2)服务器b收到这个Fin,它发回一个ack,确认序号为收到的序号加1。
和syn
一样,一个Fin将占用一个序号。
(3)服务器b关闭与客户端a的连接,发送一个Fin给客户端a。
(4)客户端a发回ack报文确认,并将确认序号设置为收到序号加1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 传输 网络 协议