您现在的位置是:首页 >其他 >网络编程先导知识网站首页其他
网络编程先导知识
目录
1.什么是网络协议
为了在计算机网络中做到有条不紊地交换数据,就必须遵守一些事先约定好的规则。这些规则明确规定了所交换的数据的格式以及有关的同步问题,这些为进行中的数据交换而建立的规则、标准或约定称为网络协议。
网络协议主要由以下三个要素组成:
1.语法:即数据与控制信息的结构或格式
2.语义:即需要发出何种控制信息,完成何种动作以及做出何种响应
3.同步:即事件实现顺序的详细说明
2.什么是Socket
Socket是一套用于不同主机间通信的API, 它可以看成是两个网络应用程序进行通信时,各自通信连接中的端点,这是一个逻辑上的概念。它是网络环境中进程间通信的API(应用程序编程接口),也是可以被命名和寻址的通信端点,使用中的每一个套接字都有其类型和一个与之相连进程。通信时其中一个网络应用程序将要传输的一段信息写入它所在主机的 Socket中,该 Socket通过与网络接口卡(NIC)相连的传输介质将这段信息送到另外一台主机的 Socket中,使对方能够接收到这段信息。 Socket是由IP地址和端口结合的,提供向应用层进程传送数据包的机制。
Socket主要类型:
流套接字(SOCK_STREAM)
流套接字用于提供面向连接、可靠的数据传输服务。该服务将保证数据能够实现无差错、无重复送,并按顺序接收。流套接字之所以能够实现可靠的数据服务,原因在于其使用了传输控制协议,即TCP(The Transmission Control Protocol)协议 。
数据报套接字(SOCK_DGRAM)
数据报套接字提供一种无连接的服务。该服务并不能保证数据传输的可靠性,数据有可能在传输过程中丢失或出现数据重复,且无法保证顺序地接收到数据。数据报套接字使用UDP( User DatagramProtocol)协议进行数据的传输。由于数据报套接字不能保证数据传输的可靠性,对于有可能出现的数据丢失情况,需要在程序中做相应的处理 。
原始套接字(SOCK_RAW)
原始套接字与标准套接字(标准套接字指的是前面介绍的流套接字和数据报套接字)的区别在于:原始套接字可以读写内核没有处理的IP数据包,而流套接字只能读取TCP协议的数据,数据报套接字只能读取UDP协议的数据。因此,如果要访问其他协议发送的数据必须使用原始套接。
3.C/S和B/S架构
CS即Client/Server(客户机/服务器)结构,C/S结构在技能上非常成熟,它的重要特征就是交互性强、拥有安全的存取形式、网络通信数量低、响应速度快、利于处置大量数据。可是这个结构的程序就是针对性开发,变更不够灵活,维护与管理的难度较大。常常只局限在小型局域网,不利于扩展。而且,因为这个结构的每台客户机全部须要安装相对应的客户端程序,分布功能弱并且兼容性差,不可以完成迅速部署安装与配置,因为这样缺少通用性,拥有比较大的局限性。请求拥有肯定专业水准的技能人员去结束。
BS即Browser/Server(浏览器/服务器)结构,就是只安装维护一个服务器(Server),而客户端选用浏览器(Browse)运行软件。B/S结构应用程序相对于传统的C/S结构应用程序就是一个特别大的进步。 B/S结构的重要特征就是分布性强、维护方便、开发简单并且共享性强、总体拥有费用低。但数据安全性问题、对服务器需要过高、数据传输速度慢、软件的个性化特征明显减少,这些缺点就是有目共睹的,难以完成传统形式下的特殊功能请求。比如通过浏览器实行大量的数据输入或实行报表的应答、专用性打印输出全部相对比较困难与不便。另外,完成复杂的应用构造有较大的困难。
两者重要优缺点如下:
CS架构:
(1)优点:
●可以足够表现客户端PC的处置才能,很多工作能够在客户端处置以后再提交给服务器,于是CS客户端响应速度快。
●操作界面漂亮、形式多样,能够足够满足客户自己的个性化要求。
●C/S结构的管理信息系统拥有比较强的事务处置才能,可以完成复杂的业务过程。
●安全性能能够非常容易确保,C/S通常面向相比固定的用户群,程序越发注重过程,它能够对权限实行多层次校验,提供了更安全的存取形式,对信息安全的控制才能非常强。通常高度机密的信息系统选用C/S结构适宜。
(2)缺点:
●须要专门的客户端安装程序,分布功能弱,针对点多面广且不具备网络条件的用户群体,不可以完成迅速部署安装与配置。
●兼容性差,关于不一样的开发工具,拥有比较大的局限性。假如选用不一样工具,须要重新改写程序。
●开发、维护费用较高,须要拥有肯定专业水准的技术人员才可以结束,发生一次升级,就全部客户端的程序全部须要更改。。
●用户群固定。因为程序须要安装就可使用,因为这样不符合面向一些不可知的用户,于是实用面窄,常常用来局域网中。
BS架构:
(1)优点:
●分布性强,客户端零维护。只需有网络、浏览器,能够随时随地实行查询、浏览等业务处理。
●业务扩展简单便利,通过添加网页就可以添加服务器功能。
●维护简单便利,只须要更改网页,就可以完成全部用户的同步更新。
●开发简单,共享性强。
(2)缺点:
●个性化特征明显减少,没办法完成拥有个性化的功能要求。
●在跨浏览器上,BS架构不尽如人意。
●客户端服务器端的交互就是请求-响应形式,常常动态刷新页面,响应速度明显减少(Ajax能够肯定程度上处理这个问题)。没办法完成分页显示,给数据库访问导致较大的压力。
●在速度与安全性上须要花费超大的设计费用。
●功能弱化,难以完成传统形式下的特殊功能需要。
4.网络字节序和主机字节序
网络字节序,也称为大端字节序,是指在多字节数据存储时,字节序列的高位字节存储在内存的低地址处,而低位字节存储在高地址处。这种存储方式符合人的阅读习惯,例如数字"1234"在大端字节序中的存储方式为"x12x34",先存储高位数字"1",后存储低位数字"4"。
主机字节序,也称为小端字节序,是指在多字节数据存储时,字节序列的低位字节存储在内存的低地址处,而高位字节存储在高地址处。例如数字"1234"在小端字节序中的存储方式为"x34x12",先存储低位数字"4",后存储高位数字"1"。
具体采用哪种字节序则取决于计算机的架构和处理器的设计。在现代计算机中,常用的是小端字节序。
5.局域网和广域网
局域网(Local Area Network,LAN)是指在一个相对较小的地域范围内的计算机网络,比如一个公司、学校或家庭内部使用的网络。局域网通常由多台计算机、服务器和其他网络设备组成,并通过物理连接或者无线电波连接在一起。
广域网(Wide Area Network,WAN)则是指覆盖更大地域范围的计算机网络,通常在不同的地域之间通过计算机、路由器、通讯线路等设备连接起来,比如跨城或跨国的网络。广域网通常由多个局域网连接起来,能够实现不同地域之间的数据交换和通信。
6.IP地址和端口的概念
IP地址是一个标识网络接口的数字地址,它用来标识网络上的设备,并且能够使这些设备进行通讯。IP地址通常由32位二进制数字组成,通常被表示为四个用点分隔的十进制数。例如,192.168.0.1就是一个常见的IP地址。
端口是一种与IP地址组合使用的数字,它用于标识特定的应用程序或服务。端口号通常是16位的数字,可以取值范围从0到65535。其中,0到1023的端口号是已经被标准化的端口号,用于一些常见的服务和应用程序,例如HTTP(80端口)和FTP(21端口)等。剩下的端口号则可以被应用程序使用。当两个设备进行网络通讯时,需要使用IP地址和端口号来确定数据的发送和接收方,并且保证数据能够准确地被传输。