Java网络编程之——网络原理初识1

前言:

个人在学习java-ee有关网络部分与之前所学计算机网络知识的个人笔记总结。

参考书目《计算机网络-自顶向下方法》,及学校老师及bt老师上课课件。

此书非常经典。内容中有不对地方,欢迎指正。

目录

前言:

1 计算机网络概述

1.什么是因特网

2.什么是协议

定义

通信协议三要素

1 语法

2 语义

3 同步(时序)

3.网络边缘

接入网

物理媒体

4.网络核心

电路交换(circuit switching)

分组交换(packet-switching)

2 服务质量

分组网的性能

时延

丢包

吞吐量

协议层次及其服务模型

封装

3  网络分层TCP/IP五层(或四层)模型(后续一层一更新)


Java网络编程之——网络原理初识1_第1张图片

1 计算机网络概述

1.什么是因特网

概念很抽象,从主机到通信链路再到路由器。从移动网络,家庭网络到地区网络,全球网络。说白了其实感觉就是网络的网络。书上给到的两种说法是

一 我们能够描述因特网的具体构成,及基本硬件和软件组成。

二 能够根据分布式应用提供服务的联网基础设施来描述因特网。

2.什么是协议

定义

控制消息的发送和接受。

协议定义了在网络通信实体之间交换的报文格式和次序,以及报文传输或其他事件所采取的动作。

也正因为计算机网络中广泛地使用协议,不同的协议用于完成不同的通信任务,所以掌握计算机网络领域知识的过程就是理解网络协议的构成,原理和工作方式等。

通信协议三要素

1 语法

用户数据与控制信息的结构和格式。 用来规定信息格式、数据及控制信息的格式、编码及信号电平等

2 语义

需要发出何种控制信息,以及完成的动作与做出的响应。 用来说明通信双方应当怎么做;用于协调与差错处理的控制信息

3 同步(时序)

对事件实现顺序的详细说明。 定义了何时进行通信,先讲什么,后讲什么,讲话的速度等。

3.网络边缘

接入网

住宅接入

点对点(独享): 拨号上网 最大速率56Kbps (理论上的) 不能同时打电话和上网

DSL:(Digital Subscriber Line,数字用户线路) 使用现有的电话线连接到中心局 DSLAM

电缆网络:HFC (hybrid fiber coax): 混合光纤同轴 不对称: 下行 < 30Mbps , 上行 < 2 Mbps

                  电缆网络,光纤连接用户到ISP 多个用户共享接入网连接到电缆头端

Java网络编程之——网络原理初识1_第2张图片

公司、大学常用以太网将端系统连接至边缘路由器

Java网络编程之——网络原理初识1_第3张图片

 

共享的无线接入网将端系统接入路由器 通过基站,接入点(AP:Access Point)

Java网络编程之——网络原理初识1_第4张图片

 

物理媒体

Java网络编程之——网络原理初识1_第5张图片

 双绞线Twisted Pair(TP)

两根绝缘铜线缠绕在一起                                 

三类线:电话线,10Mbps以太网

五类线:100Mbps以太网

超五类:155Mbps

六类:200Mbps

Java网络编程之——网络原理初识1_第6张图片Java网络编程之——网络原理初识1_第7张图片

 Java网络编程之——网络原理初识1_第8张图片

 无线链路的类型

微波

        例如45Mbps带宽的信道

WLAN

         11Mbps,54Mbps

广域的

        GPRS,几十Kbps 3G,~1Mbps

卫星

        例如50Mbps带宽的信道 数百毫秒的传播时延 同步卫星 vs. 低轨道卫星

4.网络核心

互连的路由器组成的网络

最基本的问题:数据是如何穿过网络到达目的端系统的?

电路交换(circuit switching)

        为每个呼叫保留专门的电路,如电话网

分组交换(packet-switching)

         数据被分成“块”然后在网络中传输,如因特网

Java网络编程之——网络原理初识1_第9张图片

Java网络编程之——网络原理初识1_第10张图片

 

 

2 服务质量

分组网的性能

其实也就是你上网,如果打游戏的话,会比较关心的几个点。

时延

时延(delay或latency)是指数据(一个数据包或bit)从网络的一端传送到另一端所需要的时间。

1、传输时延(Transmission Delay) 分组从开始发送第一个比特到最后一个比特全部送上传输链路的时间

2、传播时延(Propagation Delay) 分组在介质中传递所花的时间

3、节点处理时延(Nodal Processing Delay) 每个节点在处理准备发出和接收信息处理所花费的时间

4、排队时延(QueuingDelay) 每个节点等待“服务”所花费的时间

丢包

那么说起来为什么会出现时延和丢包呢

分组在路由器缓冲器中排队 链路上分组的到达速率超过了输出链路的容量 分组队列,按序等待

在链路之前的队列容量总是有限的 当分组到达一个已经满了的队列时,只能被丢弃 被丢弃的分组有可能被源端系统重传,也可能不重传,路由器并不关心这一点

Java网络编程之——网络原理初识1_第11张图片

生活中的话,大家可以想象一下高速公路上收费站,比较相像的。

好比国庆不收费,车流量过大,自然在收费站要去排队。不过不会夸张到排队排不下来,车被丢弃了这样的。

如何观察真实的因特网中的时延与路由情况?

Traceroute 程序: 提供一种从源端到路径上每一个路由器的时延测量方法.  对于每一个i: 发送三个分组,使它们沿路径到达第i个路由器 第i个路由器发送回分组 源端计算发送分组与接收响应之间的时间差

 

吞吐量

收发双方比特传输速率 (比特/单位时间)

在单位时间内通过某个网络(或信道、接口)的数据量。

        瞬时:某个特定时刻的传输速率

        平均:一个长时间段内的速率

协议层次及其服务模型

复杂的网络时如何实现复杂系统的呢?

Java网络编程之——网络原理初识1_第12张图片

      寄/收包裹                用户与另一个也在应用层的用户

      收件/送件                包裹在传输层

      物流分配中心          网络层

          运输                    链路层

为什么需要去分层呢

为了处理复杂的系统:

辨别复杂系统的各组成部分及其相互间关系需要一种清晰的结构

        用于讨论的分层的参考模型

模块化使得系统的维护、更新变得容易

        改变一个层次中服务的实现对系统的其它部分透明

        服务是“垂直的”:第n层需要第n-1层提供的服务

应用层                支持各种网络应用——FTP, SMTP, HTTP
传输层                端到端(进程-进程)的报文段传输——TCP, UDP
网络层                 源主机-目的主机数据报选路——IP, 选路协议     
链路层                在相邻的网络节点间传递数据帧——PPP, ethernet
理层                   通过传输线路将比特从一个节点传递到下一个节点

简言说分层的好处

各层之间是独立的

灵活性好

结构上可分割开

易于实现和维护

能促进标准化工作

封装

Java网络编程之——网络原理初识1_第13张图片

 

就是每一层往下层走被加了东西。

Java网络编程之——网络原理初识1_第14张图片 

 分层网络协议(OSI模型)

表示层——使应用程序能够解释所交换数据的含义, 比如, 加密, 压缩, 数据描述

会话层——数据交换的定界和同步功能 因特网协议栈“漏掉”这两层!

Java网络编程之——网络原理初识1_第15张图片

 

3  网络分层TCP/IP五层(或四层)模型(后续一层一更新)

你可能感兴趣的:(计算机网络,网络协议,java)