网络编程(一)-----------------------基本知识

一、.网络基本知识

1.OSI七层网络模型

     

事实上,在网络通信的发送端,其通信数据每到一个通信层,都会被该层协议在数据中添加一个包头数据。而在接收方恰好相反。数据通过每一层时,都会被该层协议剥去相应的包头数据。即,网咯模型中的隔层都是对等通信的

2.TCP/IP协议

       TCP/IP协议实际上式一个协议簇,其中包括了很多协议。例如FTP(文件传输协议)、SMTP(邮件传输协议)等应用层协议。TCP/IP协议的网络模型只有4层,包括数据链路层,网络层,数据传输层,应用层。

 

在数据传输层中,包括了TCP和UDP协议,其中TCP协议是基于面向连接的可靠地通信协议,它具有重发机制,即当数据被破坏或者丢失时,发送方将重发该数据。而UDP协议是基于用户数据报协议,属于不可靠连接通信的协议。例如当使用UDP协议发送一条消息时,并不知道该消息是否已经到达接收方,或者在传输过程中数据是否已经丢失。但是,UDP协议具有较高的网络数据传输速度。

3.C/S编程模型

        C/S编程模型是基于可靠连接的通信模型,在通信的双放必须使用各自的IP地址以及端口进行通信。否则通信过程无法实现。通常情况下,当用户使用C/S模型进行通信时,其通信的任意一方称为客户端,则另一方称为服务器端。服务器端等待客户端连接请求的到来称为监听过程,通常服务器监听功能是在特定IP地址和端口上进行。然后,客户端向服务器发出连接请求,服务器相应该请求则连接成功,否则客户端的连接请求失败。

由于客户端连接服务器时需要使用服务器的IP地址和监听端口号才能完成连接,所以,服务器的IP地址和端口必须是固定的。HTTP协议的所使用端口号是80,FTP协议所使用端口号是21.

二、网络编程基础

1、sickets套接字与网络字节顺序

(1)sockets套接字

         在网络通信的双方,均有各自的套接字,并且该套接字与特定的IP地址和端口号相关联。通常,套接字主要有两种类型,分别是流式套接字(SOCK_STREAM)和数据报套接字(SOCK_DGRAM).其中,流式套接字专门使用TCP协议通信的应用程序中,而数据报套接字则专门用于使用UDP协议进行通信的应用程序中。

(2)网络字节顺序

         网路字节顺序是TCP/IP协议中规定的数据传输使用格式,与之相对的字节顺序是主机字节顺序。网络字节顺序表示首先将数据中最重要的字节进行存储。因为通信数据可能会在不同的机器之间进行传输,所以通信数据必须以相同的格式进行整理,只有经过格式处理的通信数据,才能在不同的机器之间进行传输。

2、网路通信基本流程

       要通过互联网进行通信,用户至少需要一对套接字,其中一个运行于客户机端,我们称之为ClientSocket,另一个运行于服务器端,称之为ServerSockets。套接字之间的连接过程可以分为以下3个步骤。

(1)服务器监听: 服务器端套接字并不定位具体的客户端套接字,而是处于等待连接的状态,实时监控网络状态

(2)客户端请求:由客户端的套接字提出连接请求,要连接的目标是服务器端的套接字。客户端的套接字必须首先描述它要连接的服务器的套接字。指出服务器端套接字的地址与端口号,然后就向服务器端套接字提出连接请求。

(3)连接确认:当服务器端套接字监听到客户端套接字的连接请求时,它就相应客户端套接字的请求,建立一个新的线程,把服务器端套接字的描述发给客户端,一旦客户端确认了此描述,连接就建立好了,而服务器端套接字继续处于监听状态,继续接受其他客户端套接字的连接请求。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值