个人在学习java-ee有关网络部分与之前所学计算机网络知识的个人笔记总结。
参考书目《计算机网络-自顶向下方法》,及学校老师及bt老师上课课件。
此书非常经典。内容中有不对地方,欢迎指正。
目录
前言:
1 计算机网络概述
1.什么是因特网
2.什么是协议
定义
通信协议三要素
1 语法
2 语义
3 同步(时序)
3.网络边缘
接入网
物理媒体
4.网络核心
电路交换(circuit switching)
分组交换(packet-switching)
2 服务质量
分组网的性能
时延
丢包
吞吐量
协议层次及其服务模型
封装
3 网络分层TCP/IP五层(或四层)模型(后续一层一更新)
概念很抽象,从主机到通信链路再到路由器。从移动网络,家庭网络到地区网络,全球网络。说白了其实感觉就是网络的网络。书上给到的两种说法是
一 我们能够描述因特网的具体构成,及基本硬件和软件组成。
二 能够根据分布式应用提供服务的联网基础设施来描述因特网。
控制消息的发送和接受。
协议定义了在网络通信实体之间交换的报文格式和次序,以及报文传输或其他事件所采取的动作。
也正因为计算机网络中广泛地使用协议,不同的协议用于完成不同的通信任务,所以掌握计算机网络领域知识的过程就是理解网络协议的构成,原理和工作方式等。
用户数据与控制信息的结构和格式。 用来规定信息格式、数据及控制信息的格式、编码及信号电平等
需要发出何种控制信息,以及完成的动作与做出的响应。 用来说明通信双方应当怎么做;用于协调与差错处理的控制信息
对事件实现顺序的详细说明。 定义了何时进行通信,先讲什么,后讲什么,讲话的速度等。
住宅接入
点对点(独享): 拨号上网 最大速率56Kbps (理论上的) 不能同时打电话和上网
DSL:(Digital Subscriber Line,数字用户线路) 使用现有的电话线连接到中心局 DSLAM
电缆网络:HFC (hybrid fiber coax): 混合光纤同轴 不对称: 下行 < 30Mbps , 上行 < 2 Mbps
电缆网络,光纤连接用户到ISP 多个用户共享接入网连接到电缆头端
公司、大学常用以太网将端系统连接至边缘路由器
共享的无线接入网将端系统接入路由器 通过基站,接入点(AP:Access Point)
双绞线Twisted Pair(TP)
两根绝缘铜线缠绕在一起
三类线:电话线,10Mbps以太网
五类线:100Mbps以太网
超五类:155Mbps
六类:200Mbps
无线链路的类型
微波
例如45Mbps带宽的信道
WLAN
11Mbps,54Mbps
广域的
GPRS,几十Kbps 3G,~1Mbps
卫星
例如50Mbps带宽的信道 数百毫秒的传播时延 同步卫星 vs. 低轨道卫星
互连的路由器组成的网络
最基本的问题:数据是如何穿过网络到达目的端系统的?
为每个呼叫保留专门的电路,如电话网
数据被分成“块”然后在网络中传输,如因特网
其实也就是你上网,如果打游戏的话,会比较关心的几个点。
时延(delay或latency)是指数据(一个数据包或bit)从网络的一端传送到另一端所需要的时间。
1、传输时延(Transmission Delay) 分组从开始发送第一个比特到最后一个比特全部送上传输链路的时间
2、传播时延(Propagation Delay) 分组在介质中传递所花的时间
3、节点处理时延(Nodal Processing Delay) 每个节点在处理准备发出和接收信息处理所花费的时间
4、排队时延(QueuingDelay) 每个节点等待“服务”所花费的时间
那么说起来为什么会出现时延和丢包呢
分组在路由器缓冲器中排队 链路上分组的到达速率超过了输出链路的容量 分组队列,按序等待
在链路之前的队列容量总是有限的 当分组到达一个已经满了的队列时,只能被丢弃 被丢弃的分组有可能被源端系统重传,也可能不重传,路由器并不关心这一点
生活中的话,大家可以想象一下高速公路上收费站,比较相像的。
好比国庆不收费,车流量过大,自然在收费站要去排队。不过不会夸张到排队排不下来,车被丢弃了这样的。
如何观察真实的因特网中的时延与路由情况?
Traceroute 程序: 提供一种从源端到路径上每一个路由器的时延测量方法. 对于每一个i: 发送三个分组,使它们沿路径到达第i个路由器 第i个路由器发送回分组 源端计算发送分组与接收响应之间的时间差
收发双方比特传输速率 (比特/单位时间)
在单位时间内通过某个网络(或信道、接口)的数据量。
瞬时:某个特定时刻的传输速率
平均:一个长时间段内的速率
复杂的网络时如何实现复杂系统的呢?
寄/收包裹 用户与另一个也在应用层的用户
收件/送件 包裹在传输层
物流分配中心 网络层
运输 链路层
为什么需要去分层呢
为了处理复杂的系统:
辨别复杂系统的各组成部分及其相互间关系需要一种清晰的结构
用于讨论的分层的参考模型
模块化使得系统的维护、更新变得容易
改变一个层次中服务的实现对系统的其它部分透明
服务是“垂直的”:第n层需要第n-1层提供的服务
应用层 支持各种网络应用——FTP, SMTP, HTTP |
传输层 端到端(进程-进程)的报文段传输——TCP, UDP |
网络层 源主机-目的主机数据报选路——IP, 选路协议 |
链路层 在相邻的网络节点间传递数据帧——PPP, ethernet |
理层 通过传输线路将比特从一个节点传递到下一个节点 |
简言说分层的好处
各层之间是独立的
灵活性好
结构上可分割开
易于实现和维护
能促进标准化工作
就是每一层往下层走被加了东西。
分层网络协议(OSI模型)
表示层——使应用程序能够解释所交换数据的含义, 比如, 加密, 压缩, 数据描述
会话层——数据交换的定界和同步功能 因特网协议栈“漏掉”这两层!