应用层、运输层、网络层、数据链路层
因特网:
是一个世界范围的计算机网络,互联了全世界的计算机设备
计算机设备:手机,电脑,游戏机,电视等
所有这些设备都称为主机(host)或端系统(end system)
端系统通过因特网服务提供商(Internet Service Provider, ISP)接入因特网
TCP和IP是因特网中最重要的协议。IP协议定义了路由器和端系统之间发送和接受的分组格式。这两统称TCP/IP簇
分组交换中的时延、丢包和吞吐量:
进程通过一个称为套接字(socket)的软件接口向网络发送报文和从网络接收报文
应用程序开发者可以控制套接字在应用层端的一切,但对套接字的运输层端几乎没有控制权
应用程序开发者对运输层的控制仅限于:
HTTP使用TCP作为它的支撑运输协议
HTTP不保存客户的任何信息,所以说HTTP是一个无状态协议
HTTP默认是使用持续连接,也可以非持续连接
HTTP默认是带流水线的持续连接(批量的请求和响应)
请求报文
响应报文
一个典型的邮件发送过程是:从发送方的用户代理开始,传输到发送方的邮件服务器,再传输到接收方的邮件服务器,然后在这里被分发到接收方的邮箱中
如果发送方的服务器不能将邮件交付给接收方的服务器,发送方的邮件服务器在一个报文队列中保持该报文并在以后尝试再次发送
通常每30min进行一次尝试,如果几天都没有成功,那么服务器会删除该报文并以电子邮件的形式通知发送方
SMTP也是利用的TCP协议
SMTP是因特网电子邮件应用的核心
SMTP一般不使用中间邮件服务器发送邮件,都是直连
HTTP和SMTP都是使用持续连接
HTTP和SMTP的区别:
HTTP是拉协议(pull),用户使用HTTP从服务器拉取信息,TCP连接是由想接收文件的机器发起的;
SMTP是推协议(push),发送邮件服务器将文件推向接收方服务器,TCP连接是由要发送该文件的机器发起的
邮件访问协议是拉协议,解决了SMYP的难点
极为简单,故功能有限
POP3用来将邮件从接收方的邮件服务器拉取到接收方的用户代理
当用户代理(客户)打开一个到邮件服务器110端口的TCP连接,POP3就开始工作
随着建立TCP连接,POP3按照三个阶段进行工作:
特许:
用户代理发送(以明文方式)用户名和口令 以鉴别用户
事务处理:
用户代理取回报文;
同时在这个阶段,用户代理还能进行如下操作,对报文做删除标记,取消标记,获取邮件的统计信息
更新:
客户发送quit命令后,结束改POP3会话时,删除被标记的邮件
提供主机名到IP地址的转换(映射)
DNS是:
DNS服务器通常是运行BIND的软件UNIX机器
DNS协议运行在UDP之上,使用53号端口
DNS服务器是以层次方式组织:
根DNS服务器:
一共13台
顶级域服务器:
com, net, edu, gov…
权威DNS服务器
DNS广泛使用缓存技术,改善了时延性能,并减少在因特网上到处传输的DNS报文数量
当DNS服务器收到一个DNS回答(如主机名到IP地址的映射…)时,它能将回答中的信息缓存在本地存储器中
这个映射的缓存不是永久的,DNS服务器在一段时间后(通常设置为两天)将丢弃缓存的信息
共同实现DNS分布式数据库的所有DNS服务器存储了资源记录(Resource Record, RR),RR提供主机名到IP地址的映射
每个DNS回答报文包含了一条或多条RR
RR格式:(Name, Value, Type, TTL)
查询和回答报文是一样的格式
运输层协议为运行在不同主机上的应用进程之间提供了逻辑通信功能
从应用程序角度上看,通过 逻辑通信,运行不同进程的主机好像 直接相连
应用进程使用运输层提供的逻辑通信功能彼此发送报文,而无需考虑承载这些报文的物理基础设施的细节
运输层协议是在端系统中实现的而不是在路由器中实现
将应用报文划分为较小的块,并为每块加上一个运输层首部以生成运输层报文段。网络层将其封装成数据报,并向目的地发送
路由器仅作用于该数据段的网络层字段,不检查运输层报文段
UDP(用户数据报协议)为调用它的应用程序提供一种不可靠、无连接的服务
TCP(传输控制协议),为调用它的应用程序提供一种可靠、面向连接的服务
IP(网际)协议,为主机之间提供了逻辑通信。IP的服务模型是尽力而为交付服务
UDP和TCP的最基本的职责是,将两个端系统件IP的交付服务拓展为运行在端系统上的两个进程之间的交付服务。这被称为运输层的多路复用与多路分解
UDP和TCP还可以通过在其报文段首部中包括差错检查字段而提供完整性检查
进程到进程的数据交付和差错检查是两种最低限度的运输层服务,也是UDP所能提供的仅有的两种服务
TCP为应用程序提供了几种附加服务

三个主要组件:
两种重要功能:
转发:当一个分组到达路由器的一条输入链路时,路由器必须将该分组移动到适当的输出链路
路由选择:决定分组发出后的路径的算法
每台路由器具有一张转发表
路由器通过检查到达分组首部字段的值来转发分组,然后使用该值在表中索引查询输出链路接口
虚电路和数据报网络(主要是用后者)
路由器用分组的目的地址的前缀与该表中的表项进行匹配,如果有多个匹配时,就采用最长前缀匹配规则
数据报格式(以IPv4为例):
数据报分片(IPv4才有):
IPv4编址:
主机与物理链路之间的边界叫做接口
路由器与它的任意一条链路之间的边界叫做接口
每台主机和路由器接口拥有自己的IP地址
一个IP地址对应一个接口
每个IP长度是32比特
2的32次方,约40亿个IP地址,已经不够用了
这些地址按照点分十进制记法
IP的一部分由其子网来决定
互联主机接口和路由器接口的网络形成子网
如223.1.1.0/24,称为子网掩码,最左侧的24比特定义了子网地址
更加一般化,a.b.c.d/x的地址的x最高比特构成IP地址的网络部分,称为地址的前缀(网络前缀)
32 - X被称为网络部分
也有的是分类编址:具有8,16,24比特子网地址的子网分别被称为A、B、C类网络
IP广播地址:255.255.255.255
当发送IP为255.255.255.255的数据报时,该报文会被交付给同一个网络中的所有主机
**动态主机配置协议(DHCP)**允许主机自动获取一个IP地址,也叫即插即用协议
NAT可以进行网络地址转换,对外界屏蔽内部网络的细节(对一个家庭分配一个IP,但家庭内的几个设备共用这个IP)
IPv6:
IPv4向IPv6迁移:
路由选择算法:
默认路由器又称第一路由器
源主机的默认路由器称为源路由器
目的主机的默认路由器称为目的路由器
一个分组从源主机到目的主机归结为源路由器到目的路由器
第一种广义的分类方式是根据算法是全局式还是分散式
第二种广义的分类方式是根据算法是静态的还是动态的
第三种广义的分类方式是根据算法是负载敏感的还是负载迟钝的
P84 to P107
P113 to P125
WEB请求:
:FF:FF:FF,广播到与交换机连接的所有设备