第五章 运输层
使用UDP和TCP协议的各种应用和应用层协议
端口
TCP和UDP都需要有源端口和目的端口
(端口:用16位来表示,即一个主机共有65536个端口.序号小于256的端口称为通用端口,如FTP是21端口,WWW是80端口等.端口用来标识一个服务或应用.一台主机可以同时提供多个服务和建立多个连接.端口(port)就是传输层的应用程序接口.应用层的各个进程是通过相应的端口才能与运输实体进行交互.服务器一般都是通过人们所熟知的端口号来识别的)
服务端
常用的熟知端口
登记端口 1024~49151 客户端 端口号由客户进程动态选择。数值范围 49152~65535
UDP
特点
1.无连接的(发送数据之前不需要建立连接,因此减少了开销和发送数据之前的时延)
2.尽最大努力交付(不保证可靠支付,因此主机不需要维持复杂的连接状态表)
3.面向报文的(UDP对应用层交下来的报文,添加完首部后就直接交付IP层。如果太长就会分片)
4.UDP没有拥塞控制
5.UDP支持一对一、一对多、多对一和多对多的交互通信
6.UDP的首部开销小(只有8个字节,TCP有20个字节)
UDP报文
- 源端口:2字节 = 16bit = 0 ~ 65535
- 目的端口:2字节
- 长度:2字节
- 检验和:2字节
如果接受方UDP发现收到的报文中的目的端口号不正确(不存在对应端口号的应用进程),就会丢弃报文,并有网际控制报文协议ICMP(ping某个地址就是用的ICMP)发送“端口不可达”差错报文给发送方。
UDP用户数据报首部检验和计算时会在UDP用户数据报前增加12个字节的伪首部。
TCP
特点
面向连接的运输层协议。
点对点(一对一)通信。
可靠交付。
全双工通信(TCP连接的两端都设有发送缓存和接收缓存,用来临时存放双向通信的数据)。
面向字节流。
TCP与UDP在发送报文时所采用的方式完全不同。TCP具体发送的报文由接收方给出的窗口值和当前网络拥塞的程度来决定一个报文段包含多少字节。而UDP发送的报文长度由应用进程给出。
TCP可靠传输工作原理
TCP连接的端点叫做套接字(socket)或插口。套接字socket = (IP地址:端口号)
停止等待协议
缺点
停止等待协议(自动重传ARQ)虽然简单,但是信道利用率低。
连续ARQ协议和滑动窗口协议
TCP的三次握手
1.客户端TCP向服务端TCP发送一个特殊的TCP报文段,不包含应用层数据,报文中SYN=1,设置一个初始号client_isn,记录在报文段的序列号seq中。
2.SYN报文段到达服务器后,为该TCP链接分配缓存和变量,并向客户端发送允许链接的报文段。其中,SYN = 1, ACK = client_isn+1,seq = server_isn;
3.客户端收到允许连接的报文后,客户端也给连接分配缓存和变量,客户端向服务端发送一个报文段,其中ACK = server_isn+1,SYN = 0,并且由于连接已经建立所以现在可以携带应用层数据
TCP四次挥手
1. 客户端发送连接释放报文段,报文中FIN = 1, seq = u;
2. 服务端接收到连接释放报文后发出确认报文,其中ACK = 1; seq = v; ack = u + 1;
3. 服务端在发送完数据后,发送连接释放报文FIN = 1, seq = w, ack = u + 1;并停止向客户端发送数据。
4. 客户端收到连接释放报文后,发送确认报文, ACK = 1; seq = u + 1; ack = w + 1;并且进入等待2MSL,防止服务端没有接收到确认报文,重传报文。并且使连接产生的报文都消失。
TCP协议的连接是全双工连接,一个TCP连接存在双向的读写通道。
简单说来是 “先关读,后关写”,一共需要四个阶段。以客户机发起关闭连接为例:
1. 服务器读通道关闭
2. 客户机写通道关闭
3. 客户机读通道关闭
4. 服务器写通道关闭
TCP拥塞控制
拥塞控制和流量控制的区别
流量控制针对的是点对点之间的(发送方和接收方)之间的速度匹配服务,因为接收方的应用程序读取的速度不一定很迅速,而接收方的缓存是有限的,就需要避免发送的速度过快而导致的问题。拥塞控制是由于网络中的路由和链路传输速度限制,要避免网络的过载和进行的控制。
拥塞控制算法
拥塞控制算法主要包含了三个部分:慢启动、拥塞避免和快速回复
慢启动
慢开始算法的思路就是,不要一开始就发送大量的数据,先探测一下网络的拥塞程度,也就是说由小到大逐渐增加拥塞窗口的大小。一般一开始为1个MSS,之后翻倍这样来增加,呈指数增长。其中1、慢启动过程有一个阈值ssthresh,一旦到达阈值就进入拥塞避免模式。这是第一种离开结束慢启动的方式2、如果收到了一个丢包提示,就将cwnd设为1并且重新开始慢启动过程,这时要把阈值ssthresh设为当前cwnd值的一半。3、如果收到了三次冗余的ACK,就执行一次快速重传并且进入快速恢复状态,这是最后一种结束慢启动的过程。
拥塞避免
进入拥塞避免说明cwnd值大约是上一次遇到拥塞是的一半,这时候不能翻倍,而是将cwnd的值每次增加一个MSS。结束的过程有两种可能:1、当出现超时时,将cwnd值设为1个MSS,并且将ssthresh阈值设为当前cwnd值的一半。2、当收到三个冗余ACK时,将ssthresh阈值设为当前cwnd值的一半,并且将cwnd值设为当前cwnd值的一半加3,即ssthresh阈值加3,并且进入快速恢复状态。
快速恢复
快速恢复就是指进入快速恢复前的一系列操作,即将ssthresh阈值设为当前cwnd值的一半,并且将cwnd值设为当前cwnd值的一半加3,即ssthresh阈值加3,之后进入拥塞避免状态,即每次cwnd的值加1个MSS。
第六章 应用层
域名系统
DNS 是一个分布式数据库,提供了主机名和 IP 地址之间相互转换的服务。这里的分布式数据库是指,每个站点只保留它自己的那部分数据。
域名具有层次结构,从上到下依次为:根域名、顶级域名、二级域名。
DNS 可以使用 UDP 或者 TCP 进行传输,使用的端口号都为 53。大多数情况下 DNS 使用 UDP 进行传输,这就要求域名解析器和域名服务器都必须自己处理超时和重传从而保证可靠性。在两种情况下会使用 TCP 进行传输:
如果返回的响应超过的 512 字节(UDP 最大只支持 512 字节的数据)。
区域传送(区域传送是主域名服务器向辅助域名服务器传送变化的那部分数据)。
DNS查询,两种
迭代式
本地域名服务器向根域名服务器查询时一般使用迭代查询
主机向本地域名服务器查询后,如果本地域名服务器向根服务器发送请求,根服务器如果么有查询到ip,就会告知本地域名服务器向其他根服务器查询,直到查完或者查不到。
递归式
主机向本地域名服务器查询,如果查不到,本地域名服务器就以客户的身份分向其他根域名服务器请求,其他服务器依次。
文件传送协议
FTP 使用 TCP 进行连接,它需要两个连接来传送一个文件:
控制连接:服务器打开端口号 21 等待客户端的连接,客户端主动建立连接后,使用这个连接将客户端的命令传送给服务器,并传回服务器的应答。
数据连接:用来传送一个文件数据。
根据数据连接是否是服务器端主动建立,FTP 有主动和被动两种模式:
主动模式:服务器端主动建立数据连接,其中服务器端的端口号为 20,客户端的端口号随机,但是必须大于 1024,因为 0~1023 是熟知端口号。
被动模式:客户端主动建立数据连接,其中客户端的端口号由客户端自己指定,服务器端的端口号随机。
DHCP动态主机配置协议
DHCP (Dynamic Host Configuration Protocol) 提供了即插即用的连网方式,用户不再需要手动配置 IP 地址等信息。
DHCP 配置的内容不仅是 IP 地址,还包括子网掩码、网关 IP 地址。
DHCP 工作过程如下:
客户端发送 Discover 报文,该报文的目的地址为 255.255.255.255:67,源地址为 0.0.0.0:68,被放入 UDP 中,该报文被广播到同一个子网的所有主机上。如果客户端和 DHCP 服务器不在同一个子网,就需要使用中继代理。
DHCP 服务器收到 Discover 报文之后,发送 Offer 报文给客户端,该报文包含了客户端所需要的信息。因为客户端可能收到多个 DHCP 服务器提供的信息,因此客户端需要进行选择。
如果客户端选择了某个 DHCP 服务器提供的信息,那么就发送 Request 报文给该 DHCP 服务器。
DHCP 服务器发送 Ack 报文,表示客户端此时可以使用提供给它的信息。
远程登录协议
TELNET 用于登录到远程主机上,并且远程主机上的输出也会返回。
TELNET 可以适应许多计算机和操作系统的差异,例如不同操作系统系统的换行符定义。
电子邮件协议
一个电子邮件系统由三部分组成:用户代理、邮件服务器以及邮件协议。
邮件协议包含发送协议和读取协议,发送协议常用 SMTP,读取协议常用 POP3 和 IMAP。
1. SMTP
SMTP 只能发送 ASCII 码,而互联网邮件扩充 MIME 可以发送二进制文件。MIME 并没有改动或者取代 SMTP,而是增加邮件主体的结构,定义了非 ASCII 码的编码规则。
常用端口
打开网页过程
Web 页面请求过程
1. DHCP 配置主机信息
假设主机最开始没有 IP 地址以及其它信息,那么就需要先使用 DHCP 来获取。
主机生成一个 DHCP 请求报文,并将这个报文放入具有目的端口 67 和源端口 68 的 UDP 报文段中。
该报文段则被放入在一个具有广播 IP 目的地址(255.255.255.255) 和源 IP 地址(0.0.0.0)的 IP 数据报中。
该数据报则被放置在 MAC 帧中,该帧具有目的地址 FF:FF:FF:FF:FF:FF,将广播到与交换机连接的所有设备。
连接在交换机的 DHCP 服务器收到广播帧之后,不断地向上分解得到 IP 数据报、UDP 报文段、DHCP 请求报文,之后生成 DHCP ACK 报文,该报文包含以下信息:IP 地址、DNS 服务器的 IP 地址、默认网关路由器的 IP 地址和子网掩码。该报文被放入 UDP 报文段中,UDP 报文段有被放入 IP 数据报中,最后放入 MAC 帧中。
该帧的目的地址是请求主机的 MAC 地址,因为交换机具有自学习能力,之前主机发送了广播帧之后就记录了 MAC 地址到其转发接口的交换表项,因此现在交换机就可以直接知道应该向哪个接口发送该帧。
主机收到该帧后,不断分解得到 DHCP 报文。之后就配置它的 IP 地址、子网掩码和 DNS 服务器的 IP 地址,并在其 IP 转发表中安装默认网关。
2. ARP 解析 MAC 地址
主机通过浏览器生成一个 TCP 套接字,套接字向 HTTP 服务器发送 HTTP 请求。为了生成该套接字,主机需要知道网站的域名对应的 IP 地址。
主机生成一个 DNS 查询报文,该报文具有 53 号端口,因为 DNS 服务器的端口号是 53。
该 DNS 查询报文被放入目的地址为 DNS 服务器 IP 地址的 IP 数据报中。
该 IP 数据报被放入一个以太网帧中,该帧将发送到网关路由器。
DHCP 过程只知道网关路由器的 IP 地址,为了获取网关路由器的 MAC 地址,需要使用 ARP 协议。
主机生成一个包含目的地址为网关路由器 IP 地址的 ARP 查询报文,将该 ARP 查询报文放入一个具有广播目的地址(FF:FF:FF:FF:FF:FF)的以太网帧中,并向交换机发送该以太网帧,交换机将该帧转发给所有的连接设备,包括网关路由器。
网关路由器接收到该帧后,不断向上分解得到 ARP 报文,发现其中的 IP 地址与其接口的 IP 地址匹配,因此就发送一个 ARP 回答报文,包含了它的 MAC 地址,发回给主机。
3. DNS 解析域名
知道了网关路由器的 MAC 地址之后,就可以继续 DNS 的解析过程了。
网关路由器接收到包含 DNS 查询报文的以太网帧后,抽取出 IP 数据报,并根据转发表决定该 IP 数据报应该转发的路由器。
因为路由器具有内部网关协议(RIP、OSPF)和外部网关协议(BGP)这两种路由选择协议,因此路由表中已经配置了网关路由器到达 DNS 服务器的路由表项。
到达 DNS 服务器之后,DNS 服务器抽取出 DNS 查询报文,并在 DNS 数据库中查找待解析的域名。
找到 DNS 记录之后,发送 DNS 回答报文,将该回答报文放入 UDP 报文段中,然后放入 IP 数据报中,通过路由器反向转发回网关路由器,并经过以太网交换机到达主机。
4. HTTP 请求页面
有了 HTTP 服务器的 IP 地址之后,主机就能够生成 TCP 套接字,该套接字将用于向 Web 服务器发送 HTTP GET 报文。
在生成 TCP 套接字之前,必须先与 HTTP 服务器进行三次握手来建立连接。生成一个具有目的端口 80 的 TCP SYN 报文段,并向 HTTP 服务器发送该报文段。
HTTP 服务器收到该报文段之后,生成 TCP SYN ACK 报文段,发回给主机。
连接建立之后,浏览器生成 HTTP GET 报文,并交付给 HTTP 服务器。
HTTP 服务器从 TCP 套接字读取 HTTP GET 报文,生成一个 HTTP 响应报文,将 Web 页面内容放入报文主体中,发回给主机。
浏览器收到 HTTP 响应报文后,抽取出 Web 页面内容,之后进行渲染,显示 Web 页面。
第七章 网络安全
重要内容
计算机网络面临的安全威胁和一些主要问题
对称密匙密码体制和公匙密码体制
数字签名与鉴别
网络安全协议IPsec协议族和运输安全协议SSl/TSL的要点
系统安全:防火墙和入侵检测
网络攻击
两种:被动攻击和主动攻击
被动 攻击:从网络上窃听信息,作为第三者不破坏网络原本的通信
主动攻击:
几种常见的方式:篡改:篡改,中断或伪造报文
恶意程序:
计算机病毒
计算机蠕虫
木马
逻辑炸弹
后门入侵
流氓软件
拒绝服务:向服务器不断发送消息使得服务器一直处于繁忙状态;
密码体制
对称密匙密码体制:加密密匙与解密密匙使用相同的密码体制;
公匙密码体制:使用不同的加密密匙与解密密匙;
数字签名
数字签名的功能:
报文鉴别
报文的完整性
不可否认(确认报文的发送方)
鉴别
鉴别是验证通信对象是否正确,并且检验所传送的报文的完整性;、
报文鉴别:
密匙分配
互联网使用的安全协议
系统安全:防火墙与入侵检测
防火墙:一种访问控制技术,禁止不必要的同通信;
入侵检测系统:IDS
第八章 互联网上的音视频服务
重要内容
多媒体信息的特点
流媒体的概念
IP电话使用的几种协议
改经”经最大努力交付“的几种办法
互联网IP层提供 最大交付 和 分组独立交付
TCP协议解决IP层不能可靠交付的问题
多媒体信息在互联网上的传输
多媒体数据的传输对时延和抖动有较大的要求——边传输边播放
音视频传输的特点:
容忍丢失
互联网提供的三类音频视频服务——
流式存储音视频——边下载便播放
流式实况音视频——边录制边发送(多播)
交互式音视频——实时交互式通信
流式存储音视频——
媒体播放器的主要功能:管理用户界面,解压缩,消除时延抖动,处理传输带来的差错
具有元文件的万维网服务器
元文件是用来描述或指明其他文件的一些重要信息的非常小的文件,
媒体服务器
媒体播放器向媒体服务器(而不是万维网服务器)请求音视频文件,对流媒体的传输采用TCP协议而不是UDP
实时流协议RTSP
流式实况音视频——
交互式音视频
IP电话——实况交互式音频
IP电话网关——公用电话网和IP网络的接口设
作用:在呼叫阶段进行电话信令转换
在通话期间进行话音编码的转换
IP电话所要使用的几种应用的协议——
实时运输协议RTP:为实时应用提供端到端的运输,但不保证任何运输质量
实施运输控制协议RTCP:服务质量的监控与反馈,媒体间的同步以及多播组成员间的标志
H.323:(信令标准)在互联网的端系统之间进行实时声音和视频会议的标
会话发起协议SIP
改进最大努力交付的几种方法:
为使多媒体信息能够在互联网上得到更好的运输体条件,改变方法就是改变之前平等对待所有运输分组
的协议,使得多媒体数据分组在互联网上运输时能够得到相应的优先级(获得更好的服务质量)
服务质量:服务性能的总效果,此效果决定用户对服务的满意程度(可用性,差错率,响应时间,吞吐量
,分组丢失率,连接建立时间等性能指标)
几种方法——使互联网提供服务质量:
即分组的分类,标记,管制,调度,呼叫接纳
1)调度机制
调度即排队的规则,按优先级排队;借助分类程序对于分组按照权重分类,形成不同权重的队列进行传输
2)管制机制
1,控制数据流的平均速率
2,限制峰值速率
3,限制突发分组数
————漏桶管制器
3)漏桶机制与加权公平排队相结合
综合服务IntServ和资源预留协议RSVP——最初试图将互联网提供的服务划分为不同的类别
IntServ可对单个的应用会话提供服务质量的保证——
资源预留
呼叫接纳
IntServ定义两类服务:
有保证的服务
受控负载的服务
IntServ的四个组成部分
资源预留协议
接纳控
分类
调度器