网络程序设计基础知识拾掇(一)

网络程序设计基础知识拾掇(一)

1。网络应用程序的一般组成

            一般来讲,可以将网络应用程序分为两个部分。一部分专门用来负责通信的模块;它们与网络协议栈相连接,借助网络协议栈提供的服务完成网络上的数据信息交换;另外一部分是面向用户或者进行其他处理的模块,它们接收用户的命令,或者对借助网络传输过来的数据进行加工。

2。网络协议栈

            规定计算机之间交换的消息格式和含义的协定,被称为网络协议或者计算机通信协议。按照分层的模型设计协议,所形成的协议软件也是按层组织的,使用“栈”这一术语来描述实现整套协议的软件。 
Internet是基于TCP/IP协议栈的。

3。网间进程通信

             网间进程通信是指网络中不同主机的应用进程之间相互通信,当然,也可以把同机进程通信看做是网间通信的特例。网间通信需要解决以下问题。
              (1)网间进程标识问题
                 在同一主机中,不同的进程可以用进程号唯一标识,但是,在网络环境下,各主机独立分配进程号已经不能惟一的标识。
                 在Internet中,用一个三元组可以在全局惟一的标识一个应用进程。
  应用进程=(传输层协议,主机的IP地址,传输层端口)
                 一个完整的网间通信定义一个五元组在全局惟一的标识。
(传输层协议,本地机IP得之,本地机传输层端口,远地机IP地址,远地机传输层端口)。
              (2)与网络协议栈连接的问题
                 网间通信实际是借助网络协议栈实现的。对于网络编程来说,与网络协议连接,这个问题通过定义套接字网络编程接口来解决。
              (3)多重协议问题
                现行的网络体系结构很多,操作系统往往支持众多的协议,不同的协议的工作方式不同,地址格式不同,因此网间进程通信需要解决多重协议的识别问题。
             (4)不同的通信服务的问题
             网间通信所要求的通信服务有不同的要求。在TCP/IP协议栈中,传输层有TCP和UDP两个协议,TCP提供可靠的数据流来传输服务,UDP提供不可靠的数据报传输服务,需要根据通信服务要求做出选择。

4。TCP/IP简介

     TCP/IP(Transmission Control/Inetnet Protocol,传输控制协议/网际协议)是一系列协议,或者说协议簇,它定义了数据传输如何通过因特网进行交换。

                     
                                                         图。TCP/IP协议栈简图

5。端口号的分配机制

              具体来说,TCP或UDP端口分配规则如下。

端口号 用途
0 不使用,或者作为特殊用途
1~255 保留给特定服务
256~1023 保留给其他的服务,如路由
1024~4999 可以用作任意客户端口
5000~65535 可以用作任意的服务器端口

你可能感兴趣的:(网络程序设计基础知识拾掇(一))