您的位置:首页 > 理论基础 > 计算机网络

【计算机基础】《计算机网络 自顶向下方法》学习笔记(更新中)

2016-07-20 16:38 716 查看


        第一章:概论

交换式网络最常见的类型为电路交换网络和分组交换网络:电路交换网络类似以前电话系统,分组交换网络中的路由器具有存储和转发分组的队列,当满负荷信息发送排队执行

Internet: 由一系列主干、提供商网络和客户网络组成。主干处于最高层次,主干网络通过成为对等点的复杂交换系统进行连接。较小的提供者网络处于第二个层次,通过付费使用主干网络服务.客户网络是Internet边缘的网络。主干和提供者网络也成为Internet服务提供商(ISP),主干常常称为国际ISP,提供者网络常常称为国家或区域ISP
访问Internet:
使用电话网络: 拨号服务(上网不能打电话),DSL服务(上网可以打电话)
利用有线电视网络:速率与使用同一电缆的用户数目相关
利用无线网络
直接连接到internet:大机构或公司变为一个本地ISP并连入Internet      

协议分层:通信复杂时,我们要将任务划分都到不同层,每层需要一个协议。
协议分层允许我们将一个复杂的通信任务分解为几个较小的简单的任务,使工作模块化
协议分层使我们将服务从实现中分离
协议分层的原则:每一层可以实现相反的任务(输入输出),每一层的输入输出对象应该相同

TCP/IP协议簇(按不同层次组织的协议集)       传输控制协议/互联网协议      
由相互交互的模块组成的一个层次结构协议,每一个模块提供特定的功能
层次意味着较上层次的协议需要得到一个或多个较下层协议提供的服务支持
目前分为五层:应用层、传输层、网络层、数据链路层、物理层



TCP/IP各层描述:
应用层:端到端,应用层的通信处于两个进程(该层正在运行的两个程序)之间,进程到进程的通信就是应用层的任务
HTTP:超级文本传输协议是访问万维网的载体
SMTP:简单邮件传输协议是电子邮件服务的主要协议
FTP:文件传输协议用于将文件从一台主机传输到另一台主机
TELNET:远程登陆 和SSH:安全外壳 用于访问远端的站点
SNMP:简单网络管理协议,用于对Internet全局或局部进行管理
DNS:域名系统:使其他的协议能够查询另一台计算机的网络层地址
IGMP:英特网组管理协议,用于管理一个组的成员资格

传输层:源主机的传输层从应用层得到消息,封装成传输层的分组(段或用户数据报)发送
TCP:传输控制协议是一个面向连接的协议,在传输数据之前,在两台主机之间建立逻辑连接。TCP协议在两个TCP层之间创建一个管道传输字节流,并提供流量控制、差错控制、拥塞控制
UDP:无连接协议,传输数据之前不需要建立逻辑连接,这里的无连接的意思是每个用户数据报是一个独立的实体。在发送较短消息且不能容忍TCP在分组损坏或丢失时使用重发机制的时候采用。
SCTP:为多媒体出现的新应用设计的协议

网络层:负责在源计算机和目的计算机之间创建一个连接。网络层的通信是主机到主机,负责主机到主机的通信,并且只会分组通过合适的路由器。(路由器负责为每个分组选择最好的路径)
网络层主要协议为IP,定义了在网络层成为数据报的分组格式,同时也定义了在这一层使用的地址格式和结构
IP还负责从源主机把一个分组路由到目的主机。

数据链路层:当路由器选择最好的链路进行传输,数据链路层接管数据报并使它穿过这条链路。数据链路层负责通过链路传输分组。
物理层:最底层,物理层之下存在另外一个隐藏的传输介质层。



封装和解封装: 源主机的封装
在应用层交换的数据称为消息。消息通常不包含任何头部和尾部,包含也统称为消息
传输层将传来的消息称为有效载荷,该载荷是传输层应该关注的负载。传输层在有效载荷基础上增加传输层头部,包含通信的源和目的应用程序的标识符等。其结果为一个传输层分组,该分组在TCP中称为段,在UDP中称为用户数据报
网络层把传输层分组作为数据或有效载荷,并且在该有效何在上添加自己的头部。头部包含源和目的主机的地址,以及用于头部差错检查、分片的信息等。其结果为一个称为数据报的网络层分组。
数据链路层把网络层分组作为数据或有效载荷,并且添
4000
加自己的头部。该头部包含主机或下一跳步(路由器)的链路层地址。其结果为一个称为帧的链路层分组。

路由器的解封装与封装
在比特集被投递到数据链路层后,从帧中解封装出数据报投递到网络层
网络层只检查数据报头部的源地址和目的地址,查阅它的转发表以寻找数据报投递的下一跳步。若数据报太大对其分片,内容不会被改变
数据链路层将数据报封装成一个帧,传递到物理层

地址



物理层的数据交换单元是一个比特,不需要地址

Internet历史    
    

第二章:应用层

应用层是TCP/IP协议簇的最高层,可以灵活的增删协议。
应用层模式:
传统模式:客户-----服务器   服务提供者是一个成为服务进程的应用程序,长期运行并等待客户进程连接并请求服务,类似于查电话和114。
新模式:对等(P2P)   服务端和客户都是即时通信,没有一直等待的进程
混合模式

客户----服务器模式:服务器的生存期无限的,开启后一直运行,等待客户;客户端的生存期是有闲的,发送接受响应即停止
应用程序接口(API): TCP/IP协议簇的前四层编写进操作系统并包含了API,最常见API为套接字接口、传输层接口以及STREAM     Ps:程序中的接口是两个实体之间的指令集,一个是应用层中的进程,另一个是封装了前四层的操作系统
套接字接口是提供应用层和操作系统间通信的指令集,是一个可以被某进程用来与另一个进程进行通信的指令集
套接字:一种抽象,是供应用程序创建和使用的数据结构   就应用层而言,可以说客户进程和服务器进程间的通信是两个套接字间的通信。
套接字地址:包括本地套接字地址和远程套接字地址(客户端和服务端都有发送端和接收端),由32位的IP地址和16位的端口号构成。由于套接字定义了通信终端,我们可以说套接字是由一段套接字地址标示的。

使用传输层协议:
UDP协议:提供了无连接、不可靠的数据包服务。两个交换报文的终端之间没有逻辑连接。每个报文都是独立的实体被封装在一个成为数据报的分组中。UDP看不到来自同一个源端并去往同一个目的端的数据报之间的关系(连接)。UDP可能在传输中检查数据是否被破换,但不要求发送端重传被破坏丢失的数据。优势在于UDP是面向报文的,保留报文边界。简单性+速度>可靠性时选择
TCP:要求两个终端首先通过交换一些连接建立分组来建立一个逻辑连接,成为握手,设定终端间的参数(交换数据分组大小,用于保存数据直到报文发送完成的缓冲区大小)。发现数据损坏或丢失,要求重发
SCTP协议:使用于需要可靠性,而且网络层连接错误也保持连接不断开的应用

标准客户--服务器应用
万维网 Web:分布式和链接   分布式允许Web增值,每个Web服务器都可以增加新的网页到Web中,链接使得一个网页与另一个存储在主机的网页相互引用。链接通过超文本的概念实现,现阶段已成为超链接
网络客户(浏览器):每个浏览器包含控制程序、客户协议和解释程序。控制程序接收来自键盘和鼠标的输入并使用客户端程序来显示文档。在文档被访问后,控制程序使用解释程序来显示文档



网络服务器:网页是存储在服务器上的。为了提高效率,服务器通常通过多线程或多进程提高效率并将被请求的文件存储在内存的缓存中
URL:统一资源定位符:定义一个网页,需要主机、端口以及路径三个标识符、定义网页之前还需要告知浏览器使用哪个客户-服务器应用,这成为协议
协议:第一个标识符为用来访问网页的客户-服务器程序的缩写,绝大数为HTTP
主机:主机标识符为服务器的IP地址或主机被给予的唯一名称。IP地址可以按点分割的十进制数表示法定义;名称通常是唯一定义主机的域名
端口:16位整数,通常为客户-服务器应用而预定义。如HTTP的端口号为80
路径:路径定义了下层的操作系统中文件的位置和名称。这个标识符的格式通常依赖于操作系统。
以上四部分组合在一起,便设计出了统一资源定位符

网上文档分为三类:
静态稳定:在服务器中创建和存储的固定内容的文档,客户只能得到一个文档的副本。文件的内容在创建文件时决定,而不是在使用时决定。静态文档使用XML、XSL、XHTML
动态文档:当浏览器请求文档时动态文档被网页服务器运用程序活脚本创建
活动文档:需要在客户站点运行一个程序活脚本称为活动文档

超文本传输协议(HTTP):一种用来定义客户服务器程序如何编写和如何从万维网获取网页的协议。HTTP使用TCP协议。在HTTP1.1版之前指定的是非持续连接,每次使用一个新的TCP连接获取一个对象,持续连接在1.1版是默认的(可以被用户改变),创建一个TCP连接获取全部对象
请求报文:第一行称为请求行,这一行有三部分由空格分隔开并且被两个字符(回车和换行)终止。这些字段成为方法。方法字段定义了请求类型。


 



版本:给出协议的版本。HTTP最常用的版本是1.1

响应报文:包含状态行、头部行并且有时包含主体。
响应报文的第一行成为状态行,并有三个字段。第一个字段定义了HTTP协议的版本,通常为1.1.状态码字段定义了请求的状态。在100范围内的代码只代表一个报告,在200范围内的代码表示这是一个成功的请求。在300范围内的代码表示把客户端重定向到另一个URL,在400范围内的代码表示在客户端发生错误,在500范围内的代码表示错误发生在服务器端。

 Cookie:
创建和存储Cookie:
当服务器从客户端收到请求后,它将客户端的信息存储在文件或字符串中。这些信息能包含客户端的域名、cookie内容(包含服务器收集到的关于客户端的信息,如主机名、注册号等,时间戳等)

服务器在响应中包含了它发送给客户端的cookie
当客户端接受到响应后,浏览器在cookie目录中存储cookie,并根据服务器域名进行分类     

使用Cookie:当客户向服务器发送请求时,浏览器在cookie目录中查询是否有从那个服务器发送过来的cookie。如果有即在请求中包含这个cookie。当服务器接受到这个请求后,知道了这是老客户。Cookie的内容从来不让浏览器读取或者透漏给用户,只由服务器创建并回收cookie



 FTP:文件传输协议是TCP/IP提供的标准机制,用于将文件从一个主机复制到另一个主机。我们可以使用HTTP传送文件,但是FTP是传送大文件或使用不同格式传送文件更好的选择
客户用三个组件:用户接口、客户控制进程和客户数据传输进程
服务器有两个组件:服务器控制进程和服务器数据传输进程。  控制连接是在控制进程之间进行的,始终属于连接状态;数据连接是在数据传输进程之间进行的,在每次传输文件时开启然后关闭。
FTP使用端口21用于控制连接,端口20用于数据连接    

电子邮件(需要再看)
TELNET(远程登录)
SSH:用于远程登陆和文件传输等多用途的安全应用程序,被设计来替代TELNET,有两个版本:SSH-1(已经由于安全漏洞被废止)和SSH-2,
SSH应用层协议(SSH-TRANS)    由于TCP不是安全传输层协议,SSH首先使用在TCP顶部创建安全链路的协议。这个新层是一个独立协议,成为SSH-TRANS。
SSH认证协议:
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息