2018.4.14 英文版电子书
2018/4/16 购入中文版纸质书
1.1什么是因特网
因特网服务提供商ISP,传输控制协议TCP,网际协议IP
1.2网络边缘
1.3网络核心
分组交换和电路交换,分组交换性能优于电路交换
1.4分组交换网中的时延、丢包和吞吐量
1.5协议层次及其服务模型
协议栈,5个层次:应用层,运输层,网络层,链路层,物理层
应用层是网络应用程序及它们的应用层协议存留的地方。包括HTTP(WEB文档的请求和传送),SMTP(电子邮件报文的传送)和FTP(两个端系统之间的文件传送)。位于应用层的信息分组称为报文。
运输层是在应用程序端点之间传送应用层报文。有两个运输协议,即TCP和UDP。TCP提供面向连接的服务,包括应用层报文向目的地的确保传递和流量控制。UDP提供无连接服务,没有可靠性,没有流量控制和拥塞机制。运输层分组称为报文段。
网络层负责将称为数据报的网络层分组从一台主机移动到另一台主机。运输层报文段和目的地址。IP协议定义了在数据报中的各个字段以及端系统和路由器如何作用于这些字段。
链路层,分组称为帧
1.7计算机网络和因特网历史
4/17
2.1应用层协议原理
客户-服务器体系结构C/S,P2P体系结构
进程通信,端口号,套接字是应用程序进程和运输层协议之间的接口
TCP是面向连接的可靠数据传输服务,TCP的加强版本称为安全套接字层SSL
2.2Web和HTTP
URL地址由两部分组成:存放对象的服务器名和对象的路径名
HTTP请求报文
请求行: GET /somedir/page.html HTTP/1.1
方法字段(GET、POST、HEAD、PUT、DELETE) URL字段 HTTP版本字段
首部行:Host: www.someschool.edu 主机
Connection: close 发送完就关闭连接,非持续连接
User-agent: Mozilla/5.0 指明用户代理,向服务器发送请求的浏览器类型,这里是火狐
Accept-language: fr
HTTP响应报文
状态行:HTTP/1.1 200 OK
协议版本字段 状态码 相应状态信息
首部行:Connetion: close
Date: tue, 09 Aug 2011 15:44:04 GMT 发送响应报文的时间
Server:Apache/2.2.3 (centOS)
Last-Modigied:
Content-legth: 6821
Content-type: text/html
实体体:
cookie,WEB缓存器
2.3文件传输协议:FTP
FTP使用两个并行的TCP连接来传输文件,控制连接和数据连接
2.4因特网中的电子邮件
组成部分:用户代理,邮件服务器,简单邮件传输协议(SMTP)
SMTP是一个推协议,取报文是拉协议,需要引入特殊的邮件访问协议来解决,主流的有第三版的邮局协议POP3,因特网邮件访问协议IMAP以及http
2.5DNS:因特网的目录服务
一个IP地址由4个字节组成,具有层次结构
域名系统DNS,应用层协议,由其他应用层协议使用,将主机解析为IP地址
2.6 P2P应用
客户-服务器和p2p体系机构的最小分发时间,F/u=1,us=10u
对于P2P体系结构,最小分发时间不仅总是小于客户-服务器体系结构的分发时间,并且对于任意的对等数量,总是小于1
P2P体系结构的应用程序能够自扩展,因为对等方是比特的消费者也是重新分发者
分布式散列表DHT
2.7 TCP套接字编程
2.7.1 UDP套接字编程
代码在https://github.com/joycezwei/network-for-py.git test目录下
2.7.2 TCP套接字编程
复习题
2.1节
R1. 列出5种非专用的因特网应用及它们所使用的应用层协议
Web服务的HTTP协议;文件传输的FTP协议;电子邮件的SMTP;远程控制的Telnet协议;P2P应用的P2P;文件传输的FTP
R2.网络体系结构和应用程序体系结构之间有什么区别?
应用程序的体系结构明显不同于网络的体系结构。从应用程序研发者的角度看,网络体系结构是固定的,并为应用程序提供了特定的服务集合。在另一方面,应用程序体系结构由应用程序研发者设计,规定了如何在各种端系统上组织该应用程序。应用程序研发者可能使用的两种主流体系结构之一:客户-服务器体系结构或对等(P2P)体系结构。
R3. 对两进程之间的通信会话而言,哪个进程是客户机,哪个进程是服务器?
发起通信的是客户机,接收通信的是服务器
R4.对一个P2P文件共享应用,你同意“一个通信会话不存在客户端和服务器端的概念”的说法嘛,为什么
不同意,一个进程能够既是客户又是服务器
R5. 运行在一台主机上的一个进程,使用什么信息来表示运行在另一台主机上的进程?
目的端口号
R6.假定你想尽快的处理从远程客户机到服务器的事务,应使用UDP还是TCP?为什么?
UDP;因为使用UDP不用建立连接,通信前没有握手过程,并且不包括拥塞机制,可以用它选定的任何速率向其下层(网络层)注入数据。
R8. 列出运输协议能够提供的4种宽泛类型的服务。对于每种服务类型,指出是UDP还是TCP(或者两种)提供这样的服务
可靠数据传输:TCP有,UDP没有;吞吐量:两个都有;定时:两个都有;安全性:TCP可以通过SSL保证安全,UDP没有。
R9.前面讲过TCP能用SSL来强化,以提供进程到线程的安全性服务,包括加密。SSL运行在运输层还是应用层?如果某应用程序研制者想要用SSL来强化UDP,该研制者应当做些什么工作?
SSL强化是在应用层上实现的,在发送主机中的SSL加密数据并将加密的数据传递给TCP套接字。
2.2~2.5节
R10.握手协议的作用是什么?
提示客户机和服务端做好分组传输的准备。
R11. 为什么HTTP,FTP、SMTP及POP都运行在TCP,而不是UDP上?
因为这些要求可靠的数据传输
R12. 考虑一个电子商务网站需要保留每一个客户的购物记录。描述如何使用cookie来完成该功能。
cookie技术有4个组件:在HTTP响应报文中的一个cookie首部行;在HTTP请求报文的一个cookie首部行;在用户端系统中保留有一个cookie文件,并由用户的浏览器进行管理;位于web站点的一个后端数据库。
第三章 运输层
3.1 概述和运输层服务
运输层协议为运行在不同主机上的应用进程之间提供了逻辑通信功能。网络层提供了主机之间的逻辑通信。运输层协议是在端系统中而不是在路由器中实现的。在发送端,运输层将从发送应用程序进程接收到的报文转换成运输层分组,用因特网术语来讲该分组称为运输层报文段。
3.2 多路复用和多路分解
将运输层报文段中的数据交付到正确的套接字的工作称为多路分解。
在源主机从不同的套接字中收集数据块,并为每个数据块封装上首部信息从而生成报文段,然后将报文段传递到网络层,所有这些工作称为多路复用。 端口号是一个16比特的数,其大小在0-65535之间。0-1023范围的端口号称为周知端口号,受限制的,指它们保留给如HTTP(80)和FTP(21)之类的周知应用层协议来使用。
3.3 无连接运输:UDP 2018.5.8
3.5.6 TCP连接管理
建立连接,三次握手,分配缓存和变量
4次挥手
客户TCP会经历的一系列典型TCP状态
服务器端状态