Java原生网络编程基础

        计算机网络,是利用通信线路将地理上分散的、具有独立功能的计算机系统和通信设备按不同的形式连接起来,以功能完善的网络软件及协议实现资源共享和信息传递的系统。

ARPANET

        早期的计算机网络是以一个计算机为中心,多个终端连接到该中心的模型。60年代初,美苏冷战期间,美国国防部为防止中心节点被摧毁而导致计算机网络瘫痪,而提出“去中心化”的思想。新的网络模型,由一个个分散的节点所组成,即使部分节点被摧毁,剩下的节点仍然能够使网络正常的工作(类似与现在的路由)。1969年,在美国国防部国防高级研究计划署资助下,建立了ARPANET网络。这就是现代计算机网络的基础。

计算机网络体系结构

        ARPANET兴起后,计算机网络迅速发展,各大计算机公司相继推出自己的标准。为了统一这些标准,两个国际知名组织ISO和IEEE相继提出了OSI参考模型及其TCP/IP模型。因为TCP/IP模型的可行性较强,而打败了OSI模型,成为了事实上的标准。

OSI模型

        开放系统互连参考模型 (Open System Interconnect 简称OSI),是国际标准化组织(ISO)和国际电报电话咨询委员会(CCITT)联合制定的开放系统互连参考模型。OSI采用了分层的结构化技术,共分七层,物理层、数据链路层、网络层、传输层、会话层、表示层、应用层

TCP/IP模型

        OSI模型较为复杂且学术化。实际上现代计算机网络使用的TCP/IP模型,共分4层,链路层、网络层、传输层、应用层。两个模型之间的对应关系如图所示:

         两种模型都是,每一个抽象层建立在低一层提供的服务上,并且为高一层提供服务。

TCP/IP数据传输

 TCP/IP协议族

        TCP/IP是Transmission Control Protocol / Internet Protocol的简写,中译名为传输控制协议 / 因特网互联协议,是Internet最基本的协议、Internet国际互联网络的基础,由网络层的IP协议和传输层的TCP协议组成。它是利用 IP 进行通信时所用的协议群的统称,因此说它是一个协议族。

 TCP/IP模型中数据传输过程

        在模型的每个分层中,都会对所发送的数据增加一个首部信息。上层的数据发过来,增加本层的首部信息,再发给下一个层次。下一个层次也进行同样的操作。在解析数据时,过程正好相反,下层发上来的数据,本层根据协议解析包首部,解析出数据部分,再交给上一层处理。理解为,发送数据时打包的过程,而接收数据是拆包的过程。包首部由协议规范来定义,对应的层次拿到包首部,即掌握了必要的信息和要处理的数据。

地址和端口号

MAC地址

        MAC地址全称叫做媒体访问控制地址,也称为局域网地址、以太网地址、物理地址等。他是由网络设备制造商生产时写在硬件内部(网卡的BIOS里)。MAC地址与网络无关,无论硬件设备放到网络何处,MAC地址都不会发生改变。

        MAC地址共6个字节(48位),如:FF-FF-FF-FF-FF-FF。他的前24位由IEEE决定如何分配,后24位由实际生产该网络设备的厂商自行制定。厂商在开始生产网络设备时,需要先向IEEE申请前24位的地址,然后再开始生产,自己决定后24位的地址。

IP地址

        IP地址(Internet Protocol Address)的全称叫作互联网协议地址。用于为互联网设备分配唯一的逻辑地址。

        IP地址目前有IPv4和IPv6两种。这里以IPv4为例。IPv4地址是由4个字节(32位)表示,每个字节用“.”分开。格式为:A.B.C.D,其中,每个字母可表示0~255的整数。如,192.168.1.1。

IP地址 vs MAC地址

        IP地址和MAC地址主要在于他们的寻址协议层不同。IP地址应用于网络层,而MAC地址应用于物理层。数据通过MAC地址在物理层进行通讯,从一个物理节点传递到另一个物理节点。IP协议使数据从一个网络传递到另一个网络。通过ARP(反地址解析协议),可以根据目的IP,找到目标及中间物理节点的MAC地址,从而把数据传递过去。

端口号

        端口号用于标识应用层不同应用程序的通讯地址,它也被称为程序地址。计算机上通常会有多个应用程序同时运行,传输层通过不用应用程序正在使用的端口号,从而将数据准确的传递给相应的应用。

        端口号范围是0~65535。其中0~1023称为知名端口号,提供给如HTTP、FTP、TELNET 等广为使用的应用协议中所使用,是固定的,应用程序不可用;1024 ~49151 称为常用端口号,这些端口号被正式注册,应用程序不建议使用;用户可以使用的是,49152~65535 是用户使用的端口号

        综上介绍,计算机的网络设备有自己的MAC 地址,这个MAC地址是固定的。而网卡在正常工作时,会分配一个IP地址,这个IP地址是灵活变化的。在计算机上运行的多个应用程序会拥有自己的端口号。由此,通过源IP地址、目标IP地址、协议号(协议类型)、源端口号、目标端口号这五个元素能够唯识别一个网络上的通信。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值