首页 > 代码库 > XMPP-05Socket编程之网络编程篇

XMPP-05Socket编程之网络编程篇

要学习XMPP,就要先了解Socket编程,在学习Socket之前,还要先了解一下网络编程

一、网络编程基本概念

  通过使用套接字来达到进程间通信目的的编程就是网络编程。

  网络编程从大的方面说就是对信息的发送到接收,中间传输为物理线路的作用,编程人员可以不用考虑……
  网络编程最主要的工作就是在发送端把信息通过规定好的协议进行组装包,在接收端按照规定好的协议把包进行解析,从而提取出对应的信息,达到通信的目的!中间最主要的就是数据包的组装,数据包的过滤,数据包的捕获,数据包的分析,当然最后再做一些处理!

二、网络模型

  计算机网络是指由通信线路互相连接的许多自主工作的计算机构成的集合体,各个部件之间以何种规则进行通信,就是网络模型研究的问题。

  早期的计算机互相之间不能传递数据,为了解决这一问题,国际化标准组织定义了一个网络模型,通过统一的网络模型,计算机之间就能通过相同的网络模型来传输数据。

  网络模型一般是指OSI七层参考模型TCP/IP四层参考模型这两个模型在网络中应用最为广泛

  • OSI(开放系统互联Open System Interconnection)
  • TCP/IP参考模型

(1)OSI参考模型

  七层简述:

  <1>物理层:主要定义物理设备标准,如网线的接口类型、各种传输介质的传输速率等。主要作用是传输比特流(就是由1、0转化为电流强弱来进行传输,到达目的地后再转化为1、0,也就是常说的数模与模数转换)。这一层的数据叫做比特(bit),主要设备:集线器
  <2>数据链路层:主要将从物理层接收的数据进行MAC地址的封装与解封装。常把这一层的数据叫做帧,主要设备:网卡,交换机
  <3>网络层:选择合适的网间路由和交换结点, 确保数据及时传送,将从下层接收到的数据进行IP地址的封装与解封装。常把这一层数据叫做数据包,主要设备:路由器。
  <4>传输层:定义了一些传输数据的协议和端口,如TCP、UDP协议,主要将从下层接收的数据进行分段和传输,到达目的地址后再进行重组,以往把这一层数据叫做段。
  <5>会话层:通过传输层建立数据传输通路。在系统之间发起会话或者接受会话请求(设备之间需要互相认识)
  <6>表示层:主要是进行对接收的数据进行解释、压缩与解压缩等,即把计算机能够识别的东西转化成人能够识别的东西(如图片、声音等)
  <7>应用层:主要是一些终端的应用,比如说FTP(各种文件下载)、浏览器、QQ等,可以将其理解为在电脑屏幕上可以看到的东西,也就是终端应用。

主机间通信

  每台主机都有7层(不同网络之间有相同的层次),每一层之间都遵守相同的协议,这样主机A和主机B之间才能正常的解析数据。

  来了解一下分层原则:

  • 网络中各结点都有相同的层次
  • 不同结点相同层次具有相同的功能
  • 同一结点相邻层间通过接口通信
  • 每一层可以使用下层提供的服务,并向上层提供服务
  • 不同结点的同等层间通过协议来实现对等层间的通信

 

 

三、网络通讯要素

  • IP地址
  • 端口号
  • 传输协议