网络编程学习(一)

网络编程学习(一)

进程与线程

进程是处于运行过程中的程序实例,是操作系统调度和分配资源的基本单位

​ 一个进程实体由程序代码(规定进程所作的计算)、数据(计算的对象)和进程控制块(操作系统为了控制进程所建立的数据结构,操作系统用来管理进程的内核对象)3部分构成,系统给进程分配一个地址空间,用来装入进程的所有可执行模块或动态链接库模块的代码和数据。进程还包含动态分配的内存空间,如线程堆栈和堆分配空间。

进程是分配资源的单位,但不是执行和调动的单位,若要使进程完成某项工作,必须拥有一个在他环境中运行的线程,该线程负责执行包含在进程地址空间中的代码。单个进程可能包含若干个线程,所有线程都”同时“执行进程地址空间中的代码。每个线程都有他自己的一组CPU寄存器和他自己的堆栈。要使所有这些线程都能够运行,操作系统就要为每个线程安排一定的CPU时间。它通过一种循环的方式为线程提供时间片(称为量程),造成所有线程都是同时运行的假象。

网络应用程序

功能上网络应用程序分为两部分:

一部分是专门负责网络通信的模块;他们与网络协议栈相连接,借助网络协议栈提供的服务完成网络上的数据信息的交换。

另一部分是面向用户或者其他进行处理的模块,接受用户的命令,或者对借助网络传输过来的数据进行加工。

网间进程通信必须解决的问题

1、网间进程的标识问题,同一主机中,不同的进程可以用进程号唯一标识,但在网络环境中,个主机独立分配的进程号已经不能唯一的标识一个进程

2、与网络协议栈链接的问题。网间的通信实际是借助网络协议栈实现的。应用进程把数据交给下层的传输层协议实体,调用传输层提供的传输服务,传输层及其下层协议将数据层层向下递交,最后由物理将数据转化为信号,发送到网上,经过各种网络设备的寻径和存储转发,才能到达目标主机。

3、多重协议的识别问题。现行的网络体系结构有很多 (TCP/IP,IPX/SQX)操作系统往往支持众多的网络协议。不同协议的工作方式不同,地址格式也不同。

4、不同的通信服务的问题。随着网络应用的不同,网间进程通信 所需要的通信服务就会有不同的要求。

端口的概念

端口是TCP/IP协议簇中,应用层进程与传输层协议实体间的通信接口。在OSI七层协议的描述中,将他称为应用层进程与传输层协议实体间的服务访问点。应用层进程通过系统调用与某个端口进行绑定,然后就可以通过这个端口进行数据传输,因为应用进程在数据通信时,必须用到一个端口,他们之间有一一对应关系

  • OSI七层网络协议:
  • 分层 功能
    应用层 网络服务与最终用户的一个接口(可理解为人机交互界面)
    表示层 数据的表示,安全,压缩
    会话层 建立,管理,终止会话
    传输层 定义传输数据的协议端口号,以及流控和差错校验
    网络层 进行逻辑地址寻址,实现不同网络之间的路径选择
    数据链路层 建立逻辑连接,进行硬件地址寻址,差错校验等功能
    物理层 建立,维护,断开物理连接

端口分配机制

TCP/IP采用了全局分配(静态分配)和动态分配相结合的办法。对TCP或者UDP,将他们的全部65535个端口号分别为保留端口号和自由端口号两部分

保留端口号的范围是0到1023,又称为众所周知的端口或熟知端口,只占少数,采用全局分配或者集中控制的方式,由一个公认的中央机构根据需要进行统一分配,静态分配给Internet上众所周知的服务器进程。

其余的端口号,1024~65535,称为自由端口号,采用本地分配

端口0:不使用或者作为特殊用途

端口1到255:保留给特定的服务。TCP和UDP均规定,小于256的端口号才能分配给网上众所周知的服务

端口256到1023:保留给其他服务,如路由

端口1204到4999:可以作为任意用户的端口

端口5000到65535:可以用作用户的服务器端口

DHCP:服务器端的端口号是67

DHCP:客户机端的端口号是68

POP3:POP3仅仅是接收协议,POP3客户端使用SMTP向服务器发送邮件。POP3所用的端口号是110。

  • SMTP:端口号是25。SMTP真正关心的不是邮件如何被传送,而只关心邮件是否能顺利到达目的地。

  • SMTP具有健壮的邮件处理特性,这种特性允许邮件依据一定标准自动路由,SMTP具有当邮件地址不存在时立即通知用户的能力,并且具有在一定时间内将不可传输的邮件返回发送方的特点。

  • ``

  • Telnet:端口号是23。Telnet是一种最老的Internet应用,起源于ARPNET。它的名字是“电信网络协议(Telecommunication Network Protocol)”的缩写。

  • ``

  • FTP:FTP使用的端口有20和21。20端口用于数据传输,21端口用于控制信令的传输,控制信息和数据能够同时传输,这是FTP的特殊这处。FTP采用的是TCP连接。

  • TFTP:端口号69,使用的是UDP的连接。

  • DNS:53,名称服务 NetBIOS:137,138,139,其中137、138是UDP端口,当通过网上邻居传输文件时用这个端口。而139端口:通过这个端口进入的连接试图获得NetBIOS/SMB服务。这个协议被用于windows文件和打印机共享和SAMBA。还有WINS Regisrtation也用它。

  • NNTP 网络新闻传输协议:119

  • SNMP(简单网络管理协议):161端口

  • RPC(远程过程调用)服务:135端口

  • QQ:使用8000(服务端)和4000端口(客户端)

  • 21 端口:21 端口主要用于FTP(File Transfer Protocol,文件传输协议)服务。

  • 22 端口:SSH 为 Secure shell 的缩写,专为远程登录会话和其他网络服务提供安全性的协议。

  • ``

  • 23 端口:23 端口主要用于Telnet(远程登录)服务,是Internet上普遍采用的登录和仿真程序。

  • ``

  • 25 端口:25 端口为SMTP(Simple Mail Transfer Protocol,简单邮件传输协议)服务器所开放,主要用于发送邮件,如今绝大多数邮件服务器都使用该协议。

  • ``

  • 53 端口:53 端口为DNS(Domain Name Server,域名服务器)服务器所开放,主要用于域名解析,DNS 服务在NT 系统中使用的最为广泛。

  • ``

  • 67、68 端口:67、68 端口分别是为Bootp 服务的Bootstrap Protocol Server(引导程序协议服务端)和Bootstrap Protocol Client(引导程序协议客户端)开放的端口。

  • ``

  • 69 端口:TFTP 是Cisco 公司开发的一个简单文件传输协议,类似于FTP。

  • ``

  • 79 端口:79 端口是为Finger 服务开放的,主要用于查询远程主机在线用户、操作系统类型以及是否缓冲区溢出等用户的详细信息。

  • ``

  • 80 端口:80 端口是为HTTP(HyperText Transport Protocol,超文本传输协议)开放的,这是上网冲浪使用最多的协议,主要用于在WWW(World Wide Web,万维网)服务上传输信息的协议。

  • 99 端口:99 端口是用于一个名为“Metagram Relay”(亚对策延时)的服务

  • 该服务比较少见,一般是用不到的。

  • 109、110 端口:109 端口是为POP2(Post Office Protocol Version2,邮局协议2)服务开放的,110 端口是为POP3(邮件协议3)服务开放的,POP2、POP3 都是主要用于接收邮件的。

  • 111 端口:111 端口是SUN 公司的RPC(Remote Procedure Call,远程过程调用)服务所开放的端口,主要用于分布式系统中不同计算机的内部进程通信,RPC 在多种网络服务中都是很重要的组件。

  • 113 端口:113 端口主要用于Windows 的“Authentication Service”(验证服务)。

  • 119 端口:119 端口是为“Network News Transfer Protocol”(网络新闻组传输协议,简称NNTP)开放的。

  • ``

  • 135 端口:135 端口主要用于使用RPC(Remote Procedure Call,远程过程调用)协议并提供DCOM(分布式组件对象模型)服务。

  • ``

  • 137 端口:137 端口主要用于“NetBIOS Name Service”(NetBIOS名称服务)。

  • 139 端口:139 端口是为“NetBIOS Session Service”提供的,主要用于提供Windows 文件和打印机共享以及Unix 中的Samba 服务。

  • ``

  • 143 端口:143 端口主要是用于“Internet Message Access Protocol”v2(Internet 消息访问协议,简称IMAP)。

  • ``

  • 161 端口:161 端口是用于“Simple Network Management Protocol”(简单网络管理协议,简称SNMP)。

  • 443 端口:443 端口即网页浏览端口,主要是用于HTTPS 服务,是提供加密和通过安全端口传输的另一种HTTP。

  • ``

  • 554 端口:554 端口默认情况下用于“Real Time Streaming Protocol”(实时流协议,简称RTSP)。

  • 1024 端口:1024 端口一般不固定分配给某个服务,在英文中的解释是“Reserved”(保留)。

  • 1080 端口:1080 端口是Socks 代理服务使用的端口,大家平时上网使用的WWW 服务使用的是HTTP 协议的代理服务。

  • ``

  • 1755 端口:1755 端口默认情况下用于“Microsoft Media Server”(微软媒体服务器,简称MMS)。

  • 1158端口:Oracle EMCTL

  • 1521端口:Oracle 数据库

  • 2100端口:Oracle XDB FTP服务

  • 8080端口:Oracle XDB( XML 数据库)

  • 3389端口:远程桌面

  • 7001端口:WebLogic

  • 8080端口:Tomcat

  • 9080端口:WebSphere应用程序

进程的网络地址的概念

网络通信中通信的两个进程分别是在不同的计算机上,在Internet中,两台主机可能位于不同的网络中,这些网络通过网络的互连设备连接。因此在Internet中定位一个进程,需要一下三级寻址

1、某一主机总是与某个网络相连,必须指定主机所在的特定网址,称为网络ID

2、网络上每一台主机应有其唯一的地址,称为主机ID

3、每一主机上的每一应用进程应有在该主机上的唯一标识符

应用层进程=(传输层协议,本地机IP地址,本地机传输层口,传输层的端口号)

网络中进程通信的标识

一个完整的网间进程需要由两个进程组成,两个进程就是通信的两个端点,并且只能使用同一种传输层协议。

一个完整的网间通信需要一个五元组在全局中唯一标识:

(传输层协议,本地机IP地址,本地机传输端口,远地机IP地址,远地机传输层端口)

面向消息的协议 :面向消息的协议以消息为单位在网上传输数据,消息与消息之间存在边界。

保护消息边界是指传输协议把数据当作一条独立的消息在网上传播,接收端只能接受独立的消息。也就是说存在保护消息边界,接收端一次只能接受发送端发送的一条消息。(UDP)

基于流的协议:基于流的协议不保护消息边界,把数据当作字节流连续的传输,不管实际消息边界是否存在。(

面向连接的服务和无连接的服务

面向连接服务是电话系统服务模式的抽象,即每一次完整的数据传输都要经过建立连接、使用连接和终止连接的过程。TCP提供面向连接的虚电路传输服务,使用面向连接的协议,在进行数据交换之前,通信的对等实体必须进行握手,相互传送连接信息,一方面确定了通信的路径,另一方面还可以相互协商,做好通信的准备。大部分面向连接的协议为了保证投递无误,还执行额外的计算来验证正确性,增加了开销

无连接服务是邮政系统服务的抽象。每个分组都携带完整的目的地址,各分组在系统中独立传送,无连接服务不能 保证分组到达的先后顺序,不进行分组出错的恢复与重传,不保证传输的可靠性。无连接协议在通信前,不需要建立连接,也不管接收端时候正在准备接受。(UDP就是无连接的服务)

基于Internet的C/S模式的应用程序的特点

1、客户机和服务器都是软件进程,C/S模式是网络上通过进程通信建立分布式应用的常用模型

2、非对称性:服务器通过网络提供服务,客户机通过网络使用服务

3、对等性:客户机和服务器必有一套共识的约定,必与某种应用层协议相连,并且协议必须在通信的两端实现。

4、服务器的被动性:服务器必须先行启动,只要有客户机请求,就立即处理并响应,回传信息,但不主动提供服务

5、客户机的主动性,客户机可以随时提出请求,通过网络得到服务

6、一对多:一个服务器可以同时对多个客户机服务

7、分布性和共享性:资源在服务器端组织与存储

客户机与服务器的通信过程

1、在通信可以进行之前,服务器应先行启动,并通知他的下层协议做好接受客户机准备请求的准备,然后被动的等待客户机的通信请求。我们称服务器处于监听状态

2、一般先由客户机向服务器发送请求,服务器向客户返回应答。客户机可以随时主动启动通信,向服务器发送连接请求,服务器接受这个请求,建立他们的通信关系。

3、客户机与服务器之间的通信关系一旦建立,客户机与服务器都可发送和接受信息。

客户机应用访问某一类服务时并不限于一个服务器。

应用的角色可以发生转变,提供某种服务的服务器能够成为另一个服务的客户机

P2P模式

P2P(“对等网”,“点对点”):能够利用广泛分布在Internet边缘的大量计算、存储、网络带宽、信息、人力等资源的技术

,在计算机之间直接进行资源和服务的共享,不需要服务器接入的网咯技术

1、分散性:该系统是全分布式系统,不存在瓶颈。

2、规模性:该系统能够容纳数百万乃至数千万台计算机

3、扩展性:用户可以随时加入网络

4、Servent性:每个节点都同时具有Server和Cilent的特点

5、自治性:节点来自不同的所有者,不存在全局的控制者

6:互助性

7、自组织性

关键技术:资源定位,安全性与信任问题,联网服务质量问题,标准化

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值