1.11.21.31.41.51.61.8第1頁,共59页1.11.21.31.41.51.61.8第2頁,共59页第一章概述•计算机网络的分类–从网络结点分布来看,可分为局域网(LocalAreaNetwork,LAN)、广域网(WideAreaNetwork,WAN)和城域网(MetropolitanAreaNetwork,MAN)。–按交换方式可分为线路交换网络(CircurtSwitching)、报文交换网络(MessageSwitching)和分组交换网络(PacketSwitching)。–按网络拓扑结构可分为星型网络、树型网络、总线型网络、环型网络和网状网络。1.11.21.31.41.51.61.8第3頁,共59页常见接入技术•家庭接入:DSL、电缆、FTTH、拨号和卫星•企业(和家庭):以太网和WIFI•广域网无线接入:3G和LTE1.11.21.31.41.51.61.8第4頁,共59页常见的传输介质•双胶铜线–一般应用局域网中,用于连接主机到交换设备,最远传输距离是100m•同轴电缆–一般应用在电缆电视系统中•光纤–一般应用在远距离传输•陆地无线电信道•卫星无线电信道1.11.21.31.41.51.61.8第5頁,共59页•分组交换–存储转发传输•大部分分组交换机都会在链路的输入端使用存储转发传输(store-and-forwardtransmission)。•存储转发传输意指交换机必须先接收到整个报文,才能够开始将报文的第一个位传输到外部连接。•路由器采用存储转发传输机制,在这个瞬间路由器无法传出它已经接收到的位;它必须要先缓冲(即「储存」)该报文的位。只有在路由器已经收到该报文的所有位之后它才开始发送(即「传送」)该报文到向外链路。1.11.21.31.41.51.61.8第6頁,共59页•分组交换网中端到端的时延–节点处理延迟(nodalprocessingdelay)–队列延迟(queuingdelay)–传输延迟(transmissiondelay)–传播延迟(propagationdelay)–这些延迟总计为总节点延迟(totalnodaldelay)。1.11.21.31.41.51.61.8第7頁,共59页Introduction10connections(fairly)sharebackbonebottlenecklinkRbits/secRsRsRsRcRcRcR–有10台服务器与10台客户端连接到计算机网络的核心。–核心内有一条10笔下载全部都会经过的链路。令这个链路R的传输率为R。–而共享链路会将其传输速率平分给10笔下载。–吞吐率不只取决于路径沿在线链路的传输速率,也取决于介入的数据流量。–per-connectionend-endthroughput:min(Rc,Rs,R/10)–inpractice:RcorRsisoftenbottleneck1-7计算机网络的吞吐率1.11.21.31.41.51.61.8第8頁,共59页–总体来说,各层次的协议合称为协议堆栈(protocolstack)。因特网的协议堆栈包含五层,如图1.23(a)所示:◌物理层◌链路层◌网络层◌传输层◌应用层分层的体系结构1.11.21.31.41.51.61.8第9頁,共59页常见协议•应用层常见协议:FTPHTTPDNSSMTP•传输层协议:TCPUDP•网络层协议:IP1.11.21.31.41.51.61.8第10頁,共59页习题讲解•P6/P31讲解----分组交换•R19--------计算机网络吞吐量•R24/R251.11.21.31.41.51.61.8第11頁,共59页第二章应用层•客户端和服务器端–在一对进程间的某次通信会话中,开启通信的(也就是在会话开始时先联系另一进程的)进程会被标记为客户端。等待被联系以开始会话的进程,则为服务端。•非持久性与持久性连接–使用非持续性连接时的情形,其中每个TCP连接都会在服务器送出对象之后关闭——该连接并不会继续服务其它的对象。–使用持续性连接,服务端在传送响应后,会保持该个TCP连接继续开启。后续在相同客户端和服务端之间的请求和响应,都可以通过同一个连接来传送。1.11.21.31.41.51.61.8第12頁,共59页–HTTP请求消息–首先,我们看到消息是用普通的ASCII文字编写。–每行末尾都有一个回车(carriagereturn)字符和一个换行(linefeed)字符。HTTP协议1.11.21.31.41.51.61.8第13頁,共59页–HTTP请求消息的第一行称作请求行(requestline);后续的行则称作首部行(headerline)。–请求行有三个字段:•方法字段•URL字段•HTTP版本字段–方法字段可以使用数种不同的数值,包括GET、POST、HEAD、PUT以及DELETE。–浏览器请求对象时会使用GET方法,所请求的对象则由URL字段来识别。1.11.21.31.41.51.61.8第14頁,共59页–首部行Host:指出该对象栖身的主机。–Connection:close首部行,浏览器会告知服务器它不想使用持续性连接。–User-agent:首部行用来指明用户代理,即向服务器发出请求的浏览器的类型。–Accept-language:首部行表示用户想得到该对象的发育版本,否则,服务器应当发送它的默认版本。1.11.21.31.41.51.61.8第15頁,共59页–HTTP响应消息–它包含三个部分:开头的状态行(statusline)、六行首部行(headerline)和资料主体(entitybody)。1.11.21.31.41.51.61.8第16頁,共59页–数据主体是消息的实质内容。–状态行有三个字段:•协议版本字段•状态代码•相应的状态消息1.11.21.31.41.51.61.8第17頁,共59页–首部行Connection:close告知客户端,在送出消息后,它就要准备关閉TCP连接。–Date:首部行会指出服务器建立并送出HTTP响应的时间与日期。–Server:首部行指出消息是由Apache网页服务器所产生的;它类似于HTTP请求消息中的User-agent:首部行。–Last-Modified:首部行会指出该对象建立或最后修改的时间与日期。–Content-Length:首部行会指出所传送对象的字节数目。–Content-Type:首部行指出数据主体中的对象是HTML文件(对象类型是由Content-Type:标题正式予以指定,而非由扩展名)。1.11.21.31.41.51.61.8第18頁,共59页Cookie--P721.11.21.31.41.51.61.8第19頁,共59页网页缓存•网页缓存能显著降低客户端请求的响应时间,特别是当客户端与源服务器之间的瓶颈带宽,远小于客户端与缓存之间的瓶颈带宽时。1.11.21.31.41.51.61.8第20頁,共59页第21頁,共59頁1.11.21.31.41.51.61.8DNS•将主机名转译成IP地址.第22頁,共59頁1.11.21.31.41.51.61.8–递归式查询(recursivequery)以及迭代式查询(iterativequeries)。–在实际操作上,查询通常是依循图2.21的模式:从发出请求的主机到本地DNS服务器的查询为递归式,其余的查询则为迭代式。第23頁,共59頁1.11.21.31.41.51.61.8递归查询第24頁,共59頁1.11.21.31.41.51.61.8FTP•FTP会同时使用两个TCP连接来传输文件•一个控制连接(controlconnection)•一个数据连接(dataconnection)第25頁,共59頁1.11.21.31.41.51.61.8习题讲解•R3---客户端/服务器•P4/P5-----http协议•P9-----web缓存•R16----邮件•Dig演示第26頁,共59頁1.11.21.31.41.51.61.8第三章运输层•网络层协议提供的是主机间的逻辑通信•运输层协议提供的是在不同主机上执行的进程间的逻辑通信•可靠,照顺序的传送(TCP)–流量控制–拥塞控制–先建立連接•不可靠,不保证照顺序的传送(UDP)–IP:尽力而为交付服务(best-effortdeliveryservice)–UDP较IP增加多路复用和侦错第27頁,共59頁1.11.21.31.41.51.61.8多路复用与多路分解3-27p进程socket使用头部信息将数据递交给相应socket接收方的多路分解从多个socket接受数据,封装头部(将用于多路分解)发送方的多路复用运输层应用层物理层数据链路层网络层P2P1运输层应用层物理层数据链路层网络层P4运输层ap应用层物理层数据链路层nP3网络层第28頁,共59頁1.11.21.31.41.51.61.8多路分解如何运作•主机使用IP地址和端口号将报文段传到适当socket(多路分解)•UDPsocket由目的IP地址与目的端口号识别•当UDP报文段从网络抵达时,接收主机会检查报文段的目的端口号,将各报文段转交给此目的端口号的socket•提问:如果两个UDP报文有不同的源IP地址和源端口号,但具有相同的目的IP地址和目的端口号,那么两个报文会用同一个目的套接字来接收吗??第29頁,共59頁1.11.21.31.41.51.61.8•一个TCPsocket是由4项数值(源IP地址,源端口号,目的IP地址,目的端口号)加以识别•当TCP报文段抵达主机时,这4个字段就会被用来定向(分解)报文段给适当的socket•每一个连接都有一个socket•服务器可同时支持多个TCPsockets–有不同源IP地址的IP数据包,在收端会转交给不同的socket第30頁,共59頁1.11.21.31.41.51.61.8UDP•尽力而为的服务,UDP报文段可能–丢失–未按顺序到达目的应用进程•无连接–UDP送收端间不会握手–各个UDP报文段独立地递送•UDP用于–多媒体串流应用(允许些许错误,需低时延)–DNS–SNMP•使用UDP的可靠传输–在应用层加可靠度及错误侦测第31頁,共59頁1.11.21.31.41.51.61.8TCP第32頁,共59頁1.11.21.31.41.51.61.8TCP报文段格式第33頁,共59頁1.11.21.31.41.51.61.8主机A放在报文段中的确认号,会是主机A预期从主机B收到的下一个字节的序号TCP使用累积确认序号和确认号第34頁,共59頁1.11.21.31.41.51.61.8第35頁,共59頁1.11.21.31.41.51.61.8TCP的连接管理第36頁,共59頁1.11.21.31.41.51.61.8建立TCP连接第37頁,共59頁1.11.21.31.41.51.61.8可靠数据传输第38頁,共59頁1.11.21.31.41.51.61.8第39頁,共59頁1.11.21.31.41.51.61.8第40頁,共59頁1.11.21.31.41.51.61.8TCP流量控制•TCP为其应用提供了流量控制服务(flow-controlservice)–一种速率调节服务,将发送方发送数据的速率,调整至相符于接收方应用程序读取数据的速率。第41頁,共59頁1.11.21.31.41.51.61.8TCP拥塞控制•拥塞n太多发送端太快送出太多数据使网络无法负担n症状:丢包(路由器缓存溢位)长时延(在路由器缓存内等待)n重传可视为拥塞的前兆n与流量控制不同第42頁,共59頁1.11.21.31.41.51.61.8TCP拥塞控制•TCP拥塞控制有三项主要元素:(1)慢启动(2)拥塞避免(3)快速恢复第43頁,共59頁1.11.21.31.41.51.61.8在开始TCP连接时,快速增加cwnd值直到发生分组丢失cwnd初值=1MSS每收到ACK增加一个M