计算机网络-自顶向上笔记

1.3.2 无连接服务和面向连接服务
因特网,或者说更为一般的TCP/IP网络给其应用提供两种类型的服务:无连接服务和面向连接服务。因特网应用程序如电子邮件陈谷,文件传输程序,Web程序,因特网电话程序等,开发人员必须把程序编写成使用这2种服务之一。

面向连接服务
当某个应用使用面向连接服务时,其客户和服务器在发送携带实际数据的分组前,彼此相对方发送控制分组。这个所谓的握手过程使得客户和服务器进入戒备状态,位接下来的分组交换做好准备。握手一旦完成,我们就说2个终端系统之间建立了一个连接。因特网的面向连接服务于其他服务捆绑在一起,包括数据传输,流量控制,拥塞控制。
数据传输:意味着应用可以依赖该连接以正确的顺序无错的递送所有数据。使用企业人于重传机制实现。
流量控制:确保某一端的应用可能难以像它被接收信息那么迅速地处理信息。流量控制服务强迫发送分组的中断系统降低其分组发送速率。
拥塞控制:帮助防止因特网进入卡锁状态。当一个路由点的拥塞,其缓冲区可能溢出,从而发生分组丢失现象,这个服务强迫降低发送速率来避免此问题。
因特网面向连接服务称为 TCP(传输控制协议),定义在RFC 793中。


无连接服务
无连接服务没有握手过程。既然没有先于分组发送的握手过程,数据可能会更快地传输。由于也没有确认,源端觉不知道有哪些分组到达了目的端。这种服务还不提供流量控制盒拥塞控制。
无连接服务由UDP(用户数据协议)提供,定义在RFC 768

大部分应用程序由TCP提供面向连接服务,包括Telnet远程登录,SMTP电子邮件,FTP文件传输,HTTP用于Web,
UDP提供不连接服务也有许多应用程序,比如多媒体应用,因特网电话,音频颠簸,视频会议等。




1.4 网络核心部分
构建网络核心部分的基本方法有2种:线路交换和分组交换。在线路交换网络中,实施了一堆中终端的通信,沿其路径所需的资源(缓冲区股,链路带宽等)整个会话期间必须预留。在分组交换网络中不许许留,一次会话的哥哥消息按需使用资源,其结果是可能不得不等待(即排队)以访问某个通信链路。
电话网络就是线路交换网络的一个例子。某人打电话通过电话网络给另一人发送消息前,必须建立一个发送方于接收方之间的连接。
因特网就是典型的分组交换网络。分组经由一系列通信链路传送,分组交换网络没有为该分组预留任何带宽。如果其中一个链路因为同时以偶其他分组需要传送变得拥塞,那么该分组不得不等待在该链路入口点的某个缓冲区,从而遭受一延迟。
数据报网络
在数据包网络中穿行的每个分组都在其头部包含母的地址
网络的分类

我们介绍了若干个重要网络架构的概念:线路交换,分组交换。 消息交换,虚电路,无连接服务,面向连接服务。首先一个电信网络要么采用线路交换要么采用分组交换。线路交换中链路既可以是FDM,也可以是TDM。分组交换中既可以是虚电路也可以是数据报网络。数据报网络中的交换机按照分组的目的地址路由分组,无比维护连接状态。

1.5 接入网络和物理介质
接入网络------ 把一个终端系统连接到他的边缘路由器的物理链路,也就是在从这个终端系统到其他任何一个终端


系统的路径上,把该终端系统连接到第一个路由器的链路。接入网络技术与物理介质(光纤,同轴电缆,双绞电话线,无线频谱


等)密切相关.


ADSL的实际上行带宽和下行带宽是由家庭调制调解器与ISP调制调解器之间的距离,双绞线的规格,一集电气干扰程序


三者共同确定.

材质:
铜制双绞线:最便宜最常见的传输介质.双绞线由2根绝缘的铜芯线构成,每根约1毫米粗,彼此以某种规则的螺旋模式


绞缠在一起,为了削减来自紧挨着的其他股双绞线的电气干扰.一般外包一层防护屏蔽.数股双绞线捆扎在一起构成一段电缆,


没股双绞线构成单个通信链路.
局域网普遍使用无屏蔽双绞线UTP.

同轴电缆:也由2根铜导体构成,不过这2根铜导体是以内一外沿同一轴心伸展的,而不是绞缠在一起.这样的结构加上


特殊的绝缘材料和屏蔽层,是的同轴电缆能够达到比双绞线要高的位传输.同轴电缆分:基带同轴电缆和宽带同轴电缆.



1.6 分组交换网络中的延迟和丢失
因特网体系结构的重要组件---应用,终端系统,端到端传输协议,路由器,链路.
节点处理延迟:
路由器检查分组的头部,以确定把他导向哪个链路所需的时间属于节点处理延迟.还可能包含其他因素.
排队延迟
分组在所拍列队中经历一段排队延迟,这是她等待被发送到出链路上得时间..排队延迟去绝对相应队列的分组到达强


度和分布特性
发送延迟:把分组移离自身所需的时间.
传播延迟:分组从一个路由器发出到另一个路由器的入口,属于传播延迟,主要由传输距离和传播物理介质决定.

总延迟=节点处理延迟,排队延迟,发送延迟和传播延迟.
分组丢失:分组在链路路口输出列队能容纳的数目是有限的.取决于路由器缓冲区的大小,一个分组到达队列时,可能


发现该列队已满.没有存储这些分组的地方,路由器就会丢弃分组..


1.7协议层和服务模型
TCP/IP协议:物理层-链路层-网络层-运输层-应用层.  应用层和运输层一般用软件实现,链路层和物理层用硬件实现


,网络层组合实现.
应用层:负责支持网络应用,她包含许多协议,HTTP,SMTP,FTP等  (通信单位:报文)
传输层;负责提供客户端和服务器端之间传输应用层消息的服务,因特网有TCP和UDP 2种传输协议.(通信单位:可以是


报文段,分组或用户数据)
网络层:负责把数据从一台主机传送到另一台主机.主要2个功能,IP协议和路由选择.(通信单位:数据报)
链路层:网络层必须依赖于链路层把一个分组从一个节点移往下一个节点.链路层的例子有以太网和点到点服务


(PPP)(通信单位:帧)
物理层:把帧从一个网络组件移往某个紧邻的组件.(通信单位:比特)


1.7.3 网络实体和协议层
最重要的网络实体是终端系统和分组交换机.分组交换机有2种类型:路由器和网桥,网桥和普通交换机应该说帧交换


机.具有三层交换功能的交换机可以说是分组交换机.












第二章: 应用层
2.1 进程间跨网络的通信
套接字socket 是单台主机内应用层和传输层之间的接口.

进程寻址
要让一台主机的进程给另一台主机进程发送消息,发送进程就必须能识别接受进程.用于表示进程的信息有2个:
1.接受主机的主机名或主机地址(接受主机用IP地址标识) 2.接受主机内的接受进程的标识符(端口号).


2.2 Web : HTTP
Web的应用层协议HTTP是Web的核心.
Web页面(web page,也称文档)由多个对象构成.对象(object)仅仅是可由单个URL寻址的文件,例


如HTML文件,JPEG图像,GIF图像,Java小应用程序,语音片段等.
HTTP定义Web客户(浏览器)如何从Web服务器请求Web页面,以及服务器如何把Web页面传送给客户


.HTTP/1.0和1.1都把TCP作为底层传输协议.HTTP客户首先发起建立于服务器TCP连接.一旦连接建立,浏览


器进程和服务器进程就可以通过各自的套接字来访问TCP.
TCP的拥塞控制机制,迫使每个新的TCP连接一开始以相对缓慢的速率书传输数据,只要网络不拥


塞,每个连接可以迅速上升相对高的速率.这个慢速传输的初始化阶段称为缓启动.
HTTP服务器不维护客户的状态信息,是一个无状态的协议.


2.2.2 非持久连接和持久连接
非持久连接
每次服务器发送一个对象之后,相应的TCP连接就被关闭,每个TCP连接只用于传输一个请求消息


和一个相应消息.
持久连接
持久连接分为不带流水线和带流水线延迟. 
如果服务器收到一个HTTP/1.0的请求,即使他是1.1的服务器,也不会使用持久连接,
2.2.3 HTTP消息格式
下面是一个典型的HTTP请求消息:
GET /somedir/pago.html HTTP/1.1
Host: www.someschool.edu
Connection: close
User-agent: Mosilla/4.0
Accept-language:fr


这个消息是普通话的ASCII文本些的,一共五行,每行以回车符合换行符结束.最后一行后面额外


一个回车符合换行符.
该消息第一行称为请求行,后续各行都称为头部行.请求行有3个字段:方法字段, URL字段,HTTP


版本字段.
方法字段有多个选择,GET,POST,HEAD. HTTP请求消息大多用GET方法.所请求的对象在URL字段中


.
第一个头部行,存放请求对象的主机.
第二个头部行,Connection:close 告知服务器本浏览器不想使用持久连接.
第三头部行.置顶用户代理,也就是长生当前请求的浏览器类型.
最后一个是语言.如没有你请求的语言,服务器发送默认语言


POST方法适用于用户填写表单,用户提交表单后,浏览器就像用户点击了超链接那样任然从服务


器请求一个Web也页面.如果浏览器使用POST方法提出该请求,那么请求消息附属提中包含的是用户填写在


表单各个字段中的值.


HTTP响应消息
HTTP/1.1 200 OK
Connection: close
Date:Thu,06 Aug 1998 12:00:15 GMT
Server:Apache/1.3.0(Unix)
Last-Modified: Mon, 22 Jun 1998 09:23:24 GMT
Content-Length: 6821
Content-Type: text/html
(数据 数据 数据...)

这个响应消息分为3部分:1个起始的状态行,6非头部行,1个包含所请求对象本身的附属体.
状态行有3个字段: 协议版本字段,状态码字段,原因短语字段.
使用Connection:close 头部行告诉客户自己讲在发送笨消息后关闭TCP连接.
Date:头部行支出服务器创建并发送响应消息的日期和时间.
Server:头部行支出笨消息是由Apache Web服务器产生的;他与HTTP请求消息中的User-Agent头


部行类似.
Last-Modified:支出对象本身的创建或修改日期或时间.这个头部对于对象的告诉缓存至关重要


.
Content-Length:支出所发送对象的字节数
Content-Type:指出附属体中的是HTML文本,对象类型由这个头部行指出,


状态吗字段的其他格式:200 OK:请求成功,所请求信息在响应消息中返回.
301 Moved Permanently:所请求的对象已永久迁移,新的URL在本响应消息的Location头部指出
400 Bad Request:表示服务器无法理解相应请求的普遍错误的状态码.
404 Not Found: 服务器上不存在所请求文档
505 HTTP Version Not Supported :服务器不支持所请求HTTP协议版本
304 Not Modified    告知用户放心使用所请求对象的高速缓存版本



2.2.4 用户-服务器交互;    身份认证和cookie
我们知道HTTP服务器是无状态的.这样可以处理简化服务器程序的设计.HTTP提供2种服务器标识


用户的机制:身份认证和cookie
身份认证
许多Web站点要求用户提供一个用户名-口令才能访问存放在服务器的文档.这种要求称为身份认


证.HTTP提供特殊的状态码和头部帮助WEB站点执行身份认证.下面来模拟一下:
客户首先发送一个不含特殊头部的普通请求消息.服务器以空的附属体和一个 401 


Authorization Required 状态码作为响应,服务器还在这个响应消息中包含一个 WWW-Authentucate;头


部,说明具体如何执行身份认证,这个头部的典型值是指出用户需要提供一个用户名-口令对.
客户收到这个响应消息后,提示用户输入用户名和口令,然后重新发送请求消息,这一会客户在请


求消息中包含了一个Authorization头部,其中包含用户名和口令.
取得第一个对象后,客户请求该服务器的后续对象,会继续发送这个用户-口令对.这个做法会持


续用户关闭浏览器为止,在此之前,这个用户名-口令对是高速缓存着的,因此浏览器不会每请求一个对象


会提示用户输入用户名-口令.


cookie
是一种可由WEB站点用来跟踪用户的候选机制.
假设一个客户首次练习一个使用cookie的WEB站点,服务器会在其响应中包含一个Set-Cookie;头


部.该头部值通常是一个WEB服务器产生的标识数,如 Set-Cookue:1678453
客户收到这个响应消息,看到这个头部和标识数后,往存放在客户主机中的某个特殊的cookie文


件中添加一行,这一行一般包含服务器主机的主机名和这个与用户关联的标识数.在一段时间如一个星期


之后,请求同一个服务器时,由一个用户启动新的客户会在请求消息中包含一个Cookie头部,其值为早先由


该服务器长生的标识数.在这种方式中,服务器并不知道提出请求的用户的用户名,但是他确实知道该用户


与一个氢气前提出的请求用户是同一个.

WEB服务器有多个使用cookie的目的
1.如果服务器要求身份认证,但又不想在同一用户每次访问Web站点时都麻烦他输入用户名和口


令,那么可以设置一个cookie
2.如果服务器想记住用户的偏好,以便后续访问期间有目的的提供广告
3.如果WEB站点提供购物服务,那么服务器可以使用COOKIE跟踪用户购买的物品.


2.2.5 带条件的GET
WEB高速缓存技术通过就近方寸先前取得的对象来降低对象检索延迟,减少英特网上得WEB流


量,WEB告诉缓存即可驻留在客户主机,也可驻留中间网络高速缓存服务器主机中.
WEB高速缓存降低用户可感知的响应时间的同时,却引入新问题---缓存中存放的对象的拷贝可能


是过期的.于是,HTTP提供一个专门机制,使得允许客户进行高速缓存同时,任确保所有对象都是最新的.这


个机制就是带条件的GET.满足条件1.使用GET方法2.包含If-Modified-Since:头部的HTTPing求消息就是


所谓的带条件的GET.
假如,有一个浏览器从某个WEB服务器请求一个尚未高速缓存的对象;
GET /fruit/kiwi.gif HTTP/1.0
User-agent:Mozilla/4.0
接着,WEB服务器吧带着个对象的一个响应消息发送给客户:
HTTP/1.0 200 OK
Date:Web,12 Aug 1998 15:39:29
Server:Apache/1.3.0(Unix)
Last-Modified:Mon, 22 Jun 1998 09:23:24
Content-Type: image/gif
数据数据数据....


客户把这个对象显示给用户,同时把他保存在自己的本地高速缓存中,需要注意的是客户还随意


修改对象本身高速缓存最后修改日期与实践.一个星期后,同一用户请求同一个对象,而该对象任然在高速


缓存中,既然WEB服务器中该对象有可能在最近被修改,于是浏览器发出带条件的GET,检查最新

GET /fruit/kiwi.gif HTTP/1.0
User-agent:Mozilla/4.0
If-Modified-Since: Mon,22 Jun 1998 09:23:24


其中,If-Modified-Since头部的值就等于一个星期前由服务器发送的Last-Modified头部的值,


这个带条件的GET消息告知服务器,假设该对象在这段时间内未曾修改,那么服务器讲发送一个附属体为空


的响应消息给客户:


HTTP/1.0 304 Not Modified
Date; Wed, 19 Aug 1998 15:19:19
Server:Apache/1.3.0(Unix)
空附属体








2.3 文件传送:FTP
文件传送协议是一个用于从一台主机到另一台主机传送文件的协议.FTP使用2个并行的TCP连接


来传送文件,一个是控制连接,一个是数据连接.控制连接用于在客户主机和服务器主机之间发送控制信息


,如用户名,口令,修改远程目录的命令,取来或放回文件的命令. 数据连接用于真正发送文件.
当用户启动与远程主机间的FTP回话时,FTP客户首先发起建立一个FTP服务器端口号21之间的控


制TCP连接,然后经由该控制连接把用户名和口令发送给服务器.客户还经由该控制连接把本地临时分配的


数据端口告知服务器,以便与服务器建立一个服务器端口号20到客户指定端口之间的数据TCP连接.为了便


于绕过防火墙,较新的FTP版本允许客户告知服务器改为由客户发起建立到服务器端口20的数据TCP连接.


用户执行的一些命令也由客户经由控制连接发送给服务器. 当用户每次请求传送文件,FTP讲在服务器端


口20上打开一个数据TCP连接.FTP在数据连接上传送完文件后,有可能关闭数据连接,到再有文件传送请求


时候重新打开,因此FTP控制连接在整个用户会话期间一直打开着,而数据连接则是非持久的.
整个会话期间,FTP服务器必须维护用户的状态,把控制连接与特定的用户关联起来,必须随时用


户在远程目录树种游动跟踪其当前目录.为每个活跃的用户会话保持这些信息极大限制了FTP同时维护的


会话数.


2.3.1 FTP命令和应答
从客户到服务器的命令和服务器到客户应答都是7位ASCII码格式经由控制连接传送,因此跟HTTP


请求消息一样,FTP命令也是可直观读取的.用于分割相继的命令或应答时一个回车符和一个换行符.每个


命令由4个大写ASCII字符构成,有些命令带有可选参数.下面为较常见的命令:
USER username: 用户想服务器发送用户名
PASS password: 用户想服务器发送口令
LIST: 用于请求服务器发挥当前远程没目录下所有文件的一个清单,该清单是通过数据连接而不


是控制连接发过来的!
RETP filename: 用于获取远程主机当前目录下的一个文件,与用户代理中的get命令相对应
STOR filename: 用于存放远程主机当前目录下的一个文件,与用户代理中put命令相对应


服务器的FTP命令和用户发出的命令之间存在一一对应关系.每个命令之后跟随的是服务器发送


到客户的应答.FTP应答时一个3位数值,可能后跟一个可选消息.下面列出典型的应答和后跟消息.
331 Username OK,password required //用户名确定,需要密码才能
125 Data connection already open; transfer starting //数据连接已经打开,开始传


送数据
425 Can't open data connection //无法打开数据连接
452 Error writing file //错误写入文件






2.4.1 SMTP
发送过程:首先,运行在发送邮件服务器主机上的SMTP客户,发起建立一个到运行在接受邮件


服务器主机上的SMTP服务器端口号25之间的TCP连接。如果接受邮件服务器当前不在工作,SMTP客户就等


待一段时间后再尝试建立连接。这个连接建立之后,SMTP客户和服务器先执行一些应用层握手操作。再


这个SMTP握手阶段,SMTP客户向服务器分别指出发信人和收信人的电子邮件地址。彼此自我介绍之后,


客户发出邮件消息。SMTP可以指望由TCP提供的可靠数据传输服务吧该消息传送到服务器.如果客户还有


其他邮件消息需要发送同一服务器,他就在同一个TCP连接上重复上述过程.



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值