zoukankan      html  css  js  c++  java
  • 1、网络-基本概念

    网络:

    网络是几乎可以实现相互发送和接收数据的计算机和其他设备的集合

    网络通常用缆线连接,数据位转换为电池波,通过线缆移动

    无线网络通过无线电波传输数据,长距离的传输实现现在会用玻璃纤维发送可见过的光纤电缆来完成

    传输数据的物理介质:

    可以通过碳驱动的计算机发送烟信号相互传传输(网络的响应时间可能很差)

    网络中的每台机器都称为一个节点

    大多数节点是计算机

    具有完备功能的计算机节点称为主机

    每个网络节点都有地址

    用于唯一标识节点的一个字节序列

    每个地址中的字节越多,可用的地址就越多,可以有更多的设备同时连入网络

    网络的分层

    网络发送数据是一项复炸的操作

    必须仔细协调网络的物理特性以及所发送数据的逻辑特征

    图中显示了网络中可能存在的协议栈

    上层和下层的协议变化很大

    有些主机使用Ethernet,有些使用WIFI

    栈顶使用的协议完全取决于主机运行的程序

    顶层和底层的协议实现分层,互不关心,

    (分层模型实现了应用协议与网络硬件物理特性以及网络连接拓扑结构的解耦合)

     

    Web浏览器像Web服务器发送获取网页的请求时

    浏览器实际上只与本地客户及的传输层对象

    传输层将请求分解为TCP片,像数据添加序列号和校验和

    然后将请求传递给本地网际层

    网际层根据本地网络所需要的大小将各TCP片分成IP数据报

    并传递到主机网络层一边通过线缆传递数据

    主机网络层将数据编码为合适特定物理介质的模拟信号

    将请求发送到线缆

    目标地址的远程系统的主机网络层可以由此读取请求

    远程系统的主机网络层将模拟信号解码为数字数据

    将生成的IP数据报传递给服务器的网际层

    网际层简单的检查IP数据报是否被破坏

    如果已经分盘则重组数据

    然后传递给服务器的传输层

    服务器的传输层检查是否所有的数据都已到达

    对于丢失或者破坏的部分则要求重传(远程系统--->客户端系统  逆向)

    一旦服务器的传输层接收到足够多的连续数据报

    就将重组写入一个流

    由服务器应用层向上运行的Web服务器

    服务器响应这个请求,在通过服务器系统的各个分层发回响应通过Internet进行输出并且发给Web客户端

    Java的网络类只工作于TCP/IP网络中

    始终运行在应用层或传输层上

    主机网络层

    Java开发,此时处于最高的位置

    网络中隐藏部分数据主机网络层(链路层)

    主机网络层定义了一个特定的网络接口如何通过物理连接本地网络或世界其他地方发送IP数据报

    主机网络层中由于连接不同的计算机硬件组成的部分有时称为网络的物理层

    出现问题:断网,

    网际层

    网络的下一层

    在OSI模型中称为网络层

    网络层协议定义了数据位和字节如何组织为更大的分组,称为包

    还定义了寻址机制

    不同计算机按照这个寻址机制找到对象

    网际协议(IP)是世界上使用做广泛的网络层协议,也是Java唯一理解的网络层协议

    两个协议:IPv4、IPv6

    IPv4使用32为地址,IPv6使用128位地址

    还增加一些特性来帮助完成路由

    该量协议数据包在网际层上传输,这些包称为数据包

    每个Ipv4数据报包含一个长度位20-60字节的首部,以及一个包含65515字节数据的有效载荷

    实际上大多数IPv4数据报都小的多,供几十字节到稍大于8K字节不等

    IPv6数据报包含一个更大的首部,数据可以多达4G字节

    各部分在Ipv4数据报中是如何排列的

    处理路由和寻址网际层的第二个作用是支持不同类型的主机网络相互对象

    Internet路由器会完成WIFI和Ethernet、Ethernet和DSL、DSL和光纤往返协议之间的转换

     传输层

     原始数据有一些缺点

    最显著的就是不能保证可靠传送

     即使能传送也可能在传输过程中遭到破坏

    首部检验和只能检查首部中的破坏情况,而不能检测数据报中的数据部分

    最后即使数据报到达目的地未破坏名单时也不能准确的到达

    传输层负责确保各个包以发送的顺序接收

    保证没有数据丢失或者破坏

    丢包:传输层会请求发送方重新发送

    IP网络会给每个数据报添加一个附加首部,其中包含更多的信息

    这一层主要有两个协议

    1、传输控制协议(TCP):开销很高,支持对丢失或破坏的数据进行重传,并且按照发送时的顺序传送

    2、用户数据报协议(UDP):允许接收方检测被破的包,反不能保证这些包以正确的顺序传送

    UDP通常比TCP快

    TCP称为可靠的协议

    UDP称为不可靠的协议

    应用层

    向用户发送数据的层

    下面三层共同定义了数据如何从一台计算机传输到另一台计算机

    应用层确定了数据传输后的操作

    应用层使用HTTP协议可以确保Web浏览器将图像显示为图片而不是 一长串数字

    程序中有关网络大多都是在应用层花费时间

    应用层协议除了Web的HTTP,还有电子邮件的SMTP、POP和MAP,用于文件传输的FTP、FSP、TFTP,

    用于文件共享的Guntella和BitTorrent等

    IP、TCP、UDP

    IP(网际协议)特性:

    1、健壮

    2、开放

    可以在IP之上运行很多其他协议,最常见的是就是ICMP(网际控制消息协议)

    它使原始IP数据报在主机之间传递错误信息

    使用这个协议最著名的就是ping程序

    Java不支持ICMP,也不允许发送原始IP数据报(只允许TCP/UDP) 

    所以Java支持的协议只有TCP/IP

    IP地址和域名

    掌握IP的寻址

    IPv4中每台计算机都由4个字节的数字标识

    一般分为点四分段格式

    如192.1.32.90:每个数都是无符号数字节,范围从0-255

    IPv4网络中的每台计算机都有唯一的4字节地址

    当数据通过网络传输时,包的首部会包括要发往的机器地址和发送这个包的地址

    沿路由器通过检查目的地址来选择发送数据的最佳路由

    包括源地址是为了让接收方知道要向谁回复

    现在IPv4资源基本用完

    向IPv6过度,将使用16字节地址

    这样就可以有足够的ip地址来标识每一个人、每台计算机

    IPv地址通常为冒号分割的8个区块

    每个区块4个十六进行数字

    FEDC:BA98:7654:3210:FEDC:BA98:7654:3210

    前导的0不需要写

    两个冒号表示多个0区块

    但每个地址之多出现一次

    在IPv4和IPv6的混合网络中,IPv6地址的最后4字节有时写为IPv4的点分四段

     = FEDC:BA98:7654:3210:FEDC:BA98:118.48.50.116

    域名系统

    可以更易于记忆的主机名转换为数字Internet地址

    Java程序访问网络时,他们需要处理数字地址和相应的 主机名

    端口

    每台计算机一次只做一件事情,那么地址就可能足够了

    现在的计算机同时需要作很多不同的事情

    电子邮件需要与FTP请求分开,FTP又要与WEB业务流分开

    这里可以通过端口实现

    每台有IP地址的计算都有很多个逻辑端口(65535)

    这些是计算机内存中的抽象

    不表示任何物理实体,与USB端口不同

    每个端口由1到65535之间的一个数字表示

    每个端口可以分配一个特定的任务

    已知端口分配:

     Internet

    是世界上最大的基于IP的网络

    他是所有七大洲多个不同国家的计算机使用IP相互对话的一个无组织的集合

    Internet上每台计算机都至少有一个标识此计算机的IP地址

    大多数还有一个主机名映射到这个IP地址

    Internet不属于任何人

    不受任何人控制

    只是约定以一种标准的方式相互对象的一个非常大的计算机集合

    Internet不是唯一的基于IP的网络,但却是最大的一个

    其他的IP网络称为internet:如果么有连接Internet的高安全性内网

    Internetda大致描述额公司大量数据置于内部Web服务器的实践

    这些数据对本地网络以外的用户不可见

    Internet地址分块

     

     网络地址转换

     

    防火墙

     

     代理服务器

     

     客户端/服务器模型

     

     Internet标准

     

    IETE RFC

     

     

     W3C推荐

     

     5个标准等级:

  • 相关阅读:
    HttpWebRequest 使用心得
    CDMA短信猫AT命令全集,CDMA短信猫二次开发所能使用的AT命令
    AT指令介绍及用法,AT 指令集合
    开发日记 1
    一个简单存储过程的性能分析
    At 拨号
    使用 WebBrowser 操作 js
    jQuery获取Select选择的Text和Value
    mysql远程连接速度慢的问题[未解决]
    JQuery AJAX
  • 原文地址:https://www.cnblogs.com/Mrchengs/p/10906158.html
Copyright © 2011-2022 走看看