《计算机网络:自顶向下方法》学习记录01

《计算机网络:自顶向下方法》学习记录01


1 因特网协议栈和OSI参考模型

1.1 五层因特网协议栈

五层因特网协议栈自顶向下依次为:应用层运输层网络层链路层物理层

1.1.1 应用层

  • 应用层是网络应用程序及它们的应用层协议存留的地方。应用层包括的协议有HTTPSMTPFTPDNS等。
  • 应用层协议分布在多个端系统上,一个端系统中的应用程序使用协议与另一个端系统中的应用程序交换信息的分组。
  • 位于应用层的信息分组称为报文(message)

1.1.2 运输层

  • 因特网的运输层在应用程序端点之间传送应用层报文。
  • 因特网中的两个运输协议:TCPUDP
  • TCP协议向它的应用程序提供了面向连接的服务,包括应用层报文向目的地的确保传递流量控制。TCP将长报文划分为短报文,并提供拥塞控制机制,因此当网络拥塞时,源抑制其传输速率。
  • UDP协议向它的应用程序提供无连接服务。UDP协议是一种不提供不必要服务的服务,没有可靠性没有流量控制,也没有拥塞控制
  • 运输层分组称为报文段(segment)

1.1.3 网络层

  • 因特网的网络层负责将称为数据报(datagram)的网络层分组从一台主机移动到另一台主机。在一台源主机中的因特网运输层协议(TCP或UDP)向网络层递交运输层报文段和目的地址。
  • 因特网的网络层包括著名的IP协议,该协议定义了在数据包中的各个字段以及端系统和路由器如何作用于这些字段。
  • 所有具有网络层的因特网组建必须运行IP协议。

1.1.4 链路层

  • 链路层是因特网的网络层通过源和目的地之间的一系列路由器路由数据报。
  • 在每个结点,网络层将数据包下传给链路层,链路层沿着路径将数据报传递给下一个结点。在下个结点,链路层将数据报上传给网络层。
  • 由链路层提供的服务取决于应用于该链路的特定链路层协议。
  • 链路层的例子包括以太网WiFi电缆接入网的DOCSIS协议
  • 链路层分组称为帧(frame)

1.1.5 物理层

  • 物理层的任务是将帧中的一个一个bite从一个结点移动到下一个结点。
  • 物理层的协议与链路相关,并且进一步与该链路(例如双绞铜线、单模光纤)的实际传输媒体相关。

1.2 七层OSI参考模型

  • 七层OSI(开放系统互连)参考模型自顶向下依次为:应用层表示层会话层运输层网络层链路层物理层。对比之下可以发现,OSI模型与因特网协议栈相近,只不过附加了两个层,即表示层会话层。其它五层的功能与因特网协议栈大致相同。
  • 表示层的作用是使通信的应用程序能够解释交换数据的含义。这些服务包括数据压缩和数据加密(它们是自解释的),以及数据描述。
  • 会话层提供了数据交换定界和同步功能,包括了建立检查点和恢复方案的方法。
  • 因特网协议栈缺少的两层服务由应用程序开发者处理。应用程序开发者决定一个服务是否是重要的,如果该服务重要,应用程序开发者就应该在应用程序中构建该功能。

2 HTTP协议

2.1 基本内容

  1. Web的应用层协议是超文本传输协议(Hyper Text Transfer Protocol ,HTTP)
  2. HTTP使用TCP作为它的支撑传输协议。
  3. 采用非持续连接的HTTP:
    每个TCP连接在服务器发送一个对象之后关闭,不为其他的对象而持续下来。每个TCP连接只出书一个请求报文和一个响应报文。
  4. 采用持续连接的HTTP:
    在采取持续连接的情况下,服务器在发送响应后保持该TCP连接打开。但是,如果一条连接经过一定时间间隔(一个可配置的超时间隔)仍未被使用,则HTTP服务器会关闭该连接

2.2 HTTP报文格式

2.2.1 HTTP请求报文

HTTP请求报文样例如下,最后一行后附加一个回车换行符

GET /somedir/page.html HTTP/1.1
Host: www.someschool.edu
Connection: close
User-agent: Mozilla/5.0
Accept-language: fr

  • 其中,第一行为请求行,剩余的行叫做首部行
    请求行有3个字段:方法字段、URL字段和HTTP版本字段。方法字段包括GETPOSTHEADPUTDELETE。URL字段带有请求对象的标识。版本字段是自解释的。
  • 首部行
    • Host指明了对象所在的主机。(这是Web代理高速缓存所要求的);
    • Connection:close表示浏览器要求服务器在发送完被请求的对象后就关闭该链接,keep-alive则是使用持续连接;
    • User-agent指明向服务器发送请求的浏览器的类型;
    • Accept-language表示用户想得到的对象的语言版本,如果服务器不存在该版本,则发送它的默认版本;

2.2.2 HTTP请求报文的通用格式

一个HTTP请求报文的通用格式


2.2.3 HTTP响应报文

HTTP响应报文样例如下,最后一行后附加一个回车换行符

HTTP/1.1 200 OK
Connection: close
Date: Tue, 09 Aug 2011 15:44:04 GMT
Server: Apache/2.2.3 (CentOS)
Last-Modified: Tue, 09 Aug 2011 15:11:03 GMT
Content-Length: 6821
Content-Type: text/html

(data data data data data ...)
  • 其中,第一行为初始状态行,接下来的有6个首部行,然后是实体体(entity body)。实体体部分是报文的主要部分,即它包含了所请求的对象本身。
  • 状态行有3个字段:协议版本字段、状态码和相应状态信息。
  • 例子中首部行信息解释:
    • Connection: close
      发送完报文后将关闭该TCP连接
    • Date
      服务器从它的文件系统中检索到该对象,插入到响应报文,并发送该响应报文的时间
    • Server
      服务器信息
    • Last-Modified
      服务器认定的资源做出修改的日期及时间
    • Content-Length
      被发送对象的字节数
    • Content-Type
      例子中指出实体体中的对象是HTML文本

2.2.4 HTTP响应报文的通用格式

HTTP响应报文的通用格式

2.2.5 常见的状态码

  • 200 OK: 请求成功,信息在返回的响应报文中。
  • 301 Moved Permanently: 请求的对象已经被永久转移了,新的URL定义在响应报文的Location: 首部行中。客户软件将自动获取新的URL。
  • 400 Bad Request: 一个通用差错代码,指示该请求不能被服务器理解。
  • 404 Not Found: 被请求的文件不再服务器上。
  • 505 HTTP Version Not Supported: 服务器不支持请求报文使用的HTTP协议版本。

3 流行的因特网应用及其下面的运输协议

应用 应用层协议 下面的运输协议
电子邮件 SMTP TCP
远程终端访问 Telnet TCP
Web HTTP TCP
文件传输 FTP TCP
远程文件服务器 NFS 通常UDP
流式多媒体 通常专用 UDP 或 TCP
因特网电话 通常专用 UDP 或 TCP
网络管理 SNMP 通常UDP
路由选择协议 RIP 通常UDP
名字转换 DNS 通常UDP

猜你喜欢

转载自blog.csdn.net/feng964497595/article/details/79779822
今日推荐