网络是几乎能够实现相互发送和接收数据的计算机和其余设备的集合浏览器
网络一般用缆线链接,数据位转换为电池波,经过线缆移动安全
无线网络经过无线电波传输数据,长距离的传输实现如今会用玻璃纤维发送可见过的光纤电缆来完成服务器
传输数据的物理介质:网络
能够经过碳驱动的计算机发送烟信号相互传传输(网络的响应时间可能不好)编码
网络中的每台机器都称为一个节点spa
大多数节点是计算机3d
具备完备功能的计算机节点称为主机代理
每一个网络节点都有地址对象
用于惟一标识节点的一个字节序列blog
每一个地址中的字节越多,可用的地址就越多,能够有更多的设备同时连入网络
网络发送数据是一项复炸的操做
必须仔细协调网络的物理特性以及所发送数据的逻辑特征
图中显示了网络中可能存在的协议栈
上层和下层的协议变化很大
有些主机使用Ethernet,有些使用WIFI
栈顶使用的协议彻底取决于主机运行的程序
顶层和底层的协议实现分层,互不关心,
(分层模型实现了应用协议与网络硬件物理特性以及网络链接拓扑结构的解耦合)
Web浏览器像Web服务器发送获取网页的请求时
浏览器实际上只与本地客户及的传输层对象
传输层将请求分解为TCP片,像数据添加序列号和校验和
而后将请求传递给本地网际层
网际层根据本地网络所须要的大小将各TCP片分红IP数据报
并传递到主机网络层一边经过线缆传递数据
主机网络层将数据编码为合适特定物理介质的模拟信号
将请求发送到线缆
目标地址的远程系统的主机网络层能够由此读取请求
远程系统的主机网络层将模拟信号解码为数字数据
将生成的IP数据报传递给服务器的网际层
网际层简单的检查IP数据报是否被破坏
若是已经分盘则重组数据
而后传递给服务器的传输层
服务器的传输层检查是否全部的数据都已到达
对于丢失或者破坏的部分则要求重传(远程系统--->客户端系统 逆向)
一旦服务器的传输层接收到足够多的连续数据报
就将重组写入一个流
由服务器应用层向上运行的Web服务器
服务器响应这个请求,在经过服务器系统的各个分层发回响应经过Internet进行输出而且发给Web客户端
Java的网络类只工做于TCP/IP网络中
始终运行在应用层或传输层上
Java开发,此时处于最高的位置
网络中隐藏部分数据主机网络层(链路层)
主机网络层定义了一个特定的网络接口如何经过物理链接本地网络或世界其余地方发送IP数据报
主机网络层中因为链接不一样的计算机硬件组成的部分有时称为网络的物理层
出现问题:断网,
网络的下一层
在OSI模型中称为网络层
网络层协议定义了数据位和字节如何组织为更大的分组,称为包
还定义了寻址机制
不一样计算机按照这个寻址机制找到对象
网际协议(IP)是世界上使用作普遍的网络层协议,也是Java惟一理解的网络层协议
两个协议:IPv四、IPv6
IPv4使用32为地址,IPv6使用128位地址
还增长一些特性来帮助完成路由
该量协议数据包在网际层上传输,这些包称为数据包
每一个Ipv4数据报包含一个长度位20-60字节的首部,以及一个包含65515字节数据的有效载荷
实际上大多数IPv4数据报都小的多,供几十字节到稍大于8K字节不等
IPv6数据报包含一个更大的首部,数据能够多达4G字节
各部分在Ipv4数据报中是如何排列的
处理路由和寻址网际层的第二个做用是支持不一样类型的主机网络相互对象
Internet路由器会完成WIFI和Ethernet、Ethernet和DSL、DSL和光纤往返协议之间的转换
原始数据有一些缺点
最显著的就是不能保证可靠传送
即便能传送也可能在传输过程当中遭到破坏
首部检验和只能检查首部中的破坏状况,而不能检测数据报中的数据部分
最后即便数据报到达目的地未破坏名单时也不能准确的到达
传输层负责确保各个包以发送的顺序接收
保证没有数据丢失或者破坏
丢包:传输层会请求发送方从新发送
IP网络会给每一个数据报添加一个附加首部,其中包含更多的信息
这一层主要有两个协议
一、传输控制协议(TCP):开销很高,支持对丢失或破坏的数据进行重传,而且按照发送时的顺序传送
二、用户数据报协议(UDP):容许接收方检测被破的包,反不能保证这些包以正确的顺序传送
UDP一般比TCP快
TCP称为可靠的协议
UDP称为不可靠的协议
向用户发送数据的层
下面三层共同定义了数据如何从一台计算机传输到另外一台计算机
应用层肯定了数据传输后的操做
应用层使用HTTP协议能够确保Web浏览器将图像显示为图片而不是 一长串数字
程序中有关网络大多都是在应用层花费时间
应用层协议除了Web的HTTP,还有电子邮件的SMTP、POP和MAP,用于文件传输的FTP、FSP、TFTP,
用于文件共享的Guntella和BitTorrent等
IP(网际协议)特性:
一、健壮
二、开放
能够在IP之上运行不少其余协议,最多见的是就是ICMP(网际控制消息协议)
它使原始IP数据报在主机之间传递错误信息
使用这个协议最著名的就是ping程序
Java不支持ICMP,也不容许发送原始IP数据报(只容许TCP/UDP)
因此Java支持的协议只有TCP/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之间的一个数字表示
每一个端口能够分配一个特定的任务
已知端口分配:
是世界上最大的基于IP的网络
他是全部七大洲多个不一样国家的计算机使用IP相互对话的一个无组织的集合
Internet上每台计算机都至少有一个标识此计算机的IP地址
大多数还有一个主机名映射到这个IP地址
Internet不属于任何人
不受任何人控制
只是约定以一种标准的方式相互对象的一个很是大的计算机集合
Internet不是惟一的基于IP的网络,但倒是最大的一个
其余的IP网络称为internet:若是么有链接Internet的高安全性内网
Internetda大体描述额公司大量数据置于内部Web服务器的实践
这些数据对本地网络之外的用户不可见
5个标准等级: