TCPIP网络编程技术作业汇总

TCPIP网络编程技术作业汇总
TCPIP网络编程技术作业汇总

TCP与UDP各自特点

TCP与UDP是网络层常用通信协议两者主要有以下特点:

TCP:

1.TCP是一种面向连接的、可靠的传输层协议;

2.进行拥塞控制,当前网络发生通信拥塞时,发送者降低发送的速率,以便接收方能够有效的对数据包进行接收,尽可能的避免了发生丢包现象。

3.具有数据流的特性,数据没有边界

4. 要提供可靠交付,具有差错控制功能,需要遵守三次握手协议,需要建立维持连接后,才能进行与通信方进行三次握手。

主要的应用有:HTTP超文本传输协议、FTP文件传输协议、Telnet远程连接协议、SMTP邮件传输协议

UDP:

1.UDP是面向无连接服务,不可靠的传输协议

2.传输数据之前源端和终端不建立连接,直接将要传送的数据包发送到网络上即可,简单方便,效率高。

3.没有流量控制,极有可能会在网络通信情况不好的时候发生丢包现象。

4.没有差错控制,不能确定数据包在传输过程中信息是否发生了改变,可靠性不高

主要应用:流媒体、视频会议、DNS数据包发送、Internet电话

详细说明简单UDP和TCP网络编程流程TCP流程图解:

对于TCP的网络编程,我认为主要分为如图所示:

对于tcp接连方式服务器来说的6个流程步骤:

1.程序初始化:启动SOCKET库,创建socket套接字,包括网络头文件的添加,网络编程初始化函数的调用。

2.填写本机地址信息:填写SOCKADDR_IN中能数据,设定对自身通信地址与端口号,调用bind()函数进行端口绑定。

3.监听绑定的固定的端口,调用listen()函数进行端口监听。

4.当通过accept()函数收到Client的连接请求后建立一个socket连接,或没有收到则继续监听,构成一个循环监听模块。

5.产生一个新的进程与Client进行通信和信息处理,通过receive()函数接收客户端发过来的信息并通过send()函数反馈处理后的信息。

6.子通信结束后中断与Client的连接,运用close()关闭套接字。

对于tcp连接方式的客户端程序来说可以分为4个流程步骤:

1. 启动SOCKET库,创建socket套接字,包括网络头文件的添加,网络编程初始化函数的调用。

2.先填写服务器地址信息并通过connect()函数发出与目标服务器的连接请求。

3.通过receive()与send()函数与服务器通信和信息处理。

4.调用close()函数在通信结束后断开连接。

UDP流程图解:

服务器的主要流程可以分为四个步骤:

1.程序初始化:启动SOCKET库,创建socket套接字,包括网络头文件的添加,网络编程初始化函数的调用。

2.填写本机地址信息:填写SOCKADDR_IN中能数据,设定对自身通信地址与端口号,调用bind()函数进行端口绑定。

3.当接收到客户端消息后产生一个新的进程与Client进行通信和信息处理,通过receivefrom()函数接收客户端发过来的信息并通过sendto()函数反馈处理后的信息。

4.子通信结束后中断与Client的连接,运用close()关闭套接字。

客户端主要流程可以分为三个步骤

1.启动SOCKET库,创建socket套接字,包括网络头文件的添加,网络编程初始化函数的调用。

2.通过receivefrom()与sendto()函数与服务器通信和信息处理。

4.调用close()函数在通信结束后断开连接。

总结:UDP服务器相对于TCP服务器来说大同小异,最主要的区别中UDP服务器不需要监听端口,客户端程序也无需像TCP一样需要经过三次握手协议建立连接。

Windows环境下与Linux环境下网络编程的区别

一、linux下的socket编程:

1、客户端执行步骤依次如下:

需要调用以下函数:

socket()

connect()

send()或者recv()

close()

注意的是,connect之前要填充地址结构体,IP地址转换为网络字节序,一般用inet_aton().

需要调用以下函数:

2、服务器端:

socket()

bind()

listen()

accpet()

recv()或者send()

close()

(ps:一般通过将send()和recv()的最后一个参数赋为0或者1来区分阻塞与非阻塞,其中0对应阻塞,1对应非阻塞)

二、windows下的网络编程:

做过windows网络编程的人都知道,微软的MFC把复杂的WinSock API函数封装到类里,这使得编写网络应用程序更容易。即windows既提供上层的网络API 函数也提供底层的API函数。

1、对于采用上层的API函数而言:若采用csocket类定义一个对象obj的话,那么进行网络编程的步骤如下:

客户端:

需要调用以下对象中的函数:

obj.Create()

obj.Connect()

obj.Receive()或者obj.Send()

obj.Close()

服务器端:

需要调用以下对象中的函数:

先调用AfxSocketInit()检测协议栈安装情况

obj.Create()

obj.Listen()

obj.Accpet()

obj.Receive()或者obj.Send()

obj.Close()

2、对于采用底层的API函数而言,也是是先加加入这个头文件后步骤如下:

客户端:

需要直接调用以下的函数:

WSAStartup()

socket()

connect()

send()或者recv()

closesocket()

服务器端:

需要直接调用以下的函数:

WSAStartup()

socket()

bind()

listen()

accpet()

send()

recv()

closesocket()

(ps:windows下CSocket类为同步方式,有阻塞现象;CASyncSocket为异步方式,无阻塞现象。)

通过以上比较可以发现:linux下的网络编程与windows下采用底层的API类似,但是也有区别:

区别一:windows下需加上WSAStartup()函数

区别二:关闭socket:linux为close(),windows为closesocket()

windows下采用上层的API,一般有CSocket和CAsynSocket这两种类型的类

这种情况以下socket函数一般的首字母大写。而底层的API不管是windows下的还是linux下的socket函数首字母都是小写的。

网络服务器有哪些?各有什么特点

答:网络服务器主要分为了以下四类:

循环的无连接

循环的面向连接

并发的无连接

并发的面向连接

循环无连接服务器:是最简单的基于UDP的服务器,该类服务器一般是单线程的一般是单线程且是无状态的、无连接的服务器。因此一次性只能处理一个用户请求,另外该程序的设计也较为简单,因为客户按照顺序等待。是否能够满足要求取决于所需的反应时间。因此数据处理吞吐量较低,由于不需要与客户端进行可靠连接后再通信,因此该类服务器对于小的处理时间的服务工作很好

循环有连接服务器:该类服务器主要是基于TCP设计的,一般由一个线程、两个套接字、其中一个用于连接;另一个用于通信,其设计也较为复杂但是一对一通信更为可靠,因为也是单个线程,所以处理能力较低。

并发无连接:给多个客户提供快速响应时间需要使用并发服务器,能够同时处理多个客户请求。是基于UDP的服务器,由于创建进程或者线程是昂贵的,因此只有很少的无连接服务器采用并发实现,因此这样对系统的开销是相当巨大的。

并发有连接:给多个客户提供快速响应时间需要使用并发服务器,能够同时处理多个客户请求。是基于TCP的服务器,每当有客户请出连接请求时就会创建新的线程,每个用户套接字都是由单个的线程进行运行,尽可能的减少了系统的开销并且提供了可靠的通信服务,实用面较广。

网络应用程序有哪些体系结构?各有什么特点?

答:目前主要分为3类:分别是C/S服务器客户模式、B/S浏览器服务器模式以及P2P点对点通信模式。

C/S结构的特点:

总的来说能发挥客户端PC的处理能力,很多工作可以在客户端处理后再提交给服务器。对应的优点就是客户端响应速度快。具体表现在以下两点:

1.应用服务器运行数据负荷较轻。最简单的C/S体系结构的数据库应用由两部分组成,即客户应用程序和数据库服务器程序。

2.数据的储存管理功能较为透明。在数据库应用中,数据的储存管理功能,是由服务器程序和客户应用程序分别独立进行的,并且通常把那些不同的(不管是已知还是未知的)前台应用所不能违反的规则,在服务器程序中集中实现,例如访问者的权限,编号可以重复、必须有客户才能建立定单这样的规则。

缺点

1.系统扩展性低:这种方式远程访问需要专门的技术,同时要对系统进行专门的设计来处理分布式的数据。

2.维护性差:客户端需要安装专用的客户端软件。首先涉及到安装的工作量,其次任何一台电脑出问题,如病毒、硬件损坏,都需要进行安装或维护。特别是有很多分部或专卖店的情况,不是工作量的问题,而是路程的问题。还有,系统软件升级时,每一台客户机需要重新安装,其维护.

3.升级成本非常高:C/S架构的劣势还有高昂的维护成本且投资大。

4.在C/S模式中,作为客户机的计算机都要安装客户机程序,一旦软件系统升级,每台客户机都要安装客户机程序,系统升级和维护较为复杂

B/S模式有以下特点:

B/S结构(Browser/Server,浏览器/服务器模式),是WEB兴起后的一种网络结构模式,WEB浏览器是客户端最主要的应用软件。

1.B/S模式依赖浏览器,具有很高的灵活性.在任何地方进行操作而不用安装任何专门的软件,只要有一台能上网的电脑就能使用。

2.B/S模式安全性不高,对数据的加密能力依赖浏览器。

3.由于需要服务器对内容进行解析后再向浏览器反馈结果,所以响应速度慢,服务器端负载大。

4.在用户的计算机上只要安装浏览器软件,在服务器上存放数据并且安装服务应用程序,用户可能通过浏览器访问服务器,进行信息浏览、文件传输和电子邮件等操作。

P2P模式有以下特点:

称为“点对点”。“对等”技术,是一种网络新技术,依赖网络中参与者的计算能力和带宽,而不是把依赖都聚集在较少的几台服务器上。

主要有以下特点:1.因为P2P采用广域网用户直连通讯传输的技术,因此传输过程不需要经过中转或代理,传输速度快。

2.因为是广域网用户直连通讯传输,数据没有安全保障,所以传输的文件数据会有危害性或则失真

3.P2P技术更能方面人们的信息数据传送,提高效率,给客户端增加运行任务的同时减轻服务器的负载。

相关主题
相关文档
最新文档