USTC Computer Networking Chapter2
第二章 应用层
应用层原理
- 常见架构
- 客户-服务器模式(C/S:client/server)
 - 对等模式(P2P:Peer To Peer)
 - 混合体:客户-服务器和对等体系结构
 
 
- 流行的应用层协议
- HTTP
 - FTP
 - SMTP/POP3/IMAP
 - DNS
 
 - 进程编址
- 主机:唯一的 32位IP地址
 - 仅仅有IP地址不能够唯一标示一个进程;在一台端系统上有很多应用进程在运行
 - 所采用的传输层协议:TCP or UDP
 - 端口号(Port Numbers)16位
 - 一些知名端口号的例子:HTTP: TCP 80 Mail: TCP25 ftp:TCP 2
 
 - TCP socket
- 对于使用面向连接服务(TCP)的应用而言,套接字是4元组的一个具有本地意义的标示
 - 4元组:(源IP,源port,目标IP,目标port)
 - 唯一的指定了一个会话(2个进程之间的会话关系)
 - 应用使用这个标识,与远程的应用进程通信
 
 - UDP socket
- 对于使用无连接服务(UDP)的应用而言,套接字是2元组的一个具有本地意义的标示
 - 2元组:IP,port (源端指定)
 - UDP套接字指定了应用所在的一个端节点(end point)
 - 在发送数据报时,采用创建好的本地套接字(标示ID),就不必在发送每个报文中指明自己所采用的ip和port
 - 但是在发送报文时,必须要指定对方的ip和udp port(另外一个段节点)
 
 - 安全TCP -> SSL
- 在TCP上面实现,提供加密的TCP连接,一般归类于应用层
 - 私密性
 - 数据完整性
 - 端到端的鉴别
 - https = http + SSL
 
 
Web 与 HTTP
- Web

 - http



 - http报文



 - 往返时间RTT(round-trip time):一个小的分组从客户端到服务器,在回到客户端的时间(传输时间忽略)
 - Cookies

 - Web缓存(代理服务器proxy)

 - 为解决代理服务器网页过时的问题

 
FTP



DNS
- DNS的空间划分是逻辑的,而不是物理的,同一空间的域名可以在不同物理空间中
 - 域名结构

 - 权威DNS服务器

 - TLD服务器

 - 资源记录



 - 查询方式:递归、迭代
 - DNS报文

 - DNS攻击

 
P2P
- BitTorrent
 - Gnutella
 - KaZaA
 - Distributed Hash Table (DHT)
 
CDN
- 内容分发网络(Content Delivery Network)
 - DASH

 - CDN

 - Netflix购买亚马逊服务器实现高速的视频流化服务
 - 互联网的角色
- 用户
 - ISP
 - ICP
 - CDN提供商
 
 
TCP Socket编程
- 重要的结构体

 - 从上到下分别是地址簇、端口号、ip地址、对齐

 - TCP交互模式

 - C客户端(TCP)
 
1  | /* client.c */  | 
- C服务器(TCP)
 
1  | /* server.c */  | 
UDP Socket编程
- UDP交互模式

 
