计算机网络之传输层、应用层(谢希仁第七版下篇)

                                                                                第五章  传输层

 本章的重要内容:
(1) 运输层为相互通信的应用进程提供逻辑通信;
(2) 端口和套接字的意义;
(3) 无连接的UDP的特点;
(4)面向连接的TCP的特点;
(5)在不可靠的网络上实现可靠传输的工作原理,停止等待协议和ARQ协议;
(6)TCP的滑动窗口、流量控制、拥塞控制。
(7)TCP的连接管理。
解答:
(1)运输层向它上面的应用层提供通信服务,它属于面向通信部分的最高层,同时也是用户功能中的最低层。网络层与传输层区别:网络层为主机之间提供逻辑通信,而运输层为应用进程之间提供端到端的逻辑通信。

(2)应用层的所有应用进程都可以通过运输层再传送到网络层,这就是复用。运输层从网络层收到发送给各应用进程的数据后,必须分别交付指明的各应用进程,这就是分用。显然,给应用层的每个应用进程赋予一个非常明确的标志至关重要。那么运输层采用的则是协议端口号,或者简称端口。TCP/IP的运输层用一个16位端口号来标志一个端口。但是需要注意的是端口号只具有本地意义。16位的端口号可允许有65535个不同的端口号。
        互联网上的计算机通信是采用客户-服务器方式。客户在发起通信请求时,必须先知道对方服务器的IP地址和端口号。因此运输层的端口号分为下面两大类:服务器端使用的端口号和客户端使用的端口号。1、服务器端使用的端口号又分为两类:(1)熟知端口号/系统端口号:? 数值为0~1023(2)登记端口号:1024~49151;2、客户端使用的端口号:49152~65535。TCP把连接作为最基本的抽象。
        每一条TCP连接有两个端点,它们叫套接字(socket)或插口。端口号拼接到IP地址后面就构成了套接字。套接字 socket? =? (IP地址: 端口号),每一条TCP连接唯一地被通信两端的两个端点(即两个套接字)所确定:即TCP连接 ::=? {socket1, socket2}? =? {(IP1: port1), (IP2: port2)}

(3)在IP的数据报服务之上增加 了很少的一点功能,这就是复用和分用功能以及差错检测功能。用户数据报协议UDP的特点:1、UDP是无连接的,即发送数据之前不需要建立连接;2、UDP使用尽最大努力交付,即不保证可靠交付;3、UDP是面向报文的;4、UDP没有拥塞控制;5、UDP支持一对一、一对多、多对一和多对多的交互通信;6、UDP的首部开销较小。使用UDP的应用层协议:DNS(域名系统)、RIP(路由信息协议)、DHCP(动态主机配置协议)、IGMP(网络组管理协议)。

(4)传输控制协议TCP的特点:1、TCP是面向连接的运输层协议。即应用程序在使用TCP协议之前,必须先建立TCP连接。在传送数据完毕后,也必须释放连接;2、每一条TCP连接只能有两个端点(endpoint),每一条TCP连接只能是点对点的(一对一);3、TCP提供可靠交付的服务。通过TCP连接传送数据,无差错、不丢失、不重复,并且按序到达;4、TCP提供全双工通信(即:可同时接和收)。TCP允许通信双方的应用进程在任何时候都能发送数据。5、面向字节流。TCP中的“流”指的是流入到进程或从进程流出的字节序列。

(5)可以使用一些可靠传输协议,当出现差错时让发送方重传出现差错的数据,同时在接收方来不及处理收到的数据,及时告诉发送方适当降低发送数据的速度。简单的说,实现可靠性传输就是:只要你没告诉我,你收到了。那么我就认为你没收到,我就会给你重传。
        停止等待协议:“停止等待”就是每发送完一个分组(数据单元)就停止发送,等待对方的确认,在收到确认后再发送下一个分组。在“停止等待”这个过程中会出现四种情况:无差错情况、出现差错,超时重传(A只要超过了一段时间仍然没有收到确认,就认为刚才发送的分组丢失了,再重发前面发送过的分组。这就叫做超时重传。所以要在每发送完一个分组时设置一个超时计时器。)、确认丢失(丢弃这个重复的分组M1,重传确认M1)和确认迟到(对重复的确认,A收下后就丢弃。B仍然会收到重复的M1,并且同样丢弃,并重传确认分组)。
       ARQ协议:发送方维持的发送窗口,位于发送窗口内的5个分组都可连续发送出去,而不需要等待对方的确认。信道利用率提高。连续ARQ协议规定,发送方每收到一个确认,就把发送窗口向前滑动一个分组的位置。接收方一般都采用累计确认的方式。也就是说,接收方不必对收到的分组逐个发送确认,而是在收到几个分组后,对按序到达的最后一个分组发送确认,这就表示接收方已经正确的收到的所有分组的信息。Go-Back-N。

(6)滑动窗口:发送方维持的发送窗口,它的意义是:位于发送窗口内的5个分组都可连续发送出去,而不需要等待对方的确认。这样,信道利用率就提高了。连续ARQ协议规定,发送方每收到一个确认,就把发送窗口向前滑动一个分组的位置。
      流量控制:流量控制就是让发送方的发送速率不要太快,要让接收方来得及接收。利用滑动窗口机制可以很方便地在TCP连接上实现对发送方的流量控制。往往是指点到点通信的控制,是个端到端的问题(接收端控制发送端)。流量控制要做的就是抑制发送端发送数据的速率,以便接收端来得及接收。eg:B一共给A发送了3次rwnd(receiver  window),即发送方的发送窗口不能超过接收方给出的接收窗口的数值。
      拥塞控制(基于窗口的拥塞控制):是一个全局性的过程,涉及到所有主机、所有的路由器、以及与降低网络传输性能有关的所有因素。在计算机网络中的链路容量(即带宽)、交换结点中的缓存和处理机等,都是网络的资源。在某段时间,若对网络中某一资源的需求超过了该资源所能提供的可用部分,网络的性能就要变坏。拥塞控制:就是防止过多的数据注入到网络中,这样可以使网络中的路由器或链路不致过载。拥塞控制所要做的都有一个前提,就是网络能够承受现有网络的网络负荷。TCP进行拥塞控制的算法有四种,即:慢开始、拥塞避免、快重传和快恢复。慢开始:先探测一下,即由小到大逐渐增大发送窗口,每经过一个传输轮次,拥塞窗口cwnd就加倍。拥塞避免:在拥塞避免阶段,超过慢开始的门限值ssthresh时,拥塞窗口cwnd按线性规律缓慢增长,比慢开始算法的拥塞窗口增长速率缓慢得多。快重传:发送方只要一连收到3个重复确认,就知道接收方确实没有收到报文段,因而立即进行重传;快恢复:若到达慢开始门限sstresh,将调整门限为=cwnd/2,并将拥塞窗口设置为sstresh,并开始执行拥塞避免算法。

(7)TCP是面向连接的协议,运输连接是用来传送TCP报文的。运输连接分为三个阶段:连接建立、数据传送和连接释放。
     三次握手:

                                                       
     1.最初客户端和服务端都处于CLOSED(关闭)状态。本例中A主动打开连接,B被动打开连接。     2.B的TCP服务器进程首先创建传输控制块TCB,准备接受客户端进程的连接请求。然后服务端进程就处于LISTEN(监听)状态,等待客户端的连接请求。如有,立即作出响应。
     3.A的TCP客户端进程也是首先创建传输控制块TCB。然后,在打算建立TCP连接时,向B发出连接请求报文段,这时首部中的同步位SYN=1,同时选择一个初始序号seq=x。TCP规定,SYN报文段(即SYN=1的报文段)不能携带数据,但要消耗掉一个序号。这时,TCP客户进程进入SYN-SENT(同步已发送)状态。
    4.B收到连接请求报文后,如果同意建立连接,则向A发送确认。在确认报文段中应把SYN位和ACK位都置1,确认号是ack = x + 1,同时也为自己选择一个初始序号seq = y。请注意,这个报文段也不能携带数据,但同样要消耗掉一个序号。这时TCP服务端进程进入SYN-RCVD(同步收到)状态。
    5.TCP客户进程收到B的确认后,还要向B给出确认。确认报文段的ACK置1,确认号ack = y +? 1,而自己的序号seq = x + 1。这时ACK报文段可以携带数据。但如果不携带数据则不消耗序号,这种情况下,下一个数据报文段的序号仍是seq = x + 1。这时,TCP连接已经建立,A进入ESTABLISHED(已建立连接)状态。
     四次挥手:

                                                             
     1.数据传输结束后,通信的双方都可以释放连接。现在A和B都处于ESTABLISHED状态。
     2.A的应用进程先向其TCP发出连接释放报文段,并停止再发送数据,主动关闭TCP连接。A把连接释放报文段首部的终止控制位FIN置1,其序号aeq = u(等于前面已传送过的数据的最后一个字节的序号加1),这时A进入FIN-WAIT-1(终止等待1)状态,等待B的确认。请注意:TCP规定,FIN报文段即使不携带数据,也将消耗掉一个序号。
     3.B收到连接释放报文段后立即发出确认,确认号是ack = u + 1,而这个报文段自己的序号是v(等于B前面已经传送过的数据的最后一个字节的序号加1).然后B就进入CLOSE-WAIT(关闭等待)状态。TCP服务端进程这时应通知高层应用进程,因而从A到B这个方向的连接就释放了,这时的TCP连接处于半关闭(half-close)状态,即A已经没有数据要发送了,但B若发送数据,A仍要接收。也就是说,从B到A这个方向的连接并未关闭,这个状态可能会持续一段时间。
     4.A收到来自B的确认后,就进入FIN-WAIT-2(终止等待2)状态,等待B发出的连接释放报文段。
     5.若B已经没有要向A发送的数据,其应用进程就通知TCP释放连接。这时B发出的连接释放报文段必须使FIN=1。假定B的序号为w(在半关闭状态,B可能又发送了一些数据)。B还必须重复上次已发送过的确认号ack = u + 1。这时B就进入LAST-ACK(最后确认)状态,等待A的确认。
     6.A在收到B的连接释放报文后,必须对此发出确认。在确认报文段中把ACK置1,确认号ack = w + 1,而自己的序号seq = u + 1(前面发送的FIN报文段要消耗一个序号)。然后进入TIME-WAIT(时间等待)状态。请注意,现在TCP连接还没有释放掉。必须经过时间等待计时器设置的时间2MSL(MSL:最长报文段寿命)后,A才能进入到CLOSED状态,然后撤销传输控制块,结束这次TCP连接。当然如果B一收到A的确认就进入CLOSED状态,然后撤销传输控制块。所以在释放连接时,B结束TCP连接的时间要早于A。

                                

                                

                              

                                

                                

                                                                                 第六章  应用层

本章重要内容:
(1)域名系统DNS—从域名解析出IP地址;
(2)万维网和HTTP协议,以及万维网的两种不同的信息搜索引擎;
(3)电子邮件的传送过程,SMTP协议和POP3协议、IMAP协议使用的场合;
(4)动态主机配置协议DHCP的特点;
(5)P2P文件系统。
解答:
(1)域名系统DNS是互联网使用的命名系统,用来把便于人们使用的机器名字转换为IP地址。互联网采用层次树状结构的命名方法,采用这种命名方法,任何一个连接在互联网上的主机或路由器,都有一个唯一的层次结构的名字,即域名。别低的域名写在最左边,而级别最高的域名写在最右边。
       根据域名服务器所起的作用,可以把域名服务器划分为四种不同的类型:根域名服务器、顶级域名服务器、权限域名服务器、本地域名服务器。
       递归查询:主机向本地域名服务器的查询一般都是采用递归查询。迭代查询:本地域名服务器向根域名服务器的查询通常采用的是迭代查询。当根域名服务器收到本地域名服务器发出的迭代查询请求报文时,要么给出所要查询的IP地址,要么告诉本杜域名服务器下一步应当指向哪一个域名服务器进行查询。

(2)统一资源定位符URL:是用来表示从互联网上得到的资源位置和访问这些资源的方法。互联网上的所有资源,都有一个唯一确定的URL。URL相当于一个文件名在网络范围的扩展,它的一般形式由下面四个部分组成:<协议>://<主机>:<端口>/<路径>。
      HTTP协议定义了浏览器怎样向万维网服务器请求万维网文档,以及服务器怎样把文档传送给浏览器。每个万维网网点都有一个服务器进程,它不断地监听TCP的端口80,以便发现是否有浏览器向它发出连接建立请求。一旦监听到连接建立请求并建立了TCP连接之后,浏览器就向万维网服务器发出浏览某个页面的请求,服务器接着就返回所请求的页面作为响应。最后,TCP连接就被释放了。在浏览器和服务器之间的请求和响应的交互,必须按照规定的格式和遵循一定的规则。这些格式和规则就是超文本传送协议HTTP。HTTP协议是无状态的。需要在HTTP中使用Cookie,其在HTTP服务器和客户之间传递状态信息。

(3)发送接收邮件步骤:
    1、发件人编写好邮件内容。然后把邮件通过SMTP协议(SMTP不使用中间邮件服务器,TCP连接总是在发送方和接收方这两个邮件服务器之间直接建立)发送给发送方的邮件服务器;
    2、SMTP服务器收到用户发来的邮件后,就把邮件临时存放在邮件缓存队列中,等待发送到接收方的邮件服务器中;
    3、发送方邮件服务器SMTP客户与接收方邮件服务器的SMTP服务器建立TCP连接,然后就把邮件缓存队列中的邮件依次发送出去;
    4、运行在接收方邮件服务器中的SMTP服务器进程收到邮件后,把邮件放入收件人用户邮箱中,等待收件人进行读取;
    5、收件人在打算收信时,就运行计算机中的用户代理,使用POP3或者IMAP协议读取发送给自己的邮件。
        邮局协议POP3是一个非常简单、但功能有限的邮件读取协议。它最大的特点就是只要用户从POP3服务器读取了邮件,POP3服务器就把该邮件删除。
        网际报文存取协议IMAP:用户在自己的计算机上就可以操纵邮件服务器的邮箱,就像在本地操纵一样,因此IMAP是一个联机协议。IMAP最大的好处就是用户可以在不同的地方使用不同的计算机随时上网阅读和处理自己在邮件服务器中的邮件。

(4)动态主机配置协议DHCP(Dynamic  Host  Configuration  Protocol),提供了一种机制,称为动态主机配置协议,称为即插即用连网。这种机制允许一台计算机加入新的网络和获取IP地址而不用手工参与。每一个网络中设置一个DHCP中继代理(通常是一台路由器),就可以实现跨网段获取IP地址;DHCP服务器分配给DHCP客户的IP地址是临时的。配置内容:1、IP地址;2、子网掩码;3、默认路由器的IP地址;4、域名服务器的IP地址。

(5)P2P的目标就是去中心化实现内容分发,主要想法就是让參与P2P的用户互相帮助。
       解决问题:1.克服能力的限制(每一个节点都是client,同一时候也扮演着server的角色);2.參与者可能是自私的(每一个节点都扮演着两种角色,下载或者上传。防止自私的方法就是假设你给我数据,我也给你数据);3.实现去中心化(DHT分布式哈希表来实现,DHT是全然去中心化、高效的分布式索引)
     应用:BitTorrent。现在使用的基本的P2P系统;使用torrents来分发数据。每一个节点将文件分割成非常多片段,然后将这些片段进行传输。

                              

                            

                              

相关参考链接:

https://blog.csdn.net/pcwl1206/article/details/84187128

https://blog.csdn.net/pcwl1206/article/details/84422191

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

张云瀚

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值