登陆注册
49390800000017

第17章 认识计算机网络——网络协议(5)

面向连接服务(connection-oriente dservices)的问题之一是,在可以传送数据之前总是必须经过三次握手的过程。在某些情况下,例如文件传输,因为需要确保成功的传输此文件的所有数据,这时面向连接的服务才有意义。然而在其他情况下,例如只想传送一个信息并且得到回复,或者干脆不需要回复信息时,进行三次握手的过程会增加不必要的额外开销。例如对于DNS查询服务,为了将完全合格域名(Fully Qualified Domain Name,FQDN)解析为IP地址,DNS客户端将会向DNS服务器发送单个查询并等待服务器的回应,在此过程中,只产生了两个消息:客户的查询消息和服务器的回应消息。由于两台设备之间的通信量很少,所以在发送查询消息之前建立可靠的连接没有意义。即使客户端没有收到回应消息,也可以由应用程序再次发送此查询信息,或者交由用户来处理。由于一开始没有建立连接,这种连接被称为无连接的服务。TCP/IP协议栈中的UDP提供了这种不可靠的无连接的服务。

传输层通过窗口的操作减少数据因溢出而丢弃,窗口大小规定在发送站必须等待接收站的确认(ACK)之前可以发送的信息量。一旦收到ACK,发送站就发出下一批信息(取决于窗口大小所定义的最大值)。例如,窗口大小是4,而当前的确认号是3,那么在下一个确认到达之前,发送站可以发送序号是3、4、5、6的数据段,而不需要得到确认。

窗口操作实现了两个功能,首先是基于窗口大小执行流量控制。窗口的大小是预先动态协商的,并且可在连接的使用期限内重新协商,这样就确保了在接收站不丢弃任何信息的情况下使用最佳的窗口大小来传送信息。其次,接收站可以通过窗口操作过程,通知发送站收到了什么信息。如向发送站表明在去往接收站的途中是否丢失了信息,并且允许发送站重发任何已经丢失的信息。这为连接提供了可靠性。

(二)TCP(Transmission Control Protocol,传输控制协议)

TCP/IP是一个包含多个协议的标准。它定义在一个互联网络上的设备之间如何通信。

TCP/IP的传输层主要负责在两台设备之间建立逻辑连接,并且可以提供可靠的连接和流量控制。TCP/IP包括两种传输层协议:TCP和UDP。

TCP的主要职责是在两台设备之间提供可靠的端到端的面向连接的逻辑服务(logicalservice)。TCP在网络层协议的基础上,向应用层进程提供可靠的、全双工的数据传输。它允许两个应用进程之间建立一个连接,应用进程通过该连接可以实现顺序、无差错、无重复和无报文丢失的流传输。

TCP也可以利用滑动窗口操作来实现流量控制,这样发送方设备就不会因为发送过多的数据段而超出接收站的承受能力。TCP协议的主要特点有以下几个方面:

1.面向连接服务(connection-oriente dservice)

面向连接的传输服务对保证数据流传输可靠性非常重要。它在进行实际数据报传输之前必须在源进程与目标进程之间建立连接。一旦连接建立之后,通信的两个进程就可以在此连接上发送和接收数据。

2.高可靠性(highre liability)

由于TCP协议是建立在不可靠的网络层协议的基础上的,在IP协议不提供任何保证分组数据传输可靠性机制的情况下,TCP协议的可靠性需要协议自身来实现。TCP协议支持数据可靠性的主要方法是序号、确认和超时重传。

TCP协议PDU称为数据段或段,它将上层用户数据报分割成一定长度的数据段。TCP将保持它头部和数据的校验和,目标是检测数据在传输过程中是否出现错误。在接收端,当TCP正确接收到报文时,它将发送确认。在发送端,当TCP发出一个报文后,将启动一个定时器,等待目标端确认收到这个报文。如果不能及时收到相应的确认,将重发这个报文。

TCP协议可以采用自适应的超时重传策略。

3.可靠连接的建立和释放(establi shandreleaser eliable connection)

为了保证连接建立和释放的可靠性,TCP协议使用三次握手(three-wayhandshake)机制。在连接建立阶段,防止出现因“失效的连接请求数据报”而造成连接错误。在释放连接时,保证在关闭连接时已经发送的数据报可以正确地到达目标端口。

4.流量控制和拥塞控制(flowcontro landcongestion control)

TCP协议采用大小可变的滑动窗口方法进行流量控制。发送窗口在建立连接时由双方商定。在数据传输过程中,接收端可以根据自身资源的情况,随机、动态地调整发送窗口的大小,而接收端将跟随发送端调整接收窗口。

TCP协议使用称为数据段的协议数据单元在设备间传输数据。

TCP报头的固定部分长度为20字节,选项部分最多为40字节且必须是0或是32比特(bit)的整数倍。

下面我们分别介绍TCP数据段结构的主要部分:

端口号(Port number)包括源端口号和目标端口号。每个端口号字段长度为16bits,分别表示发送该报文的应用进程的端口号和接收该报文的应用进程的端口号。

序号(Sequence number)字段长度为32bits。由于TCP协议是面向数据流的,它所传送的报文可以看作是连续的数据流。因此需要给发送的每一个字节进行编号。序号字段中的“序号”是指本报文数据的第一个字节的顺序号。例如,某个报文的序号为“101”,大小为100字节,那么该报文的第一个字节的顺序号为101,最后一个字节的顺序号是200。通过该字段,我们可以维持数据的完整性和对数据进行排序。

确认号(Ac knowledgement number)长度为4bytes(32bits),表明期望下次对方发送数据的第一个字节的序号(注意是字节而不是比特),也就是期望收到的下一个报文的首部中的序号。从这里我们可以知道,确认号具有与数据链路层中帧的捎带确认相似的作用,表明在此序号之前的所有数据都已成功接收。由于序号字段有32bits长,可对4GB的数据进行编号,这样就保证了当序号重复使用时,旧序号的数据已经在网络中消失了。

报头长度(Header length)占4bits,它指出数据开始的地方离TCP报文的长度有多远,因此也可称其为数据偏移字段。它表明了报头的长度。由于报头长度的不固定(报头的选项字段长度是不确定的),因此报头长度字段是必需的。这里需要注意,报头长度的单位是32bits(即4bytes),而不是字节和比特。

保留字段(Reserved field)的长度是6bits,留做今后使用。目前使用全部为零。

编码位(Codebits)定义了6种不同的控制字段或标志,每种一位,使用时在同一时间可设置其中的一个或者多个。编码位用于TCP的流量控制、连接的建立和释放、数据传输的方式和控制。下面我们分别介绍每位的意义。

窗口大小(Windo wsize)为2bytes。窗口大小实际上是报文发送方的接收窗口,单位为字节。通过该窗口告诉对方:“在未收到我的确认时,你能发送的数据的字节数至多是此窗口的大小。”窗口所对应的最大数据长度为65,535bytes。

校验和(Chec ksum)字段长度为2bytes。校验和字段检验的范围包括报头和数据这两部分。在计算校验和时,需要在TCP头部增加一个12字节的伪头部,伪头部中包括源IP和目标IP地址,1个byte的全0位,一个字节的TCP协议号(6),以及两个字节的TCP长度。对于TCP来说,伪头部是必须采用的。

紧急字段(Urg ent field)长度为2bytes。它与紧急比特URG共同使用,表明该报文中存在紧急数据。

选项(Options)TCP报头的选项是可变的。最多可以有40bytes的选项。选项包括以下两类:单字节选项和多字节选项。单字节选项包括选项结束和无操作。多字节选项包括最大报文长度、窗口扩大因子和时间戳。

数据(Data)上层协议数据,不包括TCP报头部分。

(三)用户数据报协议(User Datagram Protocol,UDP)

UDP是一种无连接的、不可靠的传输层协议,它在完成端到端的通信时没有流量控制机制,也没有确认机制,只提供了有限的差错控制。因此协议简单,在特定的应用中协议运行的效率高。设计UDP协议的目标是希望以较小的开销实现网络环境中的进程通信的目标。UDP适用于可靠性较高的局域网。如果进程需要发送一个很短的报文,同时对报文的可靠性要求不高,那就可以使用UDP协议。

某些实时应用,如IP电话、视频会议,它们要求主机以恒定的速度发送数据,在网络拥塞时可以丢失一些数据,并且不希望数据延时太大等特点,UDP正好满足了这种需求。此外,域名系统(DNS)、路由选择协议(RIP)、简单网络管理协议(SNMP)、网络文件服务(NFS)和多播(Multicast)服务在传输层也使用UDP协议。

UDP用户数据报有固定的8字节报头,其字段分别为:

端口号(portnu mber)

端口号包括源端口号和目标端口号,分别标识发送和接收数据的应用进程。端口号长度为16位。

长度字段(Length)

长度字段为2bytes。它定义了包括报头在内的用户数据报的总长度。因此,用户数据报的总长度最大为65,535bytes,最小为8bytes。

校验和(Chec ksum)

校验和字段长度为2bytes,用于提供整个UDP数据报的差错校验,使用循环冗余码校验CRC。UDP的校验范围包括3部分:伪头部(fakeheader)、UDP报头和应用层数据。伪头部是IP分组的一部分,只在校验过程,临时与UDP数据报结合在一起,即不向低层传输,也不向高层传送。如果应用程序对通信效率的要求高于可靠性时,应用进程可以选择不进行校验。

(四)传输层端口与应用层协议

TCP/IP的传输层提供了多路复用的功能,允许多个应用程序同时收发数据,并使用端口号来区别不同的连接。TCP和UDP使用端口号把信息传给上层,端口号被用于解释同时通过网络的不同连接会话间的区别。端口号由IANA(Internet Assigned Numbers Authority,因特网地址分配管理机构)分配,应用软件开发者同意使用IANA约定的端口号,如,约束FTP应用的连接会话使用标准的端口号:20和21。端口20用于数据传输,端口21用于连接控制。

某些特定范围的端口是不可以随便分配给网络应用或服务使用,端口号基本分为三类:

熟知端口号、注册端口号和临时端口号。端口号的分配范围如下:

(1)0~1023的端口号码被称为熟知端口号(或称为保留端口号)。

(2)1024~49151是注册端口号,某些厂商用于特定的应用或服务,需要向IANA注册。

(3)49152~65535是动态分配的端口号。这是由运行在客户端的应用程序随机选取的,可以被任何进程使用。

当发起一个远程应用程序连接时,操作系统(operating system)将选择一个系统中当前没有使用的大于1023的端口号,并将此号码指定为数据段的源端口号。根据所运行的应用程序,将其熟知端口号作为目标端口字段。接收站在接收到该数据段时,查看目标端口号,得知该数据应该定向到哪个应用程序中。

UDP与TCP协议一样,也是通过端口号来标识进程,实现多路复用。然而某些特定的端口类型是TCP端口或UDP端口,而有些端口可能既是TCP端口,又是UDP端口,如DNS的端口号53。

应用层是网络体系结构(networ ksystem structure)中的最高层,在应用层之上不存在其他的层。因此,应用层的任务不是为上层提供服务,而是向最终用户提供服务。每一个应用层的服务都是为了解决某一类具体的应用问题,而问题的解决往往通过位于不同主机中的多个进程之间的通信和协作来完成。为了解决具体的应用问题而彼此通信的进程称为应用进程(application process)。应用层的具体内容就是规定应用进程在通信时所遵循的协议。

同类推荐
  • 新课标课外快乐阅读丛书——快乐心灵的母爱故事

    新课标课外快乐阅读丛书——快乐心灵的母爱故事

    快乐阅读,陶冶心灵,这对于提高广大中小学生的阅读写作能力,培养语文素养,促进终身学习等都具有深远的意义。现代中小学生不能只局限于校园和课本,应该广开视野,广长见识,广泛了解博大的世界和社会,不断增加丰富的现代社会知识和世界信息,才能有所精神准备,才能迅速地长大,将来才能够自由地翱翔于世界的蓝天。
  • 多媒体课件制作技术

    多媒体课件制作技术

    本书配有光盘,光盘中整合了本书的源程序、素材、教学课件PPT、多媒体学习课件及网络课程平台系统。本书适合中小学各科教师、多媒体课件制作人员、师范院校和职业技术学院各师范类专业学生使用;可以作为教材,也可以作为很好的学习和教学参考资料。本书封面贴有清华大学出版社防伪标签,无标签者不得销售。
  • 质量管理理论与实务

    质量管理理论与实务

    本书介绍了质量管理理论与实务。全书分为3部分共9章。第一部分介绍质量管理理论,包括1-2章,主要讲述质量管理的基本概念、由来与发展及其理论基础。第二部分讲述质量管理实务,即理论的应用,包括第3-7章,主要讲述质量管理体系的建立、体系文件的编写、体系运行和监控、体系审核和评审、体系认证等实务技术。第三部分是质量管理的综合与个案,主要讲述综合管理体系建立的理论与实务、服务业质量管理体系的建立技巧。本书注重基础知识,讲究实用,是财经管理类专业课程教材,也可以作为从事质量经营管理人员的参考书。
  • 学生热爱科学教育与班级主题活动(上)

    学生热爱科学教育与班级主题活动(上)

    班级文化是“班级群体文化”的简称。班级成员的言行倾向、班级人际环境、班级风气等为其主体标识,班级的墙报、黑板报、活动角及教室内外环境布置等则为其物化反映。班级文化是社会群体的班级所有或部分成员共有的信念、价值观、态度的复合体。
  • 初中优秀古诗文背诵指定篇目(61篇)

    初中优秀古诗文背诵指定篇目(61篇)

    本书根据《义务教育语文课程标准》(2011年版)指定的古诗文背诵推荐篇目而编,选编了推荐背诵的古诗文61篇。书前附有“导读”和“知识链接”,以帮助学生更好地理解本书。
热门推荐
  • 猎鹰罗盘

    猎鹰罗盘

    本书由梦里所见的情景,怀念燕双鹰大大,而改编,希望大大们,支持燕双鹰。
  • 逗比特工玩转古代

    逗比特工玩转古代

    她来自21世纪,却因最亲的人而死。一朝穿到古代。原主无名她却将自己的名声搞垮了。从此,世人笑她丑颜,笑她粗鄙,笑她草包。她却从未在意,一心想当纨绔子弟。当他遇见她,冰冷的心融化,原以为会长相厮守,不料命运开了个天大的玩笑。“你当真要离开?”那人红着眸子看着她。“当初,是我爱玩,瞎了眼看上你,不过没事从此我们再也不见。”她笑着说道。“原来,你只当这是游戏。哈哈,真是可笑。既然如此,那就记住我一辈子吧!再也不见,恐怕做不到!”那人手中红色粉末飘荡于空中。“想不到你这么卑鄙了!竟然用媚药!”二人交战,她强压药效,与他死拼。最后剩了口气跑路。“如果可以,本姑娘宁愿从未见过你!”
  • 久世清欢

    久世清欢

    “遍尝七苦,渡尽百鬼,为何?”冥渡舟上,他问眼前黑纱飞舞的她。“为忆起,已忘的前尘旧梦。”她倚舟头,望着他,一眼万年。“前尘已逝,何故忆它?”他不解。“为一人。”
  • 逐梦空间之异界幻想录

    逐梦空间之异界幻想录

    本小说每一章都有一个故事,不是什么一部小说,而是一部小说集。里面的内容包含太多的结构了,比如言情、仙侠、悬疑……本小说收录的内容都是一个故事的短篇小说,几乎有了整个小说该有的类型。由于小说包含太多,只能归为言情一类,女生们,抱歉哈!不过里面内容的是有涉及言情的,因此男女都可看!
  • 阿爸你的节操掉了

    阿爸你的节操掉了

    据说在2050年有望看到完全潜行游戏模式的出现!这句话是我编的。在2050年的完全潜行模式的痒痒鼠,咳咳,阴阳师中回到旧服打算转移到新区的玩家安玖,忽然发现他似乎乱入了一个,真实的式神们所存在的世界。那么问题来了,论通关八岐大蛇的十种方法。请问胧车逢魔中阴阳师会不会变成晴明呱,急,在线等。地震鲶下落会不会把我砸成晴明饼?神乐小姐姐去哪儿了?如何机智地表演的像不知道比丘尼小姐姐是内奸?
  • 把忧伤冻结成歌

    把忧伤冻结成歌

    青春太短暂,来不及我们蓦然回首,只有不停地往前,欣赏沿途的花草,等待一个不需要我们蓦然回首的人。雨忧,一个满怀忧伤却乐观向上的富家女。青依,一个梦想成为星光闪耀的歌手的平凡女孩。涑亦,超人气偶像团体”T.T”的队长。子易,神秘而邪恶的代名词……他们在混乱的娱乐圈,清新的校园里上演着一场又一场的故事。你说的话,我唱的歌,她跳的舞,结合起来,便是一场流泪的青春。这个冬天,让我们把忧伤冻结。
  • 魔君虐我千百遍

    魔君虐我千百遍

    一个热情活泼的职场菜鸟——凌晨与神秘高冷的非人类医生——陌染离之间啼笑皆非的魔幻浪漫爱情故事。敬请期待!
  • 草原之梦

    草原之梦

    我和你的梦,不会死,但却在冬天慢慢消亡...
  • 天行

    天行

    号称“北辰骑神”的天才玩家以自创的“牧马冲锋流”战术击败了国服第一弓手北冥雪,被誉为天纵战榜第一骑士的他,却受到小人排挤,最终离开了效力已久的银狐俱乐部。是沉沦,还是再次崛起?恰逢其时,月恒集团第四款游戏“天行”正式上线,虚拟世界再起风云!
  • 我会在昨天等你

    我会在昨天等你

    爱情,是人人都向往的东西,她可以穿越时间,穿越空间,穿越人山人海来寻找那一滴露水。而我则一直在寻找爱情。谨以此书,送给那个她,谢谢你。