计算机网络自顶向下前六章
机械工业出版社的大黑书(计算机网络-自顶向下方法)和课程,慕课的一个的总结,主要根据tcp/ip的五层体系结构。介绍一些大概
下面放一些他人的总结,当做补充资料或者细节
1.总览
1.1 概述
互联网组成:边缘部分+核心部分。
边缘部分就是各种主机,端系统,用户直接使用。每个端系统都具有一个唯一的IP地址,通过ISP与网络相连。
核心部分就是网络,交换机,路由器这些,为边缘部分提供服务(连通性和交换)。每台路由器都有一个转发表,用于将目的地址映射为输出链路。
端系统的常见通信方式是客户服务器方式,客户和服务器都是指通信中涉及到的两个应用进程。客户和服务器都要使用网络核心部分提供的服务。另一种是对等方式,本质上看还是客户服务器方式,只不过通信双方都是客户和服务器。
客户和服务器建立连接之后,通信是双向的,两者都可以接收/发送信息
协议:定义了两个或多个通信实体之间交换的报文的格式和顺序,以及报文发送,接收采取的一系列动作。
主机是为用户进行信息处理的,并向网络发送分组,或者从网络接收分组。
路由器是实现分组交换(packet switching)的关键构件,其任务是对分组进行存储转发,最后把分组交付目的主机,这是网络核心部分最重要的功能。
分组交换:是以分组为单位进行传输和交换的,它是一种存储-转发交换方式。简单地说,就是一个数据报文太长了,超过了传输限制,需要将其分割分组,为每一个分组添加首部(包含地址等信息),进行传输,最后在目的地接收后取出首部,进行拼接得到完整数据。但是有可能丢包,因为存储的队列满了,一般通过重发解决。
存储转发:路由器收到一个分组,先暂时存储下来,再检查其首部,查找转发表,按照首部中的目的地址,找到合适的接口转发出去。
![image-20200913161438568](https://gitee.com/cheng_song/picgo-img/raw/master/img/image-20200913161533494.png)
1.2 性能指标
1.速率:数据的传送速率,单位bit/s等
2.带宽:单位时间内,某信道能通过的“最高数据率”,单位bit/s
3.吞吐量:单位时间内,通过某个网络的数据量
4.时延:数据(一个报文或分组)从网络(或链路)的一端到另一端传送所需的时间。通常有
发送时延/传输时延:从发送数据帧的第一个比特到最后一个比特发送完成到链路上所需的时间
传播时延:电磁波在信道中需要一定的时间进行传播
处理时延:主机或路由器在收到分组时,为处理分组(例如分析首部、提取数据、差错检验或查找路由)所花费的时间。
排队时延:分组在路由器输入输出队列中排队等待处理所经历的时间。
总时延为上面相加
![image-20200913161347953](https://gitee.com/cheng_song/picgo-img/raw/master/img/image-20200913161503961.png)
一个小点:宽带线路和窄带线路上比特的传播速率是一样的。宽带线路:每秒有更多比特从计算机注入到线路。而且宽带不等于并行传输。
5.时延带宽积
6.往返时间RTT
7.利用率:信道利用率和网络利用率
1.3 体系结构
![](https://gitee.com/cheng_song/picgo-img/raw/master/img/image-20200913161438568.png)
消息自上向下逐层封装,目标系统自下向上逐层拆封,由最高层将消息提供给目标进程。
协议数据单元(PDU):协议控制信息(称为协议头/首部)+数据。协议头包含地址,序号,长度,分段标志等控制信息
封装:
在计算机网络中数据交换必须准守事先约定的协议。
![image-20200913161414234](https://gitee.com/cheng_song/picgo-img/raw/master/img/image-20200913161347953.png)
应用层:网络应用程序及应用层协议存留的地方,包括HTTP.SMTP.FTP协议。分布在多个端系统上。
运输层:在应用程序端点之间传输应用层报文。有两种传输协议,TCP/UDP。TCP面向连接服务和可靠数据传输服务,UDP提供无连接服务。
网络层:负责将称为数据报的网络层分组从一台主机移到另一台主机,通过TCP/UDP得到报文段和目的地址。协议仅有一个为著名的IP协议。
链路层:为了将分组从一个节点(主机或路由器)移到另一个节点,网络层必须需要链路层提供服务。链路层分组称为帧。
物理层:链路层是将整个帧从一个网络元素移动到邻近的网络元素,物理层的任务是将帧中的一个个比特从一个节点移到下一个节点。与双绞铜线,同轴电缆,光纤相关。
![image-20200915205119264](https://gitee.com/cheng_song/picgo-img/raw/master/img/image-20200915205119264.png)
2.应用层
规定应用进程在通信是遵守的协议,协议大多基于客户服务器方式。进程通过一个称为套接字软件接口向网络发送,接收报文。
可供应用程序使用的运输服务:1.可靠的数据传输 2.定时 3.吞吐量 4.安全
2.1 HTTP
定义了web客户向web服务器请求web页面的方式,以服务器向客户发送web页面的方式。使用TCP作为他的支撑运输协议。因为HTTP服务器不保存客户的任何信息,所以称HTTP协议是一个无状态协议,每一次请求都认为是一个全新的请求。默认是持续连接,也可改成非持续连接。
HTTP报文格式
请求报文:第一行称为请求行,包含方法字段(get/post/put……)、URL字段、HTTP版本字段。后续的行称为首部行。
![image-20200913192706036](https://gitee.com/cheng_song/picgo-img/raw/master/img/image-20200913192706036.png)
请求数据一般在post存在;get为空,参数直接在URL里存在。
GET /books/?sex=man&name=Professional HTTP/1.1
Host: www.wrox.com
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.6)
Gecko/20050225 Firefox/1.0.1
Connection: Keep-Alive
响应报文:包括初始状态行(版本,状态码,短语),6个首部行,一个实体体(数据)。结构与上面相似,只是第一行有变化。