网络编程及通信三要素
1. 概述
通过通信线路(有线或无线)可以把不同地理位置且相互独立的计算机连同其外部设备连接起来,组成计算机网络。在操作系统、网络管理软件及网络通信协议的管理和协调下,可以实现计算机之间的资源共享和信息的传递。
网络编程是指用来实现网络互联的不同计算机上运行的程序间可以进行数据交换。对我们来说即如何用编程语言 java 实现计算机网络中不同计算机之间的通信。
2. 网络通信三要素
IP 地址
网络中计算机的唯一标识;
32bit(4 字节),一般用“点分十进制”表示,如 192.168.1.158; IP 地址=网络地址+主机地址 可分类:
A 类:第 1 个 8 位表示网络地址。剩下的 3 个 8 位表示主机地址 (主要留给 ZF 或者大型企业)
B 类:前 2 个 8 位表示网络地址。剩下的 2 个 8 位表示主机地址 (主要分配给中等规模的公司)
C 类:前 3 个 8 位表示网络地址。剩下的 1 个 8 位表示主机地址 (分配给小公司或者个人)
D 类地址用于在 IP 网络中的组播
E 类地址保留作研究之用。
Java 编程中可使用 InetAddress 类来操纵 IP 地址
端口号
用于标识进程的逻辑地址,不同进程的标识;
有效端口:0-65535,其中 0-1024 系统使用或保留端口。
传输协议
通讯的规则
常见协议: UDP(用户数据报协议)、TCP(传输控制协议)
3.网络模型
计算机网络之间以何种规则进行通信,就是网络模型所研究的问题。 网络模型一般是指 OSI 七层参考模型和 TCP/IP 五层参考模型。
每一层实现各自的功能和协议,并且都为上一层提供业务功能。为了提供这种业务功能,下一层将上一层中的数据并入到本层的数据域中,然后通过加入报头或报尾来实现该层业务功能,该过程叫做数据封装。用户的数据要经过一次次包装,最后转化成可以在网络上传输的信号,发送到网络上。当到达目标计算机后,再执行相反的数据拆包过程。
物理层:
主要定义物理设备标准,如网线的接口类型、光纤的接口类型、各种传输介质的传输速率等。
主要作用是将数据最终编码为用 0、1 标识的比特流,通过物理介质传输。 这一层的数据叫做比特。
数据链路层:
主要将接收到的数据进行 MAC 地址(网卡地址)的封装与解封装。 常把这一层的数据叫做帧。这一层常工作的设备是交换机。
网络层:
主要将接收到的数据进行 IP 地址的封装与解封装。
常把这一层的数据叫做数据包。这一层设备是路由器。
传输层:
定义了一些数据传输的协议和端口号。
主要将接收的数据进行分段和传输,到达目的地址后在进行重组。 常把这一层的数据叫做段。
会话层:
通过传输层建立数据传输的通路。
主要在系统之间发起会话或者接收会话请求。
表示层:
主要进行对接收数据的解释、加密与解密、压缩与解压缩。
确保一个系统的应用层发送的数据能被另一个系统的应用层识别。
应用层:
主要是为一些终端应用程序提供服务。直接面对着用户的
版权声明: 本文为 InfoQ 作者【五分钟学大数据】的原创文章。
原文链接:【http://xie.infoq.cn/article/b5b4fa452eb372d40829b30bb】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论