第一章 概论
- 协议:定义了两个通信实体之间交换报文的格式、顺序,以及发送报文和接受报文或其他事件时采用的动作。
- 网络边缘:端系统
- 路由器和链路交换机的区别:路由器涉及到了网络第三层:物理层、数据链路层、网络层;链路交换机只涉及到第二层网络:物理层、数据链路层。
- 网络层次的任务:错误控制、片段化、流量控制、重组、多任务、连接
- ISP:互联网提供商
- 五层网络:应用层:应用程序想发送给传输层数据;传输层:传输单位:报文段、由传输层生成并封装有传输层头信息的应用程序报文;网络层:传输单位:数据报、封装有网络层信息的传输层报文;
数据链路层:封装有链路层信息的网络层数据报,传输单位:帧;物理层:比特位 - 端到端信息传输:分块-加头信息(目标IP地址、数据、校验)-路由
第二章 应用层
- 应用层协议:http、ftp、smtp、dns、pop3
- 应用程提供服务:可靠传输、吞吐量、定时、安全
- 网络应用程序体系:客户端-服务器体系:Web应用、搜索引擎、p2p体系:因特网电话、视频会议
- 客户端和服务端,在C-S体系中,发起请求的是客户端,等待连接的是服务器;在p2p体系中,发送资源的是服务器,接受资源的是客户端。
- 套接字:应用进程通向网络接口的神奇之门。
- 不同端系统的进程的通信:为了识别,不同的端系统上不同的进程,需要一个唯一辨识作为寻址:主机地址和端口号(在传输层协议报文中含有IP和端口号)
作用是生成应用程报文,协助传输层完成不同端系统中的应用程序间的逻辑通信??? - HTTP协议:超文本传输协议,是Web应用的核心,由两个程序实现,一个是客户端程序一个是服务器程序,客户端程序和服务器程序在不同的端系统上面运行,通过HTTP报文进行会话。Web页面是一个对象,可以是HTML文件、图片、Java小程序、视频片段等。
- 特征:使用TCP作为传输层的支撑协议,所以HTTP协议是有连接的,可靠传输的协议;不保存客户的相关信息,所以是无状态(没记性)得协议,后使用Cookie和Session技术作为补充;有持续连接和非持续连接(对于新的HTTP请求另外开辟一条新的连接)两种模式,默认状态为持续连接
- 非持续连接的缺点:1)每个请求的对象必须建立一个新的连接,客户端和服务器都要分配相应的TCP缓冲和保持TCP变量,对于一台要承受来自大量客户端请求,压力巨大;2)一个TCP连接需要两个RTT,即每个对象的获取都要禁受两倍的时延。
- HTTP的报文格式:1)HTTP请求报文:请求行+首部行+数据实体。请求行:HTTP协议版本+URL+请求方法(GET、POST、HEAD、DELETE、PUT)、首部行:首部字段:Connection、User-agent等、数据实体:略
2)HTTP相应报文:状态行+首部行+数据实体。状态行:协议版本、状态码、首部字段:等等,挺多的、数据实体:略。 - GET方法和POST方法的区别:GET多用于客户端向服务器请求获得资源、POST方法多用于资源的传送(S->C or C->S)、GET把方法参数放在URL里面不够安全,POST放在Requestbody中、GET方法中的参数长度有限制,POST中无限制、POST是FORM表单默认的提交方法、GET方法参数会保留在浏览器中,POST的不会。
- Cookie技术:在客户端首次访问一个Web服务器时,服务器会针对这个客户端生成一个Cookie标识,作为一个表项存放在服务器后端的数据库中,并在HTTP报文响应报文的首部字段Set-Cookie中存放CookieID,随响应报文传送给客户端端,再客户端后服务器的后续的访问中HTTP请求报文中会携带CookieID,服务器收到HTTP报文之后,根据CookieID,在后端数据库中,查询到相应的表项,从而识别出客户端主机,保存当前状态和得到之前的状态。
- SMTP协议:因特网电子邮件的核心,简单邮件传输协议,运行在TCP协议之上的,报文格式:首部字段:FROM、TO、SUBJECT、报文实体。
- SMTP和HTTP的对比:都是运行在网络应用层的协议,一个是针对Web应用一个是电子邮件服务;HTTP是拉协议、SMTP是推协议;SMTP针对的是7比特ASCII码格式报文,HTTP可以是二级制六可以是ASCII。
- DNS协议:直观作用:把域名地址映射为IP地址(为什么,因为域名对于人类更好记忆,而定长的、层次化的IP地址对于路由器更容易管理)
- DNS工作原理:运行在TCP协议之上,黑盒子:主机名(域名)->DNS服务器->包含主机名的IP地址。采用层次化的域名管理,没有一台DNS服务器拥有了所有主机的映射
第三章 运输层
- 职责: 实现不同端系统上应用程序的逻辑通信,而网络层则是为不同端系统之间提供逻辑通信。
- 运输层的必要功能:多路复用(信件在同兄弟姐妹之间的收集)和多路分用(新建在堂兄弟姐妹之间分配)。多路复用就是把不同应用程序的报文交给同一个传输层协议去传送;多路分用:到达客户端的报文传输层根据端口信息分配数据给各个应用程序,其中中间环节涉及套接字。
- 有连接和无连接的传输层协议:无连接:不需要握手连接、不知道信息传输过程有没有丢失,有没有到达,信息到达时也可能是乱序的、是不可靠的。
- 无连接运输协议UDP:仅仅提供最基本的多路复用/多路分用和差错检验功能。UDP报文:源端口号+目的端口号+检验和+长度+应用报文
- 有连接运输协议TCP:面向连接的、除了提供多路复用/多路分用、差错检验之外,还提供了,可靠传输、拥塞控制
|