4th Edition: Chapter 1

Chapter 1: Introduction
Our goal:
 get “feel” and
terminology(术语)
 more depth, detail
later in course
Overview:
 what’s the Internet?
 what’s a protocol?
 network edge; hosts, access

 approach:
以Internet 为例讲解




net(接入网), physical media
network core: packet/circuit
switching(分组交换/电路交换),
Internet structure
performance: loss, delay,
throughput
security
protocol layers, service models
Introduction
1-1
history
网络的本质
多个脑子/设备/处理器
相互连接(无线/有线)
既定协议
What’s the Internet: 基本元素(实体)
 成千上万个互连的计算
Mobile network
机设备:
Global ISP
主机:一种端系统

运行网络应用
Home network

communication links
光纤, 铜轴, 无线,
卫星
 传输速率=
Regional ISP

Institutional network
bandwidth(带宽)

Routers/Switch:
forward packets
Introduction
1-3
What’s the Internet:基本元素(软体)

protocols 控制着信息的收发


e.g., TCP, IP, HTTP, Skype,
Ethernet
Internet: “network of
networks”


Mobile network
松散的层次结构
公共的因特网和专用内联网
Global ISP
Home network
Regional ISP
Institutional network
 Internet standards
 RFC: 协议/机制标准
 IETF: 标准组织
Introduction
1-4
What’s the Internet: 服务
 为分布式应用程序提供基础服
务:

Web, VoIP, email, games,
e-commerce, file sharing
 Internet服务:
reliable data delivery
from source to
destination(可靠传输)
 “best effort” (unreliable)
data delivery(尽力而为)

Introduction
1-5
Chapter 1: roadmap
1.1 What is the Internet?
1.2 Network edge
 end systems, access networks, links
1.3 Network core
 circuit switching, packet switching, network structure
1.4 Delay, loss and throughput in packet-switched
networks
1.5 Protocol layers, service models
1.6 Networks under attack: security
1.7 History
Introduction
1-6
The network edge:
 端系统(hosts):


run application programs e.g.
Web, email
peer-peer
at “edge of network”
 client/server model


client host requests, receives
service from always-on serverclient/server
e.g. Web browser/server;
email client/server
 peer-peer model:


minimal (or no) use of
dedicated servers
e.g. Skype, BitTorrent
Introduction
1-7
网络边缘:面向连接服务
TCP服务[RFC 793]

可靠的,有序的字节流数据 :确认和重传,序列号

流控制:发送方不能过载接收方

拥塞控制:当网络拥塞时发送方“降低发送速率”
UDP - 用户数据报协议[RFC 768]:




无连接
不可靠的数据传送
无流控
无拥塞控制
使用TCP的应用:
HTTP (Web), FTP (文件传送), Telnet (远程注册), SMTP (电子邮件)
使用UDP的应用:
流媒体,电话会议,DNS
Wireless access networks(无线接入)
 shared
wireless access
network

via base station aka “access
point” (AP)
 wireless LANs:
 802.11b/g (WiFi): 11 or 54 Mbps
router
base
station
 wider-area wireless access
mobile
 provided by 移动运营商:
hosts
中国移动、中国电信
 2G/3G/4G
最终通过什么接入WAN ?
 4G可达100M bps
Introduction
1-9
Physical media: radio
Radio link types:
无线通信是利
用电磁波信号
可以在自由空
间中传播的特
性进行信息交
换的一种通信
方式
 Microwave 微波
 e.g. up to 45 Mbps channels
 LAN (e.g., Wifi)
 11Mbps, 54 Mbps
 3G/4G
 satellite
 Kbps to 45Mbps channel (or
multiple smaller channels)
 270 msec end-end delay
Introduction
1-10
双绞线
 非屏蔽双绞线
(UTP:Unshilded Twisted Pair)
 屏蔽双绞线
(STP:Shielded Twisted Pair)
 常用的双绞线是5类线(CAT5)和超5类线(CAT5e),
可支持10/100/1000Mbit(5类线只能传输短距1000Mbit)
,双绞线的最大标准传输距离为100米
 RJ45水晶头
Introduction
1-11
光纤:fiber
光纤:即光导纤维,是一种利用光在玻璃或塑料制成的纤
维中的全反射原理而达成的光传导工具;高带宽、低衰减
Introduction
1-12
Chapter 1: roadmap
1.1 What is the Internet?
1.2 Network edge
 end systems, access networks, links
1.3 Network core
 circuit switching, packet switching, network structure
1.4 Delay, loss and throughput in packet-switched
networks
1.5 Protocol layers, service models
1.6 Networks under attack: security
1.7 History
Introduction
1-13
The Network Core
 Routers 互连
 数据传输方式?

电路交换: 每次连接都有
专用线路,如电话网

分组交换: 传输资源共享
,尽力而为
Introduction
1-14
电路交换: Circuit Switching
端到端资源预留
等待建立呼叫
主要特点:
专用资源: no sharing
服务有保证(象电路一样)
按需建立连接
Introduction
1-15
电路交换: Circuit Switching
网络资源(e.g., bandwidth)
被分为若干“片(pieces)”
 resource piece
idle if not
used by owning call
(no sharing不共享)
电话接通了却没说话
(资源仍被占用)
 dividing link bandwidth
into “pieces”
 两种复用方法


frequency division
频分多路复用
time division
时分多路复用
Introduction
1-16
电路交换: FDM and TDM
Example:
FDM频分多路
4 users
frequency
time
TDM时分多路
frequency
time
Introduction
1-17
分组交换: Packet Switching
 端到端传输信息分成若干个分组
 多个用户的分组共享网络资源
 each packet uses full link
bandwidth
 store and forward:
分组是一跳一跳地传输
 网络资源按需使用
带宽不再为谁而划分
成若干”Pieces”
Introduction
1-18
Chapter 1: roadmap
1.1 What is the Internet?
1.2 Network edge
 end systems, access networks, links
1.3 Network core
 circuit switching, packet switching, network structure
1.4 Delay, loss and throughput in packet-switched
networks
1.5 Protocol layers, service models
1.6 Networks under attack: security
1.7 History
Introduction
1-19
丢包和时延是怎样出现的?
 分组到达链路的速率超过输出链路能力
 分组排队,等待交换
A
B
分组排队 (时延)
空闲(可用)缓存:如果无空闲缓存则到达的分组丢失(丢包)
Introduction
1-20
分组时延的4种来源
2. 排队时延
1. 处理时延
 等待输出链路传输的时间
 检查比特差错
 取决于路由器拥塞的等级
 报头校验
 路由查找决定输出链路
传输
A
传播
B
节点处理
排队
Introduction
1-21
在分组交换网中的时延
3. 传输时延
R= 链路带宽 (bps)
L= 分组长度 (比特)
发送比特进入链路的时间= L/R
4. 传播时延
d = 物理链路的长度
s = 在媒体中传播的速
度 (~2x108 m/sec)
传播时延 = d/s
传输
A
传播
B
节点处理
排队
Introduction
1-22
“实际的”因特网时延和路由
“实际的”因特网时延和丢包是怎样的呢?
Traceroute程序: 为路由器提供从源到目的地,朝着目的
地沿着端到端因特网路径的时延测量。对途中每节点 i :
 发送3个分组,该分组在朝着目的地的路径上到达路由器 i
 路由器i 将向发送方返回分组
 发送方度量传输和响应间的时间间隔
如何实现?
3 探测分组
3 探测分组
3 探测分组
Introduction
1-23
“实际的”因特网时延和路由
互联网路径即是一系列路由器(三层交换机)的IP 地址列表
Introduction
1-24
Chapter 1: roadmap
1.1 What is the Internet?
1.2 Network edge
 end systems, access networks, links
1.3 Network core
 circuit switching, packet switching, network structure
1.4 Delay, loss and throughput in packet-switched
networks
1.5 Protocol layers, service models
1.6 Networks under attack: security
1.7 History
Introduction
1-25
空中旅行的组织机构
票务 (购买)
票务 (投诉)
行李 (托运)
行李 (认领)
登机口 (登机)
登机口 (离机)
跑道 起飞
跑道 着陆
飞机 飞行
飞机 飞行
按线路飞行
网络服务的层次结构:
 每一层实现一种服务
 每层依赖由下面层次提供的服务
 两端同一层的功能相关联、相对应
Introduction
1-26
因特网协议栈(TCP/IP)
 应用: 支持网络应用
FTP, SMTP, STTP
应用层
 运输: 一个进程到另一进程的数据传输
TCP, UDP
运输层
 网络: 从源端到目的端数据报的选路
IP, 选路协议
网络层
 链路: 在相邻“网元”之间传输数据
PPP, 以太网
链路层
 物理: “在线上”的比特
物理层
Introduction
1-27
源
报文
Ht
M
Hn Ht
M
Hl Hn Ht
M
段
数据报
帧
M
封装
应用层
运输层层
网络层
链路层
物理层
二层交换
Hl Hn Ht
M
链路层
物理层
Hl Hn Ht
M
交换机
目的地
M
Ht
M
Hn Ht
Hl Hn Ht
M
M
应用层
运输层层
网络层
链路层
物理层
Hn Ht
Hl Hn Ht
M
M
网络层
链路层
物理层
Hn Ht
Hl Hn Ht
M
M
路由器
三层转发
Introduction
1-28
Chapter 1: roadmap
1.1 What is the Internet?
1.2 Network edge
 end systems, access networks, links
1.3 Network core
 circuit switching, packet switching, network structure
1.4 Delay, loss and throughput in packet-switched
networks
1.5 Protocol layers, service models
1.6 Networks under attack: security
1.7 History
Introduction
1-29
Network Security网络安全
 The field of network security is about:
计算机网络如何遭受攻击
 我们如何防止网络攻击
 如何设备具有攻击免疫能力的体系结构

 Internet 设计之初是没(怎么)考虑安全问题的
Introduction
1-30
TCP/IP层次结构
FTP
...
HTTP
TCP
...
QQ
UDP
应用层
传输层
Vinton G. Cerf
IP
沙漏结构
细腰结构
哑钤结构
MAC
双绞线
PPP
光纤
网络层
...
ATM
...
Wi-Fi
链路层
物理层
3-31
Chapter 2: Application Layer
Our goals:
 应用层协议的概念/实现
 通过考察典型的应用级
协议,了解协议

基于传输层服务完成




客户机/服务器模式
peer-to-peer (P2P)
模式

HTTP
FTP
SMTP / POP3 / IMAP
DNS
 网络应用编程
socket API
“套接字”编程接口

2: Application Layer
32
Application architectures
Client-server
Peer-to-peer (P2P)
Hybrid(混杂) of client-server and P2P
B/S模式(Browser/Server)
2: Application Layer
33
Client-server architecture
server:
 总是打开的主机
 不变的IP地址
 可扩展为服务器群
client/server
clients:
 与服务器通信
 可以间歇地连接
 可以是动态IP地址或私有IP
 多个客户机彼此不直接地通信
2: Application Layer
34
Sockets
 进程(process)通过 套接字
(socket)发送/接收报文
 套接字类似于门
发送进程将报文推出门外
 发送进程依赖门的另一侧
运输层基础设施,它将报
文送到接收进程的套接字
(它将报文交给接收进程)
 操作系统提供的网络编程
接口
套接字API(应用程序调用):
(1) 选择运输协议;
(2) 确定一些参数的能力

主机或服务器
主机或服务器
由应用研发者控制
进程
进程
套接字
套接字
具有缓
存、变
量的TCP
因特网
具有缓
存、变量
的TCP
由操作系统控制
2: Application Layer
35
常见传输层服务需求总结
应用程序
数据丢失
带宽
时间敏感
文件传输
电子邮件
Web 文档
实时音频/视频
不能丢失
不能丢失
不能丢失
容忍丢失
不
不
不
是, 100’s msec
存储音频/视频
交互式游戏
即时通信
容忍丢失
容忍丢失
不能丢失
弹性
弹性
弹性
音频: 5kbps-1Mbps
视频:10kbps-5Mbps
同上
几kbps以上
弹性
是, 几秒
是, 100 msec
都可能
2: Application Layer
36
Internet transport protocols services
TCP服务特征
 面向连接(connection-oriented) — 客户机和服务器需要握手建连
 可靠传输(reliable) — 在发送进程和接收进程之间可靠数据传递
不丢




不错
不乱
流水线传输(pipeline) — 基于字节 流传输,没有消息边界
全双工(full duplex data) — 同一连接两端可双向同时发送数据
流控制(flow control) — 发送方的速度不会淹没接收方
拥塞控制(congestion control) — 当网络过载时抑制发送速度
还有什么服务TCP不能提供?
最小带宽保证
传输实时性
安全保证
37
Internet transport protocols services
无连接
不可靠
无流控
UDP
服务特征
数据报传输
无拥塞控制
无安全保证
Best Effort Transmission 尽力而为
UDP什么都不做,有什么用啊?
UDP的优势:
非面向连接,快速传输(3次握手将增加时延)
接收端/发送端处理极为简单
段首部小,即附加负载小
UDP适用于一对多通信
电话会议,体育直播等
38
Chapter 2: Application layer
 2.1 Principles of
network applications


app architectures
app requirements
 2.2 Web and HTTP
 2.4 Electronic Mail
 SMTP, POP3, IMAP
 2.6 P2P applications
 2.7 Socket programming
with TCP
 2.8 Socket programming
with UDP
 2.5 DNS
2: Application Layer
39
Web and HTTP
 Web网页由对象(object)组成
 对象可以是HTML文件,JPEG图片,Java小程序,音频
文件,…
 Web页由基本的HTML文件组成 ,基本的HTML文件包括
了几个引用对象
 每个对象可由URL寻址
 URL的例子:
www.someschool.edu/someDept/pic.gif
主机名
路径名
2: Application Layer
40
URL(Uniform Resource Locator)
统一资源定位符
URL 的3个组成部分:
host name(主机名)
 path name(路径名)
 access protocol(访问协议)

Form(形式):
access protocol://IP address(host name):port number/pathname/file
举例.
http: // www.someschool.edu:80/somedept/pic.gif
http://www.cnu.edu.cn/kjc.htm
ftp:// 202.204.220.13:21
2: Application Layer
41
HTTP overview
HTTP(HyperText Transfer Protocol,超文本传输协议),用
于从WWW服务器传输超文本到本地浏览器
 客户机向服务器发起TCP
连接(产生套接字
(socket)) ,端口80
PC 运行
Explorer
 服务器监听,从客户机接
受TCP连接
 在浏览器(HTTP客户机)
和Web服务器(HTPP服务
器)之间交换HTTP报文
(应用层协议报文)
服务器运行Apache
Web
服务器
Mac 运行
Navigator
2: Application Layer
42
HTTP request message
 两类HTTP报文:请求(request),响应(response)
 HTTP请求报文 :
 ASCII (人可读的格式)
请求行
(GET, POST,
首部命令)
GET /somedir/page.html HTTP/1.1
Host: www.someschool.edu
User-agent: Mozilla/4.0
首部行 Connection: close
Accept-language:fr
回车,换行指示
报文的结束
非持久连接
2: Application Layer
43
User-server state: cookies
许多重要的Web站点使用cookies
四个部分:
1)在HTTP响应报文中的cookie 首部行 set-cookie:1678
2)在HTTP请求报文中的cookie 首部行 cookie:1678
3)保持在用户主机中的 cookie 文件并由用户浏览器管理
4)位于Web站点的后端数据库
2: Application Layer
44
Chapter 2: Application layer
 2.1 Principles of
network applications
 2.2 Web and HTTP
 2.3 FTP
 2.4 Electronic Mail

SMTP, POP3, IMAP
 2.5 DNS
 2.6 P2P applications
 2.7 Socket programming
with TCP
 2.8 Socket programming
with UDP
 2.9 Building a Web
server
2: Application Layer
45
FTP:文件传输协议
File Transfer Protocol,文件传输协议,实现本地到服务器之
间的文件上传与下载
FTP
FTP
用户接口 客户机
主机上
的用户
文件传输
FTP
服务器
远程文件系统
本地文件
系统
 客户机/服务器模型


客户机: 发起传输一侧(到远端/从远端)
服务器: 远程主机
 ftp 服务器: 端口 21
2: Application Layer
46
FTP:分开的控制和数据连接
 FTP客户机联系FTP服务器的21
号端口,指定TCP为运输协议
TCP 控制连接
端口 21
 当服务器接收到一个文件传输
命令时,该服务器打开到客户
机的一个数据连接(第2个TCP连
接)
 在传输一个文件后,服务器关
闭连接
FTP
客户机
TCP 数据连接
端口20
FTP
服务器
 服务器打开第二个TCP数据连
接,以传输另一个文件
2: Application Layer
47
FTP的控制和数据连接
控制连接
 FTP服务器监听TCP的21号端口
 客户端用x号端口主动连接服务
TCP 控制连接
端口 21
器21号端口
数据连接
 FTP客户端监听TCP的y号端口
FTP
客户机
TCP 数据连接
端口20
FTP
服务器
 服务器端用20号端口主动连接客
户端y号端口
2: Application Layer
48
Chapter 2: Application layer
 2.1 Principles of
network applications
 2.2 Web and HTTP
 2.3 FTP
 2.4 Electronic Mail

 2.6 P2P applications
 2.7 Socket programming
with TCP
 2.8 Socket programming
with UDP
SMTP, POP3, IMAP
 2.5 DNS
2: Application Layer
49
Electronic Mail电子邮件
三个主要部分:
邮件
服务器
 简单邮件传输协议: SMTP
SMTP(Simple Mail Transfer
Protocol)即简单邮件传输协议,它
是一组用于由源地址到目的地址传
送邮件的规则
基于TCP实现,端口号为25
用户代理:亦称为 “邮件阅读器”例如
Foxmail, Outlook
用户邮箱
用户
代理
 用户代理(在客户端主机上)
 邮件服务器
输出
报文队列
用户
代理
SMTP
邮件
服务器
用户
代理
SMTP
SMTP
邮件
服务器
用户
代理
用户
代理
用户
代理
2: Application Layer
50
Scenario: Alice sends message to Bob
1) Alice使用UA写邮件(to [email protected])
2) Alice的UA向其邮件服务器发送报文;报文放置在报文队列中
3) Alice的邮件服务器的SMTP客户端打开与Bob的邮件服务器的TCP连接
4) Alice的邮件服务器SMTP客户端通过TCP连接发送Alice的报文
5) Bob’的邮件服务器将该报文放入Bob的邮箱
6) Bob调用其用户代理来读报文
Bob
1
user
agent
Alice
2
mail
server
3
mail
server
4
6
user
agent
5
2: Application Layer
51
Mail access protocols 邮件访问协议
SMTP
SMTP
用户
代理
发送方邮件服务器
邮件访问
协议
用户
代理
接收方邮件服务器
 SMTP: 交付邮件到邮件服务器 (推协议)
 邮件访问协议:从邮件服务器获取邮件 (拉协议)
 POP3: 邮局协议(第3版) [RFC 1939]
• 授权 (代理 <-->服务器) 并下载
 IMAP: 因特网邮件访问协议 [RFC 1730]
• 更多特色 (更复杂)
 HTTP: Hotmail , GMail等
2: Application Layer
52
Chapter 2: Application layer
 2.1 Principles of
network applications
 2.2 Web and HTTP
 2.3 FTP
 2.4 Electronic Mail

SMTP, POP3, IMAP
 2.5 DNS
 2.6 P2P applications
 2.7 Socket programming
with TCP
 2.8 Socket programming
with UDP
 2.9 Building a Web
server
2: Application Layer
53
DNS: Domain Name System
因特网主机、路由器:


IP地址(32 bit) :用于数据报寻址
“名字”, 如www.yahoo.com
问题: IP地址和名字之间如何映射?
域名系统:

分布式数据库 由大量层次化的域名服务器实现
2: Application Layer
54
Distributed, Hierarchical Database 分布式层次
根DNS服务器
根
项级
org DNS 服务器
com DNS 服务器
权威
yahoo.com
DNS 服务器
amazon.com
DNS 服务器
pbs.org
DNS 服务器
edu DNS 服务器
poly.edu
umass.edu
DNS 服务器 DNS 服务器
客户机要求www.amazon.com 的IP地址
 客户机请求根服务器得到com DNS服务器的IP地址
 客户机请求com DNS服务器以得到 amazon.com的 DNS
服务器的IP地址
 客户机请求amazon.com DNS服务器以得到
www.amazon.com 的IP地址
2: Application Layer
55
Local Name Server 本地域名服务器
并不严格属于DNS层次结构
每个ISP(住宅ISP、公司、大学)都会有一个

也称为“默认域名服务器”
当主机发出DNS请求时,请求先被发送到其本
地名字服务器

作为代理,将请求转发到等级结构
2: Application Layer
56
DNS name
resolution example
根DNS 服务器
域名解析示例
2
3
顶级域DNS 服务器
4
 位于cis.poly.edu的主机
想要获取
gaia.cs.umass.edu 的IP
地址
5
本地DNS 服务器
dns.poly.edu
1
8
请求主机
7
6
权威 DNS 服务器
dns.cs.umass.edu
cis.poly.edu
gaia.cs.umass.edu
2: Application Layer
57
递归请求
根DNS服务器
递归请求:
2
 将名字解析的负担全放
在“联系的名字服务
器”
 负担沉重?
迭代请求:
 “联系的服务器”用要
另一名字服务器回答
 “我不知道该名字,但你
可以询问这个服务器”
3
7
TLD DNS 服务器
6
本地DNS服务器
dns.poly.edu
1
5
4
8
请求主机
权威DNS 服务器
dns.cs.umass.edu
cis.poly.edu
gaia.cs.umass.edu
58
DNS 记录
DNS: 分布式数据库存储资源记录 (RR)
RR 格式: (name
, value , type, ttl)
 Type=A


name 是主机名
value是IP地址
A记录用来指定域名对应的IP地址
 Type=NS


name 是域 (如 foo.com)
Value是该域的权威域名服
务器的IP地址
记录某域名由哪个域名服务器解析
 Type=CNAME


name 是对某些“规范的”(真
实)名字的别名
value 是规范名
别名记录
 Type=MX

Value是与name相联系的邮件
服务器
指向邮件服务器
59
DNS protocol, messages
2: Application Layer
60
Chapter 2: Application layer
 2.1 Principles of
network applications
 2.2 Web and HTTP
 2.3 FTP
 2.4 Electronic Mail

 2.6 P2P applications
 2.7 Socket programming
with TCP
 2.8 Socket programming
with UDP
SMTP, POP3, IMAP
 2.5 DNS
2: Application Layer
61
Socket programming 套接字编程
目标: 构建基于套接字通信的客户机/服务器应用程序
套接字 API
 在 BSD4.1 UNIX引入, 1981
 由应用程序显式产生、使用
和释放
 客户机/服务器模式
 通过套接字 API 提供两类传
输服务:
 不可靠数据报传输
 可靠, 面向字节流传输
套接字
由应用程序产生、OS
控制的接口(一扇门),
通过套接字应用进程
能够与其他应用进程
发送和接收报文
2: Application Layer
62
TCP Socket-programming
套接字: 应用程序进程和端到端运输协议(UCP 或 TCP)之间的门
传输层以下(含传输层)服务由操作系统内核提供
TCP服务: 从一个进程到另一个的可靠字节流传输
由应用程序
研发者控制
由操作系统控制
进程
进程
套接字
具有缓存,
变量的
TCP
套接字
具有缓存,
变量的
TCP
主机或服务器
internet
由应用程序
研发者控制
由操作系统控制
主机或服务器
2: Application Layer
63
TCP Socket programming
 服务器进程必须首先运行
 服务器必须已经生成相应的
套接字 (门) ,以欢迎客户端
的联系
 客户端必须主联系服务器
客户端通过以下方式联系服务器
 创建客户机本地TCP套接字
 定义(描述)服务器进程的IP地
址,端口号
 客户端产生套接字后,客户
端TCP创建到服务器TCP的连
接 (connect())
 当收到客户端连接, 服务器 TCP 为
服务器进程生成新的套接字 ,与客
户机通信
 允许服务器与多个 客户机交互
 源IP、源端口号用于区分客户端
(详情参见第3章)
应用程序观点
TCP在客户机和服务器之间提供
可靠的、按序的字节传输(管道)
2: Application Layer
64
Socket programming with UDP
UDP: 在客户端和服务器之间无“连接”
 不握手
application viewpoint
 发送方每次发送分组,都要设
置相应的目的端的IP地址和端
口号
UDP为客户机和服务器提供
不可靠的传输
 服务器必须从接收到的分组中
提取发送者的IP地址,端口号
UDP: 数据传输可能乱序或丢失
2: Application Layer
65