




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、学习tcp/ i p协议必须死记的东东tcp/ip的通讯协议这部分简要介绍一下tcp/ip的内部结构,为讨论与互联网冇关的安全问题打下基础。tcp /ip协议组之所以流行,部分原因是因为它可以用在各利|各样的信道和底层协议(例如t1 和x.25、以太网以& rs-232串行接口)z上。确切地说,tcp/ip协议是一组包括tcp 协议和 ip 协议,udp (user datagram protocol)协议、icmp (internet control messa ge protocol)协议和他一些协议的协议组。tcp/ip整体构架概述tcp/ip协议并不完全符合osi的七层参考模型
2、。传统的开放式系统互连参考模型,是一种 通信协议的7层抽象的参考模型,其中每一层执行某一特定任务。该模型的h的是使各种硬 件在相同的层次上相互通信。这7层是:物理层、数据链路层、网路层、传输层、话路层、 表示层和应用层。ifu tcp/ip通讯协议采用了 4层的层级结构,每一层都呼叫它的下一层所 捉供的网络來完成自己的需求。这4层分别为:应用层:应用程序间沟通的层,如简单电子邮件传输(smtp)、文件传输协议(ftp)、 网络远程访问协议(telnet)等。传输层:在此层中,它捉供了节点间的数据传送服务,如传输控制协议(tcp)、用户数据 报协议(udp)等,tcp和udp给数据包加入传输数据
3、并把它传输到下一层中,这一层负 责传送数据,并且确定数据已被送达并接收。互连网络层:负责提供基木的数据封包传送功能,让每一块数据包都能够到达冃的主机(但 不检査是否被正确接收),如网际协议(ip) o网络接口层:对实际的网络媒体的管理,定义如何使用实际网络(如ethernet、serial lin e等)來传送数据。tcp/ip中的协议以下简单介绍tcp/ip中的协议都具备什么样的功能,都是如何工作的:1.ip网际协议ip是tcp/ip的心脏,也是网络层中最重要的协议。ip层接收由更低层(网络接口层例如以太网设备驱动程序)发来的数据包,并把该数据包 发送到更高层tcp或udp层;相反,ip层也
4、把从tcp或udp层接收来的数据包传送 到更低层。ip数据包是不可靠的,因为ip并没有做任何事悄来确认数据包是按顺序发送的 或者没有被破坏。ip数据包屮含有发送它的主机的地址(源地址)和接收它的主机的地址(冃的地址)。高层的tcp和udp服务在接收数据包时,通常假设包屮的源地址是有效的。也可以这样 说,ip地址形成了许多服务的认证基础,这些服务相信数据包是从一个有效的主机发送来 的。ip确认包含一个选项,叫作ip source routing,可以用来指定一条源地址和目的地址 z间的直接路径。对于一些tcp和udp的服务来说,使用了该选项的ip包好像是从路径 上的最麻一个系统传递过来的,而不是
5、来白于它的真实地点。这个选项是为了测试而存在的, 说明了它可以被用来欺骗系统来进行平常是被禁止的连接。那么,许多依靠ip源地址做确 认的服务将产生问题并口会被非法入侵。2. tcp如果ip数据包中有已经封好的tcp数据包,那么ip将把它们向'上'传送到tcp层。tcp 将包排序并进行错谋检杏,同时实现虚电路间的连接。tcp数据包屮包括序号和确认,所 以未按照顺序收到的包可以被排序,i佃损坏的包对以被重传。tcp将它的信息送到更高层的应用程序,例如telnet的服务程序和客户程序。应用程序轮 流将信息送回tcp层,tcp层便将它们向下传送到ip层,设备驱动程序和物理介质,最 后到
6、接收方。面向连接的服务(例如telnet、ftp、rlogin、x windows和smtp)需要高度的可靠性, 所以它们使用了 tcp。dns在某些悄况下使用tcp (发送和接收域名数据库),但使用u dp传送有关单个主机的信息。3. udpudp与tcp位于同一层,但对于数据包的顺序错误或重发。因此,udp不被应用于那些 使用虚电路的而向连接的服务,udp主要用于那些而向杳询应答的服务,例如nfs。相 对于ftp或telnet,这些服务需要交换的信息量较小。使用udp的服务包括ntp (网落 时间协议)和dns (dns也使用tcp) o欺骗udp包比欺骗tcp包更容易,因为udp没有建立
7、初始化连接(也可以称为握手)(|大为在两个系统间没冇虚电路),也就是说,与udp相关的服务面临着更大的危险。4.icmpicmp与ip位于同一层,它被用来传送ip的的控制信息。它主要是用来提供有关通向目的 地址的路径信息。icmp的redirect'信息通知主机通向其他系统的更准确的路径,ku'unre achable'信息则指岀路径有问题。另外,如果路径不可用了,icmp可以使tcp连接'体而 地'终止。ping是最常用的基于icmp的服务。5. tcp和udp的端口结构tcp和udp服务通常有一个客户/服务器的关系,例如,一个telnet服务进程开始
8、在系统 上处于空闲状态,等待着连接。用户使用telnet客户程序与服务进程建立一个连接。客户 程序向服务进程写入信息,服务进程读出信息并发出响应,客户程序读出响应并向用户报告。 因而,这个连接是双工的,可以用来进行读写。两个系统间的多重telnet连接是如何相互确认并协调一致呢? tcp或udp连接唯一地使 用每个信息屮的如下四项进行确认:源ip地址 发送包的ip地址。目的ip地址接收包的ip地址。源端口源系统上的连接的端口。目的端口目的系统上的连接的端口。端口是一个软件结构,被客户程序或服务进程用来发送和接收信息。一个端口对应一个16 比特的数。服务进程通常使用一个固定的端例如,smtp使用
9、25、xwindows使用60 00。这些端口号是'广为人知'的,因为在建立与特定的主机或服务的连接时,需耍这些地址 和冃的地址进行通讯。相信人家都听说过tcp/ip这个词,这个词好像无处不在,时时部会在你面前跳出来。那tcp/ip到底是什么意思呢?tcp/ip其实是两个网络基础协议:ip协议、tcp协议名称的纟r合。下面我们分别来看看这 两个无处不在的协议。ip协议ip (internet protocol)协议的英文名直译就是:因特网协议。从这个名称我们就可以 知道ip协议的重要性。在现实生活屮,我们进行货物运输时都是把货物包装成一个个的纸 箱或者是集装箱z后才进行运输,在
10、网络世界中各种信息也是通过类似的方式进行传输的。 ip协议规定了数据传输时的基木单元和格式。如果比作货物运输,ip协议规定了货物打包 时的包装箱尺寸刑包装的程序。除了这些以外,ip协议还定义了数据包的递交办法和路由 选择。同样用货物运输做比喻,ip协议规定了货物的运输方法和运输路线。tcp协议我们已经知道了 ip协议很重要,ip协议已经规定了数据传输的主耍内容,那tcp (tr ansmission control protocol)协议是做什么的呢?不知大家发现没有,在ip协议中定义 的传输是单向的,也就是说发出去的货物对方有没有收到我们是不知道的。就好像8毛钱 一份的平信一样。那对于重耍的
11、信件我们耍寄挂号信怎么办呢? tcp协议就是帮我们寄“挂 号信”的。tcp协议提供了对靠的而向对彖的数据流传输服务的规则和约定。简单的说在t cp模式中,对方发一个数据包给你,你要发一个确认数据包给对方。通过这种确认来提供 可靠性。tcp/ip (transmission control protocol/lnternet protocol 的简写,中文译名为传输 控制协议/互联网络协议)协议是internet最基木的协议,简单地说,就是由底层的ip协议 和tcp协议组成的。tcp/ip协议的开发工作始于70年代,是用于互联网的笫一套协议。1.1 tcp/ip参考模型tcp/ip协议的开发研制
12、人员将internet分为五个层次,以便于理解,它也称为互联网分层 模型或互联网分层参考模型,如卜表:应用层(第五层)传输层(笫四层)互联网层(第三层)网络接口层(笫二层)物理层(第一层)物理层:对应于网络的基本硕件,这也是internet物理构成,即我们对以看得见的硬设备,如pc机、 互连网服务器、网络设备等,必须对这些硬设备的电气特性作一个规范,使这些设备都能够 互相连接并兼容使用。网络接口层:它定义了将资料组成匸确帧的规程和在网络中传输帧的规程,帧是指一串资料, 它是资料在网络屮传输的单位。互联网层:本层定义了互联网中传输的“信息包”格式,以及从一个用户通过一个或多个路由 器到最终目标的
13、”信息包”转发机制。传输层:为两个用户进程z间建立、管理和拆除町靠而又有效的端到端连接。 应用层:它定义了应用程序使用互联网的规程。1. 2网间协议ipinternet上使用的一个关键的底层协议是网际协议,通常称ip协议。我们利用一个共 同遵守的通信协议,从而使internet成为一个允许连接不同类型的计算机和不同操作系统 的网络。要使两台计算机彼此z间进行通信,必须使两台计算机使用同一种”语言j通信协 议正像两台计算机交换信息所使用的共同语言,它规定了通信双方在通信中所应共同遵守的 约定。计算机的通信协议精确地定义了计算机在彼此通信过程的所有细节。例如,每台计算机发送 的信息格式和含义,在什
14、么情况下应发送规定的特殊信息,以及接收方的计算机应做出哪些 应答等等。网际协议ip协议提供了能适应各种各样网络硬件的灵活性,对底层网络硬件几乎没有 任何耍求,任何一个网络只要可以从一个地点向另一个地点传送二进制数据,就可以使用i p协议加入internet 了。如果希望能在internet上进行交流和通信,则每台连上internet的计算机都必须遵 守ip协议。为此使用internet的每台计算机都必须运行ip软件,以便时刻准备发送或接 收信息。ip协议对于网络通信有着重要的意义:网络中的计算机通过安装ip软件,使许许多多的局 域网络构成了一个庞大|佃又严密的通信系统。从而使internet看
15、起来好像是真实存在的, 但实际上它是一种并不存在的虚拟网络,只不过是利用ip协议把金世界上所有愿意接入i nternet的计算机局域网络连接起来,使得它们彼此之间都能够通信。1.3传输控制协议tcp丿&管计算机通过安装ip软件,从而保证了计算机之间可以发送和接收资料,但ip协议还不 能解决资料分组在传输过程中可能出现的问题。因此,若要解决可能出现的问题,连上int ernet的计算机还需要安装tcp协议来提供可靠的并且无并错的通信服务。tcp协议被称作一种端对端协议。为了实现这种端到端的可靠传输,tcp协议必须规定传 输层的连接建立与拆除的方式、数据传输格式、确认的方式、目标皿用进程的
16、识别以及差错 控制和流量控制机制等。与所有网络协议类似,tcp将口己所耍实现的功能集中体现在tc p的协议数据单元屮。1-4 tcp连接的建立和拆除tcp连接包括建立连接、数据传输和拆除连接三个过程。tcp通过tcp端口提供连 接服务,最后通过连接服务来接收和发送数据。tcp连接的中请、打开和关闭必须遵守tc p协议的规定。tcp使用三次握手协议来建立连接。连接町以由任何一方发起,也可以由 双方同时发起。一旦一台主机上的tcp软件已经主动发起连接请求,运行在另一台主机上 的tcp软件就被动地等待握手。下面给出了三次握手建立tcp连接的简单示意图。1 建立连接主机a连接谙求 syn=1syn=1
17、 ,ack=1 ,seq=y, ack=x+1 1:确认 ack=1 .seq=x+1, ack= y+1 确认 :*b¥:浪末 elemo在源主机想和目的主机通信时,日的主机必须同意,否则tcp连接无法建立。为了确 保tcp连接的成功建立,tcp采用了一种称为三次握手的方式,三次握手方式使得“序号 /确认号”系统能够正常工作,从而使它们的序号达成同步。如果三次握手成功,则连接建 立成功,可以开始传送数据信息。其三次握手分别为:第一步:源主机a的tcp向主机b发出连接请求报文段,英首部中的syn(同步)标 志位应置为1,表示想与目标主机b进行通信,并发送一个同步序列号x(例:seq=
18、100) 进行同步,表明在后而传送数据时的第一个数据字节的序号是x+1 (即101) o第二步:目标主机b的tcp收到连接请求报文段示,如同意,则发回确认。在确认 报中应将ack位和syn位置1。确认号应为x+1(图15.5中为101),同时也为口己选择 一个序号丫。第三步:源主机a的tcp收到目标主机b的确认后要向目标主机b给出确认,其a ck置1,确认号为y+1,而自己的序号为x+1。tcp的标准规定,syn置1的报文段要 消耗掉一个序号。运行客户进程的源主机a的tcp通知上层应用进程,连接已经建立。当源主机a向目 标主机b发送第一个数据报文段时,其序号仍为x+1,因为前一个确认报文段并不
19、消耗序 号。当运行服务进程的目标主机b的tcp收到源上机a的确认示,也通知其上层应用进 程,连接已经建立。至此建立了一个全双工的连接。2. 传送数据位于tcp /ip分层模型的较上层的应用程序传输数据流给tcp o tcp接收到字节流并且把 它们分解成段。假如数据流不能被分成一段,那么每一个其它段都被分给一个序列号。在目的上机端.这个序列号用来把接收到的段還新排序成原来的数据流。主机a:1031041c5106104 105主 ack 104 syn seq-225|105 | 106 | 103| 103 |lo6 ack 107 syn seq-226(1)主机a使用滑动窗口发送全部的四个
20、段到主机b。这是第一步。不幸的是,只有段103、105和106成功地到达了生机b。(2) 因为段103和104是连续的,所以主机b返回一个确认给主机a,通知主机a它 只成功地接收到了第103段,在它的确认中主机b使用它期待得到的下一个序列号作为确 认(参看通过给出序列号104)o(3) 主机a接到主机b的报文后,重新发送段104、105和106(参看)。虽然主机b 已经成功地收到了段105和106,但是根据协议规定,也必须重新发送。(4) 当主机2成功地收到这些段以示.主机b返冋一个确认给主机a(参看),并根据 序列号把它们重组成原来的数流。把它传输到肓层应用程序。3. 关闭连接一个tcp连接
21、建立z后,即可发送数据,一旦数据发送结朿,就需耍关闭连接。由于 tcp连接是一个全双工的数据通道,一个连接的关闭必须由通信双方共同完成。当通信的 一方没有数据需要发送给对方时,町以使用fin段向对方发送关闭连接请求。这时,它虽 然不再发送数据,但并不排斥在这个连接上继续接收数据。只有当通信的对方也递交了关闭 连接的请求后,这个tcp连接才会完全关闭。在关闭连接时,既可以由一方发起而另一方响应,也可以双方同时发起。无论怎样, 收到关闭连接请求的一方必须使用ack段给予确认。实际上,tcp连接的关闭过程也是一 个三次握手的过程。在关闭连接之前,为了确保数据正确传递完毕,仍然需要采用“三次握手”的方
22、式来关闭 连接,如图所示。其三次握手分别为:第一步:源主机a的应用进程先向其tcp发出连接将放请求,并且不再发送数据。t cp通知对方耍释放从a到b这个方向的连接,将发往主机b的tcp报文段首部的终止比特fin置1,英序号x等于前|何已传送过的数据的最后一个字节的序号加1o主机b"阳主机 歧用谨仪认主机afin=1 ,seq=xaackh 月凹二y, ack=x+1 护1 acesery, acg+1詢遊蘇雌樸ack=1(seq=x+1, ack=y+1确认:1 b不再战送抱卫_第二步:目标主机b的tcp收到暫放连接通知示即发出确认,其序号为y,确认号为 x+1,同时通知高层应用进程
23、,如图15.7中的箭头。这样,从a到b的连接就释放了, 连接处于半关闭状态,相当于主机a向主机b说:“我已经没有数据要发送了。但如果还发 送数据,我仍接收。”此后,主机b不再接收主机a发来的数据。但若主机b述有一些数据 要发送主机a,则可以继续发送。主机a只要正确收到数据,仍应向主机b发送确认。第三步:若主机b不再向主机a发送数据,其应用进程就通知tcp释放连接,如图1 5.7屮的箭头。主机b发出的连接軽放报文段必须将终止比特fin和确认比特ack置1, 并使其序号仍为丫,但还必须重复上次已发送过的ack=x+1«主机a必须对此发出确认, 将ack置1, ack=y+1,而口己的序号
24、是x+k这样才把从b到a的反方向的连接释 放掉。主机a的tcp再向其应用进程报告,整个连接已经全部释放。1.5 tcp流量控制与拥塞控制tcp初始连接一旦建立,两端就能够使用全双工通信交换数据段,并缓存所发送和接 收的报文段。缓存所发送的报文段是为了重传的需要,以防止报文段不能到达或不能按顺序 到达接收端引起的差错。1.流量控制tcp采用大小可变的滑动窗口机制实现流量控制功能。窗口的大小是字节。在tcp报 文段首部的窗口字段写入的数值就是当前给对方设置发送窗口的数据的上限。在数据传输过程中,tcp提供了一种基于滑动窗口协议的流量控制机制,用接收端接 收能力(缓冲区的容量)的大小来控制发送端发送
25、的数据量。在建立连接时,通信双方使用syn报文段或ack报文段中的窗口字段捎带着各自的 接收窗口尺寸,即通知对方从而确定对方发送窗口的上限。在数据传输过程屮,发送方按接 收方通知的窗口尺寸和序号发送一定量的数据,接收方根据接收缓冲区的使用悄况动态调整 接收窗口尺寸,并在发送tcp报文段或确认段时稍带新的窗口尺寸和确认号通知发送方。如下面的图所示。设主机a向主机b发送数据。双方确定的的窗口值是400。设一个 报文段为100字节长,序号的初始值为1 (即seq=1) o在图15.8屮,主机b进行了三 次流量控制。笫一次将窗口减小为300字节,第二次将窗口又减为200字节,最后一次减 至零,即不允许对方再发送数据了。这种暂停状态将持续到主机b重新发出一个新的窗口 值为止。2.拥塞控制采用滑动窗口机制还可对网络进行拥塞控制,将网络中的分组(tcp报文段作为其数 据部分)数量维持在一定的数量z下,当超过该数值时,网络的性能会急剧恶化。传输层的 拥塞控制有慢开始(slowstart)、拥塞避免(congestion avoidance)、快重传(fast retransmit)和快恢复(fast recovery)四种算法。(1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 诊断测评与BOPPPS教学模式的融合在高中英语阅读教学中的行动研究
- 茶具设计手绘技法解析
- 肾病综合征常规护理要点
- 孕期饮食健康管理
- 大班心理健康:笑是良药
- 领航职业英语2课件下载
- 恶性肿瘤病人的护理教学查房
- 2025年上海市中考招生考试数学真题试卷(真题+答案)
- 采样消毒培训
- 舞蹈教育考研讲解
- 2025年广东省中考英语试题卷(含答案解析)
- 航图zbyn太原武宿-机场细则
- 浙江省城市体检工作技术导则(试行)
- 义务教育历史课程标准(2022年版)
- DVD在线租赁-2005年全国大学生数学建模大赛B题全国一等奖论文
- 防火封堵施工方案(新版)
- 真空度正压和负压关系及负压中MPa和Pa对应关系
- 大面积地面荷载作用附加沉降量计算
- 山东省普通初中小学音乐、美术、卫生设备配备标准
- 景陵峪_构造报告_构造地质学
- 浸塑作业与检验
评论
0/150
提交评论