首页 > 代码库 > 第一章 计算机网络和因特网
第一章 计算机网络和因特网
前言
写这部分随笔是因为在上这个课,上课加上读了《计算机网络 自顶向下方法》之后的有所理解,又因为原书特别繁冗,感觉在复习的时候会压力很大,先记录下来以备后用。
1.1 什么是因特网
具体构成:主机(host)或端系统(end system)通过通信链路(communication link)与分组交换机(packet switch)链接到一起,从而组成因特网。其中电脑、手机等均属于主机或端系统。而分组交换机中经常用到的有路由器(router)和链路层交换机(link-layer switch)。端系统通过因特网服务提供商(Internet Service Provider,ISP)接入了因特网,每个ISP是由多个分组交换机和多段通信链路组成的网络。
服务描述:根据基础设施向分布式应用程序提供的服务。简单来说,就是端系统向分布式应用程序提供应用程序编程接口(Application Programming Inetrface),而分组交换机则促进不同端系统之间的交互。
协议:定义两个或者多个通信实体之间交换的报文格式和次序,以及报文(message)传输和接收等事件方面所采取的动作。
1.2 网络边缘
客户机和服务器程序:客户机程序(client program)是运行在一个端系统上的程序,它发送请求,并从运行在另一个端系统上的服务器程序(server program)接受服务。
接入网:接入网(access network)即将端系统连接到其边缘路由器(edge router)的物理链路。下面是接入网的数据表格:
使用设备 | 接入方式 | |
住宅接入(residential acces) | 调制解调器(modem) | 数字用户想(DSL),混合光纤同轴电缆(HFC) |
公司接入(company access) | 边缘路由器 | 局域网(LAN) |
无线接入(wireless acess) | 基站或无线接入点 | 无线局域网(wireless LAN),广域无线接入网(wide-area wireless access network) |
物理媒体:物理媒体(physical medium)划分为导引型媒体(guided media)和非导引型媒体(unguided media)。对于导引型媒体,电波沿着固体媒体被引导。对于非导引型媒体,电波在空气或外层空间中传播。下面是物理媒体的数据表格:
常用地点 | 速率 | 传输距离 | 常用标准 | |
双绞铜线 | 建筑物内局域网 | 10Mbps~1Gbps | 短 | 非屏蔽双绞线(UTP) |
同轴电缆 | 电缆电视系统 | 1Mbps或更高 | 中 | |
光缆 | 长途网络系统 | 51.8Mbps~39.8Gbps | 长 | OC-n(速率为 n * 51.8 Mbps) |
陆地无线电信道 | 局域无线网(wifi等)和广域无线网(手机网络等) | 中 | ||
卫星无线电信道 | Gbps的速率 | 长 |
1.3 网络核心
电路交换和分组交换:电路交换(circuit switching)和分组交换(packet switching)是网络链路和交换机移动数据的两种基本方法。其中电路交换多用于电话,当两台主机要通信时,会创建一条专用的端到端连接(end-to-end connection),链路中的电路要么通过频分多路复用(FDM)实现,要么通过时分多路复用(TDM)实现。而分组交换则是重点,多在计算机网络中应用。主机中各种应用程序在完成任务时要交换报文,有时候报文会很长,这时候源主机将长报文划分为较小的数据块,叫分组(packet),而这些分组就通过通信链路和分组交换机发送到目标主机。而分组交换机多使用存储转发传输(store-and-forward transmission),顾名思义就是先存着,等待前面的分组发送完了再发送,而对于这些存着的分组叫做输出缓存(output buffer)或输出队列(output queue),当然一个分组交换机的缓存是有限的,当这个缓存满了的时候,后续到达的分组就会丢失,这叫做分组丢失或丢包(packet lost)。术语说完了下面是两种传输方法的比较,这里假设每个用户都以100Kbps速率产生数据,链路的速率都是1Mbps,下面是对比表格:
电路交换 | 分组交换 | |
支持用户数 | 10个 | 同时10个及以下都没有延时,10个以上有延时,但是可以支持 |
资源浪费 | 只有用户活跃时他对应的频段(FDM链路)或者帧(TDM链路)才会使用,若只有1个用户活跃,其他9个频段或帧就会空闲,有资源浪费 | 无论几个用户,都可以在分组交换机中排队,直到队列达到上限才会丢包 |
延时问题 | 只有交换机自身的延时 | 当用户过多的时候会额外加上等待延时 |
ISP和因特网主干:因特网是分层的,每一层的ISP使用它的上层的服务,并为它的下层服务,当然顶层和底层例外。顶层即第一次,也叫因特网主干(Internet backbone)网络,包括AT&T、NTT、Sprint等。而第二层多是区域性或国家性的。当两个ISP彼此直接连接时,它们被称为对等(peer)的。
1.4 分组交换网络中的时延和吞吐量
这一部分较为繁琐,为了以后能够很快的想起计算方法,还是使用表格吧,首先是数据假设,只经过一台交换机,该交换机在排队的分组数量W,要开始传输的分组数量Q,分组长度L bit,链路速率R bps,链路长度d m,该链路的物理媒体的传播速度s m/s,然后是表格:
标号 | 说明 | 计算方法 | |
处理时延(nodal proccessing delay) | dproc | 即检查首部、决定分组导向和查错等的时间 | |
排队时延(queuing delay) | dqueue | 即等待先期到达分组、正在排队分组发送出去的时间 | W*dtrans |
传输时延(transmission delay) | dtrans | 即分组从交换机进入链路或从链路进入交换机的时间 | L/R |
传播时延(propagation delay) | dprop | 即分组从链路的一端到另外一端的时间 | d/s |
由于传输和传播时延比较难理解,给出课本中java小程序的链接:http://media.pearsoncmg.com/aw/aw_kurose_network_2/applets/transmission/delay.html
吞吐量:简单来说就是终端之间数据的传输速率,假设终端之间有n段链路传输速率分别是R1~Rn,则吞吐量为min{R1, R2 ... Rn}。
1.5 协议层次和各层信息
协议分层:采用自顶向下方法(top-down approach)进行分层,各层的所有协议被称为协议栈(protocol stack)。下面给出各层的信息:
说明 | 包含协议 | 负责信息 | 信息首部 | |
应用层 | 分布在端系统上,用于端系统应用程序的信息分组交换 | HTTP、SMTP、FTP、DNS等 | 报文(message) | |
运输层 | 用于应用程序端点之间传送应用层报文的服务 | TCP、UDP等 | 报文段(segment) | Ht |
网络层 | 用于传输运输层的报文段,除了分组外会在首部加上目的地等信息 | IP等 | 数据报(datagram) | HnHt |
链路层 | 用于传输网络层的数据报 | PPP等 | 帧(frame) | HlHnHt |
物理层 | 用于传输链路层的帧 |
七层ISO OSI参考模型:只比基本的协议结构多了两层,其中表示层提供数据压缩、数据加密等服务,会话层则提供数据交互定界和同步等功能。这两层对于开发者来说是可以选择的。下面给出表格:
应用层 |
表示层 |
会话层 |
运输层 |
网络层 |
链路层 |
物理层 |
总结
第一章就大概完成了,如果有错误或者缺漏后面会继续完善。
第一章 计算机网络和因特网