写在前面
暑期实习做网络爬虫相关的事情,对计网有了一定的初步认识,感觉蛮有趣的,想到下学期也要学习计网,所以就准备提前学习了。买了课本,也在MOOC上学习,用博客来记录学习笔记。
实验资料:wireshark实验
1. 计算机网络和因特网
1.1 什么是因特网
网络:许多计算机连接在一起。
互联网(internet):许多网络连接在一起。
因特网(Internet):全球最大的互联网。
ISP(Internet Service Provider):网络运营商(如移动,联通,电信等)。
端系统、分组交换机和其他因特网部件都要运行一系列协议,这些协议控制因特网中信息的接受和发送。TCP(Transmission Control Protocol, 传输控制协议)和IP(Internet Protocol, 网际协议)是因特网中两个最为重要的协议。IP协议定义了在路由器和端系统之间发送和接受的分组格式。因特网的主要协议统称TCP/IP协议。
套接字接口(socket interface):由与因特网相连的端系统提供,该接口规定了运行在一个端系统上的程序请求因特网基础设施向运行在另一个端系统上的特定目的地程序员交付数据的方式。因特网套接字接口是一套发送程序必须遵循的规则集合。
可以与寄信、送信、收信的流程来类比。
协议:定义了在两个或多个通信实体之间交换的报文和顺序。以及报文发送和/或接受一条报文或其他事件所采取的动作。
类比人类之间的交谈。
1.2 网络边缘
端系统:与因特网相连的计算机和其他设备的称呼,因为位于因特网的边缘而得名。
组成:包括了桌面计算机、服务器和移动计算机。
端系统也统称为主机。
以太网(Ethernet)是一种计算机局域网技术,是目前应用最普遍的局域网技术。
1.3 网络核心
为了从源端系统向目的端系统发送一个报文,源将长报文划分为较小的数据块,称之为分组。
在源和目的地之间,每个分组都通过通信链路和分组交换机传送。(交换机主要有两类:路由器和链路层交换机)。
多数分组交换机在链路的输入端使用存储转发传输机制。
输出缓存(也称输出队列):用于存储路由器准备发往那条链路的分组。
排队时延:到达的分组需要传输到某条链路,但发现该链路正忙于传输其他分组,该到达分组必须在输出缓存中等待。
分组丢失(丢包):一个到达的分组可能发现该缓存已被其他等待传输的分组完全充满,到达的分组或已经排队的分组之一将被丢弃。
1.4 分组交换网中的时延、丢包和吞吐量
2. 应用层
2.1 应用层协议原理
2.2 Web和HTTP
2.3 因特网中的电子邮件
2.4 DNS:因特网的目录服务
2.4.1 DNS提供的服务
识别主机有两种方式,通过主机名或者IP地址,需要一种能进行主机名到IP地址转换的目录服务。这就是域名系统DNS(Domain Name System)的主要任务。
DNS是:
- 一个由分层的DNS服务器实现的分布式数据库。
- 一个使得主机能够查询分布式数据库的应用层协议。
提供的其他重要服务:
- 主机别名。存在别名时,原始名被称为规范主机名。
- 邮件服务器别名。
- 负载分配。
2.4.2 工作机理
工作过程
应用程序需要主机名转换成IP地址 → 调用DNS客户算 → 用户主机上的DNS收到请求后,向网络中发送一个DNS查询报文(请求、回答报文使用UDP数据包经端口53发送) → 收到一个提供所希望映射的DNS回答报文 → 映射结果被传递到调用DNS的应用程序。
最开始的DNS的简单设计是一个DNS服务器,集中式设计存在如下问题:单点故障、通信容量、远距离的集中式数据库、维护。因此DNS采用了分布式的设计方案。
- 分布式、层次数据库
大致讲,共有3种类型的DNS服务器:
- 根DNS服务器。提供TLD服务器的IP地址。
- 顶级域(Top-Level Domain, TLD)(DNS)服务器。顶级域(com, org, net, edu, gov)和所有国家的顶级域(uk, fr, ca, jp)都有TLD服务器。提供全为DNS服务器的IP地址。
- 权威DNS服务器。
层次之外还有一种重要的DNS服务器:本地DNS服务器。每个ISP都有一台本地DNS服务器。当主机与某个ISP连接时,该ISP提供一台主机的IP地址,该主机具有一台或多台其本地DNS服务器的IP地址。
查询方式:理论上讲,查询可以是递归查询也可以是迭代查询。实践中采取如下模式:从请求主机到本地DNS服务器的查询是递归的,其余的查询是迭代的。
- DNS缓存
目的:为了改善时延性能并减少在因特网上到处传输的DNS报文数量。
原理:在一个请求链中,当某DNS服务器接收到一个DNS回答时,它能够将映射缓存在本地储存器中。如果在DNS服务器中缓存了一台主机名/IP地址对,另一个对相同主机名的查询到达该DNS服务器时,该DNS服务器就能够提供所要求的IP地址,即使它不是该主机的权威服务器。缓存的信息通常保留两天。
2.4.3 记录和报文
pass
P2P文件分发
套接字编程:生成网络应用
本节目的:考察研发一个CS服务器应用程序中的关键问题,将实现一个非常简单的CS服务器应用程序代码