基本网络概念

网络

网络中的每台机器称为一个节点,每个网络节点都有地址,这是用于标识节点的一个字节序列。不同的网络会以不同的方式分配地址。
所有现代计算机网络都是包交换(分组交换)网络:流经网络的数据分割成小块,称为包(packet,也称分组),每个包都单独加以处理。每个包都包含了由谁发送和将发往何处的信息。将数据分成单独的带有地址的包,其最重要的优点是,多个即将交换的包可以在一条线缆上传输,这使得建立网络的成本更低:多个计算机可以互不干扰地共用同一条线缆(与之相反,如果使用传统的电话线,当你在一个交换区打本地电话时,实际上你将独占从你的电话到通话人电话之间的一条线缆)。分包还有另一个好处,这就是可以进行校验,用来检测包在传输中是否遭到破坏。
协议是计算机如何通信的一组明确的规则:
例如,超文本传输协议(Hypertext Transfer Protocol,HTTP)定义了Web浏览器如何与服务器通信。

网络的分层

Internet标准TCPP/IP四层模型:
Internet标准TCPP/IP四层模型
当Web浏览器向Web服务器发送获取网页的请求时,浏览器实际上只与本地客户机的传输层对话。传输层将请求分解为TCP片,向数据添加序列号和检验和,然后将请求传递给本地网际层。网际层根据本地网络所需的大小将各TCP片分成IP数据报,并传递到主机网络层以便通过线缆传输数据。主机网络层将数字数据编码为适合特定物理介质的模拟信号,将请求发送到线缆,目标地址的远程系统的主机网络层可以由此读取到请求。

远程系统的主机网络层将模拟信号解码为数字数据,将生成的IP数据报传递给服务的网际层。网际层简单地检查IP数据报是否被破坏,如果已经分片则重组数据,然后传递给服务器的传输层。服务器的传输层检查是否所有的数据都已到达,对于丢失或破坏的部分则要求重传。一旦服务器的传输层接收到足够多的连续顺序数据报,就将其重组写入一个流,由服务器应用层上运行的Web服务器读取。服务器响应这个请求,再通过服务器系统的各个分层发回响应,通过Internet进行传输并分发给Web客户端。

主机网络层

作为Java程序员,不需要关心这一层。

网际层

在OSI模型中,网际层使用了一个更一般的名字,称为网络层。网际协议(IP)是世界上使用最广泛的网络层协议,也是Java唯一理解的网络层协议。实际上,这是两个协议:

  1. IPv4:使用32位地址
  2. IPv6:使用128位地址

传输层

传输层负责确保各包以发送的顺序接收,并保证没有数据丢失或破坏。如果丢包,传输层会请求发送方重传这个包。这一层上主要有两个协议:

  1. 传输控制协议(Transmission Control Protocol,TCP):这是一个开销很高的协议,支持对丢失或破坏的数据进行重传,并按照发送时的顺序进行传送。TCP称为可靠的协议;
  2. 用户数据报协议(User Datagram Protocol,UDP):它允许接收方检测被破坏的包,但不保证这些包 以正确的顺序传送(或者包有可能根本未传送)。UDP通常比TCP快,UDP称为不可靠协议;

应用层

向用户传送数据的层称为应用层;

IP、TCP和UDP

IP(网际协议)被设计为允许任意两点之间有多个路由,可以绕过被破坏的路由器实现数据包的路由,并且是开放的,与平台无关;
将TCP置于IP之上,使连接的两端能够确认接收到IP包,以及请求重传丢失或被破坏的包。此外,TCP允许接收端的包按发送时的顺序重新组合在一起。
不过,TCP会有很大开销。因此,如果数据的顺序不是特别重要,而且单个包的丢失不会完全破坏数据流,那么有时也可以使用UDP发送数据包,而不需要TCP提供的保证。UDP是不可靠的协议,它不能保证包一定到达目的地,也不保证包会以发送时相同的顺序到达。虽然这对于文件传输等用途来说存在问题,但是在有些应用程序中,即使丢失部分数据最终用户也不会注意到,对于这种应用程序而言,UDP则完全可以接受。例如:丢失视频或音频中的一些数据位不会造成太大的质量下降。

IP地址和域名

IPv4网络中的每台计算机都由一个4字节的数字标识。一般写为点分四段格式,如199.1.32.90。这四个数中,每个数都是一个无符号字节,范围从0到255。IPv4网络中的每台计算机都有唯一的4字节地址。当数据通过网络传输时,包的首部会包括要发往的机器地址(目的地址)和发送这个包的机器地址(源地址)。

虽然计算机可以轻松地处理数字,但人类对于记忆数字却不在行。因此,开发了域名系统(Domain Name System),用来将人类易于记忆的主机名转换为数字Internet地址。

端口

每台有IP地址的计算机都有几千个逻辑端口(确切地讲,每个传输层协议有65535个端口)。每个端口可以分配给一个特定的服务。
在这里插入图片描述

Internet

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

网络地址转换

出于IP地址越来越稀缺,而对原始IP地址的需求越来越大,如今大多数网络都使用了网络地址转换(Network Address Translation,NAT)
在这里插入图片描述

路由器会监视出站和入站连接,调整IP包中的地址。对于出站的包,它将源地址改为路由器的外部地址。对于入站的包,它将目的地址改为一个本地地址

代理服务器

代理服务器与防火墙有关。如果说防火墙会阻止一个网络上的主机与外界直接建立连接,那么代理服务器就起到了中间人的作用。这样一来,如果防火墙阻止一个机器连接外部网络,这个机器可以请求本地代理服务器的Web页面,而不是直接请求远程Web服务器的Web页面。然后代理服务器会请求Web服务器的页面,将响应转发给最初发出请求的机器。代理还可以用于FTP服务和其它连接。使用代理服务器的安全优势之一是外部主机只能看到代理服务器,而不会知道内部机器的主机名和IP地址,这就使得攻击内部网络更加困难。

代理服务器还可以用来实现本地缓存。当请求Web服务器的文件时,代理服务器首先查看此文件是否已在缓存中。如果文件在缓存中,那么代理服务器将获取此文件,转发给请求方,并将它存储在缓存中,供下次请求使用。这种机制可以显著的降低Internet连接的负载,大大提高响应的时间。

以上只是学习所做的笔记
参考书籍:Java网络编程

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值